IP Library Granted Patent US 9,596,305
Granted Patent B2
US 9,596,305 · App. 14/245,568 · Granted Mar 14, 2017

Systems and methods for distributed hash table contract renewal

Inventors: Abhishek Chauhan (Santa Clara, CA); Sandhya Gopinath (Bangalore, IN); Sandeep Kamath (Santa Clara, CA); Anil Shetty (Santa Clara, CA); Josephine Suganthi (Sunnyvale, CA)
Assignee: CITRIX SYSTEMS, INC.
H04L67/1097H04L29/08594H04L29/08882H04L67/142
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,596,305
App. No.
14/245,568
Granted
Mar 14, 2017
Kind
B2
Abstract

The present application is directed towards ASDR table contract renewal. In some embodiments, a core may cache an ASDR table entry received from an owner core such that when the entry is needed again the core does not need to re-request the entry from the owner core. As storing a cached copy of the entry allows the non-owner core to use an ASDR table entry without requesting the entry from the owner core, the owner core may be unaware of an ASDR table entry's use by a non-owner core. To ensure the owner core keeps the ASDR table entry alive, which the non-owner core has cached, the non-owner core may perform contract renewal for each of its recently used cached entries. The contract renewal method may include sending a message to the owner core that indicates which cached ASDR table entries the non-owner core has recently used or accessed. Responsive to receiving the message the owner core may reset a timeout period associated with the ASDR table entry.

Claims (35)

1. A method for renewing entries in an application-state, distributed replication table, the method comprising:

maintaining across each node in a cluster of nodes an application-state, distributed replication table comprising entries to track resources of applications across the cluster of nodes, each of the nodes in the cluster of nodes owning one or more portions of the application-state, distributed replication table;

storing, by a first node in the cluster of nodes, a cached copy of an entry from the application-state, distributed replication table owned by a second node in the cluster of nodes;

setting, by the second node in the cluster of nodes, a timeout period for the entry owned by the second node and cached by the first node;

determining, by the first node in the cluster nodes, that the cached copy of the entry was accessed;

transmitting, by the first node in the cluster of nodes to the second node, an indication that the cached copy of the entry was accessed; and

renewing, by the second node in the cluster of nodes, the timeout period.

2. The method of claim 1 , further comprising sending, by the second node in the cluster of nodes, a copy of the entry from the application-state, distributed replication table to the first node in the cluster of nodes.

3. The method of claim 2 , further comprising renewing, by the second node in the cluster of nodes, the timeout period responsive to sending the copy of the entry to the first node in the cluster of nodes.

4. The method of claim 1 , wherein determining, by the first node in the cluster of nodes, that the cached copy of the entry was accessed further comprises scanning a memory block of the first node at a predetermined frequency to determine if the cached copy of the entry was accessed.

5. The method of claim 1 , further comprising determining, by the first node of the cluster of nodes, the cached copy of the entry was not accessed.

6. The method of claim 5 , further comprising aging, by the first node of the cluster of nodes, the cached copy of the entry responsive to the entry not being accessed, wherein aging comprises incrementing a counter that indicates a number of times the cached copy of the entry has not been accessed.

7. The method of claim 6 , further comprising deleting, by the first node of the cluster of nodes, the cached copy of the entry responsive to the entry being aged a predetermined number of times.

8. The method of claim 1 , further comprising deleting, by the second node in the cluster of nodes, the entry when the timeout period expires.

9. The method of claim 1 , wherein the indication includes a copy of the cached copy of the entry.

10. The method of claim 1 , wherein each portion of the application-state, distributed replication table maintained by each of the nodes in the cluster of nodes is distributed across a plurality of cores within each node.

11. A system for renewing entries in an application-state, distributed replication table, the system comprising:

a cluster of nodes,

each of the cluster of nodes configured to maintain an application-state, distributed replication table comprising entries to track resources of applications across the cluster of nodes, each of the nodes in the cluster of nodes owning one or more portions of the application-state, distributed replication table,

wherein a first node of the cluster of nodes is configured to:

store a cached copy of an entry from the application-state, distributed replication table owned by a second node in the cluster of nodes;

determine that the cached copy of the entry was accessed;

transmit to the second node an indication that the cached copy of the entry was accessed;

wherein the second node is configured to:

set a timeout period for the entry owned by the second node and cached in the first node; and

renew the timeout period.

12. The system of claim 11 , wherein the second node is further configured to send a copy of the entry from the application-state, distributed replication table to the first node.

13. The system of claim 12 , wherein the second node is further configured to renew the timeout period responsive to sending the copy of the entry to the first node.

14. The system of claim 11 , wherein the first node is further configured to determine if the cached copy of the entry was accessed by scanning a memory block of the first node at a predetermined frequency to determine if the cached copy of the entry was accessed.

15. The system of claim 11 , wherein the first node is further configured to determine the cached copy of the entry was not accessed.

16. The system of claim 15 , wherein the first node is further configured to age the cached copy of the entry responsive to the cached copy of the entry not being accessed, wherein aging comprises incrementing a counter that indicates a number of times the cached copy of the entry has not been accessed.

17. The system of claim 16 , wherein the first node is further configured to delete the cached copy of the entry responsive to the entry being aged a predetermined number of times.

18. The system of claim 11 , wherein the second node is further configured to delete the entry when the timeout period expires.

19. The system of claim 11 , wherein the indication includes a copy of the cached copy of the entry.

20. The system of claim 11 , wherein each portion of the application-state, distributed replication table maintained by each of the nodes in the cluster of nodes is distributed across a plurality of cores within each node.

Assignments (9)
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 →
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 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2014
From: CHAUHAN, ABHISHEK; GOPINATH, SANDHYA; KAMATH, SANDEEP; SHETTY, ANIL; SUGANTHI, JOSEPHINE
To: CITRIX SYSTEMS, INC.
Reel/Frame 032658/0311 →
Continuity (2)
Provisional Application 61809335 · Apr 6, 2013
Related Publication 20140304361A1 · Oct 9, 2014