IP Library Patent Application 11083922
Patent Application
App. No. 11/083,922

Predictable journal architecture

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
11/083,922
Abstract

Described are methods, systems, and apparatus, including computer program products for achieving a predictable journal architecture, as well as data store recovery therefrom. A predictable journal architecture includes a journal with header and data portions of journal entries, the header portions located at multiples of a predetermined offset. Journal entries are written to locations independent of the size of the data portions of that or other headers. During a recovery operation, a recovery module is able to search the journal at locations that are multiples of the predetermined offset to find entry headers. Journal entries for I/O operations that occur temporally before the current I/O need not be written to the journal for the current I/O to be journaled and, during recovery, retrieved.

Claims (35)

1 . A predictable journal architecture, the architecture comprising:

a journal comprising:

a first I/O operation data associated with a first size and a first location;

a first journal header disposed at a second location, the first journal header comprising information associated with the first size or first location; and

a second journal header disposed at a third location, the third location being dependent on the second location and independent of the first size or the first location.

2 . The architecture of claim 1 , wherein the third location is a multiple of an offset from the second location.

3 . The architecture of claim 2 , wherein the offset comprises a fixed journal entry size.

4 . The architecture of claim 2 , wherein the offset comprises a fixed block size.

5 . The architecture of claim 4 , wherein the fixed block size comprises a fourth size, the fourth size comprising a size of a pair of blocks.

6 . The architecture of claim 2 further comprising a recovery module.

7 . The architecture of claim 6 wherein the recovery module is configured to determine the location of a second I/O operation data based on the offset of the second location.

8 . The architecture of claim 7 wherein the recovery module is further configured to compare the first I/O operation data and the second I/O operation data located in the journal to a third I/O, comprising a third journal entry header and a third I/O operation data, located on a data store.

9 . The architecture of claim 8 wherein the recovery module is further configured to remove the third I/O from the data store.

10 . The architecture of claim 9 wherein the recovery module is configured to remove the third I/O because a copy of the third journal entry header is not located in the journal.

11 . The architecture of claim 9 wherein the recovery module is configured to remove the third I/O because a copy of the third I/O operation data is not located in the journal.

12 . A method for achieving a predictable journal architecture, the method comprising:

employing a first I/O having a first journal entry header and a first I/O operation data at a first location in a journal; and

employing a second I/O having a second journal entry header and a second I/O operation data in the journal, the second journal entry header located at a predetermined offset from the first location, independent of the length of the first I/O operation data.

13 . The method of claim 12 , wherein employing comprises reading.

14 . The method of claim 12 , wherein employing comprises writing.

15 . The method of claim 12 , wherein the predetermined offset is a multiple of a fixed journal entry size.

16 . A method for achieving a predictable journal architecture, the method comprising:

scheduling a first journal entry header to be written to a first location in a journal;

calculating a second location in the journal that is a multiple of a predetermined offset plus the beginning first location; and

writing a second journal entry header to the journal at the second location.

17 . The method of claim 16 wherein the first journal entry header is not written to the journal.

18 . The method of claim 16 wherein the second journal entry header is written to the journal before the first journal entry header is written to the journal.

19 . The method of claim 16 further comprising scheduling a first I/O operation data to be written to a third location, the third location adjacent to the first journal entry header and before the second location.

20 . The method of claim 19 further comprising scheduling a second I/O operation data to be written to a fourth location, the fourth location adjacent to the second journal entry header.

21 . A method for achieving a predictable journal architecture, the method comprising:

writing a first journal entry header to a journal using a first pair of blocks, the first pair of blocks having a first odd-numbered block and a first even-numbered block, the first journal entry header written to the first odd-numbered block, and

writing a first I/O operation data to the journal using a second pair of blocks, the second pair of blocks having a second odd-numbered block and a second even-numbered block, wherein a constant string is written to the second odd-numbered block and the first I/O operation data is written to the second even-numbered block.

22 . The method of claim 21 wherein the constant string comprises a string of 0s.

23 . The method of claim 21 the method further comprising:

distinguishing a second journal entry header from the first I/O operation data based on a determination that the second journal entry header is located in a block that does not comprise a string of 0s.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2009
From: INCIPIENT INC.
To: TEXAS MEMORY SYSTEMS, INC.
Reel/Frame 022939/0235 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2006
From: TESTARDI, RICHARD
To: INCIPIENT, INC.
Reel/Frame 017168/0857 →