Low-latency database system

US11556535B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11556535-B2
Application numberUS-202117443219-A
CountryUS
Kind codeB2
Filing dateJul 22, 2021
Priority dateAug 19, 2020
Publication dateJan 17, 2023
Grant dateJan 17, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A database system comprised of a decoupled compute layer and storage layer is implemented to store, build, and maintain a canonical dataset, a temporary buffer, and an edits dataset. The canonical dataset is a set of batch updated data. The data is appended in chunks to the canonical dataset such that the canonical dataset becomes a historical dataset over time. The buffer is a write ahead log that contains the most recent chunks of data and provides atomicity and durability for the database system. The edits dataset is the set of data that contains edits such as cell mutations, row appends and/or row deletions. The database system enables users to make cell or row-level edits to tables and observe those edits in analytical systems or downstream builds with minimal latency.

First claim

Opening claim text (preview).

What is claimed is: 1. A system comprising: one or more non-transitory computer readable storage mediums having program instructions embodied therewith; and one or more processors configured to execute the program instructions to cause the system to: receive one or more edits to be made to a first dataset; temporarily store the one or more edits in a buffer; dump the buffer to a second dataset by: appending the one or more edits to the second dataset; and flushing the one or more edits from the buffer; and in response to receipt of a query of the first dataset: collapse the second dataset based on one or more resolution rules; join the collapsed second dataset to the first dataset; execute the query on the join between the collapsed second dataset and the first dataset; and return a result of the query executed on the join between the collapsed second dataset and the first dataset. 2. The system of claim 1 , wherein the one or more processors are configured to execute the program instructions to further cause the system to: receive one or more additional edits to be made to the first dataset; temporarily store the one or more additional edits in the buffer; and in response to receipt of a second query of the first dataset: join the buffer to the second dataset to form a joined second dataset; collapse the joined second dataset based on one or more resolution rules; join the collapsed joined second dataset to the first dataset; execute the query on the join between the collapsed joined second dataset and the first dataset; and return a result of the query executed on the join between the collapsed joined second dataset and the first dataset. 3. The system of claim 1 , wherein dumping the buffer to the second dataset is performed periodically. 4. The system of claim 1 , wherein dumping the buffer to the second dataset is performed when contents of the buffer reach a certain size. 5. The system of claim 1 , wherein the one or more edits to be made to the first dataset are provided by a user via a user interface. 6. The system of claim 1 , wherein the returning the result of the query executed on the join comprises: generating user interface data for a user interface configured to present the result of the executed query; and displaying the user interface to a user. 7. The system of claim 1 , wherein the one or more resolution rules specify that, for any data item, a most-recent edit for that data item is to be kept in the second dataset. 8. The system of claim 1 , wherein each edit stored in the buffer comprises a row key and a timestamp, wherein the timestamp is associated with a time the respective edit was written to the buffer. 9. The system of claim 1 , wherein the second dataset comprises all the edits dumped from the buffer. 10. The system of claim 1 , wherein the one or more processors are configured to execute the program instructions to further cause the system to: generate a collapsed form of the second dataset by determining a most-recent edit for each row based on a row key associated with each edit in the second dataset. 11. The system of claim 1 , wherein the one or more processors are configured to execute the program instructions to further cause the system to: rewrite the query to be applied to the join between the collapsed joined second dataset and the first dataset. 12. A computer-implemented method comprising: receiving one or more edits to be made to a first dataset; temporarily storing the one or more edits in a buffer; dumping the buffer to a second dataset by: appending the one or more edits to the second dataset; and flushing the one or more edits from the buffer; and in response to receipt of a query of the first dataset: collapsing the second dataset based on one or more resolution rules; joining the collapsed second dataset to the first dataset; executing the query on the join between the collapsed second dataset and the first dataset; and returning a result of the query executed on the join between the collapsed second dataset and the first dataset. 13. The computer-implemented method of claim 12 , further comprising: receiving one or more additional edits to be made to the first dataset; temporarily storing the one or more additional edits in the buffer; and in response to receipt of a second query of the first dataset: joining the buffer to the second dataset to form a joined second dataset; collapsing the joined second dataset based on one or more resolution rules; joining the collapsed joined second dataset to the first dataset; executing the query on the join between the collapsed joined second dataset and the first dataset; and returning a result of the query executed on the join between the collapsed joined second dataset and the first dataset. 14. The computer-implemented method of claim 12 , wherein dumping the buffer to the second dataset is performed periodically. 15. The computer-implemented method of claim 12 , wherein dumping the buffer to the second dataset is performed when contents of the buffer reach a certain size. 16. The computer-implemented method of claim 12 , wherein the one or more resolution rules specify that, for any data item, a most-recent edit for that data item is to be kept in the second dataset. 17. Non-transitory computer-readable media including computer-executable instructions that, when executed by a computing system, cause the computing system to perform operations comprising: receiving one or more edits to be made to a first dataset; temporarily storing the one or more edits in a buffer; dumping the buffer to a second dataset by: appending the one or more edits to the second dataset; and flushing the one or more edits from the buffer; and in response to receipt of a query of the first dataset: collapsing the second dataset based on one or more resolution rules; joining the collapsed second dataset to the first dataset; executing the query on the join between the collapsed second dataset and the first dataset; and returning a result of the query executed on the join between the collapsed second dataset and the first dataset. 18. The non-transitory computer-readable media of claim 17 , wherein dumping the buffer to the second dataset is performed periodically. 19. The non-transitory computer-readable media of claim 17 , wherein dumping the buffer to the second dataset is performed when contents of the buffer reach a certain size. 20. The non-transitory computer-readable media of claim 17 , wherein the one or more resolution rules specify that, for any data item, a most-recent edit for that data item is to be kept in the second dataset.

Assignees

Inventors

Classifications

  • Query rewriting; Transformation · CPC title

  • Updates performed during online database operations; commit processing · CPC title

  • Presentation of query results · CPC title

  • Append-only file systems, e.g. using logs or journals to store data · CPC title

  • of operators · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11556535B2 cover?
A database system comprised of a decoupled compute layer and storage layer is implemented to store, build, and maintain a canonical dataset, a temporary buffer, and an edits dataset. The canonical dataset is a set of batch updated data. The data is appended in chunks to the canonical dataset such that the canonical dataset becomes a historical dataset over time. The buffer is a write ahead log …
Who is the assignee on this patent?
Palantir Technologies Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/24534. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 17 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).