IP Library Granted Patent US 10,949,411
Granted Patent B2
US 10,949,411 · App. 15/056,707 · Granted Mar 16, 2021

Time stamp bounded addition of data to an append-only distributed database table

Inventors: Ozgun Ali Erdogan (San Francisco, CA); Sumedh Suhas Pathak (Sunnyvale, CA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F16/2282G06F16/211G06F16/245G06F16/27G06F16/273G06F16/278G06F16/285G06F11/2094G06F11/2097G06F11/3409G06F11/3485
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,949,411
App. No.
15/056,707
Granted
Mar 16, 2021
Kind
B2
Abstract

A method implemented by a computer includes receiving a segment of data that has a time dimension, where the time dimension of the segment of data is bounded by a start time stamp and an end time stamp. The segment of data is added to an append-only database table of a distributed database. The addition operation imposes an inherent data order based upon the start time stamp and end time stamp without the manual definition off database table partition in the distributed database.

Claims (33)

1. A method implemented by a computer, comprising:

receiving database records, including a deterministic database command that will not generate different values on two different nodes in a distributed database and can be replicated across different nodes prior to execution because it will produce the same result on each of the different nodes, wherein each database record is immutable such that, after having been added to a database table, the each database record will not be changed, and wherein each received database record has an associated time stamp;

automatically extracting a time range from the received database records, the extracted time range being determined from the associated time stamps of the received database records;

grouping the database records into a segment of data that has a time dimension based upon the time range extracted from the received database records, wherein the time dimension of the segment of data is bounded by a start time stamp and an end time stamp and wherein each database record of the grouped database records has an associated time stamp that falls within the time dimension bounded by the start time stamp and the end time stamp;

directing the segment of data to at least two different nodes of the distributed database; and

adding, at each of the at least two different nodes of the distributed database, the segment of data to an append-only database table of the distributed database, wherein adding comprises automatically creating a database table partition based upon the start time stamp and end time stamp without the manual definition of a database table partition in the distributed database; and

using start time stamps and end time stamps of database table partitions to prune a set of database table partitions not relevant to a database query.

2. The method of claim 1 wherein the append-only database table has a schema that identifies the time dimension.

3. The method of claim 1 wherein the append-only database table is a fact table.

4. The method of claim 1 further comprising storing the start time stamp and the end time stamp of the segment of data.

5. The method of claim 4 further comprising:

receiving a database query for the append-only database table, wherein the database query has a time dimension; and

using stored start time stamps and end time stamps to prune a set of segments of data not relevant to the database query.

6. The method of claim 1 wherein the append-only database table is distributed across a plurality of nodes, wherein the nodes are connected to each other over a computer network.

7. The method of claim 6 wherein adding the segment of data is managed by a coordinator node.

8. The method of claim 6 wherein a plurality of segments of data are added in parallel from a plurality of nodes without interfering with one another.

9. The method of claim 6 wherein the plurality of segments of data are replicated across the plurality of nodes.

10. The method of claim 1 wherein adding the segment of data automatically creates a plurality of new database table partitions.

11. The method of claim 10 further comprising using a configuration value to determine the maximum size of new database table partitions.

12. The method of claim 10 further comprising storing the start time stamp and end time stamp for each new database table partition.

13. A method implemented by a computer, comprising:

receiving database records, including a deterministic database command that will not generate different database records on two different nodes in a distributed database, wherein each database record is immutable such that, after having been added to a database table, the each database record will not be changed, and wherein each received database record has an associated time stamp;

automatically extracting a time range from the received database records, the extracted time range being determined from the associated time stamps of the received database records;

grouping the database records into a segment of data that has a time dimension based upon the time range extracted from the received database records, wherein the time dimension of the segment of data is bounded by a start time stamp and an end time stamp and wherein each database record of the grouped database records has an associated time stamp that falls within the time dimension bounded by the start time stamp and the end time stamp;

directing the segment of data to at least two different nodes of the distributed database;

adding, at each of the at least two different nodes of the distributed database, the segment of data to an append-only database table of the distributed database, wherein adding comprises automatically creating a database table partition based upon the start time stamp and end time stamp without the manual definition of a database table partition in the distributed database, wherein adding the segment of data automatically creates a plurality of new database table partitions;

storing the start time stamp and end time stamp for each new database table partition;

receiving a database query for the database table, wherein the database query has a time dimension; and

using start time stamps and end time stamps of database table partitions to prune a set of database table partitions not relevant to the database query.

14. The method of claim 10 wherein the new database table partitions are distributed across a plurality of nodes connected to each other over a computer network.

15. The method of claim 14 wherein the plurality of new database table partitions are managed by a coordinator node.

16. The method of claim 14 wherein the plurality of new database table partitions are added in parallel to a plurality of nodes without interfering with one another.

17. The method of claim 14 wherein the plurality of new database table partitions are replicated across the plurality of nodes.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2020
From: CITUS DATA BILGI ISLEMLERI TICARET A.S.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 053091/0429 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 29, 2016
From: ERDOGAN, OZGUN ALI; PATHAK, SUMEDH SUHAS
To: CITUS DATA BILGI ISLEMLERI TICARET A.S.
Reel/Frame 037855/0067 →
Continuity (2)
Continuation 13345620 · Jan 6, 2012
Related Publication 20160179860A1 · Jun 23, 2016