STORING COMPRESSION UNITS IN RELATIONAL TABLES
First Claim
1. A method comprising:
- storing data from table rows in a table into a compression unit;
storing at least a portion of the compression unit in a data block row of a data block ina database;
wherein the portion of the compression unit comprises compressed data from a plurality of table rows from the table;
wherein the method is performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
A database server stores compressed units in data blocks of a database. A table (or data from a plurality of rows thereof) is first compressed into a “compression unit” using any of a wide variety of compression techniques. The compression unit is then stored in one or more data block rows across one or more data blocks. As a result, a single data block row may comprise compressed data for a plurality of table rows, as encoded within the compression unit. Storage of compression units in data blocks maintains compatibility with existing data block-based databases, thus allowing the use of compression units in preexisting databases without modification to the underlying format of the database. The compression units may, for example, co-exist with uncompressed tables. Various techniques allow a database server to optimize access to data in the compression unit, so that the compression is virtually transparent to the user.
-
Citations
25 Claims
-
1. A method comprising:
-
storing data from table rows in a table into a compression unit; storing at least a portion of the compression unit in a data block row of a data block in a database; wherein the portion of the compression unit comprises compressed data from a plurality of table rows from the table; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method comprising:
-
determining that execution of a database request requires access to at least one or more items in a table row; retrieving a data block to which the table row has been mapped; determining whether the table row is stored in one or more compression units; and if the table row is stored in one or more compression units, then; based at least partially on information in the data block, locating at least a portion of the compression unit in a data block row of the data block, decompressing the portion of the compression unit, thereby yielding a decompressed portion of the compression unit; wherein the decompressed portion of the compression unit comprises data from a plurality of table rows; locating the table row in the decompressed portion of the compression unit; reading the one or more items from the table row; and executing the database request based on the one or more items; wherein the method is performed by one or more computing devices. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. A method comprising:
-
receiving a request whose execution requires access to first data from a table in a database; determining that the database stores the first data in a compression unit; determining that the database stores the compression unit in a plurality of portions; decompressing a first set of one or more portions of the compression unit, thereby yielding one or more decompressed portions of the compression unit; locating the first data in the decompressed portion of the compression unit; executing the request based at least partially on one or more items from the first data; wherein the method is performed without decompressing a second set of one or more portions of the compression unit; wherein the method is performed by one or more computing devices. - View Dependent Claims (23, 24, 25)
-
Specification