Distributed Storage System with Namespace Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing distributed file systems face challenges in scalability, performance degradation due to locking and caching overhead, and inability to efficiently handle multiple APIs, leading to limitations in scaling and compatibility with different protocols.

Innovation Solution

A distributed storage system comprising storage nodes (DNodes) and compute nodes (CNodes), where DNodes store persistent metadata structures with pointers and CNodes translate access commands to manage data access across nodes, enabling scalable and protocol-agnostic data management without caching and with flexible support for new protocols.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If distributed caching and locking is used to manage data access, then data access transparency is improved, but performance degrades due to excessive locking or caching overhead when multiple nodes attempt to access the same data concurrently

Engineering Contradiction:
Improvedata access transparencyVSAvoidperformance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent segments the distributed file system into separate namespaces (POSIX namespace and object storage namespace) that can be independently managed. This segmentation allows different access patterns and protocols to coexist without interfering with each other, reducing locking overhead by allowing parallel access to different namespace types.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary layer (the distributed file system with multiple namespace support) between the storage backend and access protocols. This intermediary handles protocol translation and namespace management, allowing multiple protocols to access the same underlying data without direct conflicts, thereby improving performance while maintaining transparency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If sharding is used to divide data among nodes, then storage capacity and scalability are improved, but performance degrades when frequently accessed files on a node result in the node being overwhelmed

Engineering Contradiction:
Improvestorage capacityVSAvoidnode performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent implements dynamic namespace management where the system can adaptively route access requests based on current node load and access patterns. Frequently accessed files can be dynamically redirected to different nodes or handled with optimized caching strategies, preventing any single node from being overwhelmed while maintaining the scalability benefits of sharding.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies different quality characteristics to different parts of the system by implementing namespace-specific access policies. Hot files in the POSIX namespace can be handled with aggressive caching and load balancing, while cold files use standard sharding, optimizing performance for each category without compromising overall storage capacity.

Inventive Principle:
Principle #3Local quality

3Device complexity

If the system is designed to support a single type of API for data access, then system simplicity is improved, but adaptability deteriorates when additional APIs are added

Engineering Contradiction:
Improvesystem simplicityVSAvoidprotocol compatibility
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent implements a universal distributed file system architecture that natively supports multiple protocols and namespaces. The system can simultaneously handle POSIX file access, S3 object storage, and other protocols through a unified kernel module that translates various protocol requests into internal operations, maintaining system simplicity while achieving multi-protocol compatibility without requiring separate protocol servers.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Adaptability or versatility

If protocol servers are added to support additional protocols like S3, then protocol compatibility is improved, but system complexity and performance overhead increase due to reading the entire directory and sorting file names

Engineering Contradiction:
Improveprotocol compatibilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the protocol-specific processing logic from separate protocol servers and integrates it directly into the distributed file system kernel. By taking out the directory reading and sorting operations from external protocol servers and implementing them as native namespace operations, the system reduces complexity while maintaining protocol compatibility, as the operations are now performed within the existing file system infrastructure rather than requiring additional external components.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11210006B2Distributed scalable storage
Publication Date: 2021.12.28 VAST DATA LTD
  • US11210006B2 patent drawing
  • US11210006B2 patent drawing
  • US11210006B2 patent drawing

AI summary

A storage system. The storage system includes a plurality of storage nodes (DNodes), wherein the DNodes are configured to store a plurality of elements and a plurality of data blocks, wherein each element is a persistent metadata structure, wherein at least one of the elements store at least one attribute, wherein the at least one attribute includes a plurality of pointers, wherein at least one of the data blocks is stored in at least one of the elements when the at least one of the data blocks has a size below a threshold size; and a plurality of compute nodes (CNodes), wherein each CNode has access to each of the DNodes, wherein each CNode is configured to receive an access command and to execute the access command based on the elements.