Columnar storage of a database index
First Claim
Patent Images
1. 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;
a delta store comprising one or more second rows of the columnar index stored in a row-wise fashion; and
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, wherein the absence flag array indicates a first set of rows of the column store that have been updated and a second set of rows that have been deleted, and wherein the column store associated with the database table is based on a plurality of segments including a first segment and a second segment, wherein each segment comprises a set of rows of a database index, and wherein a first column array based on the first segment is stored as a different size array than a second column array based on the second segment.
2 Assignments
0 Petitions
Accused Products
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.
-
Citations
20 Claims
-
1. 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; a delta store comprising one or more second rows of the columnar index stored in a row-wise fashion; and 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, wherein the absence flag array indicates a first set of rows of the column store that have been updated and a second set of rows that have been deleted, and wherein the column store associated with the database table is based on a plurality of segments including a first segment and a second segment, wherein each segment comprises a set of rows of a database index, and wherein a first column array based on the first segment is stored as a different size array than a second column array based on the second segment. - View Dependent Claims (2, 3, 4, 5)
-
6. 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, the database index associated with a relational database table; converting each segment into a plurality of column arrays, including a column array for each of the plurality of columns, wherein at least one segment of the plurality of segments is compressed and wherein after compression of the at least one segment, a first column array is stored as a different size array than a second column array; 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, wherein the absence flag array indicates a first set of rows of the column store that have been updated and a second set of rows that have been deleted. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A data storage device 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, the database index associated with a relational database table; 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 and wherein the column store is based on a plurality of segments, wherein each segment comprises a set of rows of the database index, and wherein a first column array based on a first segment is stored as a different size array than a second column array based on a second segment; 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, wherein the absence flag array indicates a first set of rows of the column store that have been updated and a second set of rows that have been deleted, and wherein associated with the database table is based on a plurality of segments, wherein each segment comprises a set of rows of the database index. - View Dependent Claims (19, 20)
-
Specification