IP Library › Granted Patent US 8,108,364
Granted Patent B2
US 8,108,364 · App. 12/187,301 · Granted Jan 31, 2012

Representation of system clock changes in time based file systems

Assignee: International Business Machines Corporation
View Patent ↗
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 8,108,364
App. No.
12/187,301
Granted
Jan 31, 2012
Kind
B2
Abstract

A plurality of data units with associated timestamps is stored in a time based file system, wherein a timestamp corresponds to a time indicated by a system clock. A time indicated by the system clock is changed while the plurality of data units is being stored. A plurality of epochs is stored in a data structure, wherein an epoch is a period of time between a starting and an ending timestamp selected from the timestamps, and wherein successive epochs have overlapping time periods. The time based file system is reverted to an earlier point in time based on the plurality of epochs stored in the data structure.

Claims (59)

1. A method comprising,

writing a first data unit with an associated first timestamp and a first epoch, wherein the first timestamp corresponds to time indicated by a system clock;

subsequent to the writing of the first data unit, modifying the system clock by changing the time indicated by the system clock;

subsequent to the modifying of the system clock, writing a second data unit with an associated second timestamp corresponding to the time indicated by the modified system clock, wherein no data units are written between the writing of the first data unit and the writing of the second data unit;

in response to the writing of the second data unit, determining whether the first timestamp is behind the second timestamp in time;

in response to determining that the first timestamp is behind the second timestamp in time, associating the second data unit with a second epoch; and

in response to determining that the first timestamp is not behind the second timestamp in time, associating the second data unit with the first epoch.

2. The method of claim 1 , wherein the first epoch and the second epoch have overlapping time periods, wherein each of the first epoch and the second epoch has an associated starting timestamp and an ending timestamp.

3. The method of claim 2 , further comprising:

indicating the starting timestamp of the second epoch to be the second timestamp.

4. The method of claim 3 , further comprising:

indicating the ending timestamp of the second epoch to be null, wherein the ending timestamp of the second epoch is filled in response to a new epoch being started; and

indicating the ending timestamp of the first epoch to be the first timestamp.

5. The method of claim 1 , wherein an epoch number of the second epoch is one more than the epoch number of the first epoch.

6. A system, comprising:

circuitry;

a memory coupled to the circuitry; and

a processor coupled to the memory and the circuitry, wherein the processor performs operations, the operations comprising:

writing a first data unit with an associated first timestamp and a first epoch, wherein the first timestamp corresponds to time indicated by a system clock;

subsequent to the writing of the first data unit, modifying the system clock by changing the time indicated by the system clock;

subsequent to the modifying of the system clock, writing a second data unit with an associated second timestamp corresponding to the time indicated by the modified system clock, wherein no data units are written between the writing of the first data unit and the writing of the second data unit;

in response to the writing of the second data unit, determining whether the first timestamp is behind the second timestamp in time;

in response to determining that the first timestamp is behind the second timestamp in time, associating the second data unit with a second epoch; and

in response to determining that the first timestamp is not behind the second timestamp in time, associating the second data unit with the first epoch.

7. The system of claim 6 , wherein the first epoch and the second epoch have overlapping time periods, wherein each of the first epoch and the second epoch has an associated starting timestamp and an ending timestamp.

8. The system of claim 7 , the operations further comprising:

indicating the starting timestamp of the second epoch to be the second timestamp.

9. The system of claim 8 , the operations further comprising:

indicating the ending timestamp of the second epoch to be null, wherein the ending timestamp of the second epoch is filled in response to a new epoch being started; and

indicating the ending timestamp of the first epoch to be the first timestamp.

10. The system of claim 6 , wherein an epoch number of the second epoch is one more than the epoch number of the first epoch.

11. A storage device, wherein code stored in the storage device when executed by a processor causes operations, the operations comprising:

writing a first data unit with an associated first timestamp and a first epoch, wherein the first timestamp corresponds to time indicated by a system clock;

subsequent to the writing of the first data unit, modifying the system clock by changing the time indicated by the system clock;

subsequent to the modifying of the system clock, writing a second data unit with an associated second timestamp corresponding to the time indicated by the modified system clock, wherein no data units are written between the writing of the first data unit and the writing of the second data unit;

in response to the writing of the second data unit, determining whether the first timestamp is behind the second timestamp in time;

in response to determining that the first timestamp is behind the second timestamp in time, associating the second data unit with a second epoch; and

in response to determining that the first timestamp is not behind the second timestamp in time, associating the second data unit with the first epoch.

12. The storage device of claim 11 , wherein the first epoch and the second epoch have overlapping time periods, wherein each of the first epoch and the second epoch has an associated starting timestamp and an ending timestamp.

13. The storage device of claim 12 , the operations further comprising:

indicating the starting timestamp of the second epoch to be the second timestamp.

14. The storage device of claim 13 , the operations further comprising:

indicating the ending timestamp of the second epoch to be null, wherein the ending timestamp of the second epoch is filled in response to a new epoch being started; and

indicating the ending timestamp of the first epoch to be the first timestamp.

15. The storage device of claim 11 , wherein an epoch number of the second epoch is one more than the epoch number of the first epoch.

16. A method for deploying computing infrastructure, comprising integrating computer-readable code into a computing system, wherein the code in combination with the computing system performs operations, the operations comprising:

writing a first data unit with an associated first timestamp and a first epoch, wherein the first timestamp corresponds to time indicated by a system clock;

subsequent to the writing of the first data unit, modifying the system clock by changing the time indicated by the system clock;

subsequent to the modifying of the system clock, writing a second data unit with an associated second timestamp corresponding to the time indicated by the modified system clock, wherein no data units are written between the writing of the first data unit and the writing of the second data unit;

in response to the writing of the second data unit, determining whether the first timestamp is behind the second timestamp in time;

in response to determining that the first timestamp is behind the second timestamp in time, associating the second data unit with a second epoch; and

in response to determining that the first timestamp is not behind the second timestamp in time, associating the second data unit with the first epoch.

17. The method for deploying computing infrastructure of claim 16 , wherein the first epoch and the second epoch have overlapping time periods, wherein each of the first epoch and the second epoch has an associated starting timestamp and an ending timestamp.

18. The method for deploying computing infrastructure of claim 17 , the operations further comprising:

indicating the starting timestamp of the second epoch to be the second timestamp.

19. The method for deploying computing infrastructure of claim 18 , the operations further comprising:

indicating the ending timestamp of the second epoch to be null, wherein the ending timestamp of the second epoch is filled in response to a new epoch being started; and

indicating the ending timestamp of the first epoch to be the first timestamp.

20. The method for deploying computing infrastructure of claim 16 , wherein an epoch number of the second epoch is one more than the epoch number of the first epoch.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2008
From: BOYD, KENNETH WAYNE; DAY, KENNETH FAIRCLOUGH, III; DEWEY, DOUGLAS WILLIAM; O'TOOLE, CHRISTOPHER DIEBOLD
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 021633/0755 →
Continuity (1)
Related Publication 20100036895A1 · Feb 11, 2010