IP Library Granted Patent US 11,561,716
Granted Patent B2
US 11,561,716 · App. 17/111,076 · Granted Jan 24, 2023

Fast migration of metadata

Inventors: Sachin Jain (Fremont, CA); Venkatesh Pallipadi (Campbell, CA); Sharath Kumar Naeni (Santa Clara, CA)
Assignee: Cohesity, Inc.
G06F3/0647G06F3/0604G06F11/14G06F16/1734G06F16/214G06F16/2358G06F3/067
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 11,561,716
App. No.
17/111,076
Granted
Jan 24, 2023
Kind
B2
Abstract

One or more buckets of key-value pairs of a first node of a distributed storage system are selected to be migrated to a second node of the distributed storage system. One or more underlying database files corresponding to the one or more selected buckets are identified. The one or more identified underlying database files are directly copied from a storage of a first node to a storage of the second node. The copied underlying database files are linked in a database of the second node to implement the one or more selected buckets in the second node.

Claims (44)

1. A system, comprising:

a first storage node configured to:

determine one or more underlying database files that correspond to one or more selected buckets of key-value pairs;

directly copy to a second storage node the one or more underlying database files that correspond to one or more selected buckets of key-value pairs, wherein updates to the one or more underlying database files are suspended while the one or more underlying database files are being sent to the second storage node; and

the second storage node configured to:

receive the one or more underlying database files; and

update a local key-value store based on the one or more received underlying database files.

2. The system of claim 1 , wherein the first storage node is configured to:

log the updates to the one or more underlying database files after the updates to the one or more database files are suspended while the one or more underlying database files are being sent to the second storage node; and

send the logged updates to the second storage node.

3. The system of claim 2 , wherein the second storage node is configured to apply the logged updates to the one or more received underlying database files.

4. The system of claim 2 , wherein the first storage node is configured to inspect a log after the one or more underlying database files are copied to the second storage node.

5. The system of claim 4 , wherein the first storage node is configured to determine whether a number of entries included in the log is less than a threshold number of updates.

6. The system of claim 5 , wherein in the event the number of entries included in the log is less than the threshold number of updates, the first storage node is configured to:

suspend updates to the one or more selected buckets of key-value pairs; and

send the log to the second storage node.

7. The system of claim 5 , wherein in the event the number of entries included in the log is not less than the threshold number of updates, the first storage node is configured to determine whether a retry threshold has been exceeded.

8. The system of claim 7 , wherein in the event the retry threshold has not been exceeded, the first storage node is configured to:

generate a new log; and

send the log to the second storage node.

9. The system of claim 7 , wherein in the event the retry threshold has been exceeded, the first storage node is configured to:

suspend updates to the one or more selected buckets of key-value pairs; and

send the log to the second storage node.

10. The system of claim 1 , wherein the first storage node is configured to suspend the updates to the one or more database files.

11. The system of claim 1 , wherein the one or more selected buckets of key-value pairs correspond to one or more buckets of key-value pairs that are accessed at a frequency greater than a threshold.

12. The system of claim 1 , wherein the second storage node is a new storage node associated within the system.

13. The system of claim 1 , wherein the local key-value store is a log structured merge database.

14. The system of claim 1 , wherein the first storage node is configured to update a master table that indicates which storage node of a plurality of storage nodes is to handle a file operation for a particular key-value pair.

15. The system of claim 14 , wherein entries included in the master table that correspond to the key-value pairs included in the one or more selected buckets are updated to reference the second storage node in place of the first storage node.

16. A method, comprising:

determining, by a first storage node, one or more underlying database files that correspond to one or more selected buckets of key-value pairs; and

directly copying, from the first storage node to a second storage node, the one or more underlying database files that correspond to one or more selected buckets of key-value pairs,

wherein updates to the one or more underlying database files are suspended while the one or more underlying database files are being sent to the second storage node,

wherein the second storage node receives the one or more underlying database files and updates a local key-value store based on the one or more received underlying database files.

17. The method of claim 16 , wherein the one or more selected buckets of key-value pairs correspond to one or more buckets of key-value pairs that are accessed at a frequency greater than a threshold.

18. The method of claim 16 , further comprising:

logging the updates to the one or more underlying database files after the updates to the one or more database files are suspended while the one or more underlying database files are being sent to the second storage node; and

sending the logged updates to the second storage node.

19. The method of claim 18 , wherein the second storage node applies the logged updates to the one or more received underlying database files.

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

determining, by a first storage node, one or more underlying database files that correspond to one or more selected buckets of key-value pairs; and

directly copying, from the first storage node to a second storage node, the one or more underlying database files that correspond to one or more selected buckets of key-value pairs,

wherein updates to the one or more underlying database files are suspended while the one or more underlying database files are being sent to the second storage node,

wherein the second storage node receives the one or more underlying database files and updates a local key-value store based on the one or more received underlying database files.

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 Mar 9, 2021
From: JAIN, SACHIN; PALLIPADI, VENKATESH; NAENI, SHARATH
To: COHESITY, INC.
Reel/Frame 055539/0430 →
Continuity (3)
Continuation 16270257 · Feb 7, 2019
Continuation 16101091 · Aug 10, 2018
Related Publication 20210181968A1 · Jun 17, 2021