Recently, we have got 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 due to our ArangoDB framework.
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.
Manual cluster set-up
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 binary package. Then, on host A simply do (in an empty directory):
This will use port 4000 to wait for colleagues (3 are needed for a resilient agency). On host B (can be the same as A), you do:
arangodb --join A
This will contact A on port 4000 and register. On host C (can be same as A or B), do:
arangodb --join A
This will contact A on port 4000 and register.
From the moment on when 3 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 under Linux, OSX and Windows and even allows 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.