Database system with buffer manager providing per page native data compression and decompression
DCFirst Claim
1. In a computer system having a database storing a database table, said database table comprising user information, a method for storing and retrieving the database table comprising:
- creating a plurality of data pages for storing user information on a storage device, each data page comprising a plurality of storage blocks and including information describing a type of information stored by the page and a preferred compression methodology for compressing user information stored by the page;
loading into memory user information from a particular data page by retrieving said particular data page and decompressing user information stored by the particular data page into a memory buffer;
modifying said user information which has been decompressed; and
storing the modified user information back in the particular data page by;
(i) determining the preferred compression methodology for the user information, by checking the information stored by the particular page describing the preferred compression methodology,(ii) compressing the modified user information into a memory buffer, using said preferred compression methodology, and(iii) storing the compressed modified user information back into the particular data page;
wherein said database table presents user information in row and column format, and wherein user information for a particular column is stored on one or more particular data pages such that each of said particular data pages stores user information only for said particular column.
1 Assignment
Litigations
0 Petitions
Accused Products
Abstract
A Client/Server Database System with improved methods for performing database queries, particularly DSS-type queries, is described. The system includes one or more Clients (e.g., Terminals or PCs) connected via a Network to a Server. In general operation, Clients store data in and retrieve data from one or more database tables resident on the Server by submitting SQL commands, some of which specify "queries"--criteria for selecting particular records of a table. The system implements methods for storing data vertically (i.e., by column), instead of horizontally (i.e., by row) as is traditionally done. Each column comprises a plurality of "cells" (i.e., column value for a record), which are arranged on a data page in a contiguous fashion. By storing data in a column-wise basis, the system can process a DSS query by bringing in only those columns of data which are of interest. Instead of retrieving row-based data pages consisting of information which is largely not of interest to a query, column-based pages can be retrieved consisting of information which is mostly, if not completely, of interest to the query. The retrieval itself can be done using more-efficient large block I/O transfers. The system includes data compression which is provided at the level of Cache or Buffer Managers, thus providing on-the-fly data compression in a manner which is transparent to each object. Since vertical storage of data leads to high repetition on a given data page, the system provides improved compression/decompression.
-
Citations
13 Claims
-
1. In a computer system having a database storing a database table, said database table comprising user information, a method for storing and retrieving the database table comprising:
-
creating a plurality of data pages for storing user information on a storage device, each data page comprising a plurality of storage blocks and including information describing a type of information stored by the page and a preferred compression methodology for compressing user information stored by the page; loading into memory user information from a particular data page by retrieving said particular data page and decompressing user information stored by the particular data page into a memory buffer; modifying said user information which has been decompressed; and storing the modified user information back in the particular data page by; (i) determining the preferred compression methodology for the user information, by checking the information stored by the particular page describing the preferred compression methodology, (ii) compressing the modified user information into a memory buffer, using said preferred compression methodology, and (iii) storing the compressed modified user information back into the particular data page; wherein said database table presents user information in row and column format, and wherein user information for a particular column is stored on one or more particular data pages such that each of said particular data pages stores user information only for said particular column. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A database system comprising:
-
a computer having a processor and a memory buffer; a storage device for storing a database table comprising a plurality of data records; a cache manager, interposed between said memory buffer and said storage device, for loading data records from said storage device and storing data records back to said storage device, said data records being stored on data pages; compression means, operably integrated with said cache manager, for automatically compressing data records which the cache manager stores back to said storage device; and decompression means, operably integrated with said cache manager, for automatically decompressing data records which the cache manager retrieves from said storage device; wherein compression and decompression are performed as native services of said cache manager, in a manner which is transparent to clients requesting use of said data records, and wherein said data records comprises different types of user information arranged into different columns of the database table, wherein user information for a particular column is stored in at least one data page for the column, and wherein said cache manager selects a particular type of compression and decompression, on a page-by-page basis. - View Dependent Claims (13)
-
Specification