Index compression
First Claim
1. A method performed by one or more processors for accessing an index list which stores pointers to records in a data store, wherein some of the pointers in the index list are compressed, the method comprising:
- reading a first entry in the index list, the first entry comprising a first pointer representing an address within a data store where a first record is located, the first pointer having a first size;
reading a second entry in the index list, the second entry comprising a header of a compressed portion of the index list, the compressed portion including a plurality of delta pointers that each represent an address within the data store where a corresponding record is located, each delta pointer having a size that is smaller than the first size, and wherein the header includes a size indicator that, when set to one of a plurality of values, defines the size of each delta pointer within the compressed portion;
determining the location of a third entry comprising a first delta pointer in the compressed portion of the index list by calculating an offset from a base address of the compressed portion based on the size of the delta pointers as defined by the size indicator; and
reading the third entry by accessing the index list at the determined location.
3 Assignments
0 Petitions
Accused Products
Abstract
Compressing and decompressing compressed index lists. One or more index lists include at least a portion of the list that is compressed. A method includes reading an entry from a list. The method further includes determining that the entry indicates the start of a compressed block of the list. The compressed block is compressed using a compression algorithm including a plurality of delta pointers. Each of the delta pointers point to data store entries by reference to a difference from a reference in a previous entry in the list. An entry size indicator is referenced. The entry size indicator is configured to indicate a memory storage size for a delta pointer, and the entry size indicator supports indications for all of fixed storage sizes, variable storage sizes, and run length encoding. The compressed block of the list is decompressed according to the entry size indicator.
-
Citations
17 Claims
-
1. A method performed by one or more processors for accessing an index list which stores pointers to records in a data store, wherein some of the pointers in the index list are compressed, the method comprising:
-
reading a first entry in the index list, the first entry comprising a first pointer representing an address within a data store where a first record is located, the first pointer having a first size; reading a second entry in the index list, the second entry comprising a header of a compressed portion of the index list, the compressed portion including a plurality of delta pointers that each represent an address within the data store where a corresponding record is located, each delta pointer having a size that is smaller than the first size, and wherein the header includes a size indicator that, when set to one of a plurality of values, defines the size of each delta pointer within the compressed portion; determining the location of a third entry comprising a first delta pointer in the compressed portion of the index list by calculating an offset from a base address of the compressed portion based on the size of the delta pointers as defined by the size indicator; and reading the third entry by accessing the index list at the determined location. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. One or more physical storage media storing computer executable instructions which when executed by one or more processors perform a method for accessing an index list which stores pointers to records in a data store, wherein some of the pointers in the index list are compressed, the method comprising:
-
reading a first entry in the index list, the first entry comprising a first pointer representing an address within a data store where a first record is located, the first pointer having a first size; reading a second entry in the index list, the second entry comprising a header of a compressed portion of the index list, the compressed portion including a plurality of delta pointers that each represent an address within the data store where a corresponding record is located, each delta pointer having a size that is smaller than the first size, and wherein the header includes a size indicator that, when set to one of a plurality of values, defines the size of each delta pointer within the compressed portion; determining the location of a third entry comprising a first delta pointer in the compressed portion of the index list by calculating an offset from a base address of the compressed portion based on the size of the delta pointers as defined by the size indicator; and reading the third entry by accessing the index list at the determined location. - View Dependent Claims (14)
-
-
15. One or more physical storage media which store a data structure, the data structure comprising one or more index lists, wherein at least one of the one or more index lists comprises:
-
one or more non-compressed pointers that each represent an address within a data store where a corresponding record is located, each non-compressed pointer having a first size; a compressed portion comprising; a header that includes a size indicator that, when set to one of a plurality of values, defines the size of each delta pointer within the compressed portion; and a plurality of delta pointers that each represent an address within the data store where a corresponding record is located, each delta pointer having a size that is smaller than the first size, wherein each delta pointer defines an offset from an address of a previous pointer in the compressed portion. - View Dependent Claims (16, 17)
-
Specification