Capacity Management Unit for Distributed Data Consistency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed Key-Value store systems with replication, data write requests can fail on one server while succeeding on another due to capacity differences, leading to data inconsistency between master and replica data.
Innovation Solution
A computer system with a capacity management unit that allocates temporary areas for dynamic capacity control across multiple servers, managing storage capacity through a capacity management table to determine if data write requests are executable based on server capacities, ensuring both master and slave servers execute or reject requests consistently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If data write requests are processed independently on each server without capacity coordination, then servers with sufficient free capacity can accept requests, but data inconsistency occurs between master and slave servers when one succeeds and the other fails
Solution Approach 1:
The capacity management unit determines the executability of data write requests before actual data writing occurs. It checks the combined free capacity of master and slave servers in advance, and only allows requests to proceed if both servers have sufficient capacity. This preliminary check prevents the inconsistency problem by ensuring both servers can handle the request before it is executed.
Solution Approach 2:
The capacity management unit acts as an intermediary between data write requests and the master/slave servers. It coordinates capacity allocation across servers, managing a pool of free capacity that can be dynamically allocated. This intermediary layer ensures that requests are only processed when capacity is available on both master and slave servers, maintaining data consistency while enabling efficient request handling.
2Reliability
If capacity is strictly reserved on each server individually, then data consistency is maintained, but servers with unused capacity cannot accept additional requests
Solution Approach 1:
The capacity management unit merges the free capacity of multiple servers (master and slave) into a shared pool. Instead of treating each server's capacity independently, it combines their available resources and manages them as a unified resource pool. This allows requests to be accepted when total capacity across servers is sufficient, improving request acceptance rates while maintaining consistency through coordinated allocation.
Solution Approach 2:
The system dynamically allocates capacity from the merged pool based on real-time server status and request requirements. The capacity management unit can flexibly assign capacity to different servers as needs change, rather than maintaining static reservations. This dynamic approach maximizes resource utilization while ensuring that capacity is only committed when both master and slave servers can handle the request.
Data Source
AI summary
Inconsistency in data stored in a plurality of servers that perform replication is prevented. A capacity management unit provides in advance a temporary area for dynamic control of a total capacity, manages a use status of the temporary area of each of a master server and a slave server with a capacity management table, and determines whether a data write request for requesting writing of data is executable or not based on the use status of the temporary area of the master server and the use status of the temporary area of the slave server in the capacity management table of the data requested to be written by the data write request. A data processing unit causes both of the master server and the slave server to execute the data write request when the capacity management unit determines that the data write request is executable, and prevents both of the master server and the slave server from executing the data write request when the data write request is determined to be inexecutable.


