sleet 0.1.0

A fleet manager for SlateDB databases
Documentation

Sleet

Sleet is a lightweight fleet manager for SlateDB databases. It coordinates nodes through object storage, assigns per-database services, and runs SlateDB maintenance work such as garbage collection, distributed compaction, and mirroring.

Quick start

Install the CLI from crates.io:

cargo install sleet --locked

Register a SlateDB database:

sleet register s3://path/to/sleet/state s3://app-data/db1

Start a node:

sleet run s3://path/to/sleet/state --node-id sleet-1

Check fleet status:

sleet status s3://path/to/sleet/state

The same operations are available through the Rust API:

use sleet::{Fleet, StatusOptions};

# async fn example() -> Result<(), sleet::Error> {
let fleet = Fleet::open("s3://path/to/sleet/state")?;
let status = fleet.status(StatusOptions::default()).await?;
println!("{} databases", status.databases.len());
# Ok(())
# }

By default, nodes offer all services:

gc,compactor-coordinator,compaction-workers,mirror

You can run specialized nodes with --services:

sleet run s3://path/to/sleet/state \
  --node-id worker-1 \
  --services compaction-workers

Documentation

See the following directories for more information:

  • Changelog: Release history.
  • docs: Sleet documentation.
  • examples: Example configuration files.
  • rfcs: Sleet design documents.
  • schemas: CLI, configuration, and heartbeat file JSON schemas.

License

MIT