Partial merge
First Claim
1. An in-memory computing system comprising:
- a first level storage structure to store a first set of one or more data records in a logical row format;
a second level storage structure to encode and store a second set of one or more data records in a logical column format, the second level storage being operably coupled to the first level storage structure such that at least one of the first set of one or more data records propagates from the first level storage structure, pivots from the logical row format to the logical column format, and is stored in the second level storage structure; and
a main store partitioned into a passive part and an active part, the active part being empty at a start of a partial merging of the second set of one or more data records in the second level storage structure into the active part, the second set of one or more data records stored within the active part being encoded using a first dictionary, the passive part storing a third set of one or more data records that are not a part of the merging, the third set of one or more data records within the passive part being encoded using a second dictionary, the merging of the second set of one or more data records into the active part being the partial merge, wherein the second dictionary is searched for queried data upon receipt of a point query, the point query comprising the queried data, and wherein the first dictionary is not searched when the queried data is found in the second dictionary, a position of the queried data in the second dictionary being used as an encoding value for the second dictionary as well as the first dictionary, a parallel scan being executed in the active part and the passive part to find the queried data.
2 Assignments
0 Petitions
Accused Products
Abstract
A multi-level storage architecture and method of performing a partial merge are disclosed. A main store is partitioned into a passive main part and an active main part, the active main part being empty at a start of the partial merge, the passive main part storing encoded data records of the main store that are not subject to the partial merge. A values index corresponding to a sorted dictionary of the passive main part is set to a cardinality of n. The data records of a second level storage structure is merged into the active main part, the active main part having a dictionary that starts with a value of n+1, such that the merging into the active main part continues an encoding scheme according to the values index of the passive main part.
35 Citations
20 Claims
-
1. An in-memory computing system comprising:
-
a first level storage structure to store a first set of one or more data records in a logical row format; a second level storage structure to encode and store a second set of one or more data records in a logical column format, the second level storage being operably coupled to the first level storage structure such that at least one of the first set of one or more data records propagates from the first level storage structure, pivots from the logical row format to the logical column format, and is stored in the second level storage structure; and a main store partitioned into a passive part and an active part, the active part being empty at a start of a partial merging of the second set of one or more data records in the second level storage structure into the active part, the second set of one or more data records stored within the active part being encoded using a first dictionary, the passive part storing a third set of one or more data records that are not a part of the merging, the third set of one or more data records within the passive part being encoded using a second dictionary, the merging of the second set of one or more data records into the active part being the partial merge, wherein the second dictionary is searched for queried data upon receipt of a point query, the point query comprising the queried data, and wherein the first dictionary is not searched when the queried data is found in the second dictionary, a position of the queried data in the second dictionary being used as an encoding value for the second dictionary as well as the first dictionary, a parallel scan being executed in the active part and the passive part to find the queried data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method comprising:
-
partitioning, by one or more processors, a main store comprised within a multi-level storage architecture into a passive part and an active part, the multi-level storage architecture further comprising a first level storage structure storing a first set of one or more data records in a row format and a second level storage structure storing a second set of one or more data records in a columnar format, the second level storage being operably coupled to the first level storage structure such that at least one of the first set of one or more data records propagates from the first level storage structure, pivots from the logical row format to the logical column format, and is stored in the second level storage structure; encoding, by the one or more processors, the first set of one or more data records according to a first dictionary; encoding, by the one or more processors, the second set of one or more data records according to a second dictionary, the encoding by the second dictionary being non-overlapping with the encoding by the first dictionary; receiving, by the one or more processors, a point query, the point query comprising queried data; searching, by the one or more processors, the second dictionary for the queried data; and when the queried data is found in the second dictionary; abstaining, by the one or more processors, from searching the first dictionary, a position of the queried data in the second dictionary being used as an encoding value for the second dictionary as well as the first dictionary; and executing, by the one or more processors, a parallel scan in the active part and the passive part to find the queried data. - View Dependent Claims (14, 15, 16)
-
-
17. A non-transitory computer program product storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
-
partitioning a main store comprised within a multi-level storage architecture into a passive part and an active part, the multi-level storage architecture further comprising a first level storage structure storing a first set of one or more data records in a row format and a second level storage structure storing a second set of one or more data records in a columnar format, the second level storage being operably coupled to the first level storage structure such that at least one of the first set of one or more data records propagates from the first level storage structure, pivots from the logical row format to the logical column format, and is stored in the second level storage structure; encoding, the first set of one or more data records according to a first dictionary; and encoding the second set of one or more data records according to a second dictionary, the encoding by the second dictionary being non-overlapping with the encoding by the first dictionary; receiving a point query, the point query comprising queried data; searching the second dictionary for the queried data; and when the queried data is found in the second dictionary; abstaining from searching the first dictionary, a position of the queried data in the second dictionary being used as an encoding value for the second dictionary as well as the first dictionary; and executing a parallel scan in the active part and the passive part to find the queried data. - View Dependent Claims (18, 19, 20)
-
Specification