Unified architecture for hybrid database storage using fragments

US9690799B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9690799-B2
Application numberUS-201615015042-A
CountryUS
Kind codeB2
Filing dateFeb 3, 2016
Priority dateMar 12, 2013
Publication dateJun 27, 2017
Grant dateJun 27, 2017

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.

Data records of a data set can be stored in multiple main part fragments retained in on-disk storage. Each fragment can include a number of data records that is equal to or less than a defined maximum fragment size. Using a compression that is optimized for each fragment, each fragment can be compressed. After reading at least one of the fragments into main system memory from the on-disk storage, an operation can be performed on the fragment or fragments while the in the main system memory.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer program product comprising a non-transitory machine-readable medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising: storing, in a plurality of fragments retained in on-disk storage, a plurality of data records that comprise a data set, each fragment of the plurality of fragments comprising a local row index, a mapping of the local row index to RowID values in a global RowID column for the data set, and a number of data records that is equal to or less than a defined maximum fragment size, the RowID values in the RowID column being unique, logical references to the data records of the data set, the local row index comprising physical locations of the data records in the fragment, the defined maximum fragment size being smaller than an available amount of main system memory to facilitate the loading of each fragment of the plurality of fragments into the main system memory; compressing each fragment of the plurality of fragments using a compression that is optimized for each fragment; reading at least one of the plurality of fragments into main system memory from the on-disk storage; and performing an operation on the at least one of the plurality of fragments while the at least one of the plurality of fragments is in the main system memory; executing a merge of the data set with a change to the data set, the merge comprising: creating a temporary, in-memory data structure containing data from a fragment of the plurality of fragments and a committed row from the change to the data set, and sorting the temporary, in-memory data structure to maximize compression of the plurality of data records; and storing data from the sorted, temporary, in-memory data structure to a revised fragment. 2. The computer program product as in claim 1 , wherein each of the plurality of part fragments comprises at least one row set arranged in a temporal order. 3. The computer program product as in claim 1 , wherein the merge further comprises: copying one or more uncommitted rows from the change of the data set to a delta part of a record. 4. The computer program product as in claim 3 , wherein the operations further comprise: storing cleanup pointers at a start of the merge, the cleanup pointers indicating start and stop locations for the temporary data structure. 5. A system comprising: at least one processor; and a machine-readable medium storing instructions that, when executed by the at least one programmable processor, cause the at least one programmable processor to perform operations comprising: storing, in a plurality of fragments retained in on-disk storage, a plurality of data records that comprise a data set, each fragment of the plurality of fragments comprising a local row index, a mapping of the local row index to RowID values in a global RowID column for the data set, and a number of data records that is equal to or less than a defined maximum fragment size, the RowID values in the RowID column being unique, logical references to the data records of the data set, the local row index comprising physical locations of the data records in the fragment, the defined maximum fragment size being smaller than an available amount of main system memory to facilitate the loading of each fragment of the plurality of fragments into the main system memory; compressing each fragment of the plurality of fragments using a compression that is optimized for each fragment; reading at least one of the plurality of fragments into main system memory from the on-disk storage; and performing an operation on the at least one of the plurality of fragments while the at least one of the plurality of fragments is in the main system memory; executing a merge of the data set with a change to the data set, the merge comprising: creating a temporary, in-memory data structure containing data from a fragment of the plurality of fragments and a committed row from the change to the data set, and sorting the temporary, in-memory data structure to maximize compression of the plurality of data records; and storing data from the sorted, temporary, in-memory data structure to a revised fragment. 6. The system as in claim 5 , wherein each of the plurality of part fragments comprises at least one row set arranged in a temporal order. 7. The system as in claim 5 , wherein the merge further comprises: copying one or more uncommitted rows from the change of the data set to a delta part of a record. 8. The system as in claim 7 , wherein the operations further comprise: storing cleanup pointers at a start of the merge, the cleanup pointers indicating start and stop locations for the temporary data structure. 9. A computer-implemented method comprising: storing, in a plurality of fragments retained in on-disk storage, a plurality of data records that comprise a data set, each fragment of the plurality of fragments comprising a local row index, a mapping of the local row index to RowID values in a global RowID column for the data set, and a number of data records that is equal to or less than a defined maximum fragment size, the RowID values in the RowID column being unique, logical references to the data records of the data set, the local row index comprising physical locations of the data records in the fragment, the defined maximum fragment size being smaller than an available amount of main system memory to facilitate the loading of each fragment of the plurality of fragments into the main system memory; compressing each fragment of the plurality of fragments using a compression that is optimized for each fragment; reading at least one of the plurality of fragments into main system memory from the on-disk storage; and performing an operation on the at least one of the plurality of fragments while the at least one of the plurality of fragments is in the main system memory; executing a merge of the data set with a change to the data set, the merge comprising: creating a temporary, in-memory data structure containing data from a fragment of the plurality of fragments and a committed row from the change to the data set, and sorting the temporary, in-memory data structure to maximize compression of the plurality of data records; and storing data from the sorted, temporary, in-memory data structure to a revised fragment. 10. The computer-implemented method as in claim 9 , wherein each of the plurality of part fragments comprises at least one row set arranged in a temporal order. 11. The computer-implemented method as in claim 9 , wherein the merge further comprises: copying one or more uncommitted rows from the change of the data set to a delta part of a record. 12. The computer-implemented method as in claim 11 , further comprising: storing cleanup pointers at a start of the merge, the cleanup pointers indicating start and stop locations for the temporary data structure. 13. The computer-implemented method as in claim 9 , wherein at least one of the storing, the compressing, the reading, the performing, and the executing are performed by a system comprising at least one programmable processor.

Assignees

Inventors

Classifications

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 US9690799B2 cover?
Data records of a data set can be stored in multiple main part fragments retained in on-disk storage. Each fragment can include a number of data records that is equal to or less than a defined maximum fragment size. Using a compression that is optimized for each fragment, each fragment can be compressed. After reading at least one of the fragments into main system memory from the on-disk storag…
Who is the assignee on this patent?
Sap Se
What technology area does this patent fall under?
Primary CPC classification G06F17/30153. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 27 2017 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).