Extent-based storage architecture
First Claim
1. A computerized method comprising:
- receiving, by a storage server from a client, a read request for an extent, wherein the extent includes a group of contiguous blocks of data and the read request includes a file block number (FBN);
retrieving, by the storage server, a first extent identifier from a first sorted data structure, wherein the storage server uses the received FBN to traverse the first sorted data structure to the first extent identifier; and
retrieving, by the storage server, a first reference to the first extent from a second sorted data structure, wherein the storage server uses the retrieved first extent identifier to traverse the second sorted data structure to the first reference, and wherein the second sorted data structure is global across a plurality of volumes;
retrieving, by the storage server from a storage device, the extent using the first reference; and
returning, by the storage server, the extent to the client.
1 Assignment
0 Petitions
Accused Products
Abstract
An extent-based storage architecture is implemented by a storage server receiving a read request for an extent from a client, wherein the extent includes a group of contiguous blocks and the read request includes a file block number. The storage server retrieves an extent identifier from a first sorted data structure, wherein the storage server uses the received file block number to traverse the first sorted data structure to the extent identifier. The storage server retrieves a reference to the extent from a second sorted data structure, wherein the storage server uses the retrieved extent identifier to traverse the second sorted data structure to the reference, and wherein the second sorted data structure is global across a plurality of volumes. The storage server retrieves the extent from a storage device using the reference and returns the extent to the client.
19 Citations
20 Claims
-
1. A computerized method comprising:
-
receiving, by a storage server from a client, a read request for an extent, wherein the extent includes a group of contiguous blocks of data and the read request includes a file block number (FBN); retrieving, by the storage server, a first extent identifier from a first sorted data structure, wherein the storage server uses the received FBN to traverse the first sorted data structure to the first extent identifier; and retrieving, by the storage server, a first reference to the first extent from a second sorted data structure, wherein the storage server uses the retrieved first extent identifier to traverse the second sorted data structure to the first reference, and wherein the second sorted data structure is global across a plurality of volumes; retrieving, by the storage server from a storage device, the extent using the first reference; and returning, by the storage server, the extent to the client. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A storage server comprising:
-
a memory; a processor coupled to the memory through a bus, wherein the processor executes instructions that cause the processor to; receive a read request from a client for an extent, wherein the extent includes a group of contiguous blocks of data and the read request includes a file block number (FBN); retrieve a first extent identifier from a first data structure, wherein the storage server uses the FBN to traverse the first data structure to the first extent identifier; retrieve a first reference to the extent from a second data structure, wherein the storage server uses the first extent identifier to traverse the second data structure to the first reference, and wherein the second data structure is global across a plurality of volumes; retrieve the extent from a storage device using the first reference; and return the extent to the client. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A non-transitory machine readable medium having stored thereon instructions comprising machine executable code which when executed by one or more processors of a machine, causes the machine to:
-
receive, from a client, a read request for an extent, wherein the extent includes a group of contiguous blocks of data on a storage device and the read request includes a file block number (FBN); retrieve a first extent identifier from a first data structure, wherein the machine uses the FBN to traverse the first data structure to the first extent identifier; and retrieve a first reference to the first extent from a second data structure, wherein the machine uses the first extent identifier to traverse the second data structure to the first reference, and wherein the second data structure is global across a plurality of volumes; retrieve, from the storage device, the extent using the first reference; and return the extent to the client. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification