Columnar storage of a database index
AssigneeMicrosoft Technology Licensing, LLC
InventorsArtem A. Oks, Per-Ake Larson, Srikumar Rangarajan, Michael James Zwilling, Jose A. Blakeley, Hanumantha R. Kodavalla
Life of this patent
Estimating the term…
Abstract
Methods, systems, and computer-readable media of columnar storage of a database index are disclosed. A particular columnar index includes a column store that stores rows of the columnar index in a column-wise fashion and a delta store that stores rows of the columnar index in a row-wise fashion. The column store also includes an absence flag array. The absence flag array includes entries that indicate whether certain rows have been logically deleted from the column store.
Claims19
A computer system, comprising:
- a memory storing a columnar index associated with a relational database table, the columnar index comprising:
- a column store comprising one or more first rows of the columnar index stored in a column-wise fashion;
- and
- a delta store comprising one or more second rows of the columnar index stored in a row-wise fashion;
- wherein the column store further comprises an absence flag array that includes an entry for each row of the first rows that indicates whether the row has been logically deleted from the column store.
A method, comprising:
- dividing a database index comprising a plurality of rows and a plurality of columns into a plurality of segments, wherein each segment comprises a set of rows of the database index;
- converting each segment into a plurality of column arrays, including a column array for each of the plurality of columns;
- storing the plurality of column arrays in a column store;
- and
- storing an absence flag array as a column of the column store, wherein each entry of the absence flag array indicates whether a particular row of the database index has been logically deleted from the column store.
A computer readable medium comprising instructions, that when executed by a computer, cause the computer to:
- divide each column of a database index comprising a plurality of rows and a plurality of columns into one or more column arrays;
- store the one or more column arrays in a column store, wherein the one or more column arrays are stored in a column-wise fashion;
- store an absence flag array in the column store, wherein each entry of the absence flag array indicates whether a particular row of the database index is absent from the column store;
- and
- store data in a delta store comprising rows of the database index stored in a row-wise fashion,
- wherein each row of the database index is stored in only one of the column store and the delta store.
Dependencies are inferred from the claim text.