Change Service for Shared Database Object Concurrency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Lock-based protocols in database concurrency control limit simultaneous access to shared data objects, causing inefficiencies and potential inconsistencies due to exclusive locks that prevent multiple users from working on data simultaneously.
Innovation Solution
A change service manages access to shared data objects by storing change requests in a temporary queue, allowing processes to continue uninterrupted while ensuring that changes are processed in a controlled and ordered manner, avoiding the need for exclusive locks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If lock-based protocols are used to ensure data consistency, then data integrity is maintained, but system throughput and concurrency are reduced
Solution Approach 1:
The patent introduces a change service as an intermediary layer between multiple processes and the shared database object. This change service receives change requests from multiple processes, queues them, and applies changes sequentially to the database object. The intermediary absorbs the concurrency control logic, allowing multiple processes to submit changes without direct locking conflicts, thereby maintaining data integrity while improving system throughput through parallel request submission.
2Reliability
If exclusive locks are applied to prevent conflicts, then data consistency is ensured, but access efficiency and user productivity deteriorate
Solution Approach 1:
The change service acts as a mediator that processes change requests from multiple users sequentially while allowing users to submit requests concurrently. The mediator manages the exclusive lock internally, applying it only during the brief moment of actual database modification, rather than requiring users to wait for lock acquisition. This separates the locking mechanism from user operations, improving access efficiency while maintaining data consistency.
Solution Approach 2:
The system performs preliminary validation and queuing of change requests before applying them to the database. The change service validates change requests and places them in a queue before the actual database modification occurs. This preliminary processing allows users to prepare and submit changes without waiting for database locks, improving operational efficiency while ensuring consistency through pre-validation and sequential application.
3Productivity
If multiple processes access shared data objects simultaneously, then system productivity increases, but data inconsistency risks increase
Solution Approach 1:
The change service serves as a centralized intermediary that receives, validates, queues, and applies change requests from multiple processes. This mediator ensures that only one process modifies the shared database object at a time through sequential application of queued changes, preventing data inconsistency while allowing multiple processes to submit changes concurrently. The intermediary thus enables high system productivity through parallel request submission while guaranteeing data consistency through controlled sequential application.
Data Source
AI summary
Provided is a system and method for managing change requests to a shared data object. In one example, the method may include receiving a request to change a value of a shared data object stored in a data store, identifying a queue of the shared data object which stores change requests before processing, generating an entry for the request comprising a timestamp of the request, the change in the value, and an identifier of the shared data object, and storing the generated entry in the queue of the shared data object, where the generated entry is stored in a position of the queue based on the timestamp. Thus, a user does not need to wait for other users to finish accessing the shared data object. Instead, a user waits for a queue entry to be created, thus decreasing the wait time.


