Recently, we have gotten a lot of feedback about the fact that standing up an ArangoDB cluster “manually” is an awkward and error-prone affair. We have been aware of this for some time but always expected that most users running ArangoDB clusters would do so on Apache Mesos or DC/OS, where deployment is a breeze.
However, for various valid reasons, people do not want to use Apache Mesos and thus are back to square one with the problem of deploying an ArangoDB cluster without Apache Mesos.
So we have listened to this and have looked what other distributed databases offer, and have put together a tool called
arangodb (as opposed to
arangod) to help you. It essentially gives you the following experience:
You install ArangoDB in the usual way as a binary package. Then, on host A, simply do (in an empty directory):
This will use port 4000 to wait for colleagues (three are needed for a resilient agency). On host B, (can be the same as A), you do:
This will contact A on port 4000 and register. On host C (can be same as A or B), do:
This will contact A on port 4000 and register.
From the moment that three have joined, each will fire up an agent, a coordinator, and a DBserver — and the cluster is up. Ports are shown on the console.
Additional servers can be added in the same way.
If two or more of the
arangodb instances run on the same machine, one has to use the
--dataDir option to let each use a different directory.
arangodb program will find the ArangoDB executable and the other installation files automatically.
So far, the tool is experimental, but it works on Linux, OSX, and Windows and even allows users to mix different operating systems. One should use ArangoDB 3.1.4 or higher for it. The code can be found in this GitHub repository. The
README.md contains building, installation, and usage instructions.
Please give it a try, we are curious about your opinion and are looking forward to your feedback, be it positive or negative. You can let us know what you think by opening an issue in the relevant GitHub repository.
If people like this, we might bundle it with the distribution and maybe even make it the default way to launch ArangoDB manually.