Cooperative Locking Between DBMS and Distributed Applications
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current data locking mechanisms in databases integrated with distributed programming environments face challenges in coordinating locks between database management systems (DBMS) and distributed applications, leading to inconsistencies and simultaneous access issues.
Innovation Solution
Implementing a cooperative data locking method where a DBMS and a distributed application lock corresponding database elements and data tuples in an operator graph, transmitting lock indications between each other to ensure synchronized locking and unlocking, thereby maintaining data integrity and preventing simultaneous access.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If data locking is implemented in databases integrated with distributed programming environments, then data consistency is improved, but coordination complexity between DBMS and distributed applications increases
Solution Approach 1:
The patent introduces a lock manager as an intermediary component that mediates between the DBMS and distributed applications. The lock manager receives lock requests from distributed applications, translates them into appropriate DBMS lock operations, and manages the coordination of locks across both systems. This intermediary layer abstracts the complexity of coordination, allowing distributed applications to work with data tuples in the operator graph while the lock manager handles the intricate details of synchronizing with DBMS locks, thereby improving data consistency without exposing the full coordination complexity to end users.
2Reliability
If cooperative locking is implemented between DBMS and distributed applications, then simultaneous access issues are prevented, but system operation complexity increases
Solution Approach 1:
The patent implements self-service mechanisms where the lock manager automatically performs lock coordination without requiring manual intervention from developers or operators. When a distributed application requests access to data, the lock manager automatically checks for existing locks, acquires appropriate locks, and releases them when done. The system also includes automatic conflict detection and resolution, where the lock manager can detect potential conflicts and automatically manage lock acquisition order to prevent deadlocks. This automation reduces the operational burden on users while maintaining strict access control.
Solution Approach 2:
The system incorporates feedback mechanisms where the lock manager continuously monitors the state of locks in both the DBMS and distributed application components. When a lock is acquired or released, the lock manager provides feedback to all relevant components to update their state. This feedback loop ensures that all parts of the system have consistent information about lock status, enabling automatic conflict resolution and simplifying the operation for users who don't need to manually track lock states.
3Reliability
If lock indications are transmitted between DBMS and distributed applications, then synchronized locking is achieved, but communication overhead increases
Solution Approach 1:
The patent implements preliminary action by having the lock manager pre-establish communication channels and lock protocols between the DBMS and distributed applications before actual data operations begin. Lock metadata and communication pathways are prepared in advance, allowing the system to quickly exchange lock indications during runtime without establishing connections on-demand. This preliminary setup reduces the communication overhead during actual locking operations, as the infrastructure is already in place and optimized for the specific DBMS-application pairing.
Data Source
AI summary
Systems, methods, and computer program products to perform an operation comprising locking, by a first one of a database management system (DBMS) and a distributed application, one of a first database element and a first data tuple, wherein the first data tuple is of a plurality of tuples in an operator graph of the distributed application, transmitting an indication of the locking by the first one of the DBMS and the streams computing application to a second one of the DBMS and the distributed application, identifying, by the second one of the DBMS and the distributed application, one of a second database element and a second data tuple corresponding to the one of the first database element and the first data tuple, and locking, by the second one of the DBMS and the streams computing application, the identified one of the second database element and the second data tuple.


