IP Library Granted Patent US 10,560,361
Granted Patent B2
US 10,560,361 · App. 15/403,140 · Granted Feb 11, 2020

Distributed database for synchronizing the accessibility of nodes and shared devices

Inventor: Jordan Rife (Austin, TX)
Assignee: WigWag Inc.
H04L43/106H04L45/02
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,560,361
App. No.
15/403,140
Granted
Feb 11, 2020
Kind
B2
Abstract

A technique for an access node to synchronize the accessibility of a plurality of access nodes within a network is described. The technique receives an accessibility update and/or device update from a remote node. For the accessibility update, the access node compares entries in the accessibility update to the local accessibility table. If entries in the accessibility update are more up-to-date than the local accessibility table, the access node adjusts the local accessibility table to reflect the updates. The local access node compares the node identifier, heartbeat, and timestamp to determine whether and entry in the local accessibility table is up-to-date. For the device update, the access node compares entries in the device update to the local device table. If entries in the device update are more up-to-date than the local device table, the access node adjusts the local device table to reflect the updates.

Claims (88)

1. A method for synchronizing accessibility of a plurality of access nodes, the method comprising:

receiving, at an access node, an accessibility update from a remote node, wherein the accessibility update comprises one or more heartbeats for one or more node identifiers;

determining whether a node identifier from the accessibility update matches at least one node identifier from an accessibility database, wherein the accessibility database is local to the access node;

determining whether the remote node is ranked via a particular degree of accessibility;

in accordance with a determination that the node identifier from the accessibility update matches the at least one node identifier from the accessibility database, determining whether a heartbeat associated with the node identifier from the accessibility update is greater than a heartbeat associated with the at least one node identifier from the accessibility database; and

in accordance with the determination that the heartbeat associated with the node identifier from the accessibility update is greater than the heartbeat associated with the node identifier from the accessibility database and that the remote node is ranked via the particular degree of accessibility, adjusting the heartbeat associated with the node identifier from the accessibility database via replacing the heartbeat associated with the node identifier from the accessibility database with the heartbeat associated with the node identifier from the accessibility update.

2. The method of claim 1 , further comprising:

in accordance with a determination that the node identifier from the accessibility update does not match the at least one node identifier from the accessibility database, inserting the node identifier and the heartbeat associated with the node identifier from the accessibility update into the accessibility database.

3. The method of claim 1 , wherein adjusting the heartbeat associated with the node identifier from the accessibility database further comprises:

generating a local timestamp corresponding to inserting the node identifier and the heartbeat associated with the node identifier from the accessibility update into the accessibility database; and

inserting the local timestamp into the accessibility database to reflect the adjustment of the heartbeat associated with the node identifier.

4. The method of claim 1 , further comprising:

in accordance with the determination that the heartbeat associated with the node identifier from the accessibility update is less than the heartbeat associated with the node identifier from the accessibility database:

inserting the at least one node identifier and the heartbeat from the accessibility database into a second accessibility update; and

transmitting the second accessibility update to the remote node.

5. The method of claim 1 , further comprising:

in accordance with the determination that the heartbeat associated with the node identifier from the accessibility update is equal to the heartbeat associated with the node identifier from the accessibility database:

determining whether a time difference from a last action associated with the node identifier exceeds a threshold value; and

inserting an inaccessibility indicator associated with the node identifier from the accessibility database.

6. The method of claim 1 , further comprising:

determining whether an inaccessibility indicator is associated with the node identifier from the accessibility database;

removing the inaccessibility indicator in accordance with the determination that the inaccessibility indicator is associated with the node identifier from the accessibility database;

calculating an elapsed time of inaccessibility of an access node associated with the node identifier from the accessibility database; and

storing the elapsed time of inaccessibility to a temporal database.

7. The method of claim 6 , further comprising weighting a threshold value based on an aggregation of elapsed time from the temporal database, wherein the threshold value indicates an amount of time the access node can be idle before the access node is considered inaccessible.

8. The method of claim 1 , further comprising:

receiving a device update from the remote node, wherein the device update comprises a set of node identifiers for one or more device identifiers;

