# US 8,543,546 B2 · Semantic replication

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,543,546 B2
- Document ID: US8543546B2
- Status: Granted
- Kind: B2
- Application number: 13/608,284
- Filed: 2012-09-10
- Published: 2013-03-07
- Granted: 2013-09-24
- Earliest claimed: 2005-09-21
- Assignees: Infoblox Inc.
- Applicants: Stuart M. Bailey; Ivan W. Pulleyn; Srinath Gutti
- Inventors: Stuart M. Bailey; Ivan W. Pulleyn; Srinath Gutti
- Web page: https://patentgrep.com/patent/US8543546B2

## CPC

- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 16/275: {Synchronous replication}
- H04L 61/5007: Internet protocol [IP] addresses
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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

### Claim 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;
provisionally applying the semantic command to the first local version of the database before sending the semantic command to the master node; and
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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 1)

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.

### Claim 4 (depends on 1)

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

### Claim 5 (depends on 1)

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 a second node.

### Claim 6 (depends on 1)

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.

### Claim 7 (depends on 1)

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.

### Claim 8 (depends on 1)

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.

### Claim 9 (depends on 1)

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

### Claim 10 (depends on 1)

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.

### Claim 11 (depends on 1)

A method as recited in claim 1, wherein the provisional modification comprises modifying the first local version of the database before reconciling the modification with the master node.

### Claim 12 (depends on 1)

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 comprising:
sending the semantic command to a 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.

### Claim 13 (depends on 1)

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 comprising:
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.

### Claim 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;
provisionally applying the semantic command to the first local version of the database before sending the semantic command to the master node; and
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.

### Claim 15 (depends on 14)

A computer program product as recited in claim 14, the computer program product further comprising 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.

### Claim 16 (depends on 14)

A computer program product as recited in claim 14, the computer program product further comprising 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.

### Claim 17 (depends on 14)

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

### Claim 18 (depends on 14)

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 a second node.

### Claim 19 (depends on 14)

A computer program product as recited in claim 14, wherein the provisional modification comprises modifying the first local version of the database before reconciling the modification with the master node.

### Claim 20 (depends on 14)

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 further comprising instructions for:
sending the semantic command to a 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.

### Claim 21 (depends on 14)

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 further comprising 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.

### Claim 22

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;
provisionally apply the semantic command to the first local version of the database before sending the semantic command to the master node;
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; and
a memory coupled with the processor, wherein the memory provides the processor with instructions.

### Claim 23 (depends on 22)

A system as recited in claim 22, 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.

### Claim 24 (depends on 22)

A system as recited in claim 22, 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.

### Claim 25 (depends on 22)

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

### Claim 26 (depends on 22)

A system as recited in claim 22, 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 a second node.

### Claim 27 (depends on 22)

A system as recited in claim 22, wherein the provisional modification comprises modifying the first local version of the database before reconciling the modification with the master node.

### Claim 28 (depends on 22)

A system as recited in claim 22, 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 a 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.

### Claim 29 (depends on 22)

A system as recited in claim 22, 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.
