# US 10,503,409 B2 · Low-latency lightweight distributed storage system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,503,409 B2
- Document ID: US10503409B2
- Status: Granted
- Kind: B2
- Application number: 15/717,667
- Filed: 2017-09-27
- Published: 2019-03-28
- Granted: 2019-12-10
- Earliest claimed: 2017-09-27
- Assignees: Alibaba Group Holding Limited
- Applicants: Alibaba Group Holding Limited
- Inventors: Shu Li; Ming Lin
- Web page: https://patentgrep.com/patent/US10503409B2

## CPC

- G06F 3/0611: {in relation to response time}
- G06F 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- G06F 3/0643: {Management of files}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F 12/1018: involving hashing techniques, e.g. inverted page tables
- G06F 15/17331: {Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments described herein provide a system for facilitating a lightweight distributed storage system. During operation, the system generates a data segment from a data file associated with a write operation and determines a storage key for the data segment. The storage key indicates a calculated storage path associated with a replica of the data segment. The system then determines whether a user-defined storage path is specified by a user for the data segment. If a user-defined storage path has not been specified by the user for the data segment, the system generates a data packet comprising the data segment, wherein a destination for the data packet corresponds to a target disk specified by the calculated storage path.

## Claims

### Claim 1

A computer-implemented method for facilitating a distributed storage system, the method comprising:
generating a data segment from a data file associated with a write operation;
determining whether a user-defined storage path is specified for the data segment;
in response to determining that a user-defined storage path is not specified for the data segment, determining a storage key for the data segment, wherein the storage key corresponds to a storage path that indicates a target storage location of a replica of the data segment;
in response to determining that a user-defined storage path is specified for the data segment, obtaining the storage path from a local read cache, or in response to a cache miss, from a monitor server of the distributed storage system based on metadata of the data segment; and
generating a data packet comprising the data segment, wherein a destination for the data packet corresponds to a target disk specified by the storage path.

### Claim 2 (depends on 1)

The method of claim 1, wherein generating the data segment from the data file comprises one of:
merging the data file with a second data file;
splitting the data file and generating a second data segment from a part of the data file; and
incorporating the data file into the data segment in its entirety.

### Claim 3 (depends on 1)

The method of claim 1, wherein the data packet is a remote direct memory access (RDMA) packet that allows a write operation on the target disk without requiring processing from a central processing unit (CPU) at a storage server hosting the target disk.

### Claim 4 (depends on 1)

The method of claim 1, further comprising determining the storage key for the data segment by applying a hash function to the metadata of the data segment; and
wherein the storage key comprises one or more of:
a first key segment corresponding to a storage server hosting the target disk;
a second key segment corresponding to the target disk; and
a third key segment corresponding to a volume of the target disk.

### Claim 5 (depends on 1)

The method of claim 1, wherein, in response to determining that a user-defined storage path is specified for the data segment, the method further comprises:
storing a mapping between the user-defined storage path and the metadata in the monitor server of the distributed storage system, wherein the monitor server is configured to verify data consistency for the distributed storage system.

### Claim 6 (depends on 1)

The method of claim 1, wherein determining whether the user-defined storage path is specified for the data segment further comprises checking an indicator indicating whether the user-defined storage path is specified by a user for the data segment.

### Claim 7 (depends on 1)

The method of claim 1, wherein a plurality of replicas of the data segment are stored in a plurality of target disks, and wherein a respective target disk is specified by a corresponding storage path indicated by the storage key.

### Claim 8 (depends on 1)

The method of claim 1, wherein, in response to determining a read operation associated with the data file, the method further comprises:
generating the storage key for the data segment by applying a hash function to the metadata of the data segment; and
in response to determining that a user-defined storage path is not specified for the data segment, generating a command packet comprising an instruction for retrieving the data segment, wherein a destination of the data packet corresponds to the target disk specified by the storage path in the storage key.

### Claim 9 (depends on 1)

The method of claim 1, wherein determining whether a user-defined storage path is specified for the data segment comprises applying a bloom filter to determine whether the storage key has been generated.

### Claim 10 (depends on 1)

The method of claim 1,
wherein the monitor server maintains a mapping between the user-defined storage path and the metadata, and wherein the monitor server is configured to verify data consistency for the distributed storage system.

### Claim 11

A computer system for facilitating a distributed storage system, the system comprising:
a processor; and
a memory coupled to the processor and storing instructions, which when executed by the processor cause the processor to perform a method, the method comprising:
generating a data segment from a data file associated with a write operation;
determining whether a user-defined storage path is specified for the data segment;
in response to determining that a user-defined storage path is not specified for the data segment, determining a storage key for the data segment, wherein the storage key corresponds to a storage path that indicates a target storage location of a respective replica of the data segment;
in response to determining that a user-defined storage path is specified for the data segment, obtaining the storage path from a local read cache, or in response to a cache miss, from a monitor server of the distributed storage system based on metadata of the data segment; and
generating a data packet comprising the data segment, wherein a destination for the data packet corresponds to a target disk specified by the storage path.

### Claim 12 (depends on 11)

The computer system of claim 11, wherein generating the data segment from the data file comprises one of:
merging the data file with a second data file;
splitting the data file and generating a second data segment from part of the data file; and
incorporating the data file into the data segment in its entirety.

### Claim 13 (depends on 11)

The computer system of claim 11, wherein the data packet is a remote direct memory access (RDMA) packet that allows a write operation on the target disk without requiring processing from a central processing unit (CPU) at a storage server hosting the target disk.

### Claim 14 (depends on 11)

The computer system of claim 11, wherein the method further comprises determining the storage key for the data segment by applying a hash function to the metadata of the data segment; and
wherein the storage key comprises one or more of:
a first key segment corresponding to a storage server hosting the target disk;
a second key segment corresponding to the target disk; and
a third key segment corresponding to a volume of the target disk.

### Claim 15 (depends on 11)

The computer system of claim 11, wherein, in response to determining that a user-defined storage path is specified for the data segment, the method further comprises:
storing a mapping between the user-defined storage path and the metadata in the monitor server of the distributed storage system, wherein the monitor server is configured to verify data consistency for the distributed storage system.

### Claim 16 (depends on 11)

The computer system of claim 11, wherein determining whether the user-defined storage path is specified for the data segment comprises checking an indicator indicating whether the user-defined storage path is specified by a user for the data segment.

### Claim 17 (depends on 11)

The computer system of claim 11, wherein a plurality of replicas of the data segment are stored in a plurality of target disks, and wherein a respective target disk is specified by a corresponding storage path indicated by the storage key.

### Claim 18 (depends on 11)

The computer system of claim 11, wherein, in response to determining a read operation associated with the data file, the method further comprises:
generating the storage key for the data segment by applying a hash function to the metadata of the data segment; and
in response to determining that a user-defined storage path is not specified for the data segment, generating a command packet comprising an instruction for retrieving the data segment, wherein a destination of the data packet corresponds to the target disk specified by the storage path in the storage key.

### Claim 19 (depends on 11)

The computer system of claim 11, wherein determining whether a user-defined storage path is specified for the data segment comprises applying a bloom filter to determine whether the storage key has been generated.

### Claim 20 (depends on 11)

The computer system of claim 11,
wherein the monitor server maintains a mapping between the user-defined storage path and the metadata, and wherein the monitor server is configured to verify data consistency for the distributed storage system.
