Basics of Enterprise clustering¶
Tarantool Enterprise allows you to cluster Tarantool instances. An Enterprise cluster is a collection of Tarantool instances acting in concert. While a single Tarantool instance can leverage the performance of a single server and is vulnerable to failure, the cluster spans multiple servers, utilizes their cumulative CPU power, and is fault-tolerant.
To fully utilize the capabilities of the Tarantool Enterprise cluster, one has to develop applications keeping in mind they are to run in a cluster environment. Cluster-aware application development is not a trivial task, so Tarantool Enterprise bundle, as a software development kit (SDK), provides you with utilities and templates to help:
- easily set up a development environment for your applications;
- plug the necessary open and closed source Lua modules;
- pack the applications in an environment-independent way: together with module binaries and Tarantool executables.
The resulting package can be installed and started on one or multiple servers as one or multiple instantiated services, independent or organized into a cluster.
Tarantool Enterprise cluster provides your cluster-aware applications with the following key benefits:
- horizontal scalability and load balancing via built-in automatic sharding;
- asynchronous replication;
- automatic failover;
- centralized cluster control via GUI or API;
- automatic configuration synchronization;
- instance functionality segregation.
Tarantool Enterprise cluster can segregate functionality between instances via built-in and custom (user-defined) cluster roles. They can be toggled on and off for instances on the fly during cluster operation. This allows you to put different types of workloads (e.g., compute- and transaction-intensive ones) on different physical servers with dedicated hardware.
Additionally, Tarantool Enterprise has third-party database connectivity (Oracle, Microsoft SQL Server, IBM DB2) and a built-in audit log to help you harden security.