Distributed Table Storage Splitting via Asynchronous Logs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed storage systems, the need to split slice copies simultaneously to maintain consistency results in low availability, as the original slices do not provide sufficient service capacity with increasing data amounts and request pressures.

Innovation Solution

A distributed table storage processing method where a master server generates a splitting log and serial number, sends it to slave servers, and performs splitting storage only after receiving a threshold number of acknowledgment messages, ensuring that both servers execute the same splitting log sequence, even if they do not perform storage simultaneously.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If multiple slice copies are split simultaneously to maintain consistency, then data consistency is ensured, but system availability decreases

Engineering Contradiction:
Improvedata consistencyVSAvoidsystem availability
Core Design Contradiction:
Manufacturing precisionVSReliability

Solution Approach 1:

The master server generates and distributes the splitting log (containing splitting rules and parameters) to all slave servers before the actual splitting operation begins. This preliminary action allows slave servers to prepare in advance and execute splitting asynchronously without waiting for simultaneous coordination, thus maintaining data consistency while improving system availability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a dynamic splitting mechanism where the master server sends a second splitting instruction to trigger actual splitting operations. Slave servers can execute the splitting at different times based on their local conditions, transforming the static simultaneous splitting requirement into a dynamic asynchronous process that maintains consistency through the pre-distributed splitting log.

Inventive Principle:
Principle #15Dynamics

2Productivity

If slice splitting is performed to increase service capacity, then productivity improves, but system complexity increases

Engineering Contradiction:
Improveservice capacityVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the slice splitting process into distinct components: a splitting log (containing splitting rules and parameters), acknowledgment messages, and triggering instructions. This segmentation allows the system to manage complex splitting operations through modular, independent message exchanges between the master server and slave servers, reducing overall system complexity while enabling scalable slice splitting.

Inventive Principle:
Principle #1Segmentation

3Reliability

If slice copies are stored on multiple servers for fault tolerance, then reliability improves, but coordination difficulty increases

Engineering Contradiction:
Improvefault toleranceVSAvoidcoordination difficulty
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The master server acts as an intermediary that coordinates the splitting operation across multiple slave servers. It generates the splitting log, distributes it to all slave servers, receives acknowledgment messages, and triggers the actual splitting through a second instruction. This intermediary approach simplifies coordination by centralizing control logic while allowing slave servers to operate independently, thus maintaining fault tolerance without excessive coordination complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12001450B2Distributed table storage processing method, device and system
Publication Date: 2024.06.04 BEIJING KINGSOFT CLOUD NETWORK TECH CO LTD
  • US12001450B2 patent drawing
  • US12001450B2 patent drawing
  • US12001450B2 patent drawing

AI summary

A distributed table storage processing method, device and system, a master server to which a to-be-split slice belongs generates a splitting log of the to-be-split slice and a serial number of the splitting log after receiving a first splitting instruction for the to-be-split slice sent by a control device; sends the splitting log and serial number of the splitting log to a slave server to which the to-be-split slice belongs, and the slave server sends a first acknowledgment message to the master server after storing the splitting log and the serial number; performs splitting storage on the to-be-split slice according to the splitting log to obtain a plurality of new slices when the number of the received first acknowledgment messages is not less than a first threshold; sends a second splitting instruction to each slave server, and the slave server performs splitting storage to obtain a plurality of new slices.