IP Library › Granted Patent US 9,659,038
Granted Patent B2
US 9,659,038 · App. 13/909,029 · Granted May 23, 2017

Efficient snapshot read of a database in a distributed storage system

Inventors: Yasushi Saito (Mountain View, CA); Sanjay Ghemawat (Mountain View, CA); Sebastian Kanthak (San Jose, CA); Christopher Cunningham Frost (Sunnyvale, CA)
Assignee: GOOGLE INC.
G06F17/30289G06F17/30067G06F17/30575
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,659,038
App. No.
13/909,029
Granted
May 23, 2017
Kind
B2
Abstract

A computer system issues a batch read operation to a tablet in a first replication group in a distributed database and obtains a most recent version of data items in the tablet that have a timestamp no great than a snapshot timestamp T. For each data item in the one tablet, the computer system determines whether the data item has a move-in timestamp less than or equal to the snapshot timestamp T, which is less than a move-out timestamp, and whether the data item has a creation timestamp less than the snapshot timestamp T, which is less than or equal to a deletion timestamp. If the determination is true, the computer system determines whether the move-out timestamp has an actual associated value and, if so, the computer system determines a second tablet in a second replication group in the database that includes the data item and issues the snapshot read operation to the second table in the second replication group to obtain a most-recent version of the data item that has a timestamp no greater than the snapshot timestamp T; otherwise, the computer system issues the snapshot read to the one tablet to obtain a most recent version of the data item that has a timestamp no greater than the snapshot timestamp T.

Claims (60)

1. A method for performing a batch snapshot read operation in a distributed database having a plurality of storage clusters, the method comprising:

at a first storage cluster having a plurality of processors and memory storing programs configured for execution by the processors:

storing a plurality of data items in the distributed database, wherein each data item comprises a respective sequence of timestamped versions, and the data items are partitioned into a plurality of tablets, each tablet storing a respective plurality of the data items;

receiving a request from a remote computer system to read each of the data items in a first tablet, wherein the request specifies a snapshot timestamp T;

in response to the request, issuing a batch read operation for metadata corresponding to the data items in the first tablet, wherein respective metadata for each data item includes:

a respective creation timestamp T C and a respective deletion timestamp T D , which identify when the respective data item was created and deleted within the distributed database; and

a respective move-in timestamp T MI , and a respective move-out timestamp T MO , which identify a span of time when the respective data item was stored in the first tablet, wherein the respective timestamp T MO stores an infinite value indicator when the respective data item is still stored in the first tablet;

for each of the data items in the first tablet:

comparing the respective metadata of the respective data item to the snapshot timestamp T;

issuing a read operation to the first tablet for a most recent version of the respective data item having timestamp no greater than T when:

(i) the snapshot timestamp T falls within an interval defined by the move-in timestamp T MI , and move-out timestamp T MO ;

(ii) the snapshot timestamp T falls within an interval defined by the creation timestamp T C and deletion timestamp T D ; and

(iii) the move-out timestamp T MO is the infinite value indicator; and

issuing a read operation to a respective second tablet at a respective second storage cluster to obtain the most recent version of the respective data item having timestamp no greater than T when (i) the snapshot timestamp T falls within an interval defined by the creation timestamp T C and deletion timestamp T D and (ii) the move-out timestamp T MO is not the infinite value indicator; and

providing the read versions of the respective data items to the remote computer system.

2. The method of claim 1 , wherein the respective metadata for each data item further includes a compaction timestamp, the method further comprising issuing the read operation to the first tablet when the respective compaction timestamp is less than the respective move-out timestamp T MO .

3. The method of claim 1 , wherein the respective metadata for each data item further includes a compaction timestamp, the method further comprising issuing the read operation to the respective second tablet when the respective compaction timestamp is greater than or equal to the respective move-out timestamp T MO .

4. The method of claim 1 , further comprising issuing a read operation to a respective third tablet when portions of the respective data item are stored in each of the respective second and third tablets.

5. The method of claim 4 , wherein the respective data item is a directory.

6. The method of claim 1 , wherein a respective deletion timestamp T D stores the infinite value indicator when the respective data item has not been deleted from the distributed database.

7. A computer system at a first storage cluster for a distributed database having a plurality of storage clusters, comprising:

a plurality of hardware processors; and

one or more memory devices storing one or more programs configured for execution by the processors, the one or more programs including instructions for:

storing a plurality of data items in the distributed database, wherein each data item comprises a respective sequence of timestamped versions, and the data items are partitioned into a plurality of tablets, each tablet storing a respective plurality of the data items;

receiving a request from a remote computer system to read each of the data items in a first tablet, wherein the request specifies a snapshot timestamp T;

in response to the request, issuing a batch read operation for metadata corresponding to the data items in the first tablet, wherein respective metadata for each data item includes:

a respective creation timestamp T C and a respective deletion timestamp T D , which identify when the respective data item was created and deleted within the distributed database; and

