IP Library Granted Patent US 10,929,401
Granted Patent B2
US 10,929,401 · App. 14/951,469 · Granted Feb 23, 2021

Policy-based storage structure distribution

Inventors: Jean-Noel Moyne (Palo Alto, CA); Suresh Subramani (Palo Alto, CA); Tom M. Kim (Palo Alto, CA); Firat Kart (Palo Alto, CA)
Assignee: TIBCO SOFTWARE INC.
G06F16/24554G06F16/1824G06F16/27
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,929,401
App. No.
14/951,469
Granted
Feb 23, 2021
Kind
B2
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 (32)

1. A method for distributing policy-based data structures over a system of one or more servers installed on one or more computing devices, the method comprising:

determining at least one policy-based data structure from a space, the determining comprising:

identifying data entries in the space;

determining key values of the data entries; and

mapping the at least one policy-based data structure to one of a node, node cluster, server, and server cluster in the system of one or more servers, the mapping comprising using a distribution algorithm to create node identifiers using node values and microqueues using the key values;

wherein the mapping the at least one policy-based data structure comprises distributing microqueues over the system of one or more servers;

wherein at least one microqueue comprises at least two data entries with each data entry having a same key value;

wherein a microqueue identifier maps to the same key value and to a node in the system of one or more servers.

2. The method of claim 1 , wherein the mapping comprises using a consistent hashing algorithm.

3. The method of claim 1 , wherein the mapping comprises:

using a consistent hashing algorithm to map nodes in the system of one or more servers to a scale;

using the consistent hashing algorithm to map the at least one policy-based data structure to the scale;

determining whether the at least one policy-based data structure is assigned to a node in the system of one or more servers;

in response to determining the at least one policy-based data structure is not assigned to a node in the system of one or more servers, assigning the at least one policy-based data structure to a closest node in the system of one or more servers, the closest node being the node mapped closest to the policy-based data structure on the scale.

4. The method of claim 3 , wherein the using a consistent hashing algorithm to map nodes in the system of one or more servers creates a distributed fault-tolerant system of one or more servers.

5. The method of claim 3 , wherein the using a consistent hashing algorithm to map nodes in the system of one or more servers to a scale results in a substantially even distribution of nodes.

6. The method of claim 3 , wherein the using a consistent hashing algorithm to map nodes in the system of one or more servers to a scale results in a substantially uneven distribution of nodes.

7. The method of claim 1 , wherein the determining at least one policy-based data structure in the space comprises determining a plurality of policy-based data structures by grouping data entries in the space based on each data entry's key value, and wherein the mapping the plurality of policy-based data structures comprises:

using a consistent hashing algorithm to map nodes in the system of one or more servers to a scale;

using the consistent hashing algorithm to map the plurality of policy-based data structures to the scale, wherein each of the plurality of policy-based data structures comprises a grouping of data entries having a same key value, and wherein the mapping the plurality of policy-based data structures to the scale comprises mapping the key values of each of the plurality of policy-based data structures to the scale; and

assigning the plurality of policy-based data structures to the mapped nodes by assigning each of the policy-based data structures to a node mapped closest to it on the scale.

8. The method of claim 1 , wherein the mapping the at least one policy-based data structure results in a substantially even distribution of policy-based data structures over a set of nodes or servers.

9. A method for distributing policy-based data structures over a system of one or more servers installed on one or more computing devices, the method comprising:

determining at least one policy-based data structure from a space, the determining comprising:

identifying at least one data entry in the space;

determining a key value of the at least one data entry;

mapping the at least one policy-based data structure to one of a node, node cluster, server, and server cluster in the system of one or more servers, the mapping comprising using a distribution algorithm considering the key value;

wherein the mapping comprises:

using a consistent hashing algorithm to map nodes in the system of one or more servers to a scale;

using the consistent hashing algorithm to map the at least one policy-based data structure to the scale;

determining whether the at least one policy-based data structure is assigned to a node in the system of one or more servers;

in response to determining the at least one policy-based data structure is not assigned to a node in the system of one or more servers, assigning the at least one policy-based data structure to a closest node in the system of one or more servers, the closest node being the node mapped closest to the policy-based data structure on the scale.

Assignments (16)
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 →
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 →
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 →
CHANGE OF NAME Recorded Feb 7, 2023
From: TIBCO SOFTWARE INC.
To: CLOUD SOFTWARE GROUP, INC.
Reel/Frame 062714/0634 →
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 →
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2015
From: KART, FIRAT
To: TIBCO SOFTWARE INC.
Reel/Frame 037194/0939 →
Continuity (3)
Continuation In Part 12762249 · Apr 16, 2010
Provisional Application 61170079 · Apr 16, 2009
Related Publication 20160078065A1 · Mar 17, 2016