IP Library Granted Patent US 7,716,519
Granted Patent B2
US 7,716,519 · App. 11/406,578 · Granted May 11, 2010

Method and system for repairing partially damaged blocks

Assignee: Oracle America, Inc.
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,716,519
App. No.
11/406,578
Granted
May 11, 2010
Kind
B2
Abstract

A method for reconstructing a logical block, wherein the logical block comprises a first set of sectors. The method including obtaining a copy of the logical block comprising a second set of sectors, determining which of the sectors in the first set of sectors are identical to sectors in the second set of sectors to obtain identical sectors, selecting a first combination of non-identical sectors from the first set of sectors and the second set of sectors, combining a copy of each of the identical sectors with the first combination of non-identical sectors to obtain a first reconstructed logical block, calculating a first checksum for the first reconstructed logical block, and determining whether the first calculated checksum is equal to the stored checksum associated with the first logical block.

Claims (25)

1. A computer readable medium comprising software instructions to reconstruct a logical block, wherein the logical block comprises a first set of sectors, when executed the software instructions configured to:

obtain a copy of the logical block comprising a second set of sectors;

determine which of the sectors in the first set of sectors are identical to sectors in the second set of sectors to obtain identical sectors;

select a first combination of non-identical sectors from the first set of sectors and the second set of sectors;

combine a copy of each of the identical sectors with the first combination of non-identical sectors to obtain a first reconstructed logical block;

calculate a first checksum for the first reconstructed logical block; and

determine whether the first calculated checksum is equal to the stored checksum associated with the first logical block.

2. The computer readable medium of claim 1 , further comprising software instructions to:

replace the logical block and the copy of the logical block with the first reconstructed logical block, if the first calculated checksum is equal to the stored checksum associated with the first logical block.

3. The computer readable medium of claim 1 , further comprising software instructions to:

if the first calculated checksum is not equal to the stored checksum associated with the first logical block:

select a second combination of non-identical sectors from the first set of sectors and the second set of sectors;

combine the copy of each of the identical sectors with the second combination of non-identical sectors to obtain a second reconstructed logical block;

calculate a second checksum for the second reconstructed logical block; and

determine whether the second calculated checksum is equal to the stored checksum associated with the logical block.

4. The computer readable medium of claim 1 , further comprising software instructions to:

receive a request for a logical block;

obtain the logical block;

calculate a checksum of the logical block to obtain a second calculated checksum;

if the second calculated checksum is not equal to the stored checksum, then initiating obtaining a copy of the logical block comprising a second set of sectors; and

if the second calculated checksum is equal to the stored checksum, then return the logical block to a process which sent the request.

5. The computer readable medium of claim 4 , wherein the stored checksum is stored in a block pointer referencing the logical block.

6. The computer readable medium of claim 1 , wherein the logical block is a data block.

7. The computer readable medium of claim 1 , wherein the logical block is an indirect block.

8. The computer readable medium of claim 1 , wherein the logical block is associated with a file.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037306/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2006
From: MOORE, WILLIAM H.; BONWICK, JEFFREY S.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 017799/0496 →
Continuity (2)
Provisional Application 6073340500 · Nov 4, 2005
Related Publication 20070198889A1 · Aug 23, 2007