IP Library Patent Application 17672277
Patent Application
App. No. 17/672,277

PERFORMING FILE SYSTEM OPERATIONS IN A DISTRIBUTED KEY-VALUE STORE

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 None
App. No.
17/672,277
Abstract

Techniques are disclosed for managing a high performance, fault-tolerant, strongly consistent, distributed key-value store system. The key-value store may store information, such as metadata for a distributed file system. Fault-tolerance means that the distributed key-value store continues to provide access to values in the key-value store in spite of a certain number of node failures. To provide this capability, the key-value store may store copies of (key, value) pair on N+1 nodes in order to provide fault tolerance for the failure of up to N nodes. In addition, metadata describing which nodes store a given value is stored on 2N+1 nodes and the distributed key-value store is sized such that there are 3N+1 nodes in a cluster. Doing so allows the key, value store to tolerate a failure of N nodes, while still maintaining a consistent and available key-value store.

Claims (38)

1 . (canceled)

2 . A system, comprising:

a processor, wherein the processor:

receives from a client a message to perform a write operation associated with a key-value pair, wherein the message at least includes a key, a version number associated with the key-value pair, and a sequence number associated with the write operation;

in response to receiving the message:

compares the version number associated with the key-value pair included in the message with a stored version number associated with the key-value pair, wherein the stored version number associated with the key-value pair is incremented each time a value is written to the key-value pair;

determines whether the version number associated with the key-value pair included in the message is equal to the stored version number associated with the key-value pair; and

performs the write operation and increments the stored version number associated with the key-value pair in response to a determination that the version number associated with the key-value pair included in the message is equal to the stored version number associated with the key-value pair; and

a memory coupled to the processor, wherein the memory provides the processor with instructions.

3 . The system of claim 2 , wherein in the event the sequence number associated with the write operation is not greater than or equal to a stored sequence number associated with the key, the processor reports an error to the client.

4 . The system of claim 2 , wherein in the event the sequence number associated with the write operation is greater than or equal to a stored sequence number associated with the key, the processor writes data to the key.

5 . The system of claim 4 , wherein the key is associated with at least the stored version number associated with the key-value pair, the stored sequence number associated with the key, and the data.

6 . The system of claim 5 , wherein the processor updates the sequence number associated with the key.

7 . The system of claim 6 , wherein the processor replicates the data to one or more other nodes of the system.

8 . The system of claim 7 , wherein the data is replicated using a consensus algorithm.

9 . The system of claim 2 , wherein the processor is associated with a first node of a plurality of nodes.

10 . The system of claim 9 , wherein the plurality of nodes is configured to store corresponding portions of a distributed key-value store.

11 . The system of claim 9 , wherein a value associated with the key is stored in at least two of the plurality of nodes.

12 . The system of claim 9 , wherein a hashing mechanism is used to determine which node of the plurality of nodes to which a key-value pair is written.

13 . A method, comprising:

receiving from a client a message to perform a write operation associated with a key-value pair, wherein the message at least includes a key, a version number associated with the key-value pair, and a sequence number associated with the write operation;

in response to receiving the message:

comparing the version number associated with the key-value pair included in the message with a stored version number associated with the key-value pair, wherein the stored version number associated with the key-value pair is incremented each time a value is written to the key-value pair;

determining whether the version number associated with the key-value pair included in the message is equal to the stored version number associated with the key-value pair; and

performing the write operation and incrementing the stored version number associated with the key-value pair in response to a determination that the version number associated with the key-value pair included in the message is equal to the stored version number associated with the key-value pair.

14 . The method of claim 13 , further comprising reporting an error to the client in response to determining that the sequence number associated with the write operation is not greater than or equal to a stored sequence number associated with the key.

15 . The method of claim 13 , further comprising writing data to the key in response to a determination that the sequence number associated with the write operation is greater than or equal to a stored sequence number associated with the key.

16 . The method of claim 14 , wherein the key is associated with at least the stored version number associated with the key-value pair, the stored sequence number associated with the key, and the data.

17 . The method of claim 15 , further comprising updating updates the sequence number associated with the key.

18 . The method of claim 17 , further comprising system replicating the data to one or more other nodes of the system.

19 . The method of claim 18 , wherein the data is replicated using a consensus algorithm.

20 . A computer program product, the computer program product being embodied in a non-transitory computer readable medium and comprising computer instructions for:

receiving from a client a message to perform a write operation associated with a key-value pair, wherein the message at least includes a key, a version number associated with the key-value pair, and a sequence number associated with the write operation;

in response to receiving the message:

comparing the version number associated with the key-value pair included in the message with a stored version number associated with the key-value pair, wherein the stored version number associated with the key-value pair is incremented each time a value is written to the key-value pair;

determining whether the version number associated with the key-value pair included in the message is equal to the stored version number associated with the key-value pair; and

performing the write operation and incrementing the stored version number associated with the key-value pair in response to a determination that the version number associated with the key-value pair included in the message is equal to the stored version number associated with the key-value pair.

21 . The computer program product of claim 19 , further comprising instructions for reporting an error to the client in response to determining that the sequence number associated with the write operation is not greater than or equal to a stored sequence number associated with the key.

Assignments (4)
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 10, 2024
From: FIRST-CITIZENS BANK & TRUST COMPANY (AS SUCCESSOR TO SILICON VALLEY BANK)
To: COHESITY, INC.
Reel/Frame 069584/0498 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
SECURITY INTEREST Recorded Sep 23, 2022
From: COHESITY, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 061509/0818 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2022
From: REDDY, VINAY; ARON, MOHIT; GUPTA, VIPIN; THOMAS, MARKOSE
To: COHESITY, INC.
Reel/Frame 059863/0912 →