US 11,797,510 B2
Key-value store and file system integration
Sanjay Subramanian Seshadri, Sunnyvale, CA (US); Arindam Banerjee, Fremont, CA (US); Manan Dahyabhai Patel, Sunnyvale, CA (US); Raymond Jordan Go, Burbank, CA (US); Anil Paul Thoppil, Pleasanton, CA (US); Ananthan Subramanian, San Ramon, CA (US); Santhosh Selvaraj, San Jose, CA (US); Nikul Y. Patel, San Jose, CA (US); Vikhyath Rao, Sunnyvale, CA (US); Meera Odugoudar, Milpitas, CA (US); and Kevin Daniel Varghese, San Jose, CA (US)
Assigned to NetApp, Inc., San Jose, CA (US)
Filed by NetApp Inc., Sunnyvale, CA (US)
Filed on Apr. 20, 2021, as Appl. No. 17/234,894.
Prior Publication US 2022/0335027 A1, Oct. 20, 2022
Int. Cl. G06F 16/22 (2019.01); G06F 16/21 (2019.01); G06F 16/248 (2019.01); G06F 16/2457 (2019.01); G06F 16/2455 (2019.01); G06F 16/215 (2019.01)
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
OG exemplary drawing
 
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.