a respective move-in timestamp T MI , and a respective move-out timestamp T MO , which identify a span of time when the respective data item was stored in the first tablet, wherein the respective timestamp T MO stores an infinite value indicator when the respective data item is still stored in the first tablet;

for each of the data items in the first tablet:

comparing the respective metadata of the respective data item to the snapshot timestamp T;

issuing a read operation to the first tablet for a most recent version of the respective data item having timestamp no greater than T when:

(i) the snapshot timestamp T falls within an interval defined by the move-in timestamp T MI , and move-out timestamp T MO ;

(ii) the snapshot timestamp T falls within an interval defined by the creation timestamp T C and deletion timestamp T D ; and

(iii) the move-out timestamp T MO is the infinite value indicator; and

issuing a read operation to a respective second tablet at a respective second storage cluster to obtain the most recent version of the respective data item having timestamp no greater than T when (i) the snapshot timestamp T falls within an interval defined by the creation timestamp T C and deletion timestamp T D and (ii) the move-out timestamp T MO is not the infinite value indicator; and

providing the read versions of the respective data items to the remote computer system.

8. The computer system of claim 7 , wherein the respective metadata for each data item further includes a compaction timestamp, the one or more programs further comprising instructions for issuing the read operation to the first tablet when the respective compaction timestamp is less than the respective move-out timestamp T MO .

9. The computer system of claim 7 , wherein the respective metadata for each data item further includes a compaction timestamp, the one or more programs further comprising instructions for issuing the read operation to the respective second tablet when the respective compaction timestamp is greater than or equal to the respective move-out timestamp T MO .

10. The computer system of claim 7 , wherein the programs further include instructions for issuing a read operation to a respective third tablet when portions of the respective data item are stored in each of the respective second and third tablets.

11. The computer system of claim 10 , wherein the respective data item is a directory.

12. The computer system of claim 7 , wherein a respective deletion timestamp T D stores the infinite value indicator when the respective data item has not been deleted from the distributed database.

13. A non-transitory computer readable medium storing one or more programs configured for execution by one or more processors of a computer system at a first storage cluster, the one or more programs including instructions for:

storing a plurality of data items in the distributed database, wherein each data item comprises a respective sequence of timestamped versions, and the data items are partitioned into a plurality of tablets, each tablet storing a respective plurality of the data items;

receiving a request from a remote computer system to read each of the data items in a first tablet, wherein the request specifies a snapshot timestamp T;

in response to the request, issuing a batch read operation for metadata corresponding to the data items in the first tablet, wherein respective metadata for each data item includes:

a respective creation timestamp T C and a respective deletion timestamp T D , which identify when the respective data item was created and deleted within the distributed database; and

a respective move-in timestamp T MI , and a respective move-out timestamp T MO , which identify a span of time when the respective data item was stored in the first tablet, wherein the respective timestamp T MO stores an infinite value indicator when the respective data item is still stored in the first tablet;

for each of the data items in the first tablet:

comparing the respective metadata of the respective data item to the snapshot timestamp T;

issuing a read operation to the first tablet for a most recent version of the respective data item having timestamp no greater than T when:

(i) the snapshot timestamp T falls within an interval defined by the move-in timestamp T MI , and move-out timestamp T MO ;

(ii) the snapshot timestamp T falls within an interval defined by the creation timestamp T C and deletion timestamp T D ; and

(iii) the move-out timestamp T MO is the infinite value indicator; and

issuing a read operation to a respective second tablet at a respective second storage cluster to obtain the most recent version of the respective data item having timestamp no greater than T when (i) the snapshot timestamp T falls within an interval defined by the creation timestamp T C and deletion timestamp T D and (ii) the move-out timestamp T MO is not the infinite value indicator; and

providing the read versions of the respective data items to the remote computer system.

14. The non-transitory computer readable medium of claim 13 , wherein the respective metadata for each data item further includes a compaction timestamp, the one or more programs further comprising instructions for issuing the read operation to the first tablet when the respective compaction timestamp is less than the respective move-out timestamp T MO .

15. The non-transitory computer readable medium of claim 13 , wherein the respective metadata for each data item further includes a compaction timestamp, the one or more programs further comprising instructions for issuing the read operation to the respective second tablet when the respective compaction timestamp is greater than or equal to the respective move-out timestamp T MO .

16. The non-transitory computer readable medium of claim 13 , wherein the programs further include instructions for issuing a read operation to a respective third tablet when portions of the respective data item are stored in each of the respective second and third tablets.

17. The non-transitory computer readable medium of claim 16 , wherein the respective data item is a directory.

18. The non-transitory computer readable storage medium of claim 7 , wherein a respective deletion timestamp T D stores the infinite value indicator when the respective data item has not been deleted from the distributed database.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044097/0658 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2015
From: SAITO, YASUSHI; GHEMAWAT, SANJAY; KANTHAK, SEBASTIAN; FROST, CHRISTOPHER CUNNINGHAM
To: GOOGLE INC.
Reel/Frame 036217/0797 →
Continuity (2)
Provisional Application 61655458 · Jun 4, 2012
Related Publication 20130339301A1 · Dec 19, 2013