Client-Side Lock List for Concurrent Electronic Circuit Design
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing electronic design automation (EDA) tools face challenges in managing concurrent multi-user access to complex electronic circuit designs, particularly in geographically dispersed teams, where synchronization and authorization processes can lead to latency and inefficiencies.
Innovation Solution
A computer-implemented method for multi-user, at least partially concurrent electronic circuit design that includes storing a lock list on a client device, receiving user input for lock or unlock requests, and transmitting these requests to a server for determination, without requiring server authorization, allowing for real-time updates and visualization across multiple users.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If server authorization is required for every lock/unlock request in multi-user EDA tools, then data consistency is maintained, but system latency increases and collaboration efficiency deteriorates
Solution Approach 1:
The system performs preliminary actions by maintaining a lock list at the client device that tracks locked and unlocked objects before server authorization is needed. This allows users to work with locked objects locally without waiting for server confirmation, reducing latency while maintaining data consistency through periodic synchronization.
Solution Approach 2:
The authorization process is segmented into client-side preliminary checks using the lock list and server-side final authorization. This segmentation allows the time-critical lock/unlock operations to proceed quickly at the client level while the server maintains overall data consistency, resolving the contradiction between speed and reliability.
2Productivity
If concurrent multi-user access is enabled in EDA tools, then collaboration efficiency improves, but synchronization complexity and device complexity increase
Solution Approach 1:
The system creates a local copy of the lock list at each client device, allowing users to work concurrently without constantly communicating with the server. This copying approach enables efficient multi-user collaboration while reducing synchronization complexity by minimizing server-client communication overhead.
Solution Approach 2:
The lock list acts as an intermediary data structure that mediates between multiple users and the server. It tracks the state of locked objects locally, enabling concurrent access without direct server involvement for every operation, thus improving collaboration efficiency while managing synchronization complexity.
3Speed
If real-time updates are implemented without server authorization, then response speed improves, but data integrity risks increase
Solution Approach 1:
The system performs preliminary validation by checking the lock list locally before allowing real-time updates. This preliminary action ensures that updates only occur on properly locked objects, maintaining data integrity while enabling fast response speeds without requiring server authorization for every operation.
Data Source
AI summary
The present disclosure relates to a method for multi-user, at least partially concurrent, electronic circuit design. Embodiments may include storing a lock list at a client computing device, wherein the lock list includes objects associated with an electronic design that have been locked or unlocked. Embodiments may further include receiving a user input corresponding to a lock/unlock request associated with an object of the design, wherein the design is accessible by multiple users in an at least partially concurrent manner. Embodiments may include transmitting the lock/unlock request to a server computing device. Embodiments may further include comparing the user input corresponding to at least one of the lock request or unlock request with the lock list and determining whether to lock or unlock the object based upon, at least in part, the comparison, wherein determining does not include receiving server authorization.


