# US 10,769,064 B1 · Method for retrieving key value pairs and groups of key value pairs

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,769,064 B1
- Document ID: US10769064B1
- Status: Granted
- Kind: B1
- Application number: 16/226,641
- Filed: 2018-12-20
- Granted: 2020-09-08
- Earliest claimed: 2017-12-20
- Assignees: Pliops Ltd.
- Applicants: Pliops Ltd.
- Inventors: Moshe Twitto
- Web page: https://patentgrep.com/patent/US10769064B1

## CPC

- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 12/0692: {Multiconfiguration, e.g. local and global addressing}
- G06F 2212/1008: Correctness of operation, e.g. memory ordering
- G06F 2212/7207: management of metadata or control data
- G11C 16/0483: {comprising cells having several storage transistors connected in series}
- G11C 16/08: Address circuits; Decoders; Word-line control circuits
- G11C 16/26: Sensing or reading circuits; Data output circuits
- G11C 16/349: {Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G11C: STATIC STORES (semiconductor memory devices H10B)

## Abstract

A method for accessing a key-value pair stored in a SSD memory, the method may include receiving, by a SSD memory controller, an input key; applying a first hash function on an input key to provide a first address; reading, using the first address, an indicator that indicates whether (a) the input key is associated with a group of key-value pairs or whether (b) the input key is associated only with the key-value pair; retrieving, from the SSD memory, the values of the group associated with the input key, and extracting the value of the key-value pair, when the indicator indicates that the input key is associated with the group; and retrieving, from the SSD memory, a value of a key-value pair, when the indicator indicates that the input key is associated with the key-value pair.

## Claims

### Claim 1

A method for accessing a key-value pair that is stored in a solid-state drive (SSD) memory, the method comprises:
receiving, by a SSD memory controller, an input key;
applying a first hash function on an input key to provide a first address;
reading, using the first address, an indicator that indicates whether (a) the input key is associated with a group of key-value pairs or whether (b) the input key is associated only with the key-value pair;
retrieving, from the SSD memory, the values of the group associated with the input key, and extracting the value of the key-value pair, when the indicator indicates that the input key is associated with the group; and
retrieving, from the SSD memory, a value of a key-value pair, when the indicator indicates that the input key is associated with the key-value pair.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the indicator is a binary indicator, and wherein the reading comprises using the first address to access at least one entry of a binary table of indicators that has 1-bit long entries.

### Claim 3 (depends on 2)

The method according to claim 2, wherein the retrieving, from the SSD, of the values of the group comprises applying a second hush function on the first address to provide a second address; and retrieving the values of the group using a group key stored in the second address.

### Claim 4 (depends on 3)

The method according to claim 3, wherein the retrieving, from the SSD memory, of the values of the group comprises reading, using the second address, at least one entry of a second table that stores pointers to a group key table that stores group keys for retrieval of groups of key value pairs.

### Claim 5 (depends on 3)

The method according to claim 3, wherein the retrieving, from the SSD memory, of the values of the group comprises reading, using the second address, at least one entry of a group key table that stores group keys for retrieval of groups of key value pairs.

### Claim 6 (depends on 1)

The method according to claim 1, wherein the retrieving, from the SSD memory, of the values of the group comprises searching a tree of group keys.

### Claim 7 (depends on 1)

The method according to claim 1, wherein the retrieving, from the SSD memory, of the values of the group comprises searching a tree of pointers that point to group keys for retrieval of groups of key value pairs.

### Claim 8 (depends on 1)

The method according to claim 1, may include reading, using the first address, an entry of a hybrid table that stores the indicator and stores a pointer for retrieving a group key table that stores group keys for retrieval of groups of key value pairs, when the indicator indicates that the input key is associated with the group.

### Claim 9 (depends on 8)

The method according to claim 8, where the hybrid table comprises the group keys.

### Claim 10

A non-transitory computer readable medium that stores instructions that once executed by a system that comprises a solid-state drive (SSD) memory controller, causes the system to perform the steps of:
receiving, by the SSD memory controller, an input key;
applying, by the SSD memory controller, a first hash function on an input key to provide a first address;
reading, using the first address, an indicator that indicates whether (a) the input key is associated with a group of key-value pairs or whether (b) the input key is associated only with the key-value pair;
retrieving, from a SSD memory, the values of the group associated with the input key, and extracting the value of the key-value pair, when the indicator indicates that the input key is associated with the group; and
retrieving, from the SSD memory, a value of a key-value pair, when the indicator indicates that the input key is associated with the key-value pair.

### Claim 11 (depends on 10)

The non-transitory computer readable medium according to claim 10, wherein the indicator is a binary indicator, and wherein the reading comprises using the first address to access at least one entry of a binary table of indicators that has 1-bit long entries.

### Claim 12 (depends on 11)

The non-transitory computer readable medium according to claim 11, wherein the retrieving, from the SSD, of the values of the group comprises applying a second hush function on the first address to provide a second address; and retrieving the values of the group using a group key stored in the second address.

### Claim 13 (depends on 12)

The non-transitory computer readable medium according to claim 12, wherein the retrieving, from the SSD memory, of the values of the group comprises reading, using the second address, at least one entry of a second table that stores pointers to a group key table that stores group keys for retrieval of groups of key value pairs.

### Claim 14 (depends on 12)

The non-transitory computer readable medium according to claim 12, wherein the retrieving, from the SSD memory, of the values of the group comprises reading, using the second address, at least one entry of a group key table that stores group keys for retrieval of groups of key value pairs.

### Claim 15 (depends on 10)

The non-transitory computer readable medium according to claim 10, wherein the retrieving, from the SSD memory, of the values of the group comprises searching a tree of group keys.

### Claim 16 (depends on 10)

The non-transitory computer readable medium according to claim 10, wherein the retrieving, from the SSD memory, of the values of the group comprises searching a tree of pointers that point to group keys for retrieval of groups of key value pairs.

### Claim 17 (depends on 10)

The non-transitory computer readable medium according to claim 10, that stores instructions for reading, using the first address, an entry of a hybrid table that stores the indicator and stores a pointer for retrieving a group key table that stores group keys for retrieval of groups of key value pairs, when the indicator indicates that the input key is associated with the group.

### Claim 18

A solid-state drive (SSD) memory controller, that comprises at least one circuit that are configured to receive an input key; apply a first hash function on an input key to provide a first address; and read, using the first address, an indicator that indicates whether (a) the input key is associated with a group of key-value pairs or whether (b) the input key is associated only with the key-value pair; retrieve, from a SSD memory, the values of the group associated with the input key and extract the value of the key-value pair, when the indicator indicates that the input key is associated with the group; and retrieve, from the SSD memory, a value of a key-value pair, when the indicator indicates that the input key is associated with the key-value pair.

### Claim 19 (depends on 10)

The SSD memory controller according to claim 10, wherein the indicator is a binary indicator, and wherein the at least one circuit is configured to read the indicator by using the first address to access at least one entry of a binary table of indicators that has 1-bit long entries.

### Claim 20 (depends on 11)

The SSD memory controller according to claim 11, wherein the at least one circuit is configured to retrieve, from the SSD, of the values of the group by applying a second hush function on the first address to provide a second address; and retrieve the values of the group using a group key stored in the second address.
