Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Running dynomited

Everything you need to run the dynomited server: the config file format, the command-line flags, validation, daemonization, and signals. The authoritative flag reference is dynomited(8).

The configuration file

dynomited is configured by a YAML file, one top-level key naming the pool. The smallest working single-node config:

dyn_o_mite:
  listen: 127.0.0.1:8102
  dyn_listen: 127.0.0.1:8101
  tokens: '101134286'
  servers:
  - 127.0.0.1:22122:1
  data_store: 0

Start it:

cargo run -p dynomited -- --conf-file my.yml
# or, from an installed binary:
dynomited --conf-file my.yml

Sample configs live in the test fixtures

Working configs for single-node, two-node, multi-datacenter, memcache, and secure setups are in crates/dynomite/tests/fixtures/conf/. They are exercised by the test suite, so they are guaranteed to parse.

Key fields

listen
The client-facing address (RESP / memcache clients connect here).
dyn_listen
The DNODE peer plane address (other nodes connect here). See DNODE.
servers
The backing store endpoint(s), as host:port:weight.
data_store
0 = valkey/redis, 1 = memcache, 2 = dyniak. See Configuration.
tokens
The token(s) this node owns on the ring.
datacenter / rack
This node's placement; drives replication and consistency.
dyn_seeds
Peers to gossip with, as host:port:rack:dc:token.

A two-node config adds placement and a seed pointing at the other node:

dyn_o_mite:
  datacenter: dc
  rack: rack
  listen: 127.0.0.1:8102
  dyn_listen: 127.0.0.1:8101
  dyn_seeds:
  - 127.0.0.2:8101:rack:dc:1383429731
  servers:
  - 127.0.0.1:22122:1
  tokens: '12345678'
  data_store: 0
  stats_listen: 0.0.0.0:22222

See Your First Cluster for a full hands-on walk-through, and Configuration for every field.

Validate before you start

--test-conf parses and validates the file and exits without binding any socket. Use it in CI and before a rolling restart:

dynomited --conf-file my.yml --test-conf && echo ok

Common flags

FlagMeaning
-c, --conf-file <F>The YAML config to load.
-t, --test-confValidate config and exit.
-d, --daemonizeFork twice, become a session leader, redirect stdio.
-v, --verbosity <N>Log verbosity, 0..=11 (default 5).
-p, --pid-file <F>Write a PID file.
-D, --describe-statsPrint the stats catalogue and exit.
--log-format <fmt>Log output format.
-V, --versionVersion and exit.

The complete list, with every flag and its default, is in dynomited(8) and dynomited --help.

Daemonizing and PID files

dynomited --conf-file my.yml --daemonize --pid-file /run/dynomited.pid

--daemonize double-forks, becomes a session leader, and redirects stdio to /dev/null. Pair it with --pid-file so a supervisor can find and signal the process.

Under a service manager

When running under systemd or another supervisor that manages the process lifecycle, prefer running in the foreground (no --daemonize) and let the supervisor handle backgrounding, restart, and logging.

Signals

dynomited handles the standard termination signals for a clean shutdown -- it stops accepting new connections, drains in-flight requests, and closes the backend and peer connections before exiting. Send SIGTERM (or SIGINT in the foreground) to trigger it.

Fast restarts and the stats port

On a very fast kill-and-relaunch, a listening socket can briefly linger. Dynomite sets SO_REUSEADDR on all its listeners, including the stats port, so a prompt rebind succeeds. If you script restarts, wait for the process to actually exit before relaunching rather than assuming a fixed sleep is enough.

Where to go next