IP Library Granted Patent US 11,176,114
Granted Patent B2
US 11,176,114 · App. 16/528,445 · Granted Nov 16, 2021

RAM daemons

Inventors: Rich Skrenta (San Carlos, CA); Bryn Robert Dole (Sunnyvale, CA); Michael Markson (San Francisco, CA); Keith Peters (San Francisco, CA); Robert Michael Saliba (San Francisco, CA); Robert N. Truel (San Carlos, CA); Gregory B. Lindahl (Sunnyvale, CA)
Assignee: International Business Machines Corporation
G06F16/2282G06F16/2228G06F16/2462G06F16/24554G06F16/273G06F16/285G06F16/951
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 11,176,114
App. No.
16/528,445
Granted
Nov 16, 2021
Kind
B2
Abstract

A method, according to one embodiment, includes identifying data received or generated by one of a plurality of nodes; replicating the data to a plurality of storage components; receiving, at a first node of the plurality of nodes, a request for the data; determining that a cache of the first node does not include the data; identifying a second node of the plurality of nodes that has an identifier indicating that the data is stored in the second node; requesting that the second node of the plurality of nodes service the request; determining that the second node of the plurality of nodes has not responded to the request; identifying a third node of the plurality of nodes that has the identifier; requesting that the third node of the plurality of nodes service the request; retrieving the response to the request; and providing the data to the first node.

Claims (47)

1. A method comprising, at a swarm database system having a plurality of nodes, where each of the plurality of nodes include a plurality of partitions mapped by a table stored within the node, the plurality of partitions creating a plurality of storage components within each of the nodes:

identifying data received or generated by one of the plurality of nodes;

replicating the data to a plurality of storage components;

receiving, at a first node of the plurality of nodes, a request for the data;

determining that a cache of the first node does not include the data;

identifying a second node of the plurality of nodes that has an identifier indicating that the data is stored in the second node, wherein the identifier includes at least one of a key-value pair and a row key;

requesting that the second node of the plurality of nodes service the request, in response to identifying that the second node has the identifier;

determining that the second node of the plurality of nodes has not responded to the request to service the request for the data within a predetermined time period;

identifying a third node of the plurality of nodes that has the identifier indicating that the data is stored in the third node;

requesting that the third node of the plurality of nodes service the request, in response to identifying that the third node has the identifier;

retrieving the response to the request; and

providing the data to the first node.

2. The method of claim 1 , further comprising checking a cache storage associated with each respective node in the plurality of nodes before checking other storage allocations of the respective node.

3. The method of claim 2 , further comprising managing one or more read operations by a reader daemon associated with each respective node in the plurality of nodes.

4. The method of claim 2 , wherein the cache storage is one of a group consisting of RAM, a server storage, Flash storage on a solid-state drive and Flash on a peripheral component interconnect express card.

5. The method of claim 2 , wherein the cache is managed by a cache daemon.

6. The method of claim 1 , further comprising grouping the plurality of nodes into a plurality of groups based on a physical location of each of the plurality of nodes, where each of the plurality of storage components to which data is replicated is located within a unique group of the plurality of groups.

7. The method of claim 6 , further comprising combining the plurality of groups into a plurality of zones based on one or more physical components that serve the plurality of zones, such that a subset of the plurality of zones that are served by a predetermined physical component are combined into a predetermined zone;

wherein each of the plurality of storage components to which data is replicated is located within a unique zone of the plurality of zones.

8. The method of claim 1 , further comprising:

identifying a predetermined node of the plurality of nodes that includes a storage component to which the data is replicated;

determining that requests for the data are to be sent to the predetermined node first before other nodes of the plurality of nodes that include a storage component to which the data is replicated; and

storing the data in a random access memory (RAM) cache of the predetermined node, in response to the determining.

9. A system comprising:

a swarm database system having a plurality of nodes, where each of the plurality of nodes include a plurality of partitions mapped by a table stored within the node, the plurality of partitions creating a plurality of storage components within each of the nodes, where the swarm database system is configured to:

identify data received or generated by one of the plurality of nodes;

replicate the data to a plurality of storage components;

receive, at a first node of the plurality of nodes, a request for the data;

determine that a cache of the first node does not include the data;

identify a second node of the plurality of nodes that has an identifier indicating that the data is stored in the second node, wherein the identifier includes at least one of a key-value pair and a row key;

request that the second node of the plurality of nodes service the request, in response to identifying that the second node has the identifier;

determine that the second node of the plurality of nodes has not responded to the request to service the request for the data within a predetermined time period;

identify a third node of the plurality of nodes that has the identifier indicating that the data is stored in the third node;

request that the third node of the plurality of nodes service the request, in response to identifying that the third node has the identifier;

retrieve the response to the request; and

provide the data to the first node.

10. The system of claim 9 , wherein the swarm database system is further configured to check a cache storage associated with each respective node in the plurality of nodes before checking other storage allocations of the respective node.

11. The system of claim 10 , further comprising, a reader daemon, associated with each respective node in the plurality of nodes, configured to manage one or more read operations.

12. The system of claim 10 , wherein the cache storage is one of a group consisting of, RAM, a server storage, Flash storage on a solid-state drive and Flash on a peripheral component interconnect express card.

13. The system of claim 10 , further comprising a cache daemon configured to manage the cache.

14. The system of claim 9 , wherein the swarm database system is further configured to group the plurality of nodes into a plurality of groups based on a physical location of each of the plurality of nodes, where each of the plurality of storage components to which data is replicated is located within a unique group of the plurality of groups.

15. The system of claim 14 , wherein the swarm database system is further configured to combine the plurality of groups into a plurality of zones based on one or more physical components that serve the plurality of zones, such that a subset of the plurality of zones that are served by a predetermined physical component are combined into a predetermined zone;

wherein each of the plurality of storage components to which data is replicated is located within a unique zone of the plurality of zones.

16. The system of claim 9 , wherein the swarm database system is further configured to:

identify a predetermined node of the plurality of nodes that includes a storage component to which the data is replicated;

determine that requests for the data are to be sent to the predetermined node first before other nodes of the plurality of nodes that include a storage component to which the data is replicated; and

store the data in a random access memory (RAM) cache of the predetermined node, in response to the determining.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2019
From: SKRENTA, RICH; DOLE, BRYN ROBERT; MARKSON, MICHAEL; PETERS, KEITH; SALIBA, ROBERT MICHAEL; TRUEL, ROBERT N.; LINDAHL, GREGORY B.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 050001/0194 →
Continuity (6)
Continuation 16127059 · Sep 10, 2018
Continuation 15063376 · Mar 7, 2016
Continuation 13328464 · Dec 16, 2011
Continuation PCTUS2010039395 · Jun 21, 2010
Provisional Application 61218889 · Jun 19, 2009
Related Publication 20190370243A1 · Dec 5, 2019