IP Library Granted Patent US 7,055,055
Granted Patent B1
US 7,055,055 · App. 09/719,339 · Granted May 30, 2006

Write cache flushing method for reducing data corruption

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,055,055
App. No.
09/719,339
Granted
May 30, 2006
Kind
B1
Abstract

There is described a method of maintaining a record of changes to data on a recording medium and allowing reconstruction of the state of the medium at a prior time. Various alternative embodiments are provided to enhance and improve this process, including maintaining two copies in RAM of data that are compared to detect corruption prior to transferring to the recording medium, splitting logic protection and viewing, disguising the disk to protect against incompatible software, flushing a write cache by insuring a certain amount of time has passed, flushing a write cache by insuring a certain amount of free time has passed and inserting delays if required, inserting safe points after a drop in the rate of disk activity, inserting safe points periodically, flushing the entire OS cache after detecting the need to establish a safe point for one user, separating out user activity by watching directories and files, or the use of complex linked data structures to implement the engine where such data structures can be substantially reconstructed from sequentially organized tables in the event of corruption.

Claims (29)

1. A method for determining data validity during data recovery operations, comprising the operations of:

defining a wait time, the wait time being a period of time that ensures that a block of data written to a write cache of a disk has been written to the disk;

writing a block of data to the disk using the write cache, the block of data including a first marker related to a time;

reading the block of data from the disk during a data recover operation;

examining the first marker of the block of data; and

validating the block of data if a second marker exist on the disk that was written a particular period of time after the first marker was written, the particular period of time being not less than wait time.

2. A method as recited in claim 1 , further comprising the operation of invalidating the data if no other marker exist on the disk that was written the particular period of time after the first marker was written.

3. A method as recited in claim 1 , wherein the marker is a time marker indicating that a period of time equal to wait time has passed since a preceding marker was written.

4. A method as recited in claim 1 , wherein the marker is a time stamp indicting the time the block of data was sent to the disk.

5. A method as recited in claim 4 , wherein the marker is compared to a second time stamp to determine whether the marker was written a period of time not less than wait time prior to the other time stamp.

6. A method as recited in claim 1 , wherein a valid block of data can be used in data recovery, and wherein an invalid block of data is not used in data recovery.

7. A method for determining data validity during data recovery operations, comprising the operations of:

defining a wait time, the wait time being a period of time that ensures that a block of data written to a write cache of a disk has been written to the disk;

determining a transfer rate of a disk controller coupled to the disk;

calculating a data valid number, the data valid number being the product of the transfer rate of the disk controller and the wait time; and

validating a block of data written to the disk after an amount of data not less than the data valid number has been written to the disk.

8. A method as recited in claim 7 , wherein a block of data is only used during a recovery operation if the block of data has been validated.

9. A method as recited in claim 8 , wherein a block of data is also validated if a period of time not less than wait time has passed since the block of data was sent to the disk.

10. A computer readable medium containing a computer program product for determining data validity during data recovery operations, the computer program product comprising:

program code for defining a wait time, the wait time being a period of time that ensures that a block of data written to a write cache of a disk has been written to the disk;

program code for writing a block of data to the disk using the write cache, the block of data including a first marker related to a time;

program code for reading a code segment that reads the block of data from the disk during a data recovery operation;

program code for examining the first marker of the block of data; and

program code for validating the block of data if a second marker exist on the disk that was written a particular period of time after the first marker was written, the particular period of time being not less that wait time.

11. The computer program product of claim 10 further comprising: program code for invalidating invalidates the data if no other marker exist on the disk that was written the particular period of time after the first marker was written.

12. The computer program product of claim 10 wherein the marker is a time marker indicating that a period of time equal to wait time has passed since a preceding marker was written.

13. The computer program product of claim 10 wherein the marker is a time stamp indicating the time block of data was sent to the disk.

14. The computer program product of claim 13 wherein the marker is compared to a second time stamp to determine whether the marker was written a period of time not less than wait time prior to the other time stamp.

15. The computer program product of claim 10 wherein a valid block of data can be used in data recovery, and wherein an invalid block of data is not used in data recovery.

Assignments (4)
NOTICE OF SUCCESSION OF AGENCY (REEL 050926 / FRAME 0560) Recorded Sep 13, 2022
From: JPMORGAN CHASE BANK, N.A.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 061422/0371 →
SECURITY AGREEMENT Recorded Sep 13, 2022
From: NORTONLIFELOCK INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062220/0001 →
CHANGE OF NAME Recorded Jun 18, 2020
From: SYMANTEC CORPORATION
To: NORTONLIFELOCK INC.
Reel/Frame 053306/0878 →
SECURITY AGREEMENT Recorded Nov 4, 2019
From: SYMANTEC CORPORATION; BLUE COAT LLC; LIFELOCK, INC,; SYMANTEC OPERATING CORPORATION
To: JPMORGAN, N.A.
Reel/Frame 050926/0560 →