Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank
No. 1439Tools index

Previous survey · No. 1449 ·

Pricing
Open Source
Type
TOOL
Builder
tempoxyz
GitHub
52 stars
Date

About

Fast filesystem snapshot and rollback tool built in Rust for benchmarking workflows.

What it does

Schelk keeps a pristine block device beside a working device used for repeated benchmarks. A Linux write-tracking layer records which blocks change without redirecting normal reads or writes. Between runs, Schelk copies only those changed blocks from the pristine device. It can also promote the working state into a new baseline.

Why it's ranked here

Schelk solves a narrow measurement problem with a technically coherent design. Benchmarks run on a plain filesystem and real storage topology, while recovery work scales with changed data rather than total volume size. That precision comes with substantial hardware, privilege, and operational demands, so its value depends on whether storage-layer variance genuinely matters.

What's good

The tracking layer records writes without moving data, caching it, or redirecting input and output. Incremental restoration copies only changed block ranges, and promotion supports intentional baseline updates after migrations or snapshot loads. Schelk also checks block devices, metadata capacity, volume identity, concurrent operation locks, and destructive actions before proceeding.

Tradeoffs

It requires root access, two dedicated equal-size devices, a RAM disk, Linux device-mapper support, and several external utilities. A reboot or power loss destroys tracking metadata and forces a full copy. Workloads that rewrite most of the dataset gain little. It also cannot restore controller caches, flash mappings, wear leveling, or garbage collection state.

How to use it well

Use Schelk for Linux database or blockchain benchmarks with large baselines and relatively sparse writes, especially when snapshot overhead would obscure small performance changes. Reserve both devices, prevent outside mounts, and use promotion only for deliberate baseline changes. It does not replace drive preconditioning, warmups, steady-state measurement, or general-purpose storage snapshots.

Technical notes+

Cargo.toml defines a Rust 2024 CLI package with Tokio, Clap, nix, quick-xml, io-uring, SHA-256, and JSON state dependencies. src/cli.rs exposes initialization, full recovery, mount, incremental recovery, restore, promotion, and status commands. src/dmera.rs creates the dm-era mapping, checkpoints eras, invokes era_invalidate, and parses its XML block ranges. src/io/uring.rs implements direct, aligned, multiring copying with separate profiles for sequential and sparse work. src/state.rs persists JSON atomically with fsync and rename, while an exclusive flock prevents concurrent operations. src/main.rs ignores normal termination signals during volume-changing sequences to reduce inconsistent intermediate states.

Observed

License
MIT OR Apache-2.0
Primary language
Rust, using the 2024 edition
Install surface
Command-line tool installed from source with Cargo; no binary releases are provided
Interface
CLI with initialization, mount, recovery, restore, promotion, full recovery, and status commands
Platform support
Linux with device-mapper and the dm-era kernel target
System dependencies
Requires dmsetup, era_invalidate, and mkfs.ext4 for fresh ext4 initialization

Read from README.md, Cargo.toml, src/cli.rs, src/main.rs, src/cmd.rs, src/env.rs, src/dmera.rs, src/error.rs, src/mount.rs, src/state.rs, src/volume.rs, src/confirm.rs, src/ramdisk.rs, src/io/mod.rs, src/io/uring.rs.

What it can do

  • Create filesystem snapshots

    Target directory or filesystem stateSnapshot of filesystem at point in time

  • Rollback filesystem to previous state

    Previously created snapshotRestored filesystem state

  • Capture baseline filesystem state for benchmarking

    Filesystem before benchmark executionClean baseline snapshot for comparison

  • Reset filesystem between benchmark runs

    Snapshot and modified filesystemFilesystem restored to clean state

  • Compare filesystem states

    Two filesystem snapshotsDifferences between filesystem states

Tags

filesystemsnapshotrustbenchmarking

Tech Stack

Rust

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.