Single instance buffer cache method and system
First Claim
1. A method of reducing data duplication in a buffer cache comprising:
- accessing, by a storage management computing device, a file reference pointer associated with a file in a deduplicated file system when loading a requested data block from the file into the buffer cache;
comparing, by the storage management computing device, when the requested data block is not stored in association with the file reference pointer in the buffer cache, a fingerprint from the requested data block that identifies the requested data block taken from the deduplicated filesystem against one or more fingerprints identifying a corresponding one or more shareable data blocks in the buffer cache;
determining, by the storage management computing device, when there is at least one other file reference pointer associated with a shareable data block of the one or more shareable data blocks in the buffer cache, and based on the comparing, when there is a match between the fingerprint of the requested data block and a fingerprint of the shareable data block of the one or more shareable data blocks in the buffer cache;
marking, by the storage management computing device, the shareable data block from the match in the buffer cache when there is an attempt to modify the shareable data block, wherein the marked shareable data block is copied to the buffer cache after the attempt to modify the shareable data block and when there is at least one other file reference pointer associated with the shareable data block; and
allocating, by the storage management computing device, the shareable data block from the match in the buffer cache, wherein the allocating comprises associating a new buffer header with the shareable data block, the new buffer header comprising metadata for the shareable data block.
2 Assignments
0 Petitions
Accused Products
Abstract
Provided is a method and system for reducing duplicate buffers in buffer cache associated with a storage device. Reducing buffer duplication in a buffer cache includes accessing a file reference pointer associated with a file in a deduplicated filesystem when attempting to load a requested data block from the file into the buffer cache. To determine if the requested data block is already in the buffer cache, aspects of the invention compare a fingerprint that identifies the requested data block against one or more fingerprints identifying a corresponding one or more sharable data blocks in the buffer cache. A match between the fingerprint of the requested data block and the fingerprint from a sharable data block in the buffer cache indicates that the requested data block is already loaded in buffer cache. The sharable data block in buffer cache is used instead thereby reducing buffer duplication in the buffer cache.
32 Citations
36 Claims
-
1. A method of reducing data duplication in a buffer cache comprising:
-
accessing, by a storage management computing device, a file reference pointer associated with a file in a deduplicated file system when loading a requested data block from the file into the buffer cache; comparing, by the storage management computing device, when the requested data block is not stored in association with the file reference pointer in the buffer cache, a fingerprint from the requested data block that identifies the requested data block taken from the deduplicated filesystem against one or more fingerprints identifying a corresponding one or more shareable data blocks in the buffer cache; determining, by the storage management computing device, when there is at least one other file reference pointer associated with a shareable data block of the one or more shareable data blocks in the buffer cache, and based on the comparing, when there is a match between the fingerprint of the requested data block and a fingerprint of the shareable data block of the one or more shareable data blocks in the buffer cache; marking, by the storage management computing device, the shareable data block from the match in the buffer cache when there is an attempt to modify the shareable data block, wherein the marked shareable data block is copied to the buffer cache after the attempt to modify the shareable data block and when there is at least one other file reference pointer associated with the shareable data block; and allocating, by the storage management computing device, the shareable data block from the match in the buffer cache, wherein the allocating comprises associating a new buffer header with the shareable data block, the new buffer header comprising metadata for the shareable data block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 21, 22)
-
-
11. A storage management computing device comprising:
-
a processor; a memory coupled to the processor which is configured to be capable of executing programmed instructions comprising and stored in the memory to; access a file reference pointer associated with a file in a deduplicated filesystem when loading a requested data block from the file into the buffer cache; compare, when the requested data block is not stored in association with the file reference pointer in the buffer cache, a fingerprint from the requested data block that identifies the requested data block taken from the deduplicated filesystem against one or more fingerprints identifying a corresponding one or more shareable data blocks in the buffer cache, determine when there is at least one other file reference pointer associated with a shareable data block of the one or more shareable data blocks in the buffer cache, and based on the comparing, when there is a match between the fingerprint of the requested data block and a fingerprint of the shareable data block of the one or more shareable data blocks in the buffer cache; mark the shareable data block from the match in the buffer cache when there is an attempt to modify the shareable data block wherein the marked shareable data block is copied to the buffer cache after the attempt to modify the shareable data block and when there is at least one other file reference pointer associated with the shareable data block; and allocate the shareable data block from the match in the buffer cache, wherein the allocating comprises associating a new buffer header with the shareable data block, the new buffer header comprising metadata for the shareable data block. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 23, 24)
-
-
25. A non-transitory computer readable medium having stored thereon instructions for reducing data duplication in a buffer cache used in conjunction with a storage device comprising machine executable code which when executed by at least one processor, causes the processor to perform steps comprising:
-
accessing a file reference pointer associated with a file in a deduplicated file system when loading a requested data block from the file into the buffer cache; comparing, when the requested data block is not stored in association with the file reference pointer in the buffer cache, a fingerprint from the requested data block that identifies the requested data block taken from the deduplicated filesystem against one or more fingerprints identifying a corresponding one or more shareable data blocks in the buffer cache; determining when there is at least one other file reference pointer associated with a shareable data block of the one or more shareable data blocks in the buffer cache, and based on the comparing, when there is a match between the fingerprint of the requested data block and a fingerprint of the shareable data block of the one or more shareable data blocks in the buffer cache; marking the shareable data block from the match in the buffer cache when there is an attempt to modify the shareable data block, wherein the marked shareable data block is copied to the buffer cache after the attempt to modify the shareable data block and when there is at least one other file reference pointer associated with the shareable data block; allocating the shareable data block from the match in the buffer cache, wherein the allocating comprises associating a new buffer header with the shareable data block, the new buffer header comprising metadata for the shareable data block. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
Specification