IP Library Granted Patent US 7,814,367
Granted Patent B1
US 7,814,367 · App. 11/273,665 · Granted Oct 12, 2010

Method and system for time addressable storage

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 7,814,367
App. No.
11/273,665
Granted
Oct 12, 2010
Kind
B1
Abstract

Method and system for allowing temporal navigation or time travel of data or data object across time are disclosed. In one embodiment, events that affected data objects are retrieved and inversed to revert the data objects back to a selected point-in-time, forward events are applied to move data objects to forward point-in-time. A sliding bar or a time dial allows a user to move data objects back and forward in time. Events that are applied may be a selected subset of events, altered events, new events, or events generated synthetically or any combinations thereof, for instance, to create counterfactual history.

Claims (34)

1. A computer comprising a processor and a storage medium, said storage medium comprising:

a. instructions for causing the processor to time shift a subset of a plurality of data objects stored on the storage medium;

b. one or more application programs for performing actions on files or data objects;

c. a block layer for storing data generated from the one or more application programs;

d. a file system through which changes made to a data object in the one or more application programs travel to, and are stored in, the block layer;

e. one or more write-inverted stacks, whereby one or more data objects stored in the block layer have time-shifted but their corresponding one or more application programs are unaware that the one or more data objects have time shifted;

f. an event journal containing a plurality of time-labeled events representing changes made to the plurality of data objects;

g. an application program interface which includes one or more graphical user interface modules for selecting a subset of the data objects to time shift; said interface modules also operable to select a past temporal state and a forward temporal state of the subset of data objects;

h. instructions for causing the processor to generate and apply a reverse event from the plurality of events operable to change the subset of data objects to the past temporal state;

j. instructions for causing the processor to generate and apply a forward event from the plurality of events operable to change the subset of data objects to the forward temporal state;

k. instructions for causing the processor to determine that one or more data objects stored in one or more block layers have been time shifted;

l. instructions for notifying the corresponding file system and one or more application programs that the one or more data objects have been time shifted; and

m. instructions for causing the corresponding file system and one or more application programs to synchronize with the one or more time-shifted data objects.

2. The computer of claim 1 wherein the interface module comprises a slider, wherein movement of the slider in a first direction causes the processor to apply the reverse event to change the subset of data objects to the reverse temporal state; and movement of the slider in a second direction causes the processor to apply the forward event to change the subset of data objects to the forward temporal state.

3. The computer of claim 1 wherein the interface module comprises a time dial, wherein rotation of the time dial in a first direction causes the processor to apply the reverse event to change the subset of data objects to the reverse temporal state; and rotation of the time dial in a second direction causes the processor to apply the forward event to change the subset of data objects to the forward temporal state.

4. The computer of claim 1 wherein the event journal contains supplemental criteria about the one or more time-labeled events, including a user name of who carried out the event.

5. The computer of claim 1 wherein the storage medium contains instructions causing the processor to generate and apply a reverse event based on user-selected supplemental criteria to change the subset of data objects to the past temporal state.

6. A method of time shifting a subset of a plurality of data objects stored on a storage medium; said method comprising the steps of

a. using a computer comprising a processor and the storage medium, said storage medium comprising:

i. an event journal containing a plurality of time-labeled events representing changes made to the plurality of data objects;

ii. an application program interface which includes one or more graphical user interface modules for selecting a subset of the data objects to time shift; said interface modules also operable to select a past temporal state and a forward temporal state of the subset of data objects;

iii. one or more application programs for performing actions on files or data objects;

iv. a block layer for storing data generated from the one or more application programs;

v. a file system through which changes made to a data object in the one or more application programs travel to, and are stored in, the block layer;

vi. one or more write-inverted stacks, whereby one or more data objects stored in the block layer have time-shifted but their corresponding one or more application programs are unaware that the one or more data objects have time shifted;

b. instructing the processor to generate and apply a reverse event from the plurality of events operable to change the subset of data objects to the past temporal state;

d. instructing the processor to generate and apply a forward event from the plurality of events operable to change the subset of data objects to the forward temporal state;

f. instructing the processor to determine that one or more data objects stored in one or more block layers have been time shifted;

g. instructing the processor to notify the corresponding file system and one or more application programs that the one or more data objects have been time shifted; and

h. instructing the processor to cause the corresponding file system and one or more application programs to synchronize with the one or more time-shifted data objects.

7. The method of claim 6 comprising the step of moving a slider, wherein movement of the slider in a first direction causes the processor to apply the reverse event to change the subset of data objects to the reverse temporal state; and movement of the slider in a second direction causes the processor to apply the forward event to change the subset of data objects to the forward temporal state.

8. The method of claim 6 comprising the step of rotating a time dial, wherein rotation of the time dial in a first direction causes the processor to apply the reverse event to change the subset of data objects to the reverse temporal state; and rotation of the time dial in a second direction causes the processor to apply the forward event to change the subset of data objects to the forward temporal state.

9. The method of claim 6 wherein the event journal contains supplemental criteria about the one or more time-labeled events, including a user name of who carried out the event.

10. The method of claim 6 instructing the processor to generate and apply a reverse event based on user-selected supplemental criteria to change the subset of data objects to the past temporal state.

Assignments (7)
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Oct 12, 2023
From: CARBONITE, LLC
To: OPEN TEXT INC.
Reel/Frame 065222/0310 →
CERTIFICATE OF CONVERSION Recorded Oct 12, 2023
From: CARBONITE, INC.
To: CARBONITE, LLC
Reel/Frame 065222/0303 →
RELEASE OF SECURITY INTEREST IN PATENT RIGHTS RECORDED AT R/F 048723/0374 Recorded Dec 26, 2019
From: BARCLAYS BANK PLC, AS COLLATERAL AGENT
To: CARBONITE, INC.
Reel/Frame 051418/0807 →
SECURITY INTEREST Recorded Mar 28, 2019
From: CARBONITE, INC.
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 048723/0374 →
TERMINATION OF PATENT SECURITY AGREEMENT FILED AT R/F 045640/0335 Recorded Mar 26, 2019
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: CARBONITE, INC.
Reel/Frame 048702/0929 →
SECURITY INTEREST Recorded Mar 19, 2018
From: CARBONITE, INC.
To: SILICON VALLEY BANK
Reel/Frame 045640/0335 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2017
From: DOUBLE-TAKE SOFTWARE CANADA, INC.
To: CARBONITE, INC.
Reel/Frame 041784/0113 →