IP Library Granted Patent US 9,684,701
Granted Patent B2
US 9,684,701 · App. 14/495,806 · Granted Jun 20, 2017

Semantic replication

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,684,701
App. No.
14/495,806
Granted
Jun 20, 2017
Kind
B2
Abstract

Replicating data in a distributed database having a plurality of nodes is disclosed. Replicating includes receiving a semantic command at a local version of the database at a node, interpreting the semantic command, and applying the semantic command to the local version of the database.

Claims (57)

1. A method of replicating IP address assignment changes in a distributed database having a plurality of nodes, comprising:

receiving a semantic command at a first node having a first local version of the database, wherein the semantic command comprises a semantically expressed request to modify one or more IP address assignments in the database that allows for provisional modification of the first local version of the database before sending the semantic command to a master node having a master version of the database, wherein a change request to modify the distributed database is expressed as the semantic command, the semantic command being expressed as one of a predefined set of commands, wherein the receiving of the semantic command at the first node comprises:

receiving credentials of a user; and

determining whether to authorize the user based on the received credentials, the user being authorized in the event that the user has not been previously authorized within a predetermined time period; and

provisionally applying the semantic command to the first local version of the database using a processor before sending the semantic command to the master node, wherein the provisional applying the semantic command to the first local version of the database comprises modifying the first local version of the database before reconciling the modification with the master node, wherein the reconciling of the modification with the master comprises:

forwarding the received credentials to the master;

determining whether the modification would cause a conflict on the master, comprising:

determining whether the same user has been authorized on a second node within the predetermined time period; and

in the event that the modification would not cause a conflict, performing the modification on the master node.

2. A method as recited in claim 1 , wherein if the semantic command includes any IP address assignment changes that would result in an IP address assignment conflict with IP address assignment data stored in the master version of the database on the master node, then the semantic command is not applied to the master node.

3. A method as recited in claim 1 , further including interpreting the semantic command, including determining an operation associated with the semantic command, wherein the semantic command is defined by one or more instructions or operations.

4. A method as recited in claim 1 , further including sending the semantic command to the master node to reconcile the semantic command with the master version of the database based on any IP address assignment changes associated with the semantic command.

5. A method as recited in claim 1 , further including reconciling the semantic command with the master version of the database, wherein reconciling the semantic command with the master version of the database includes determining whether the semantic command includes any IP address assignment changes that would result in an IP address assignment conflict with IP address assignment data stored in the master version of the database on the master node.

6. A method as recited in claim 1 , wherein the first node is a passive node in a high availability pair.

7. A method as recited in claim 1 , further including translating the semantic command into a set of one or more semantic commands, wherein the semantic command has a meaning in a first context that is characteristic of a first node, and wherein the set of commands has a meaning in a second context that is characteristic of the second node.

8. A method as recited in claim 1 , wherein each of the plurality of nodes includes a semantic processor configured to interpret the semantic command and apply the semantic command to the local version of the database, and wherein a semantic change channel between each semantic processor is used to upgrade the semantic processor.

9. A method as recited in claim 1 , wherein each of the plurality of nodes includes a semantic processor configured to interpret the semantic command and apply the semantic command to the local version of the database, and wherein a semantic replication channel between each semantic processor is used to send and receive semantic commands.

10. A method as recited in claim 1 , wherein the semantic command is received over a semantic replication channel.

11. A method as recited in claim 1 , wherein each of the plurality of nodes includes a semantic translation processor configured to translate the semantic command so that it can be processed by a local semantic processor.

12. A method as recited in claim 1 , wherein the semantic command is determined not to have a conflict with the master version of the database, and further including sending the semantic command to the second node having a second local version of the database to replicate any IP address assignment changes associated with the semantic command on the second node.

13. A method as recited in claim 1 , wherein the semantic command is determined to result in a conflict with the master version of the database, and further including sending conflict status information to the first node, wherein the first node manages the conflict including backing out any of the IP address assignment changes associated with the semantic command.

14. A computer program product for replicating IP address assignment changes in a distributed database having a plurality of nodes, the computer program product being embodied in a non-transitory computer readable medium and comprising computer instructions for:

receiving a semantic command at a first node having a first local version of the database, wherein the semantic command comprises a semantically expressed request to modify one or more IP address assignments in the database that allows for provisional modification of the first local version of the database before sending the semantic command to a master node having a master version of the database, wherein a change request to modify the distributed database is expressed as the semantic command, the semantic command being expressed as one of a predefined set of commands, wherein the receiving of the semantic command at the first node comprises:

receiving credentials of a user; and

determining whether to authorize the user based on the received credentials, the user being authorized in the event that the user has not been previously authorized within a predetermined time period; and

provisionally applying the semantic command to the first local version of the database before sending the semantic command to the master node, wherein the provisional applying the semantic command to the first local version of the database comprises modifying the first local version of the database before reconciling the modification with the master node, wherein the reconciling of the modification with the master comprises:

forwarding the received credentials to the master;

determining whether the modification would cause a conflict on the master, comprising:

determining whether the same user has been authorized on a second node within the predetermined time period; and

in the event that the modification would not cause a conflict, performing the modification on the master node.

15. A computer program product as recited in claim 14 , wherein if the semantic command includes any IP address assignment changes that would result in an IP address assignment conflict with IP address assignment data stored in the master version of the database on the master node, then the semantic command is not applied to the master node.