determining whether a device identifier from the device update matches at least one device identifier from a device database, wherein the device database is local to the access node;

in accordance with a determination that the device identifier from the device update matches the at least one device identifier from the device database:

determining whether the set of node identifiers associated with the device identifier from the device update has non-intersecting devices to a set of node identifiers associated with the at least one device identifier from the device database; and

merging the set of node identifiers associated with the device identifier from the device update into the set of node identifiers associated with the at least one device identifier from the device database.

9. A non-transitory computer-readable storage medium comprising one or more programs for execution by one or more processors of an access node, the one or more programs including instructions to:

receive an accessibility update from a remote node, wherein the accessibility update comprises one or more heartbeats for one or more node identifiers;

determine whether a node identifier from the accessibility update matches at least one node identifier from an accessibility database, wherein the accessibility database is local to the access node;

determine whether the remote node is ranked via a particular degree of accessibility;

in accordance with a determination that the node identifier from the accessibility update matches the at least one node identifier from the accessibility database, determine whether a heartbeat associated with the node identifier from the accessibility update is greater than a heartbeat associated with the at least one node identifier from the accessibility database; and

in accordance with the determination that the heartbeat associated with the node identifier from the accessibility update is greater than the heartbeat associated with the node identifier from the accessibility database and that the remote node is ranked via the particular degree of accessibility, adjust the heartbeat associated with the node identifier from the accessibility database via a replacement of the heartbeat associated with the node identifier from the accessibility database with the heartbeat associated with the node identifier from the accessibility update.

10. The non-transitory computer-readable storage medium of claim 9 , wherein the instructions to adjust the heartbeat associated with the node identifier from the accessibility database further comprises instructions to:

generate a local timestamp corresponding to inserting the node identifier and the heartbeat associated with the node identifier from the accessibility update into the accessibility database; and

insert the local timestamp into the accessibility database to reflect the adjustment of the heartbeat associated with the node identifier.

11. The non-transitory computer-readable storage medium of claim 9 , wherein in accordance with the determination that the heartbeat associated with the node identifier from the accessibility update is less than the heartbeat associated with the node identifier from the accessibility database, the one or more programs include instructions to:

insert the at least one node identifier and heartbeat from the accessibility database into a second accessibility update; and

transmit the second accessibility update to the remote node.

12. The non-transitory computer-readable storage medium of claim 9 , wherein in accordance with the determination that the heartbeat associated with the node identifier from the accessibility update is equal to the heartbeat associated with the node identifier from the accessibility database, the one or more programs include instructions to:

determine whether a time difference from a last action associated with the node identifier exceeds a threshold value; and

insert an inaccessibility indicator associated with the node identifier from the accessibility database.

13. The non-transitory computer-readable storage medium of claim 9 , wherein the one or more programs include instructions to:

determine whether an inaccessibility indicator is associated with the node identifier from the accessibility database;

remove the inaccessibility indicator in accordance with the determination that the inaccessibility indicator is associated with the node identifier from the accessibility database;

calculate an elapsed time of inaccessibility of an access node associated with the node identifier from the accessibility database; and

store the elapsed time of inaccessibility to a temporal.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the one or more programs include instructions to heuristically weight a threshold value based on an aggregation of elapsed time from the temporal database, wherein the heuristically weighted threshold value corresponds to an amount of time the access node can be idle before the access node is considered inaccessible.

15. The non-transitory computer-readable storage medium of claim 9 , wherein the one or more programs include instructions to:

receive a device update from the remote node, wherein the device update comprises a set of node identifiers for one or more device identifiers;

determine whether a device identifier from the device update matches at least one device identifier from a device database, wherein the device database is local to the access node;

in accordance with a determination that the device identifier from the device update matches the at least one device identifier from the device database:

determine whether the set of node identifiers associated with the device identifier from the device update has non-intersecting devices to a set of node identifiers associated with the at least one device identifier from the device database; and

merge the set of node identifiers associated with the device identifier from the device update into the set of node identifiers associated with the at least one device identifier from the device database.

16. An electronic apparatus configured to synchronize accessibility of a plurality of access nodes at an access node, comprising:

one or more processors;

