Restate 1.7.10
Restate 1.7.10 automatically cleans up obsolete VQueue metadata, adds opt-in cleanup for metadata accumulated by earlier versions, and improves VQueue metadata write efficiency.
🧹 Automatic VQueue Metadata Cleanup
Restate now removes a VQueue’s metadata when an update leaves the queue unpaused and fully empty, including its finished-entry stage.
This prevents workloads with many short-lived queues from accumulating obsolete metadata, limiting partition-store growth and avoiding increasingly expensive metadata scans.
After cleanup:
- Fully empty, unpaused queues disappear from
sys_vqueue_metaand the VQueue CLI. - Historical timestamps and exponential moving averages stored in deleted metadata are discarded. If the same queue is created again, its statistics restart.
- Empty paused queues retain their metadata and pause state.
Automatic cleanup during queue updates requires no configuration.
💾 Clean Up Historical Metadata
A new, one-time local storage migration removes obsolete VQueue metadata accumulated by earlier versions.
After upgrading all cluster nodes to Restate 1.7.10 or newer, enable the migration on each node:
[common]
experimental-enable-vqueue-obsolete-cleanup = trueEach local partition-store replica scans its metadata in bounded, low-priority chunks and records completion to avoid repeating the scan.
The first startup with cleanup enabled may take longer, and deleting a large backlog can temporarily increase RocksDB compaction and disk I/O. For large backlogs, roll out the setting gradually across replicas, allowing cleanup and subsequent compaction to settle before restarting additional replicas.
A partition store that has completed this migration requires Restate 1.7.10 or newer. Do not downgrade it to an earlier version.
The migration is opt-in for Restate 1.7.10 and 1.8, and enabled unconditionally from Restate 1.9.
⚡ More Efficient VQueue Metadata Writes
Restate now periodically writes complete VQueue metadata instead of appending another RocksDB merge operation. These full writes shorten metadata merge chains, reducing the work needed to reconstruct metadata during reads, flushes, and compactions.
Alongside this change, the default worker.storage.rocksdb-max-successive-merges changes from 5000 to 0. This avoids repeated merge-chain counting and threshold-triggered value reconstruction on the write path.
Existing explicit settings remain effective. To retain the previous threshold:
[worker.storage]
rocksdb-max-successive-merges = 5000Install
Pull the Docker images
docker pull docker.restate.dev/restatedev/restate:1.7.10
docker pull docker.restate.dev/restatedev/restate-cli:1.7.10Install prebuilt binaries via Homebrew
brew install restatedev/tap/restate-server
brew install restatedev/tap/restate
brew install restatedev/tap/restatectlInstall prebuilt binaries into your npm project
npm install @restatedev/restate-server@1.7.10
npm install @restatedev/restate@1.7.10
npm install @restatedev/restatectl@1.7.10Download binary archives
| File | Platform | Checksum |
|---|---|---|
| restate-server-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| restate-server-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| restate-server-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| restate-server-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
| restate-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| restate-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| restate-cli-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| restate-cli-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
| restatectl-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| restatectl-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| restatectl-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| restatectl-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |