IP Library Granted Patent US 10,437,808
Granted Patent B2
US 10,437,808 · App. 13/328,682 · Granted Oct 8, 2019

RAM daemons

Inventors: Keith Peters (San Francisco, CA); Bryn Robert Dole (Sunnyvale, CA); Michael Markson (San Francisco, CA); Robert Michael Saliba (San Francisco, CA); Rich Skrenta (San Carlos, 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 10,437,808
App. No.
13/328,682
Granted
Oct 8, 2019
Kind
B2
Abstract

A method of managing a database system using a swarm database system that communicates a request to read data to at least a subset of nodes. Checking the identifier by each respective node in the subset of nodes to determine if the requested read data is stored in the node. Providing the read data to the first node if the respective node in the subset includes read data.

Claims (48)

1. A method comprising, at a swarm database system having a plurality of nodes each comprising one or more processors and memory, the memory of the plurality of nodes storing one or more programs to be executed by the one or more processors, 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, where each of the plurality of storage components is located within a unique node of the plurality of nodes;

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 read data 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 1 , 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 each comprising one or more processors and memory, the memory of the plurality of nodes storing one or more programs to be executed by the one or more processors, 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, where each of the plurality of storage components is located within a unique node of the plurality of nodes;

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 read data identifier;

retrieve the response to the request; and

provide the data to the first node.

10. The system of claim 9 , wherein the one or more nodes are 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 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.

15. The system of claim 9 , 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.

16. The system of claim 9 , 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.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2015
From: BLEKKO, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 035671/0719 →
RELEASE OF SECURITY INTEREST Recorded Jan 29, 2015
From: VENTURE LENDING & LEASING VI, INC.
To: BLEKKO, INC.
Reel/Frame 034842/0216 →
SECURITY AGREEMENT Recorded Jun 4, 2013
From: BLEKKO, INC.
To: VENTURE LENDING & LEASING VI, INC.
Reel/Frame 030548/0079 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2012
From: PETERS, KEITH; DOLE, BRYN ROBERT; MARKSON, MICHAEL; SALIBA, ROBERT MICHAEL; SKRENTA, RICH; TRUEL, ROBERT N.; LINDAHL, GREGORY B.
To: BLEKKO, INC.
Reel/Frame 027816/0052 →
Continuity (3)
Continuation PCTUS2010039395 · Jun 21, 2010
Provisional Application 61218889 · Jun 19, 2009
Related Publication 20120210047A1 · Aug 16, 2012