Using logical block addresses with generation numbers as data fingerprints to provide cache coherency
First Claim
Patent Images
1. A method comprising:
- receiving, by a storage server computing device and from a caching device, a first write request comprising a logical block address, a first generation number, and a first data block;
determining, by the storage server computing device when the first generation number is a latest generation number based on a stored generation number corresponding to the logical block address;
storing, by the storage server computing device, the first data block and the first generation number using the logical block address, when the determining indicates that the first generation number is the latest generation number; and
sending, by the storage server computing device, to the caching device, a second data block and the stored generation number corresponding to the logical block address, receiving, from the caching device, a second write request comprising the logical block address, a second generation number, and a third data block that is a modified version of the second data block, and storing the third data block and the second generation number using the logical block address, when the determining indicates that the first generation number is not the latest generation number.
0 Assignments
0 Petitions
Accused Products
Abstract
The technique introduced here involves using a block address and a corresponding generation number as a “fingerprint” to uniquely identify a sequence of data within a given storage domain. Each block address has an associated generation number which indicates the number of times that data at that block address has been modified. This technique can be employed, for example, to maintain cache coherency among multiple storage nodes. It can also be employed to avoid sending the data to a network node over a network if it already has the data.
-
Citations
18 Claims
-
1. A method comprising:
-
receiving, by a storage server computing device and from a caching device, a first write request comprising a logical block address, a first generation number, and a first data block; determining, by the storage server computing device when the first generation number is a latest generation number based on a stored generation number corresponding to the logical block address; storing, by the storage server computing device, the first data block and the first generation number using the logical block address, when the determining indicates that the first generation number is the latest generation number; and sending, by the storage server computing device, to the caching device, a second data block and the stored generation number corresponding to the logical block address, receiving, from the caching device, a second write request comprising the logical block address, a second generation number, and a third data block that is a modified version of the second data block, and storing the third data block and the second generation number using the logical block address, when the determining indicates that the first generation number is not the latest generation number. - View Dependent Claims (2, 3, 4, 5, 6, 12)
-
-
7. A storage server computing device comprising:
-
a memory containing machine readable medium comprising machine executable code having stored thereon instructions for performing a method of maintaining cache coherency; and a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to; receive, from a caching device, a first write request comprising a logical block address, a first generation number, and a first data block; determine when the first generation number is a latest generation number based on a stored generation number corresponding to the logical block address; store the first data block and the first generation number using the logical block address, when the determining indicates that the first generation number is the latest generation number; and send, to the caching device, a second data block and the stored generation number corresponding to the logical block address, receive, from the caching device, a second write request comprising the logical block address, a second generation number, and a third data block that is a modified version of the second data block, and store the third data block and the second generation number using the logical block address, when the determining indicates that the first generation number is not the latest generation number. - View Dependent Claims (8, 9, 10, 11)
-
-
13. A non-transitory machine readable medium having stored thereon instructions for performing a method comprising machine executable code which when executed by at least one machine causes the machine to:
-
receive, from a caching device, a first write request comprising a logical block address, a first generation number, and a first data block; determine when the first generation number is a latest generation number based on a stored generation number corresponding to the logical block address; store the first data block and the first generation number using the logical block address, when the determining indicates that the first generation number is the latest generation number; and send, to the caching device, a second data block and the stored generation number corresponding to the logical block address, receive, from the caching device, a second write request comprising the logical block address, a second generation number, and a third data block that is a modified version of the second data block, and store the third data block and the second generation number using the logical block address, when the determining indicates that the first generation number is not the latest generation number. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification