Reducing metadata in a write-anywhere storage system
First Claim
1. A data storage method comprising:
- receiving a write request from client for a data item;
storing the data item in an extent cache while concurrently storing metadata for the data item in an extent index including updating an interval tree, the updating includingevaluating the interval tree to determine if the data item overlaps or is adjacent to an already cached data item,when the data item overlaps or is adjacent to an already cached data item, merging the metadata for the data item into the interval tree,when the data item overlaps or is adjacent to an already cached data item, adding a new metadata entry for the data item into the interval tree;
upon receipt of a first interrupt or event, moving the data item and the meta data for the data item from the extent cache and the extent index to a commit cache and a commit index;
upon receipt of a second interrupt or event, moving the data item from the commit cache to a primary storage device and removing the metadata for the data item from the commit index.
3 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for reducing metadata in a write-anywhere storage system are disclosed herein. The system includes a plurality of clients coupled with a plurality of storage nodes, each storage node having a plurality of primary storage devices coupled thereto. A memory management unit including cache memory is included in the client. The memory management unit serves as a cache for data produced by the clients before the data is stored in the primary storage. The cache includes an extent cache, an extent index, a commit cache and a commit index. The movement of data and metadata is by an interval tree. Methods for reducing data in the interval tree increase data storage and data retrieval performance of the system.
-
Citations
20 Claims
-
1. A data storage method comprising:
-
receiving a write request from client for a data item; storing the data item in an extent cache while concurrently storing metadata for the data item in an extent index including updating an interval tree, the updating including evaluating the interval tree to determine if the data item overlaps or is adjacent to an already cached data item, when the data item overlaps or is adjacent to an already cached data item, merging the metadata for the data item into the interval tree, when the data item overlaps or is adjacent to an already cached data item, adding a new metadata entry for the data item into the interval tree; upon receipt of a first interrupt or event, moving the data item and the meta data for the data item from the extent cache and the extent index to a commit cache and a commit index; upon receipt of a second interrupt or event, moving the data item from the commit cache to a primary storage device and removing the metadata for the data item from the commit index. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer system comprising:
-
a plurality of clients including a plurality of processors; a plurality of storage nodes coupled with the plurality of clients; a memory management unit included in each of the clients, the memory management unit including a multi-tiered cache memory, the cache memory including an upper level comprising an extent cache and an extent index and a lower level comprising a commit cache and a commit index, wherein each client and corresponding memory management unit operate in conjunction to perform actions including; receiving a write request for a data item; storing the data item in the extent cache while concurrently storing metadata for the data item in the extent index including updating an interval tree, the updating including evaluating the interval tree to determine if the data item overlaps or is adjacent to an already cached data item, when the data item overlaps or is adjacent to an already cached data item, merging the metadata for the data item into the interval tree, when the data item overlaps or is adjacent to an already cached data item, adding a new metadata entry for the data item into the interval tree; upon receipt of a first interrupt or event, moving the data item and the meta data for the data item from the extent cache and the extent index to the commit cache and the commit index; upon receipt of a second interrupt or event, moving the data item from the commit cache to a primary storage device and removing the metadata for the data item from the commit index. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification