Unified architecture for hybrid database storage using fragments
AssigneeSap SE
InventorsIvan Schreter, Dirk Thomsen, Colin Florendo, Blaine French
Life of this patent
Estimating the term…
Abstract
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.
Claims14
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 main part fragments retained in on-disk storage, a plurality of data records that comprise a data set, each fragment comprising a number of data records that is equal to or less than a defined maximum fragment size;
- 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 an existing delta part with the data set, the merge comprising:
- copying one or more uncommitted rows from the existing delta part to a new delta part;
- creating a temporary, in-memory data structure containing data from an existing main fragment and committed rows from the existing delta;
- re-sorting the temporary, in-memory data structure to allow achievement of maximal compression of the data records;
- and
- storing data from the re-sorted, temporary, in-memory data structure to a new main fragment;
- storing cleanup pointers at a start of the merge, the cleanup pointers indicating start and stop locations for the temporary data structure.
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 main part fragments retained in on-disk storage, a plurality of data records that comprise a data set, each fragment comprising a number of data records that is equal to or less than a defined maximum fragment size;
- 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 an existing delta part with the data set, the merge comprising:
- copying one or more uncommitted rows from the existing delta part to a new delta part;
- creating a temporary, in-memory data structure containing data from an existing main fragment and committed rows from the existing delta;
- re-sorting the temporary, in-memory data structure to allow achievement of maximal compression of the data records;
- and
- storing data from the re-sorted, temporary, in-memory data structure to a new main fragment
- storing cleanup pointers at a start of the merge, the cleanup pointers indicating start and stop locations for the temporary data structure.
A computer-implemented method comprising:
- storing, in a plurality of main part fragments retained in on-disk storage, a plurality of data records that comprise a data set, each fragment comprising a number of data records that is equal to or less than a defined maximum fragment size;
- 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 an existing delta part with the data set, the merge comprising:
- copying one or more uncommitted rows from the existing delta part to a new delta part;
- creating a temporary, in-memory data structure containing data from an existing main fragment and committed rows from the existing delta;
- re-sorting the temporary, in-memory data structure to allow achievement of maximal compression of the data records;
- and
- storing data from the re-sorted, temporary, in-memory data structure to a new main fragment;
- storing cleanup pointers at a start of the merge, the cleanup pointers indicating start and stop locations for the temporary data structure.
Dependencies are inferred from the claim text.