5.6 KiB
HTTP Interface for Replication
@NAVIGATE_HttpReplication @EMBEDTOC{HttpReplicationTOC}
Replication
This is an introduction to ArangoDB's HTTP replication interface. The replication architecture and components are described in more details in @ref UserManualReplication.
The HTTP replication interface serves four main purposes:
- fetch initial data from a server (e.g. for a backup, or for the initial synchronisation of data before starting the continuous replication applier)
- administer the replication logger (starting, stopping, querying state)
- fetch the changelog from a server (used for incremental synchronisation of changes)
- administer the replication applier (starting, stopping, configuring, querying state)
Please note that all replication operations work on a database level. If an ArangoDB server contains more than one database, the replication system must be configured individually per database, and replicating the data of multiple databases will require multiple operations.
Replication Dump Commands
The inventory
method can be used to query an ArangoDB database's current
set of collections plus their indexes. Clients can use this method to get an
overview of which collections are present in the database. They can use this information
to either start a full or a partial synchronisation of data, e.g. to initiate a backup
or the incremental data synchronisation.
@anchor HttpReplicationInventory @copydetails triagens::arango::RestReplicationHandler::handleCommandInventory
The dump
method can be used to fetch data from a specific collection. As the
results of the dump command can be huge, dump
may not return all data from a collection
at once. Instead, the dump command may be called repeatedly by replication clients
until there is no more data to fetch. The dump command will not only return the
current documents in the collection, but also document updates and deletions.
To get to an identical state of data, replication clients should apply the individual parts of the dump results in the same order as they are served to them.
@anchor HttpReplicationDump @copydetails triagens::arango::RestReplicationHandler::handleCommandDump
The sync
method can be used by replication clients to connect an ArangoDB database
to a remote endpoint, fetch the remote list of collections and indexes, and collection
data.
It will thus create a local backup of the state of data at the remote ArangoDB database.
sync
works on a database level.
sync
will first fetch the list of collections and indexes from the remote endpoint.
It does so by calling the inventory
API of the remote database. It will then purge
data in the local ArangoDB database, and after start will transfer collection data
from the remote database to the local ArangoDB database. It will extract data from the
remote database by calling the remote database's dump
API until all data are fetched.
As mentioned, sync
will remove data from the local instance, and thus must be handled
with caution.
@anchor HttpReplicationSync @copydetails triagens::arango::RestReplicationHandler::handleCommandSync
Replication Logger Commands
The logger commands allow starting, starting, and fetching the current state of a database's replication logger.
@anchor HttpReplicationLoggerGetConfig @copydetails triagens::arango::RestReplicationHandler::handleCommandLoggerGetConfig
@CLEARPAGE @anchor HttpReplicationLoggerSetConfig @copydetails triagens::arango::RestReplicationHandler::handleCommandLoggerSetConfig
@CLEARPAGE @anchor HttpReplicationLoggerStart @copydetails triagens::arango::RestReplicationHandler::handleCommandLoggerStart
@CLEARPAGE @anchor HttpReplicationLoggerStop @copydetails triagens::arango::RestReplicationHandler::handleCommandLoggerStop
@CLEARPAGE @anchor HttpReplicationLoggerState @copydetails triagens::arango::RestReplicationHandler::handleCommandLoggerState
To query the latest changes logged by the replication logger, the HTTP interface
also provides the logger-follow
.
This method should be used by replication clients to incrementally fetch updates from an ArangoDB database.
@anchor HttpReplicationLoggerFollow @copydetails triagens::arango::RestReplicationHandler::handleCommandLoggerFollow
Replication Applier Commands
The applier commands allow to remotely start, stop, and query the state and configuration of an ArangoDB database's replication applier.
@anchor HttpReplicationApplierGetConfig @copydetails triagens::arango::RestReplicationHandler::handleCommandApplierGetConfig
@CLEARPAGE @anchor HttpReplicationApplierSetConfig @copydetails triagens::arango::RestReplicationHandler::handleCommandApplierSetConfig
@CLEARPAGE @anchor HttpReplicationApplierStart @copydetails triagens::arango::RestReplicationHandler::handleCommandApplierStart
@CLEARPAGE @anchor HttpReplicationApplierStop @copydetails triagens::arango::RestReplicationHandler::handleCommandApplierStop
@CLEARPAGE @anchor HttpReplicationApplierGetState @copydetails triagens::arango::RestReplicationHandler::handleCommandApplierGetState
Other Replication Commands
@anchor HttpReplicationServerId @copydetails triagens::arango::RestReplicationHandler::handleCommandServerId