Disk optimized paging for column oriented databases
First Claim
1. In a computing environment, a database system using a plurality of sequentially ordered drives to store sequential portions of columns of the database, but where the database system is usable by a system configured for use with in-memory database systems, the system comprising:
- one or more processors;
a plurality of sequentially ordered drives for storing data;
main memory; and
one or more computer readable media, wherein the one or more computer readable media comprise computer executable instructions that are executable by at least one of the one or more processors to cause at least one of the one or more processors to perform the following;
load one or more columns of a database into main memory of a computing system as a table based database;
divide a column of the database into sequential portions;
write each of the sequential portions sequentially onto the sequentially ordered drives in a round robin fashion such that sequential portions of the column are stored on sequential drives, the sequential portions of the column being stored on sequential drives enabling parallelism during querying;
copy at least some of the sequential portions from the sequentially ordered drives into a ring buffer; and
upon determining that certain data copied into the ring buffer is hot data that has a predetermined frequency of reuse, transfer the hot data to another buffer.
2 Assignments
0 Petitions
Accused Products
Abstract
Implementing a database system using a plurality of sequentially ordered drives to store sequential portions of columns of the database, but where the database system is usable by a system configured for use with in-memory database systems. The method includes loading one or more columns of a database into main memory of a computing system as a table based database. The method further includes dividing a column of the database into sequential portions. Each of the sequential portions is of sufficient size to create efficient transfers using hard disk controllers to transfer an entire sequential portion. The method further includes writing each of the sequential portions sequentially onto sequentially ordered drives in a round robin fashion such that sequential portions of the column are on sequential drives.
49 Citations
16 Claims
-
1. In a computing environment, a database system using a plurality of sequentially ordered drives to store sequential portions of columns of the database, but where the database system is usable by a system configured for use with in-memory database systems, the system comprising:
-
one or more processors; a plurality of sequentially ordered drives for storing data; main memory; and one or more computer readable media, wherein the one or more computer readable media comprise computer executable instructions that are executable by at least one of the one or more processors to cause at least one of the one or more processors to perform the following; load one or more columns of a database into main memory of a computing system as a table based database; divide a column of the database into sequential portions; write each of the sequential portions sequentially onto the sequentially ordered drives in a round robin fashion such that sequential portions of the column are stored on sequential drives, the sequential portions of the column being stored on sequential drives enabling parallelism during querying; copy at least some of the sequential portions from the sequentially ordered drives into a ring buffer; and upon determining that certain data copied into the ring buffer is hot data that has a predetermined frequency of reuse, transfer the hot data to another buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computing system comprising:
-
one or more processors; a ring buffer, the ring buffer including a first pointer and a second pointer, wherein the first pointer marks a start of a free portion of the ring buffer and the second pointer marks an end of the free portion, the free portion comprising a portion of the ring buffer that is available to be overwritten by data being read to the ring buffer; and one or more computer readable media, wherein the one or more computer readable media comprise computer executable instructions that are executable by at least one of the one or more processors to cause at least one of the one or more processors to perform the following; subsequent to a data item in the ring buffer being used, wherein the data item is currently outside of the free portion during use, move the second ring buffer from a first side of the data item, to an opposing side of the data item, such that the data item is contained within the free portion subsequent to the use, thereby marking a memory location of the ring buffer containing the data item as free for use. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A computing system comprising:
-
one or more processors; a ring buffer, the ring buffer including a first pointer and a second pointer, wherein the first pointer marks a start of a free portion of the ring buffer and the second pointer marks an end of the free portion, the free portion comprising a portion of the ring buffer that is available to be overwritten by data being read to the ring buffer; and one or more computer readable media, wherein the one or more computer readable media comprise computer executable instructions that are executable by at least one of the one or more processors to cause at least one of the one or more processors to perform the following; subsequent to a data item in the ring buffer being used, wherein the data item is currently outside of the free portion during use, writing the data item to a front of the free portion, next to the first pointer. - View Dependent Claims (16)
-
Specification