Legal claims defining the scope of protection, as filed with the USPTO.
1. A method of storing data in a data storage system that includes a first storage device, a non-volatile second storage device having lower speed of storing data than the first storage device, and a non-volatile third storage device having lower speed of storing data than the non-volatile second storage device, the non-volatile third storage device including at least one disk drive, the method comprising: receiving a key-value pair for storage from a client; storing the received key-value pair into the first storage device; recording, into the non-volatile second storage device, a mapping of a key of the key-value pair received and stored in the first storage device to a physical location in the non-volatile third storage device at which the key-value pair is to be stored; returning an acknowledgement to the client upon storing the received key-value pair into the first storage device and recording the mapping into the second non-volatile storage device; and storing the received key-value pair into the physical location in the non-volatile third storage device, after storing the received key-value pair into the first storage device and recording the mapping into the non-volatile second storage device.
2. The method of claim 1 , further comprising: receiving one or more additional key-value pairs for storage from the client; storing the received one or more additional key-value pairs into the first storage device; for each of the one or more additional key-value pairs received and stored in the first storage device, recording, into the non-volatile second storage device, an additional mapping of a key of the additional key-value pair to a physical location in the non-volatile third storage device at which the additional key-value pair is to be stored; and storing each of the received one or more additional key-value pairs into the corresponding physical location in the non-volatile third storage device, after storing the received one or more additional key-value pairs into the first storage device and recording the additional mapping into the non-volatile second storage device.
3. The method of claim 1 , further comprising: invalidating the key-value pair stored in the first storage device, after storing the received key-value pair into the physical location in the non-volatile third storage device.
4. The method of claim 1 , further comprising: receiving a request from the client to retrieve the value for the key-value pair; upon receiving the request from the client, determining whether or not the value for the key-value pair is stored in the first storage device; in response to determining that the value for the key-value pair is stored in the first storage device, reading the value for the key-value pair from the first storage device; and in response to determining that the value for the key-value pair is not stored in the first storage device, reading the value for the key-value pair from the physical location in the non-volatile third storage device.
5. The method of claim 1 , further comprising: after recording the mapping into the non-volatile second storage device, receiving an updated key-value pair for storage from the client, the updated key-value pair including the same key as the key-value pair received and stored in the first storage device; and recording, into the non-volatile second storage device, an updated mapping of the key of the updated key-value pair to a new physical location in the non-volatile third storage device at which the updated key-value pair is to be stored.
6. The method of claim 1 , wherein the first storage device includes a volatile random-access memory device.
7. The method of claim 6 , wherein the volatile random-access memory device is coupled to a power loss protection circuit that includes a temporary power source.
8. The method of claim 1 , wherein the non-volatile second storage device has a greater storage size than the first storage device.
9. The method of claim 1 , wherein the non-volatile third storage device has a greater storage size than the non-volatile second storage device.
10. The method of claim 1 , wherein the non-volatile second storage device includes a flash memory device mounted on a printed circuit board.
11. A storage system comprising: a first storage device; a non-volatile second storage device having lower speed of storing data than the first storage device; a non-volatile third storage device having lower speed of storing data than the non-volatile second storage device, the non-volatile third storage device including at least one disk drive; and a processor configured to: upon receipt of a key-value pair for storage from a client, store the received key-value pair into the first storage device; record, into the non-volatile second storage device, a mapping of a key of the key-value pair received and stored in the first storage device to a physical location in the non-volatile third storage device at which the key-value pair is to be stored; return an acknowledgement to the client upon storing the received key-value pair into the first storage device and recording the mapping into the second non-volatile storage device; and store the received key-value pair into the physical location in the non-volatile third storage device, after storing the received key-value pair into the first storage device and recording the mapping into the non-volatile second storage device.
12. The system of claim 11 , wherein the processor is further configured to: upon receipt of one or more additional key-value pairs for storage from the client, store the received one or more additional key-value pairs into the first storage device; for each of the one or more additional key-value pairs received and stored in the first storage device, record, into the non-volatile second storage device, an additional mapping of a key of the additional key-value pair to a physical location in the non-volatile third storage device at which the additional key-value pair is to be stored; and store each of the received one or more additional key-value pairs into the corresponding physical location in the non-volatile third storage device, after storing the received one or more additional key-value pairs into the first storage device and recording the additional mapping into the non-volatile second storage device.
13. The system of claim 11 , wherein the processor is further configured to: invalidate the key-value pair stored in the first storage device, after storing the received key-value pair into the physical location in the non-volatile third storage device.
14. The system of claim 11 , wherein the processor is further configured to: upon receipt of a request from the client to retrieve the value for the key-value pair, determine whether or not the value for the key-value pair is stored in the first storage device; in response to determining that the value for the key-value pair is stored in the first storage device, read the value for the key-value pair from the first storage device; and in response to determining that the value for the key-value pair is not stored in the first storage device, read the value for the key-value pair from the physical location in the non-volatile third storage device.
15. The system of claim 11 , wherein the processor is further configured to: after recording the mapping into the non-volatile second storage device, upon receipt of an updated key-value pair for storage from the client, which includes the same key as the key-value pair received and stored in the first storage device, record, into the non-volatile second storage device, an updated mapping of the key of the updated key-value pair to a new physical location in the non-volatile third storage device at which the updated key-value pair is to be stored.
16. The system of claim 11 , wherein the first storage device includes a volatile random-access memory device.
17. The system of claim 16 , wherein the volatile random-access memory device is coupled to a power loss protection circuit that includes a temporary power source.
18. The system of claim 11 , wherein the non-volatile second storage device has a greater storage size than the first storage device.
19. The system of claim 11 , wherein the non-volatile third storage device has a greater storage size than the non-volatile second storage device.
20. The system of claim 11 , wherein the non-volatile second storage device includes a flash memory device mounted on a printed circuit board.
Unknown
August 17, 2021
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.