IP Library Granted Patent US 11,936,723
Granted Patent B2
US 11,936,723 · App. 17/745,288 · Granted Mar 19, 2024

Systems and methods for geographically distributed node replication

Inventors: Panagiotis Gourgaris (Patras, GR); Ioannis Beredimas (Patras, GR)
Assignee: Citrix Systems, Inc.
H04L67/1021G06F16/273H04L67/1008H04L67/1095
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,936,723
App. No.
17/745,288
Granted
Mar 19, 2024
Kind
B2
Abstract

Systems and methods for geographically distributed node replication include a first node which receives a message from a client based on a proximity of the first node to the client, the message transmitted to the first node via anycast routing from the client. The first node may replicate the message to a first subset of the geographically distributed system of nodes based on a geographic proximity of nodes within the first subset. The first node may publish the message to a data feed of a message bus for the system of nodes, to cause at least one node of the system of nodes to receive the message from the first node, the at least one node outside the first subset and subscribing to the data feed of the first node.

Claims (43)

1. A method comprising:

receiving, by a first node of a geographically distributed system of nodes, a message from a client based on a proximity of the first node to the client, the message transmitted to the first node via anycast routing from the client;

replicating, by the first node, the message to a first subset of the geographically distributed system of nodes based on a geographic proximity of nodes within the first subset;

publishing, by the first node, the message to a data feed of a message bus for the system of nodes, to cause at least one node of the system of nodes to receive the message from the first node, the at least one node outside the first subset and subscribing to the data feed of the first node;

receiving, by the first node, one or more second messages from the client via anycast routing, the one or more second messages received during an outage condition at the first node;

updating, by the first node, a first data store of the first node based on the one or more second messages;

receiving, by the first node, a plurality of entries from a second data store of a second node of the first subset responsive to expiration of the outage condition; and

updating, by the first node, the first data store based on the plurality of entries from the second data store.

2. The method of claim 1 , wherein the data feed is a first data feed, the method further comprising:

subscribing, by the first node, to a second data feed of the message bus; and

receiving, by the first node, a second message from a second node via the second data feed.

3. The method of claim 2 , further comprising:

replicating, by the first node, the second message to the first subset of nodes.

4. The method of claim 1 , wherein the message comprises at least one of a read or write operation for a data store of the first node.

5. The method of claim 1 , wherein the geographically distributed set of nodes are grouped into subsets of nodes based on a proximity of the nodes within the subset, and wherein messages received by a respective node within a subset of nodes are replicated to other nodes within the subset of nodes.

6. The method of claim 1 , wherein each subset of the geographically distributed system of nodes includes at least one publisher node which publishes messages received by respective nodes of the subset to the message bus.

7. The method of claim 1 , wherein the first node is included in the first subset and a third subset based on a geographic proximity of the first node to nodes of the first subset and nodes of the third subset.

8. The method of claim 7 , wherein replicating the message comprises replicating, by the first node, the message to the first subset and the third subset.

9. A system of geographically distributed nodes, the system comprising:

a first node comprising a processor which is configured to:

receive a message from a client based on a proximity of the first node to the client, the message transmitted to the first node via anycast routing from the client;

replicate the message to a first subset of the geographically distributed system of nodes based on a geographic proximity of nodes within the first subset;

publish the message to a data feed of a message bus for the system of nodes, to cause at least one node of the system of nodes to receive the message from the first node, the at least one node outside the first subset and subscribing to the data feed of the first node;

receive one or more second messages from the client via anycast routing, the one or more second messages received during an outage condition at the first node;

update a first data store of the first node based on the one or more second messages during the outage condition;

receive a plurality of entries from a second data store of a second node of the first subset responsive to expiration of the outage condition; and

update the first data store based on the plurality of entries from the second data store.

10. The system of claim 9 , wherein the data feed is a first data feed, and wherein the processor of the first node is further configured to:

subscribe to a second data feed of the message bus; and

receive a second message from a second node via the second data feed.

11. The system of claim 10 , wherein the processor of the first node is further configured to replicate the second message to the first subset of nodes.

12. The system of claim 9 , wherein the message comprises at least one of a read or write operation for a data store of the first node.

13. The system of claim 9 , wherein the geographically distributed set of nodes are grouped into subsets of nodes based on a proximity of the nodes within the subset, and wherein messages received by a respective node within a subset of nodes are replicated to other nodes within the subset of nodes.

14. The system of claim 9 , wherein each subset of the geographically distributed system of nodes includes at least one publisher node which publishes messages received by respective nodes of the subset to the message bus.

15. The system of claim 9 , wherein the first node is included in the first subset and a third subset based on a geographic proximity of the first node to nodes of the first subset and nodes of the third subset, and the processor of the first node is configured to replicate the message to the first subset and the third subset.

16. A non-transitory computer readable medium storing instructions that, when executed by one or more processors of a first node, cause the one or more processors of the first node to:

receive a message from a client based on a proximity of the first node to the client, the message transmitted to the first node via anycast routing from the client;

replicate the message to a first subset of a geographically distributed system of nodes based on a geographic proximity of nodes within the first subset;

publish the message to a data feed of a message bus for the system of nodes, to cause at least one node of the system of nodes to receive the message from the first node, the at least one node outside the first subset and subscribing to the data feed of the first node;

receive one or more second messages from the client via anycast routing, the one or more second messages received during an outage condition at the first node;

update a first data store of the first node based on the one or more second messages during the outage condition;

receive a plurality of entries from a second data store of a second node of the first subset responsive to expiration of the outage condition; and

update the first data store based on the plurality of entries from the second data store.

Assignments (3)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2022
From: GOURGARIS, PANAGIOTIS; BEREDIMAS, IOANNIS
To: CITRIX SYSTEMS, INC.
Reel/Frame 059920/0259 →
Continuity (2)
Continuation PCTGR2022000023 · Apr 15, 2022
Related Publication 20230336623A1 · Oct 19, 2023