Minimizing write operations to a flash memory-based object store
First Claim
1. A method for prolonging the service life of a solid state device, comprising:
- in response to receiving a first request to commit a transaction against an object store maintained on one or more solid state devices, sending, to a non-volatile dynamic random access memory (DRAM), a second request to store transaction information for the transaction in the non-volatile DRAM; and
in response to receiving a first response indicating that the transaction information has been persistently stored in a transaction log on the non-volatile DRAM, sending a second response indicating that the transaction, made against the object store maintained on the one or more solid state devices, has been committed.
4 Assignments
0 Petitions
Accused Products
Abstract
Approaches for minimizing the amount of write transactions issued to an object store maintained on a solid state device (SSD). Transactions requested against an object store maintained on a SSD may be committed once transaction information for the transaction is durably stored in a non-volatile dynamic random access memory (DRAM), which may be maintained in a HDD controller. Further, data blocks stored in a volatile cache of a database server that issues write requests to an object store maintained on one or more SSDs may be considered persistent stored once confirmation is received that the data blocks are written to a double-write buffer stored on a non-volatile medium, such as NV RAM in a HDD controller. Additionally, any data blocks that are to be written over in a non-volatile DRAM are first ensured to be no longer present within the volatile write cache maintained a the solid state device.
184 Citations
22 Claims
-
1. A method for prolonging the service life of a solid state device, comprising:
-
in response to receiving a first request to commit a transaction against an object store maintained on one or more solid state devices, sending, to a non-volatile dynamic random access memory (DRAM), a second request to store transaction information for the transaction in the non-volatile DRAM; and in response to receiving a first response indicating that the transaction information has been persistently stored in a transaction log on the non-volatile DRAM, sending a second response indicating that the transaction, made against the object store maintained on the one or more solid state devices, has been committed. - View Dependent Claims (2, 3, 4)
-
-
5. A method for prolonging the service life of a solid state device, comprising:
-
in response to receiving a request to persistently store one or more blocks stored in a volatile cache of a database server that issues write requests to an object store maintained on one or more solid state devices, writing the one or more blocks to a double-write buffer stored on a non-volatile storage medium, wherein the non-volatile storage medium is not one of the one or more solid state devices; and in response to receiving a first message indicating that the one or more blocks have been written to the double-write buffer stored on the non-volatile storage medium, sending a second message indicating that the one or more blocks have been persistently stored in the object store. - View Dependent Claims (6, 7, 8)
-
-
9. A method for maintaining a double-write buffer for a database stored on one or more solid state devices, comprising:
-
writing a first set of data blocks to a volatile write cache maintained on a solid state device; and in response to receiving a request to write a second set of data blocks to the double-write buffer maintained in a non-volatile dynamic random access memory (DRAM), ensuring that any data blocks that are to be written over in the non-volatile DRAM as a result of writing the second set of data blocks to the non-volatile DRAM are no longer present within the volatile write cache maintained on the solid state device. - View Dependent Claims (10, 11)
-
-
12. A non-transitory machine readable storage medium storing one or more sequences of instructions for prolonging the service life of a solid state device, wherein execution of the one or more sequences of instructions by one or more processors causes:
-
in response to receiving a first request to commit a transaction against an object store maintained on one or more solid state devices, sending, to a non-volatile dynamic random access memory (DRAM), a second request to store transaction information for the transaction in the non-volatile DRAM; and in response to receiving a first response indicating that the transaction information has been persistently stored in a transaction log on the non-volatile DRAM, sending a second response indicating that the transaction, made against the object store maintained on the one or more solid state devices, has been committed. - View Dependent Claims (13, 14, 15)
-
-
16. A non-transitory machine readable storage medium storing one or more sequences of instructions for prolonging the service life of a solid state device, wherein execution of the one or more sequences of instructions by one or more processors causes:
-
in response to receiving a request to persistently store one or more blocks stored in a volatile cache of a database server that issues write requests to an object store maintained on one or more solid state devices, writing the one or more blocks to a double-write buffer stored on a non-volatile storage medium, wherein the non-volatile storage medium is not one of the one or more solid state devices; and in response to receiving a first message indicating that the one or more blocks have been written to the double-write buffer stored on the non-volatile storage medium, sending a second message indicating that the one or more blocks have been persistently stored in the object store. - View Dependent Claims (17, 18, 19)
-
-
20. A non-transitory machine readable storage medium storing one or more sequences of instructions for maintaining a double-write buffer for a database stored on one or more solid state devices, wherein execution of the one or more sequences of instructions by one or more processors causes:
-
writing a first set of data blocks to a volatile write cache maintained on a solid state device; and in response to receiving a request to write a second set of data blocks to the double-write buffer maintained in a non-volatile dynamic random access memory (DRAM), ensuring that any data blocks that are to be written over in the non-volatile DRAM as a result of writing the second set of data blocks to the non-volatile DRAM are no longer present within the volatile write cache maintained on the solid state device. - View Dependent Claims (21, 22)
-
Specification