Generating and applying redo records
First Claim
1. A method comprising:
- receiving a plurality of updates that affect a multi-level index that comprises a plurality of index levels that includes at least a journal index and a main index;
applying the plurality of updates to the journal index without applying the plurality of updates to the main index;
in response to determining that one or more criteria are satisfied, removing the plurality of updates from the journal index and applying the plurality of updates to the main index;
processing a transaction that will result in one or more particular changes to data in one or more original data blocks that are part of a leaf level of the main index;
before committing the transaction, generating and storing one or more redo records;
wherein each redo record of the one or more redo records indicates (a) a first address of at least one data block of the one or more original data blocks, (b) at least one of the one or more particular changes, and (c) a second address of at least one data block of one or more target data blocks that reflect the at least one of the one or more particular changes;
wherein the method is performed by one or more computing devices.
0 Assignments
0 Petitions
Accused Products
Abstract
Techniques for maintaining a cascading index are provided. In one approach, one or more branch node compression techniques are applied to the main index of a cascading index. In an approach, a Bloom filter is generated and associated with, e.g., a branch node in the main index. The Bloom filter is used to determine whether, without accessing any leaf blocks, a particular key value exists, e.g., in leaf blocks associated with the branch node. In an approach, a new redo record is generated in response to a merge operation between two levels of the cascading index. The new redo record comprises (a) one or more addresses of blocks that are affected by the merge operation, (b) data is that being “pushed down” to a lower level of the cascading index, and (c) one or more addresses of blocks that are written to storage as a result of the merge operation.
222 Citations
24 Claims
-
1. A method comprising:
-
receiving a plurality of updates that affect a multi-level index that comprises a plurality of index levels that includes at least a journal index and a main index; applying the plurality of updates to the journal index without applying the plurality of updates to the main index; in response to determining that one or more criteria are satisfied, removing the plurality of updates from the journal index and applying the plurality of updates to the main index; processing a transaction that will result in one or more particular changes to data in one or more original data blocks that are part of a leaf level of the main index; before committing the transaction, generating and storing one or more redo records; wherein each redo record of the one or more redo records indicates (a) a first address of at least one data block of the one or more original data blocks, (b) at least one of the one or more particular changes, and (c) a second address of at least one data block of one or more target data blocks that reflect the at least one of the one or more particular changes; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. One or more non-transitory storage media carrying instructions which, when executed by one or more processors, cause:
-
receiving a plurality of updates that affect a multi-level index that comprises a plurality of index levels that includes at least a journal index and a main index; applying the plurality of updates to the main index; in response to determining that one or more criteria are satisfied, removing the plurality of updates from the journal index and applying the plurality of updates to the main index; processing a transaction that will result in one or more particular changes to data in one or more original data blocks that are part of a leaf level of the main index; before committing the transaction, generating and storing one or more redo records; wherein each redo record of the one or more redo records indicates (a) a first address of at least one data block of the one or more original data blocks, (b) at least one of the one or more particular changes, and (c) a second address of at least one data block of one or more target data blocks that reflect the at least one of the one or more particular changes. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A system comprising:
-
one or more processors; one or more non-transitory storage media carrying instructions which, when executed by one or more processors, cause; receiving a plurality of updates that affect a multi-level index that comprises a plurality of index levels that includes at least a journal index and a main index; applying the plurality of updates to the journal index without applying the plurality of updates to the main index; in response to determining that one or more criteria are satisfied, removing the plurality of updates from the journal index and applying the plurality of updates to the main index; processing a transaction that will result in one or more particular changes to data in one or more original data blocks that are part of a leaf level of the main index; before committing the transaction, generating and storing one or more redo records; wherein each redo record of the one or more redo records indicates (a) a first address of at least one data block of the one or more original data blocks, (b) at least one of the one or more particular changes, and (c) a second address of at least one data block of one or more target data blocks that reflect the at least one of the one or more particular changes. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification