Scalable Filesystem Metadata Sharding for Parallel Enumeration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing filesystems, particularly POSIX-compliant ones, face scalability issues with directory operations such as listing, as these operations are typically performed serially and do not scale well with increasing volumes of data and numbers of files, leading to inefficiencies in metadata management.
Innovation Solution
Implementing an enumeration function that shards metadata entries across multiple metadata servers, allowing these servers to perform enumeration tasks in parallel, thereby enabling concurrent traversal and processing of directory entries, and supporting augmented functions like filtering and sorting to enhance performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If directory enumeration is performed serially on a single metadata server, then implementation simplicity is maintained, but scalability and performance deteriorate with increasing filesystem size
Solution Approach 1:
The patent divides the metadata server into multiple segment servers, each responsible for a specific range of metadata entries. Directory enumeration is segmented across these servers, with each server handling a portion of the directory entries. This segmentation enables parallel processing of enumeration requests, improving performance while maintaining manageable complexity through clear division of responsibilities.
Solution Approach 2:
The patent introduces a new dimension to the metadata server architecture by adding hierarchical levels (primary metadata server coordinating multiple segment servers). This dimensional expansion allows the system to handle larger filesystems by distributing workload across multiple servers in the hierarchy, transforming a single-point bottleneck into a scalable distributed architecture.
2Adaptability or versatility
If metadata entries are distributed across multiple servers, then scalability improves, but coordination overhead and system complexity increase
Solution Approach 1:
The patent introduces primary metadata servers as intermediaries that coordinate between clients and segment servers. These primary servers manage the distribution of enumeration requests across segment servers, handle result aggregation, and provide a unified interface to clients. This intermediary layer simplifies coordination complexity by centralizing management functions while maintaining the scalability benefits of distributed metadata storage.
3Speed
If parallel enumeration tasks are invoked across multiple metadata servers, then enumeration speed improves, but resource management and task coordination complexity increase
Solution Approach 1:
The patent performs preliminary actions by pre-organizing metadata entries across segment servers with clear ownership boundaries and maintaining indexes that enable efficient range queries. This preliminary organization allows parallel enumeration tasks to proceed without complex real-time coordination, as each segment server can independently process its assigned range. The preliminary structuring of data eliminates the need for complex task coordination during enumeration execution.
Data Source
AI summary
Systems, apparatus, and methods are disclosed for performing scalable operations in a file system. Metadata entries in a namespace or directory tree are sharded across multiple file metadata servers. An augmented enumeration operation, such as listing a directory, is parallelized across the multiple file metadata servers, transparently to clients. Exemplary augmentation features can include filtering and sorting. Augmentation features can be executed concurrently with enumeration, prior to enumeration, after enumeration, or as a combination of these, and can utilize pre-built index structures or holding structures for intermediate results. Augmented enumeration operations can also include no-output operations such as changing file attributes or deleting a file, and cumulative operations such as counting total disk space usage. The parallelization is compatible with tree-level parallelization and storage-level parallelization. Disclosed technologies can be applied to other fields requiring scalable enumeration, such as database and network applications.


