US 10,891,074 B2
Key-value storage device supporting snapshot function and operating method thereof
Yong-Hwa Lee, Seoul (KR); Young-Ho Park, Anyang-si (KR); Byung-Ki Lee, Hwaseong-si (KR); Hyung-Chul Jang, Suwon-si (KR); Je-Kyeom Jeon, Siheung-si (KR); and Sung-Kug Cho, Hwaseong-si (KR)
Assigned to Samsung Electronics Co., Ltd., Suwon-si (KR)
Filed by SAMSUNG ELECTRONICS CO., LTD., Suwon-si (KR)
Filed on Aug. 6, 2018, as Appl. No. 16/55,203.
Claims priority of application No. 10-2017-0121312 (KR), filed on Sep. 20, 2017.
Prior Publication US 2019/0087130 A1, Mar. 21, 2019
Int. Cl. G06F 3/06 (2006.01); G06F 11/14 (2006.01); G06F 16/901 (2019.01); G06F 16/23 (2019.01)
CPC G06F 3/0659 (2013.01) [G06F 3/065 (2013.01); G06F 3/0614 (2013.01); G06F 3/0679 (2013.01); G06F 3/0685 (2013.01); G06F 11/1448 (2013.01); G06F 16/2358 (2019.01); G06F 16/901 (2019.01); G06F 2201/84 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method, comprising:
a key-value storage device receiving a first command from a host, the first command including a first key, a first value, and a first snapshot identification (ID);
in response to the received first command, the key-value storage device generating a first snapshot entry;
the key-value storage device receiving a second command from the host, the second command including the first key, a second value, and a second snapshot ID; and
in response to the received second command, the key-value storage device generating a second snapshot entry,
wherein the key-value storage device further comprises a mapping table memory into which a mapping table storing the first and second snapshot entries is loaded,
wherein the first snapshot entry includes the first snapshot ID, the first key, a first physical address in a non-volatile memory of the key-value storage device at which the first value is written, and one of a first flag and a first link region, and
wherein the second snapshot entry includes the second snapshot ID, the first key, a second physical address in the non-volatile memory of the key-value storage device at which the second value is written, and one of a second flag and a second link region,
wherein when the first snapshot entry includes the first flag and the second snapshot entry includes the second flag, the first flag has a first flag value indicating that the first snapshot entry is not the latest snapshot entry, and the second flag has a second flag value indicating that the second snapshot entry is the latest snapshot entry, and
wherein when the first snapshot entry includes the first link region and the second snapshot entry includes the second link region, the first and second snapshot entries are implemented as a linked list in an order of the second snapshot entry to the first snapshot entry and the second link region is configured to store therein a memory address in the mapping table memory at which the first snapshot entry is stored.