CPC G06F 16/2246 (2019.01) [G06F 16/215 (2019.01); G06F 16/217 (2019.01); G06F 16/248 (2019.01); G06F 16/24553 (2019.01); G06F 16/24573 (2019.01)] | 24 Claims |
1. A non-transitory machine readable medium comprising instructions, which when executed by a machine, causes the machine to:
maintain, within a storage device by a processor of the machine, a key-value store;
populate, by the processor, a log structured merge tree of the key-value store with a key corresponding to a content hash of a value data item stored separate from the key; and
perform, by the processor, a merge operation to merge keys, including the key, of a first sorted log, wherein value data items, including the value data item, associated with the keys are retained in an unmodified state as part of the merge operation to reduce write amplification, wherein the merge operation includes:
appending write operations during the merge operation to an end of an active append log and directing read operations to a frozen append log;
in response to an inode of the frozen append log completing a consistency point, performing the merge operation upon the frozen append log using block numbers obtained from the consistency point; and
in response to determining that instances of the key were separately logged within the log structured merge tree with first metadata and second metadata, merging the first metadata of a first instance of the key within the log structured merge tree with the second metadata of a second instance of the key within the log structured merge tree to create merged metadata for the key while retaining a state of a frozen copy of the first sorted log that is created by the merge operation.
|