16. A computer program product as recited in claim 14 , the computer program product further comprising computer instructions for interpreting the semantic command, including determining an operation associated with the semantic command, wherein the semantic command is defined by one or more instructions or operations.

17. A computer program product as recited in claim 14 , the computer program product further comprising computer instructions for sending the semantic command to the master node to reconcile the semantic command with the master version of the database based on any IP address assignment changes associated with the semantic command.

18. A computer program product as recited in claim 14 , the computer program product further comprising computer instructions for reconciling the semantic command with the master version of the database, wherein reconciling the semantic command with the master version of the database includes determining whether the semantic command includes any IP address assignment changes that would result in an IP address assignment conflict with IP address assignment data stored in the master version of the database on the master node.

19. A computer program product as recited in claim 14 , wherein the first node is a passive node in a high availability pair.

20. A computer program product as recited in claim 14 , the computer program product further comprising computer instructions for translating the semantic command into a set of one or more semantic commands, wherein the semantic command has a meaning in a first context that is characteristic of a first node, and wherein the set of commands has a meaning in a second context that is characteristic of the second node.

21. A computer program product as recited in claim 14 , wherein the semantic command is determined not to have a conflict with the master version of the database, and the computer program product further comprising computer instructions for sending the semantic command to the second node having a second local version of the database to replicate any IP address assignment changes associated with the semantic command on the second node.

22. A computer program product as recited in claim 14 , wherein the semantic command is determined to result in a conflict with the master version of the database, and the computer program product further comprising computer instructions for sending conflict status information to the first node, wherein the first node manages the conflict including backing out any of the IP address assignment changes associated with the semantic command.

23. A system for replicating IP address assignment changes in a distributed database having a plurality of nodes, comprising:

a processor configured to:

receive a semantic command at a first node having a first local version of the database, wherein the semantic command comprises a semantically expressed request to modify one or more IP address assignments in the database that allows for provisional modification of the first local version of the database before sending the semantic command to a master node having a master version of the database, wherein a change request to modify the distributed database is expressed as the semantic command, the semantic command being expressed as one of a predefined set of commands, wherein the receiving of the semantic command at the first node comprises to:

receive credentials of a user; and

determine whether to authorize the user based on the received credentials, the user being authorized in the event that the user has not been previously authorized within a predetermined time period; and

provisionally apply the semantic command to the first local version of the database before sending the semantic command to the master node, wherein the provisional applying the semantic command to the first local version of the database comprises modifying the first local version of the database before reconciling the modification with the master node, wherein the reconciling of the modification with the master comprises to:

forward the received credentials to the master;

determine whether the modification would cause a conflict on the master, comprising to:

determine whether the same user has been authorized on a second node within the predetermined time period; and

in the event that the modification would not cause a conflict, perform the modification on the master node; and

a memory coupled with the processor, wherein the memory provides the processor with instructions.

24. A system as recited in claim 23 , wherein if the semantic command includes any IP address assignment changes that would result in an IP address assignment conflict with IP address assignment data stored in the master version of the database on the master node, then the semantic command is not applied to the master node.

25. A system as recited in claim 23 , wherein the processor is further configured to interpret the semantic command, including determining an operation associated with the semantic command, wherein the semantic command is defined by one or more instructions or operations.

26. A system as recited in claim 23 , wherein the processor is further configured to send the semantic command to the master node to reconcile the semantic command with the master version of the database based on any IP address assignment changes associated with the semantic command.

27. A system as recited in claim 23 , wherein the processor is further configured to reconcile the semantic command with the master version of the database, wherein reconciling the semantic command with the master version of the database includes determining whether the semantic command includes any IP address assignment changes that would result in an IP address assignment conflict with IP address assignment data stored in the master version of the database on the master node.

28. A system as recited in claim 23 , wherein the first node is a passive node in a high availability pair.

29. A system as recited in claim 23 , wherein the processor is further configured to translate the semantic command into a set of one or more semantic commands, wherein the semantic command has a meaning in a first context that is characteristic of a first node, and wherein the set of commands has a meaning in a second context that is characteristic of the second node.

30. A system as recited in claim 23 , wherein the semantic command is determined not to have a conflict with the master version of the database, and wherein the processor is further configured to send the semantic command to the second node having a second local version of the database to replicate any IP address assignment changes associated with the semantic command on the second node.

31. A system as recited in claim 23 , wherein the semantic command is determined to result in a conflict with the master version of the database, and wherein the processor is further configured to send conflict status information to the first node, wherein the first node manages the conflict including backing out any of the IP address assignment changes associated with the semantic command.

Assignments (6)
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS (RELEASES RF 040575/0549) Recorded Dec 3, 2020
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: INFOBLOX INC.
Reel/Frame 054585/0914 →
FIRST LIEN SECURITY AGREEMENT Recorded Dec 2, 2020
From: INFOBLOX INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054615/0317 →
SECOND LIEN SECURITY AGREEMENT Recorded Dec 2, 2020
From: INFOBLOX INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054615/0331 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS (RELEASES RF 040579/0302) Recorded Oct 23, 2019
From: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
To: INFOBLOX, INC.
Reel/Frame 050809/0980 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 8, 2016
From: INFOBLOX INC.
To: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
Reel/Frame 040579/0302 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 7, 2016
From: INFOBLOX INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 040575/0549 →