IP Library Granted Patent US 10,503,409
Granted Patent B2
US 10,503,409 · App. 15/717,667 · Granted Dec 10, 2019

Low-latency lightweight distributed storage system

Inventors: Shu Li (Bothell, WA); Ming Lin (San Jose, CA)
Assignee: Alibaba Group Holding Limited
G06F3/0611G06F3/067G06F3/0635G06F3/0643G06F3/0653G06F3/0665G06F3/0689G06F12/1018G06F15/17331
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,503,409
App. No.
15/717,667
Granted
Dec 10, 2019
Kind
B2
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 (54)

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.

2. 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.

3. 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.

4. 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.

5. 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.

6. 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.

7. 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.

8. 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.

9. 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.

10. 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.

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.

12. 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.

13. 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.

14. 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.

15. 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.

16. 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.

17. 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.

18. 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.

19. 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.

20. 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.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075499/0384 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2017
From: LI, SHU; LIN, MING
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 043719/0378 →
Continuity (1)
Related Publication 20190095106A1 · Mar 28, 2019