Scalable LSM Tree Sharding for Cloud Storage I/O
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing scale-out solutions for LSM tree data structures face challenges with high availability requirements, leading to increased storage needs and slowed I/O operations due to the need for multiple copies and additional operations like synchronization and failure recovery, which can result in inefficient data management and recovery processes.
Innovation Solution
The solution involves using a scalable LSM tree data structure that allows multiple readers and writers to perform I/O operations independently by storing objects and metadata separately across multiple compute nodes, utilizing a log-structured file system for object data and an LSM tree for metadata, and implementing sharding to parallelize compaction processes, thereby reducing write amplification and improving efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple copies of LSM tree are used for high availability, then reliability is improved, but storage space requirement increases and I/O operation speed decreases
Solution Approach 1:
The patent divides the LSM tree into multiple shards that are distributed across different compute nodes. Each compute node maintains a portion of the LSM tree structure, allowing independent I/O operations on different shards without blocking other nodes. This segmentation enables high availability through distribution while maintaining I/O performance by eliminating the need to wait for multiple copies to be updated sequentially.
2Reliability
If multiple copies of LSM tree are used for high availability, then reliability is improved, but additional storage space is required
Solution Approach 1:
Instead of creating multiple full copies of the LSM tree, the patent segments the tree into distributed shards across compute nodes. Each node stores a portion of the data, eliminating the need for complete duplicates while maintaining availability through distribution. This approach reduces storage requirements compared to traditional multi-copy strategies.
3Reliability
If multiple copies of LSM tree are used for high availability, then reliability is improved, but additional operations for synchronization and failure recovery are required
Solution Approach 1:
The patent segments the LSM tree into independent shards distributed across compute nodes, where each shard can be operated on independently. This eliminates the need for complex synchronization operations between multiple copies, as each node works with its own shard without requiring coordination with other nodes for consistency maintenance.
4Device complexity
If a single compute node handles all I/O operations on LSM tree, then device complexity is reduced, but scalability is limited when data amount grows
Solution Approach 1:
The patent segments the LSM tree into multiple shards that can be handled by different compute nodes. This allows the system to scale horizontally by distributing I/O operations across multiple nodes rather than requiring a single complex node to handle all operations. The segmentation enables linear scalability with data volume while keeping individual node complexity manageable.
Data Source
AI summary
A method for managing data associated with objects stored in a cloud storage is provided. The method receives, at a first compute node, first data associated with an object stored in the cloud storage, the first compute node being one of a plurality of compute nodes that store data associated with different objects as storage objects in a log-structured merging (LSM) tree data structure. The method then assigns a first unique name to a first storage object associated with the first data, the first unique name comprising a combination of at least an identifier identifying the first compute node and a first incremental local value. The method stores the first storage object in a first level (L0) of the LSM tree data structure.


