IP Library Granted Patent US 9,367,600
Granted Patent B2
US 9,367,600 · App. 14/952,884 · Granted Jun 14, 2016

Policy-based storage structure distribution

Inventors: Jean-Noel Moyne (Palo Alto, CA); Suresh Subramani (Palo Alto, CA); Tom M. Kim (Palo Alto, CA)
Assignee: TIBCO Software Inc.
G06F17/30581G06F17/30174G06F17/30336G06F17/30486
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 9,367,600
App. No.
14/952,884
Filed
Nov 25, 2015
Granted
Jun 14, 2016
Kind
B2
Examiner
JACOB, AJITH
Art Unit
2161
USPC
707/610
Abstract

Policy-based storage and retrieval combined with a distribution algorithm results in automatic and even distribution of policy-based storage structures across a set of nodes and dynamic, automated homing or ownership of policy-based storage structures. Large numbers of policy-based storage structures may be distributed without manual administration, allowing for rapid creation and destruction of storage structures. The overall load may be distributed and balanced across the server pool. Multiple entries having the same key value in a database- or table-like structure allow for distribution of policy-based storage and retrieval by key value and for queue semantics to be utilized for microqueues in the large database- or table-like structure.

Claims (29)

1. A method of removing a leaving node from a collection of computing nodes of a distributed storage system, the method comprising:

the leaving node signaling to all other nodes in the collection of computing nodes that it is leaving the collection;

all the other nodes reading information from the leaving node;

all the other nodes synchronizing the information from the leaving node prior to the leaving node leaving the collection;

the leaving node leaving the collection of computing nodes, and

all the other nodes taking ownership of data associated with key values previously owned by the leaving node once the leaving node leaves the collection,

wherein all the other nodes reading information comprises all the other nodes receiving copies of the data associated with the key values owned by the leaving node, the date associated with the key values being the data whose ownership will be transferred from the leaving node to the other nodes once the leaving node leaves the collection.

2. The method of claim 1 , further comprising replicating key values previously replicated on the leaving node.

3. The method of claim 1 , wherein reading information from the leaving node further comprises calculating, using a consistent hashing algorithm, a distribution of key values over the collection of computing nodes excluding the leaving node.

4. A method for replicating data over a collection of computing nodes of a distributed storage system, the method comprising:

calculating a primary node for storing a policy-based storage structure associated with a key value;

calculating a secondary node for storing a copy of the policy-based storage structure associated with the key value; and

replicating the policy-based storage structure stored on the primary node and storing the copy of the policy-based storage structure on the secondary node,

wherein ownership of the policy-based storage structure is transferred from the primary node to the secondary node once the primary node leaves the collection.

5. The method of claim 4 , wherein the calculating the primary node and the calculating the secondary node comprises using a distribution algorithm having monotone behavior.

6. The method of claim 4 , wherein the calculating the primary node and the calculating the secondary node comprises using a consistent hashing algorithm.

7. The method of claim 6 , wherein the primary node comprises the node closest to a mapped key value associated with the policy-based storage structure on a consistent hashing scale, and wherein the secondary node comprises the next closest node to the mapped key value associated with the policy-based storage structure on the consistent hashing scale.

8. A method of adding a node to a collection of computing nodes of a distributed storage system, the method comprising:

joining a new node to the collection of computing nodes as a leech node;

receiving, at the leech node, information from all other active nodes in the collection of computing nodes;

synchronizing the leech node based on the received information; and

thereafter, promoting the leech node to an active node in the collection of computing nodes;

wherein the joining the new node as a leech node comprises the leech node obtaining a key space from all of the other active nodes in the collection of computing nodes;

wherein prior to promoting the leech node to an active node, the leech node is not an active node, and

wherein the receiving information comprises receiving copies of key values from all other active nodes, the key values being key values whose ownership will be transferred from the other active nodes to the leech node once the leech node once it becomes an active node.

9. The method of claim 8 , wherein the joining the new node as a leech node comprises the leech node interacting with the other active nodes in the collection of computing nodes.

10. The method of claim 8 , wherein the receiving information comprises reconciling data between the leech node and the other active nodes in the collection of computing nodes.

11. The method of claim 8 , wherein the receiving information comprises the leech node monitoring updated key values.

12. The method of claim 8 , wherein receiving information further comprises calculating, using a consistent hashing algorithm, a distribution of key values over the collection of computing nodes including the new node.

Assignments (16)
CHANGE OF NAME Recorded Jul 1, 2026
From: CLOUD SOFTWARE GROUP, INC.
To: CLOUD SOFTWARE GROUP, LLC
Reel/Frame 075874/0220 →
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
CHANGE OF NAME Recorded Feb 7, 2023
From: TIBCO SOFTWARE INC.
To: CLOUD SOFTWARE GROUP, INC.
Reel/Frame 062714/0634 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
RELEASE REEL 052115 / FRAME 0318 Recorded Oct 3, 2022
From: KKR LOAN ADMINISTRATION SERVICES LLC
To: TIBCO SOFTWARE INC.
Reel/Frame 061588/0511 →
RELEASE (REEL 038382 / FRAME 0242) Recorded Sep 30, 2022
From: JPMORGAN CHASE BANK, N.A.
To: TIBCO SOFTWARE INC.
Reel/Frame 061575/0018 →
RELEASE (REEL 054275 / FRAME 0975) Recorded May 7, 2021
From: JPMORGAN CHASE BANK, N.A.
To: TIBCO SOFTWARE INC.
Reel/Frame 056176/0398 →
SECURITY AGREEMENT Recorded Nov 2, 2020
From: TIBCO SOFTWARE INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 054275/0975 →
SECURITY AGREEMENT Recorded Mar 6, 2020
From: TIBCO SOFTWARE INC.
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 052115/0318 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2016
From: MOYNE, JEAN-NOEL; SUBRAMANI, SURESH; KIM, TOM M.
To: TIBCO SOFTWARE INC.
Reel/Frame 038603/0130 →
SECURITY AGREEMENT Recorded Apr 7, 2016
From: TIBCO SOFTWARE INC., AS PLEDGOR
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038382/0242 →
Continuity (3)
Continuation 12762249 · Apr 16, 2010
Provisional Application 61170079 · Apr 16, 2009
Related Publication 20160078117A1 · Mar 17, 2016