Database Sharding for Asynchronous Event Consistency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In asynchronous systems, managing simultaneous access to shared data by multiple devices is challenging due to limited resources, leading to inconsistent and conflicting updates, especially when multiple devices attempt to update events simultaneously.
Innovation Solution
A computer-implemented database system that creates a data structure for storing events related to return requests, synchronizes this structure across databases, and handles updates and inquiries efficiently, ensuring consistent data access and status reporting.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple devices access and update shared data simultaneously in an asynchronous system, then the system's processing capability and resource utilization are improved, but data consistency and reliability deteriorate due to conflicting updates
Solution Approach 1:
The patent segments the monolithic database into multiple sharded databases distributed across different servers. Each shard handles a subset of data, allowing parallel access and updates without interfering with other shards. This segmentation enables multiple devices to simultaneously access different portions of the data system, improving processing capability while maintaining data consistency within each shard through controlled access mechanisms.
Solution Approach 2:
The patent introduces an intermediary mechanism (database interface layer with synchronization protocols) that mediates between multiple devices and the underlying database system. This intermediary manages concurrent access requests, coordinates updates across shards, and ensures data consistency through controlled synchronization, allowing high productivity while preventing conflicting updates that would compromise reliability.
2Reliability
If the system implements strict data access control to prevent conflicting updates, then data consistency is improved, but system performance and resource utilization deteriorate
Solution Approach 1:
By dividing the database into independent shards, the system allows concurrent access to different segments without requiring global locking. Each shard can be accessed and updated independently by different devices simultaneously, maintaining data consistency within each shard while achieving high overall system performance through parallel processing.
Solution Approach 2:
The patent implements local quality control where each database shard has its own access control and consistency mechanisms tailored to its specific data. This allows strict consistency guarantees at the local shard level while permitting concurrent operations across different shards, thereby maintaining reliability without sacrificing system-wide performance.
3Productivity
If the system allows flexible concurrent access to improve resource utilization, then productivity is improved, but the complexity of managing data access and synchronization increases
Solution Approach 1:
The database segmentation into independent shards simplifies synchronization management by eliminating the need for complex global coordination. Each shard can be managed independently with simpler locking and concurrency control mechanisms, reducing overall system complexity while still enabling flexible concurrent access across multiple devices for improved resource utilization.
Solution Approach 2:
The patent implements self-service mechanisms where each database shard autonomously manages its own concurrency control and synchronization without requiring centralized coordination. This decentralized approach reduces the complexity of synchronization management while allowing flexible concurrent access, as each shard independently handles its own access requests and maintains its own consistency.
Data Source
AI summary
A computer-implemented database system for storing data relating to a series of events may include a memory storing instructions and at least one processor configured to execute the instructions to perform a process. The process may include receiving data relating to a first return request initiated by a first customer via a first user device, and creating a first data structure for the first return request into a first database. The process may also include create a first event for the first return request, and storing the first event in the first data structure. The process may further include receiving data relating to an update associated with the first return request, creating a second event for the update, and inserting the second event into the first data structure.


