IP Library Granted Patent US 9,665,580
Granted Patent B1
US 9,665,580 · App. 13/938,011 · Granted May 30, 2017

Synchronization of data

Inventors: Raj A. Sudarsanam (Fremont, CA); Pratap V. Singh (Mountain View, CA); Edward K. Lee (Walnut Creek, CA); Mark G. Gritter (Eagan, MN)
Assignee: Tintri Inc.
G06F17/30088
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 9,665,580
App. No.
13/938,011
Granted
May 30, 2017
Kind
B1
Abstract

Synchronizing data is disclosed, including: generating a snapshot index associated with a first set of data; generating a set of difference data between a snapshot index associated with a second set of data and the snapshot index associated with the first set of data; and applying the set of difference data to a set of metadata associated with the first set of data, wherein the set of metadata reflects a current state of the first set of data.

Claims (31)

1. A storage system, comprising:

a processor configured to:

generate a target snapshot index associated with a first set of data, wherein the target snapshot index is generated based at least in part on a first active index associated with the first set of data, wherein the first active index stores one or more data values that are written to the first set of data since a creation of a previous snapshot index associated with the first set of data;

generate a set of difference data between a selected source snapshot index associated with a second set of data and the target snapshot index associated with the first set of data; and

apply the set of difference data to a second active index associated with the first set of data that reflects a current state of the first set of data to generate a synchronized active index associated with the first set of data, wherein the synchronized active index associated with the first set of data reflects a state of the second set of data associated with the selected source snapshot index; and

a memory coupled to the processor and configured to store the target snapshot index.

2. The storage system of claim 1 , wherein the processor is configured to receive a request to synchronize the first set of data to the selected source snapshot index associated with the second set of data.

3. The storage system of claim 1 , wherein the first active index comprises a current snapshot index associated with the first set of data.

4. The storage system of claim 1 , wherein the selected source snapshot index associated with the second set of data is older than the target snapshot index associated with the first set of data and the first set of data and the second set of data comprise the same set of data.

5. The storage system of claim 1 , wherein the second active index associated with the first set of data that reflects the current state of the first set of data comprises a live index associated with the first set of data.

6. The storage system of claim 1 , wherein the processor is further configured to associate the target snapshot index associated with the first set of data with another previously generated snapshot index associated with the first set of data.

7. The storage system of claim 1 , wherein the set of difference data comprises a difference snapshot index.

8. The storage system of claim 1 , wherein the first set of data is associated with a virtual machine.

9. The storage system of claim 1 , wherein the second set of data is associated with a virtual machine.

10. The storage system of claim 1 , wherein an existing snapshot index associated with the first set of data is not deleted or modified by synchronization.

11. A method, comprising:

generating, by a processor, a target snapshot index associated with a first set of data, wherein the target snapshot index is generated based at least in part on a first active index associated with the first set of data, wherein the first active index stores one or more data values that are written to the first set of data since a creation of a previous snapshot index associated with the first set of data;

generating a set of difference data between a selected source snapshot index associated with a second set of data and the target snapshot index associated with the first set of data; and

applying the set of difference data to a second active index associated with the first set of data that reflects a current state of the first set of data to generate a synchronized active index associated with the first set of data, wherein the synchronized active index associated with the first set of data reflects a state of the second set of data associated with the selected source snapshot index.

12. The method of claim 11 , wherein the first active index comprises a current snapshot index associated with the first set of data.

13. The method of claim 11 , wherein the selected source snapshot index associated with the second set of data is older than the target snapshot index associated with the first set of data and the first set of data and the second set of data comprise the same set of data.

14. The method of claim 11 , wherein the second active index associated with the first set of data that reflects the current state of the first set of data comprises a live index associated with the first set of data.

15. The method of claim 11 , further comprising associating the target snapshot index associated with the first set of data with another previously generated snapshot index associated with the first set of data.

16. The method of claim 11 , wherein the set of difference data comprises a difference snapshot index.

17. The method of claim 11 , wherein the first set of data is associated with a virtual machine.

18. The method of claim 11 , wherein the second set of data is associated with a virtual machine.

19. The method of claim 11 , wherein an existing snapshot index associated with the first set of data is not deleted or modified by synchronization.

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

generating a target snapshot index associated with a first set of data, wherein the target snapshot index is generated based at least in part on a first active index associated with the first set of data, wherein the first active index stores one or more data values that are written to the first set of data since a creation of a previous snapshot index associated with the first set of data;

generating a set of difference data between a selected source snapshot index associated with a second set of data and the target snapshot index associated with the first set of data; and

applying the set of difference data to a second active index associated with the first set of data that reflects a current state of the first set of data to generate a synchronized active index associated with the first set of data, wherein the synchronized active index associated with the first set of data reflects a state of the second set of data associated with the selected source snapshot index.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2019
From: TINTRI INC.
To: TI ACQUISITION CORP.
Reel/Frame 048201/0666 →
CHANGE OF NAME Recorded Jan 31, 2019
From: TI ACQUISITION CORP.
To: TINTRI BY DDN, INC.
Reel/Frame 048211/0685 →
SECURITY INTEREST Recorded Oct 13, 2018
From: TI ACQUISITION CORP.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 047229/0463 →
SECURITY INTEREST Recorded Mar 5, 2015
From: TINTRI, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 035097/0801 →
SECURITY INTEREST Recorded Dec 29, 2014
From: TINTRI, INC.
To: SILICON VALLEY BANK
Reel/Frame 034590/0653 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2013
From: SUDARSANAM, RAJ ASHOK; SINGH, PRATAP V.; LEE, EDWARD K.; GRITTER, MARK G.
To: TINTRI INC.
Reel/Frame 031302/0338 →
Continuity (1)
Provisional Application 61672165 · Jul 16, 2012