Unified architecture for hybrid database storage using fragments
First Claim
Patent Images
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 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.
2 Assignments
0 Petitions
Accused Products
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.
10 Citations
14 Claims
-
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 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. - View Dependent Claims (2, 3, 4, 5)
-
-
6. 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. - View Dependent Claims (7, 8, 9)
-
-
10. 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. - View Dependent Claims (11, 12, 13, 14)
-
Specification