IP Library Granted Patent US 7,596,739
Granted Patent B2
US 7,596,739 · App. 11/434,296 · Granted Sep 29, 2009

Method and system for data replication

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,596,739
App. No.
11/434,296
Granted
Sep 29, 2009
Kind
B2
Abstract

A method for writing data to a storage pool includes receiving a write operation to write a logical block of data to the storage pool, determining a number (n−1) of physical blocks required to store the logical block of data, generating a parity block using the logical block of data, allocating n physical blocks in the storage pool, writing the parity block in the first of n allocated physical block, and writing the logical block of data across the remaining n−1 allocated physical blocks, where n is less than a number of disks in the storage pool, and where each of the n allocated physical blocks is located on a different disk in the storage pool.

Claims (40)

1. A method for writing data to a storage pool, comprising:

receiving a write operation to write a logical block of data to the storage pool;

determining a number (n−1) of physical blocks required to store the logical block of data;

generating a parity block using the logical block of data;

allocating n physical blocks in the storage pool;

writing the parity block in the first of n allocated physical block; and

writing the logical block of data across the remaining n−1 allocated physical blocks,

wherein n is less than a number of disks in the storage pool, and

wherein each of the n allocated physical blocks is located on a different disk in the storage pool.

2. The method of claim 1 , wherein the logical block is an indirect block.

3. The method of claim 1 , wherein a size of the logical block is stored in a pointer referencing the logical block.

4. The method of claim 1 , wherein the logical block is associated with a file in the file system.

5. A method for writing data to a storage pool, comprising:

receiving a write operation to write a logical block of data to the storage pool;

determining a number (n) of physical blocks required to store the logical block of data;

dividing the logical block of data into n blocks;

generating a first parity block using d−1 blocks, wherein d corresponds to a number of disks in the storage pool;

generating a second parity block using n−d+1 blocks, wherein the n−d+1 blocks were not used to generate the first parity block;

allocating n+2 physical blocks in the storage pool;

writing the first parity block and the second parity block to a first of d disks in the storage pool; and

writing the n blocks across the remaining d−1 in the storage pool,

wherein at most two of the n blocks is written to any of the d−1 disks in the storage pool, and

wherein d is less than n+2.

6. The method of claim 5 , wherein the logical block is an indirect block.

7. The method of claim 5 , wherein a size of the logical block is stored in a pointer referencing the logical block.

8. The method of claim 5 , wherein the logical block is associated with a file in the file system.

9. A system, comprising:

a storage pool comprising a number of disks (d); and

a file system comprising functionality to:

receive a write operation to write a logical block of data to the storage pool;

determine a number (n−1) of physical blocks required to store the logical block of data;

generate a parity block using the logical block of data;

allocate n physical blocks in the storage pool;

write the parity block in the first of n allocated physical block; and

write the logical block of data across the remaining n−1 allocated physical blocks,

wherein n is less than d, and

wherein each of the n allocated physical blocks is located on a different disk in the storage pool.

10. The system of claim 9 , wherein the logical block is an indirect block.

11. The system of claim 9 , wherein a size of the logical block is stored in a pointer referencing the logical block.

12. The system of claim 9 , wherein the logical block is associated with a file in the file system.

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 037304/0194 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2006
From: MOORE, WILLIAM H.; BONWICK, JEFFREY S.; AHRENS, MATTHEW A.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 017901/0569 →