QUERY AND EXADATA SUPPORT FOR HYBRID COLUMNAR COMPRESSED DATA
First Claim
1. A method comprising:
- a storage system storing rows of database tables in a plurality of data blocks in non-volatile storage, each data block of said plurality of data blocks storing one or more columns of one or more rows of a database table of said database tables, said database tables being managed by a DBMS configured to return data from said database tables in response to database queries issued to the DBMS by clients of the DBMS;
wherein said storage system is configured to;
return, in entirety, requested data blocks to said DBMS in response to a request made by the DBMS that identifies the requested data blocks; and
return, to said DBMS, rows that satisfy one or more column criteria in response to a request made the DBMS that identifies data blocks to filter according to the one or more column criteria;
said storage system receiving a particular request for particular data blocks filtered according to particular one or more column criteria, said particular request identifying said particular data blocks and said one or more column criteria;
in response to receiving said particular request for the particular data blocks;
scanning said particular data blocks for particular rows having column values that satisfy said particular one or more criteria;
storing in a return buffer the particular rows having column values that satisfy said particular one or more criteria; and
returning the particular rows stored in said return buffer to said DBMS.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus is provided for optimizing queries received by a database system that relies on an intelligent data storage server to manage storage for the database system. Storing compression units in hybrid columnar format, the storage manager evaluates simple predicates and only returns data blocks containing rows that satisfy those predicates. The returned data blocks are not necessarily stored persistently on disk. That is, the storage manager is not limited to returning disc block images. The hybrid columnar format enables optimizations that provide better performance when processing typical database workloads including both fetching rows by identifier and performing table scans.
-
Citations
20 Claims
-
1. A method comprising:
-
a storage system storing rows of database tables in a plurality of data blocks in non-volatile storage, each data block of said plurality of data blocks storing one or more columns of one or more rows of a database table of said database tables, said database tables being managed by a DBMS configured to return data from said database tables in response to database queries issued to the DBMS by clients of the DBMS; wherein said storage system is configured to; return, in entirety, requested data blocks to said DBMS in response to a request made by the DBMS that identifies the requested data blocks; and return, to said DBMS, rows that satisfy one or more column criteria in response to a request made the DBMS that identifies data blocks to filter according to the one or more column criteria; said storage system receiving a particular request for particular data blocks filtered according to particular one or more column criteria, said particular request identifying said particular data blocks and said one or more column criteria; in response to receiving said particular request for the particular data blocks; scanning said particular data blocks for particular rows having column values that satisfy said particular one or more criteria; storing in a return buffer the particular rows having column values that satisfy said particular one or more criteria; and returning the particular rows stored in said return buffer to said DBMS. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer-readable storage medium storing instructions which when executed by one or more processors cause performance of:
-
a storage system storing rows of database tables in a plurality of data blocks in non-volatile storage, each data block of said plurality of data blocks storing one or more columns of one or more rows of a database table of said database tables, said database tables being managed by a DBMS configured to return data from said database tables in response to database queries issued to the DBMS by clients of the DBMS; wherein said storage system is configured to; return, in entirety, requested data blocks to said DBMS in response to a request made by the DBMS that identifies the requested data blocks; and return, to said DBMS, rows that satisfy one or more column criteria in response to a request made the DBMS that identifies data blocks to filter according to the one or more column criteria; said storage system receiving a particular request for particular data blocks filtered according to particular one or more column criteria, said particular request identifying said particular data blocks and said one or more column criteria; in response to receiving said particular request for the particular data blocks; scanning said particular data blocks for particular rows having column values that satisfy said particular one or more criteria; storing in a return buffer the particular rows having column values that satisfy said particular one or more criteria; and returning the particular rows stored in said return buffer to said DBMS. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification