Liking cljdoc? Tell your friends :D

konserve-rocksdb

A RocksDB backend for konserve, using clj-rocksdb.

Usage

Add to your dependencies:

Clojars Project

Configuration

(require '[konserve-rocksdb.core]  ;; Registers the :rocksdb backend
         '[konserve.core :as k])

(def config
  {:backend :rocksdb
   :path "./tmp/rocksdb/konserve"
   :id #uuid "550e8400-e29b-41d4-a716-446655440000"
   ;; Optional:
   :map-size (* 1024 1024 1024)  ;; Default: 1GB
   :flags 0})

(def store (k/create-store config {:sync? true}))

For API usage (assoc-in, get-in, delete-store, etc.), see the konserve documentation.

Implementation Details

Multi-key Operations

This backend supports multi-key operations (multi-assoc, multi-get, multi-dissoc).

No hard item limits - operations scale with your RocksDB instance capacity.

OperationRocksDB APIAtomicity
multi-assocWriteBatchAtomic
multi-getmultiGetAsListEfficient bulk read
multi-dissocWriteBatchAtomic

Storage Format

Data is stored in two keys per entry (key for value, key.meta for header/metadata). This enables efficient metadata-only reads for garbage collection while using multiGetAsList to fetch both in a single call for full reads.

License

Copyright © 2021-2026 Christian Weilbach, Judith Massa

Licensed under Eclipse Public License (see LICENSE).

Can you improve this documentation? These fine people already did:
Christian Weilbach & Judith
Edit on GitHub

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close