IP Library Granted Patent US 10,970,335
Granted Patent B2
US 10,970,335 · App. 16/357,308 · Granted Apr 6, 2021

Access pattern-based distribution for distributed key-value stores

Inventors: Mansi Shah (San Jose, CA); Christian Dickmann (Kassel, DE); Chaitanya Datye (Mountain View, CA); Niket Kandya (San Jose, CA)
Assignee: VMware, Inc.
G06F16/9017G06F16/2228G06F16/9032
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,970,335
App. No.
16/357,308
Granted
Apr 6, 2021
Kind
B2
Abstract

Techniques for implementing access pattern-based distribution of key-value content in a distributed key-value store comprising a plurality of nodes are provided. In one set of embodiments, a node in the plurality of nodes can receive a request to create a key-value entry. The node can further determine whether the key-value entry is associated with a first (e.g., global) scope or a second (e.g., local) scope. If the key-value entry is associated with the first scope, the node can cause the key-value entry to be replicated on every node in the plurality of nodes. On the other hand, if the key-value entry is associated with the second scope, the node cause the key-value entry to be stored solely on that node.

Claims (56)

1. A method for implementing access pattern-based distribution of key-value content in a distributed key-value store comprising a plurality of nodes, the method comprising:

receiving, by a physical computer processor of a first node in the plurality of nodes, a first request to create a key-value entry wherein the first request to create a key-value entry includes an indication of whether the key-value entry is associated with a first scope or a second scope;

determining, by the physical computer processor of the first node, whether the key-value entry is associated with the first scope or the second scope based on the indication included in the request of whether the key-value entry is associated with the first scope or the second scope;

if the key-value entry is associated with the first scope based on the indication included in the request of whether the key-value entry is associated with the first scope or the second scope, causing, by the first node, the key-value entry to be replicated and stored in the physical memory or storage resource of every node in the plurality of nodes; and

if the key-value entry is associated with the second scope based on the indication included in the request of whether the key-value entry is associated with the first scope or the second scope, causing, by the first node, the key-value entry to be stored solely in the physical memory or storage resource of the first node.

2. The method of claim 1 wherein the determining comprises:

examining a configuration data structure that includes predefined mappings between key-value entry types and scopes.

3. The method of claim 1 wherein the determining comprises:

receiving, from a self-learning model executed by the first node, an indication of whether the key-value entry is associated with the first scope or the second scope.

4. The method of claim 3 wherein the self-learning model is configured to take into account likely access locality and access frequency of the key-value entry across the plurality of nodes.

5. The method of claim 4 wherein the self-learning model is further configured to take in account current network latencies between the plurality of nodes or a size of the key-value entry.

6. The method of claim 1 further comprising:

receiving, by the first node, a second request, subsequent to the first request, to lookup the key-value entry;

if the key-value entry is stored on the first node:

retrieving the key-value entry from a local memory or storage resource of the first node; and

if the key-value entry is not stored on the first node:

determining an owner node in the plurality of nodes where the key-value entry is stored; and

transmitting a request to the owner node for the key-value entry.

7. A non-transitory computer readable storage medium having stored thereon program code executable by a first node in a distributed key-value store comprising a plurality of nodes, the program code embodying a method for implementing access pattern-based distribution of key-value content in the distributed key-value store, the method comprising:

receiving a first request to create a key-value entry wherein the first request to create a key-value entry includes an indication of whether the key-value entry is associated with a first scope or a second scope;

determining whether the key-value entry is associated with the first scope or the second scope based on the indication included in the request of whether the key-value entry is associated with the first scope or the second scope;

if the key-value entry is associated with the first scope based on the indication included in the request of whether the key-value entry is associated with the first scope or the second scope, causing the key-value entry to be replicated on every node in the plurality of nodes; and

if the key-value entry is associated with the second scope based on the indication included in the request of whether the key-value entry is associated with the first scope or the second scope, causing the key-value entry to be stored solely on the first node.

8. The non-transitory computer readable storage medium of claim 7 wherein the determining comprises:

examining a configuration data structure that includes predefined mappings between key-value entry types and scopes.

9. The non-transitory computer readable storage medium of claim 7 wherein the determining comprises:

receiving, from a self-learning model executed by the first node, an indication of whether the key-value entry is associated with the first scope or the second scope.

10. The non-transitory computer readable storage medium of claim 9 wherein the self-learning model is configured to take into account likely access locality and access frequency of the key-value entry across the plurality of nodes.

11. The non-transitory computer readable storage medium of claim 10 wherein the self-learning model is further configured to take in account current network latencies between the plurality of nodes or a size of the key-value entry.

12. The non-transitory computer readable storage medium of claim 7 wherein the method further comprises:

receiving a second request, subsequent to the first request, to lookup the key-value entry;

if the key-value entry is stored on the first node:

retrieving the key-value entry from a local memory or storage resource of the first node; and

if the key-value entry is not stored on the first node:

determining an owner node in the plurality of nodes where the key-value entry is stored; and

transmitting a request to the owner node for the key-value entry.

13. A node in a distributed key-value store comprising a plurality of nodes, the node comprising:

a processor; and

a non-transitory computer readable medium having stored thereon program code for implementing access pattern-based distribution of key-value content in the distributed key-value store, the program code causing the processor to:

receive a request to create a key-value entry wherein the request to create a key-value entry includes an indication of whether the key-value entry is associated with a first scope or a second scope;

determine whether the key-value entry is associated with the first scope or the second scope based on the indication included in the request of whether the key-value entry is associated with the first scope or the second scope;

if the key-value entry is associated with the first scope based on the indication included in the request of whether the key-value entry is associated with the first scope or the second scope, cause the key-value entry to be replicated on every node in the plurality of nodes; and

if the key-value entry is associated with the second scope based on the indication included in the request of whether the key-value entry is associated with the first scope or the second scope, cause the key-value entry to be stored solely on the node.

14. The node of claim 13 wherein the program code for determining whether the key-value entry is associated with the first scope or the second scope comprises program code that causes the processor to:

examine a configuration data structure that includes predefined mappings between key-value entry types and scopes.

15. The node of claim 13 wherein the program code for determining whether the key-value entry is associated with the first scope or the second scope comprises program code that causes the processor to:

receive, from a self-learning model executed by the node, an indication of whether the key-value entry is associated with the first scope or the second scope.

16. The node of claim 15 wherein the self-learning model is configured to take into account likely access locality and access frequency of the key-value entry across the plurality of nodes.

17. The node of claim 16 wherein the self-learning model is further configured to take in account current network latencies between the plurality of nodes or a size of the key-value entry.

18. The node of claim 13 wherein the program code further causes the processor to:

receive a second request, subsequent to the first request, to lookup the key-value entry;

if the key-value entry is stored on the node:

retrieve the key-value entry from a local memory or storage resource of the node; and

if the key-value entry is not stored on the node:

determine an owner node in the plurality of nodes where the key-value entry is stored; and

transmit a request to the owner node for the key-value entry.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2019
From: SHAH, MANSI; DICKMANN, CHRISTIAN; DATYE, CHAITANYA; KANDYA, NIKET
To: VMWARE, INC.
Reel/Frame 048629/0666 →