Lightweight caching of transaction log for sequential access
First Claim
1. In a computing environment a method of searching cached log blocks, the method comprising:
- performing a first search on cached log blocks cached in memory, wherein the log blocks are organized into sequentially ordered log buffers in memory, wherein adjacent sequentially ordered log buffers are linked to each other by one or more links between the ordered log buffers, and wherein each log buffer includes a complete range of log blocks from a starting log block identifier (ID) to an ending log block ID;
satisfying the first search by finding a first log block in a first log buffer, wherein the first log block has a first log block ID that falls into a complete range of log block IDs in the first log buffer;
performing a second search on the cached log blocks for a second log block having a second log block ID, the second search beginning at the first log buffer;
as part of the second search determining the second log block is not in the first log buffer and following the one or more links at least one of forward or backward to one or more other log buffers; and
determining that the second log block is not found by following one or more links at least one of forward or backward to one or more other log buffers and as a result following covering pointer from a log buffer to another covering log buffer to search for the second log block in the covering log buffer pointed to by the covering pointer, the covering log buffer covering one or more of the ordered log buffers by including all of the log blocks from the one or more of the ordered log buffers.
2 Assignments
0 Petitions
Accused Products
Abstract
Searching cached log blocks. A method includes performing a first search on cached log blocks for a log block having a first log block ID. The log blocks are cached and organized into sequentially ordered log buffers in memory. Adjacent sequentially ordered log buffers are double linked to each other. Each log buffer includes a complete range of log blocks from a starting log block ID to an ending log block ID. As part of the first search one or more links are followed, forward and/or backward, to one or more other log buffers. The method may further include determining that the first log block is not found by following one or more links forward and/or backward to one or more other log buffers and as a result, follow one or more covering pointers to one or more log buffers to search for the first log block.
19 Citations
21 Claims
-
1. In a computing environment a method of searching cached log blocks, the method comprising:
-
performing a first search on cached log blocks cached in memory, wherein the log blocks are organized into sequentially ordered log buffers in memory, wherein adjacent sequentially ordered log buffers are linked to each other by one or more links between the ordered log buffers, and wherein each log buffer includes a complete range of log blocks from a starting log block identifier (ID) to an ending log block ID; satisfying the first search by finding a first log block in a first log buffer, wherein the first log block has a first log block ID that falls into a complete range of log block IDs in the first log buffer; performing a second search on the cached log blocks for a second log block having a second log block ID, the second search beginning at the first log buffer; as part of the second search determining the second log block is not in the first log buffer and following the one or more links at least one of forward or backward to one or more other log buffers; and determining that the second log block is not found by following one or more links at least one of forward or backward to one or more other log buffers and as a result following covering pointer from a log buffer to another covering log buffer to search for the second log block in the covering log buffer pointed to by the covering pointer, the covering log buffer covering one or more of the ordered log buffers by including all of the log blocks from the one or more of the ordered log buffers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 21)
-
-
10. One or more computer readable media comprising computer executable instructions that when executed by one or more processors cause one or more processors to perform the following:
-
performing a first search on cached log blocks for a log block having a first log block ID, wherein the log blocks are cached and organized into sequentially ordered log buffers in memory, wherein adjacent sequentially ordered log buffers are linked to each other by one or more links between the ordered log buffers, and wherein each log buffer includes a complete range of log blocks from a starting log block identifier (ID) to an ending log block ID; as part of the first search searching a first log buffer and then following the one or more links at least one of forward or backward to one or more other log buffers; and determining that the first log block is not found by following one or more links at least one of forward or backward to one or more other log buffers and as a result following a covering pointer from a log buffer to a covering log buffer to search for the first log block, the covering log buffer covering one or more of the ordered log buffers by including all of the log blocks from the one or more of the ordered log buffers. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computing system comprising:
-
one or more processors; one or more computer readable media coupled to the one or more processors, wherein the one or more computer readable media comprise computer executable instructions that when executed by one or more of the one or more processors, cause one or more processors implement functionality for performing a first search on cached log blocks for a log block having a first log block identifier (ID), wherein the log blocks are cached and organized into sequentially ordered log buffers in memory, wherein adjacent sequentially ordered log buffers are linked to each other in a linked list, and wherein each log buffer includes a complete range of log blocks from a starting log block ID to an ending log block ID, wherein the one or more computer readable media comprise; computer executable instructions that when executed by one or more processors cause one or more processors to determine if a last access point exists tracking a last accessed log buffer based on a previous search of cached log buffers, and if a last accessed pointer to a last accessed log buffer exists, starting a search at the last accessed log buffer; and
if a last accessed pointer to a last accessed log buffer does not exist, starting a search at a head or tail of the linked list;computer executable instructions that when executed by one or more processors cause one or more processors to perform searching functionality following one or more links forward or backward to one or more other log buffers searching for a log block with a log block ID and terminating a search and reporting a log block found if a log buffer is found where the log block ID is greater than or equal to a beginning log block ID for the log buffer and less than or equal to an ending log block ID for the log buffer; and computer executable instructions that when executed by one or more processors cause one or more processors to perform searching functionality following one or more covering pointers to one or more log buffers to search for a log block, wherein each pointer is a pointer from a log buffer to a covering log buffer, wherein the covering log buffer has a range of log block IDs that overlap the log buffer which the pointer is from.
-
Specification