System and methods for multi-level key-value store
AssigneeSamsung Electronics Co., Ltd.
InventorsInseok Stephen CHOI, Byoung Young AHN, Yang Seok KI
Life of this patent
Estimating the term…
Abstract
A multi-level cache system may include a server (105) with a processor (110) and memory (115). The memory (115) may include a database cache system (140) for use with a distributed database system. The server (105) may also include a Solid State Drive (130, 135) that may include a key-value store (320, 325, 330, 335) and a second storage device (120) that may store a backend database (125). The key-value store (320, 325, 330, 335) may act as a second level cache to the database cache system (140).
Claims20
A multi-level cache system, comprising:
- a server (105);
- a processor (110) on the server (105);
- a memory (115) on the server (105);
- a key-value cache system (140) installed in the memory (115), the key-value cache system (140) operative to store a first key-value pair (305);
- a Solid State Drive (SSD) (130, 135), including a key-value store (320, 325, 330, 335), the key-value store (320, 325, 330, 335) operative to store a second key-value pair (340);
- and
- a second storage device (120), including a backend database (125),
- wherein the key-value store (320, 325, 330, 335) operates as a second level cache for the key-value cache system (140) in the memory (115).
A method, comprising:
- receiving (1305) a request (705) to access a target value, the request (705) including a target key (715);
- determining (1310) if a key-value pair (305, 340, 605) including the target key (715) exists in a key-value cache (140);
- if the key-value pair (305, 340, 605) including the target key (715) does not exist in the key-value cache (140), determining (1320) if the key-value pair (305, 340, 605) including the target key (715) exists in a key-value store (320, 325, 330, 335);
- and
- accessing (1325) the target value from the key-value pair (305, 340, 605) using the target key (715) if the key-value pair (305, 340, 605) exists in the key-value store (320, 325, 330, 335).
A method according to statement 14, further comprising adding (1330) the target key (715) and the target value as the key-value pair (305, 340, 605) to the key-value cache (140).
A method, comprising:
- determining (1405) a first capacity of a key-value cache (140) in a memory (115) in a multi-level cache system;
- determining (1410) a second capacity of a key-value store (320, 325, 330, 335) in the multi-level cache system;
- determining (1415, 1460) a first set of requirements for a first namespace and a second set of requirements for a second namespace;
- calculating (1420) a first portion of the memory (115) for the first namespace and a second portion of the memory (115) for the second namespace;
- calculating (1425) a third portion of the key-value store (320, 325, 330, 335) for the first namespace and a fourth portion of the key-value store (320, 325, 330, 335) for the second namespace;
- allocating (1430) the first portion of the memory (115) for the first namespace and the second portion of memory (115) for the second namespace;
- and
- allocating (1435) the third portion of the key-value store (320, 325, 330, 335) for the first namespace and the fourth portion of the key-value store (320, 325, 330, 335) for the second namespace.
Dependencies are inferred from the claim text.