ON-LINE TRANSACTION PROCESSING (OLTP) COMPRESSION AND RE-COMPRESSION OF DATABASE DATA
First Claim
1. A method implemented in a computer for compression of data in a database, the method comprising:
- determining whether at least one predetermined condition is satisfied;
in response to the determining that the at least one predetermined condition is satisfied;
decompressing first compressed data from a block comprising the first compressed data and first uncompressed data, to obtain second uncompressed data from the first compressed data, the block being comprised among multiple blocks in the database; and
compressing at least the first uncompressed data and the second uncompressed data together, to generate second compressed data; and
storing the block in a mass storage device.
0 Assignments
0 Petitions
Accused Products
Abstract
A computer is programmed to compress data of a database in response to database modification language (DML) statements generated by on-line transaction processing (OLTP) systems. In several embodiments, data that is initially added to a database block is left uncompressed until a predetermined condition is satisfied, which happens infrequently (relative to OLTP transactions on the block). When satisfied, the computer automatically compresses all uncompressed data in the block, which increases the amount of unused space in the block. New data is thereafter added uncompressed to the partially compressed block, until satisfaction of a predetermined condition whereby the partially compressed block is again compressed, i.e. re-compressed. Adding of new data to a partially compressed block and its compression are repeated unless another predetermined condition is met, in response to which the block is not further re-compressed, thereby to recognize a limit on the benefit from compression.
2 Citations
35 Claims
-
1. A method implemented in a computer for compression of data in a database, the method comprising:
-
determining whether at least one predetermined condition is satisfied; in response to the determining that the at least one predetermined condition is satisfied; decompressing first compressed data from a block comprising the first compressed data and first uncompressed data, to obtain second uncompressed data from the first compressed data, the block being comprised among multiple blocks in the database; and compressing at least the first uncompressed data and the second uncompressed data together, to generate second compressed data; and storing the block in a mass storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. One or more non-transitory computer readable storage media comprising instructions to at least one processor to process data in a database, the instructions comprising:
-
instructions to check whether at least one predetermined condition is satisfied; responsive to the at least one predetermined condition being determined to be satisfied by execution of the instructions to check; instructions to decompress first compressed data from a block comprising the first compressed data and first uncompressed data, to obtain second uncompressed data from the first compressed data, the block being comprised among multiple blocks in the database; and instructions to compress at least the first uncompressed data and the second uncompressed data together, to generate second compressed data; and instructions to store the block in a mass storage device. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A database management system, implemented at least partially by a processor to compress data in a database, the database management system comprising:
-
means for checking whether at least one predetermined condition is satisfied; responsive to said at least one predetermined condition being found to be satisfied by the means for checking; means for decompressing first compressed data from a block comprising the first compressed data and first uncompressed data, to obtain second uncompressed data from the first compressed data, the block being comprised among multiple blocks in the database; means for compressing at least the first uncompressed data and the second uncompressed data together, to generate second compressed data; and means for storing the block in a mass storage device. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35)
-
Specification