IP Library › Granted Patent US 10,496,630
Granted Patent B2
US 10,496,630 · App. 15/042,120 · Granted Dec 3, 2019

Read-write protocol for append-only distributed databases

Inventors: Jeffrey Darren Couckuyt (Bothell, WA); Joseph Schwartz (Redmond, WA); Sergey Y. Galuzo (Woodinville, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F16/2358G06F16/2308G06F16/2365G06F16/2379G06F16/2471
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,496,630
App. No.
15/042,120
Granted
Dec 3, 2019
Kind
B2
Abstract

Performing a distributed database transaction using parallel writes to a distributed append-only database system is provided. A central database and a plurality of distributed databases, also known as “shards”, may be used. A request made to implement a distributed transaction, requiring updates to one or more shards, results in a monotonically increasing identification (ID) number being assigned to a change set. The request and change set may be registered at the central database. Once the change set is completely written to all of the appropriate shards, the change set is marked as completed in the central database. After write completion, a change set ID boundary at the central database is advanced to indicate the current fully changed status of the distributed database.

Claims (49)

1. A method for updating data stored by a distributed database system, comprising:

receiving a distributed transaction at the distributed database system;

defining a visible change set ID boundary for the distributed database system, the visible change set ID boundary indicating a version of data stored by a plurality of shards of the distributed database system;

defining a change set ID for the distributed transaction, wherein the change set ID is incrementally larger than the visible change set ID boundary;

writing data from the distributed transaction to one or more of the plurality of shards in parallel, wherein the one or more shards are append-only; and

upon a determination that the data from the distributed transaction have been successfully written to each of the one or more shards, advancing the visible change set ID boundary to a new visible change set ID boundary that includes the change set ID for the distributed transaction such that a new version of data stored by the plurality of shards, including the data from the distributed transaction, is accessible.

2. The method of claim 1 , further comprising:

allowing a user to only read stored data defined as within the visible change set ID boundary.

3. The method of claim 1 , wherein the change set ID is based at least in part on a date and a time associated with writing the distributed transaction.

4. The method of claim 1 , wherein the change set ID is defined at a central database in the distributed database system.

5. The method of claim 1 , further comprising:

organizing all data within each of the one or more shards based on respective change set IDs associated with each stored distributed transaction.

6. The method of claim 1 , wherein the visible change set ID boundary is defined and maintained at a central database.

7. The method of claim 1 , wherein making the determination that the data have been successfully written to each of the one or more shards comprises receiving a success notice from each of the one or more shards.

8. The method of claim 1 , further comprising:

receiving a read request to the distributed database system before the determination that the data have been successfully written to each of the one or more shards; and

providing only stored data defined by the visible change set ID boundary.

9. A method for updating data stored by a distributed database system, comprising:

defining a visible change set ID boundary indicating a version of data stored by a plurality of shards in the distributed database system;

receiving a first distributed transaction and a second distributed transaction for inclusion in the distributed database system;

defining a separate change set ID for each of the first distributed transaction and the second distributed transaction;

writing data from the first distributed transaction and the second distributed transaction to one or more of the plurality of shards in the distributed database system at a parallel rate; and

upon a determination that the data from the first distributed transaction and the second distributed transaction have been successfully written to each of the one or more shards, advancing the visible change set ID boundary to a new visible change set ID boundary that includes the separate change set ID for each of the first distributed transaction and the second distributed transaction such that a new version of data stored by the plurality of shards, including the data from the first distributed transaction and the second distributed transaction, is accessible.

10. The method of claim 9 , wherein the first distributed transaction and the second distributed transaction comprise geographical data items for a mapping application serviced by the distributed database system.

11. The method of claim 9 , wherein the change set ID for the first distributed transaction is incrementally larger than the visible change set ID boundary.

12. The method of claim 11 , wherein the change set ID for the second distributed transaction is incrementally larger than the change set ID for the first distributed transaction.

13. The method of claim 9 , further comprising:

receiving notice that the second distributed transaction has completed writing prior to the first distributed transaction completely being written; and

using decision logic to determine how to advance the visible change set ID boundary while the first distributed transaction is still being written.

14. The method of claim 13 , wherein the decision logic comprises:

maintaining the visible change set ID boundary at a current value; and

providing notification that the data associated with the second distributed transaction is available.

15. The method of claim 13 , wherein the decision logic comprises:

maintaining the visible change set ID boundary at a current value; and

hiding the data associated with the second distributed transaction from requesting users.

16. The method of claim 13 , further comprising:

receiving notice that the first distributed transaction has completed writing; and

advancing the visible change set ID boundary to the new visible change set ID boundary that includes the change set ID for the second distributed transaction.

17. A distributed database system for handling updates to data stored by the distributed database system, comprising:

a plurality of append-only shards each storing data;

a central database storing a visible change set ID boundary, the visible change set ID boundary indicating a version of data stored by the plurality of append-only shards;

a processor configured to execute instructions, the instructions comprising:

receiving a distributed transaction at the distributed database system;

defining a change set ID for the distributed transaction;

writing data from the distributed transaction to one or more of the plurality of append-only shards in the distributed database system in parallel; and

upon a determination that the data have been successfully written to each of the one or more append-only shards, advancing the visible change set ID boundary to a new visible change set ID boundary that includes the change set ID for the distributed transaction such that a new version of data stored by the plurality of append-only shards, including the data from the distributed transaction, is accessible.

18. The distributed database system of claim 17 , wherein the one or more append-only shards are append-only databases.

19. The distributed database system of claim 17 , wherein the one or more append-only shards are located remotely from one another.

20. The distributed database system of claim 17 , wherein the central database tracks all change set IDs.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2016
From: COUCKUYT, JEFFREY DARREN; SCHWARTZ, JOSEPH; GALUZO, SERGEY Y.
To: MICROSOFT TECHNOLOGY LICENSING, LLC.
Reel/Frame 037720/0744 →
Continuity (2)
Provisional Application 62235902 · Oct 1, 2015
Related Publication 20170097953A1 · Apr 6, 2017
Cited By (1)
US 12,277,607