a memory coupled to the one or more processors; and

one or more programs stored in memory, the one or more programs including instructions executable by the one or more processors to:

receive an accessibility update from a remote node, wherein the accessibility update comprises one or more heartbeats for one or more node identifiers;

determine whether a node identifier from the accessibility update matches at least one node identifier from an accessibility database, wherein the accessibility database is local to the access node;

determine whether the remote node is ranked via a particular degree of accessibility;

in accordance with a determination that the node identifier from the accessibility update matches the at least one node identifier from the accessibility database, determine whether a heartbeat associated with the node identifier from the accessibility update is greater than a heartbeat associated with the at least one node identifier from the accessibility database; and

in accordance with the determination that the heartbeat associated with the node identifier from the accessibility update is greater than the heartbeat associated with the node identifier from the accessibility database and that the remote node is ranked via the particular degree of accessibility, adjust the heartbeat associated with the node identifier from the accessibility database via a replacement of the heartbeat associated with the node identifier from the accessibility database with the heartbeat associated with the node identifier from the accessibility update.

17. The electronic apparatus of claim 16 , wherein the one or more programs further include instructions to:

generate a local timestamp corresponding to inserting the node identifier and the heartbeat associated with the node identifier from the accessibility update into the accessibility database; and

insert the local timestamp into the accessibility database to reflect the adjustment of the heartbeat associated with the node identifier.

18. The electronic apparatus of claim 16 , wherein in accordance with the determination that the heartbeat associated with the node identifier from the accessibility update is less than the heartbeat associated with the node identifier from the accessibility database, the one or more programs further include instructions to:

insert the at least one node identifier and the heartbeat from the accessibility database into a second accessibility update; and

initiate transmission of the second accessibility update to the remote node.

19. The electronic apparatus of claim 16 , wherein in accordance with the determination that the heartbeat associated with the node identifier from the accessibility update is equal to the heartbeat associated with the node identifier from the accessibility database, the one or more programs further include instructions to:

determine whether a time difference from a last action associated with the node identifier exceeds a threshold value; and

insert an inaccessibility indicator associated with the node identifier from the accessibility database.

20. The electronic apparatus of claim 16 , wherein the one or more programs further include instructions to:

determine whether an inaccessibility indicator is associated with the node identifier from the accessibility database;

remove the inaccessibility indicator in accordance with the determination that the inaccessibility indicator is associated with the node identifier from the accessibility database;

calculate an elapsed time of inaccessibility of an access node associated with the node identifier from the accessibility database; and

store the elapsed time of inaccessibility to a temporal.

21. The electronic apparatus of claim 20 , wherein the one or more programs further include instructions to heuristically weigh a threshold value based on an aggregation of elapsed time from the temporal database, wherein the heuristically weighted threshold value corresponds to an amount of time the access node can be idle before the access node is considered inaccessible.

22. The electronic apparatus of claim 16 , wherein the one or more programs further include instructions to:

receive a device update from the remote node, wherein the device update comprises a set of node identifiers for one or more device identifiers;

determine whether a device identifier from the device update matches at least one device identifier from a device database, wherein the device database is local to the access node;

in accordance with a determination that the device identifier from the device update matches the at least one device identifier from the device database:

determine whether the set of node identifiers associated with the device identifier from the device update has non-intersecting devices to a set of node identifiers associated with the at least one device identifier from the device database; and

merge the set of node identifiers associated with the device identifier from the device update into the set of node identifiers associated with the at least one device identifier from the device database.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 24, 2020
From: WIGWAG INC.
To: ARM CLOUD TECHNOLOGY, INC.
Reel/Frame 054462/0049 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 041110 FRAME 0374. ASSIGNOR(S) HEREBY CONFIRMS THE CORRECT ASSIGNEE NAME AS WIGWAG INC.. Recorded Apr 4, 2019
From: RIFE, JORDAN
To: WIGWAG INC.
Reel/Frame 048807/0110 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2017
From: RIFE, JORDAN
To: WIGWAG, INC.
Reel/Frame 041110/0373 →
Continuity (1)
Related Publication 20180198698A1 · Jul 12, 2018