ACCESSING DATA IN A COLUMN STORE DATABASE BASED ON HARDWARE COMPATIBLE DATA STRUCTURES
First Claim
1. A method of accessing data in a column-store, relational database, wherein the column-store relational database comprises data in rows of at least one table and a set of column groups of one or more columns, wherein each column group has a fixed width, said method comprising:
- receiving a program of machine code database instructions created for a query on data;
determining virtual addresses for the data, wherein the virtual addresses are computed from a set of row identifiers, a base virtual address of a column group, and a column group width of the data;
calculating respective physical addresses in a memory based on the virtual addresses; and
accessing, at the physical addresses, the data requested in the query.
5 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide one or more hardware-friendly data structures that enable efficient hardware acceleration of database operations. In particular, the present invention employs a column-store format for the database. In the database, column-groups are stored with implicit row ids (RIDs) and a RID-to-primary key column having both column-store and row-store benefits via column hopping and a heap structure for adding new data. Fixed-width column compression allow for easy hardware database processing directly on the compressed data. A global database virtual address space is utilized that allows for arithmetic derivation of any physical address of the data regardless of its location. A word compression dictionary with token compare and sort index is also provided to allow for efficient hardware-based searching of text. A tuple reconstruction process is provided as well that allows hardware to reconstruct a row by stitching together data from multiple column groups.
-
Citations
29 Claims
-
1. A method of accessing data in a column-store, relational database, wherein the column-store relational database comprises data in rows of at least one table and a set of column groups of one or more columns, wherein each column group has a fixed width, said method comprising:
-
receiving a program of machine code database instructions created for a query on data; determining virtual addresses for the data, wherein the virtual addresses are computed from a set of row identifiers, a base virtual address of a column group, and a column group width of the data; calculating respective physical addresses in a memory based on the virtual addresses; and accessing, at the physical addresses, the data requested in the query. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of encoding data into a hardware-favorable form for a database, said method comprising:
-
profiling columns of the data; compressing the columns of the data into column groups having one or more columns based on the profile of the columns of data; determining a fixed width for each of the column groups; and writing the column groups with the selected fixed width into a column-store database. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
Specification