-
Notifications
You must be signed in to change notification settings - Fork 387
Description
Tarantool has two main operation modes:
- A script interpreter with a handy set of modules.
- Interactive REPL for debugging pleasure (it is default -- enabled when no command-line parameters are passed).
And, if we add tarantoolctl/tt tooling here:
- Start tarantool application as a service (server/instance/daemon).
- Connect to a remote instance with interactive REPL.
The main scenario is to start a service. And we want to support it natively.
A service usually has a declarative configuration: ini file, json or yaml config file.
Since Tarantool 1.6 our configuration way is to find APIs you need and write a script to:
- configure log and pid files
- configure data directories
- setup a database schema
- setup users/passwords/privileges
- bind binary protocol and console sockets
- configure the application
- ...
This approach is complicated for a user, increases amount of a boilerplace code, requires more guides how to cook it in the right way.
Tarantool 3.0 is 1.5*2.0 -- all the new features plus a declarative configuration.
Most of Tarantool based applications are not a single tarantool process, but a replicaset or a cluster of several replicasets. Sometimes even a set of such clusters.
We should look at the configuration as on a cluster configuration, not configs for individual instances. So, the config will define:
- global options
- per-group (cluster) options
- per-replicaset options
- per-instance options
- group/replicaset/instance topology
What is supposed to be changed in Tarantool 3.0.
- The new 'start as a service' mode, which is enabled with the
--name
(instance name) and--config
(configuration file) options. - The new default mode: show available startup modes.
tarantool -i
still provides REPL. - The new built-in
config
module to acquire and reload the configuration.
* [ ] https://github.com/tarantool/tarantool/issues/8613
* [ ] https://github.com/tarantool/tarantool/issues/8725
* [ ] https://github.com/tarantool/tarantool/issues/8778
* [ ] https://github.com/tarantool/tarantool/issues/8789
* [ ] https://github.com/tarantool/tarantool/issues/8810