# CameoDB update: native MCP support, jemalloc, and a 400M-record field test

> Source: <https://github.com/cameodb/cameodb>
> Published: 2026-07-23 10:06:59+00:00

CameoDB is a decentralized, leaderless database that combines the durability of an ACID-compliant Key-Value store (`redb`

) with the power of a full-text inverted index engine (`tantivy`

).

By leveraging the **Kameo** actor framework and **Tokio**'s async runtime, CameoDB provides blazingly fast full-text search across distributed nodes—without the overhead of a central master.

**Hybrid Storage Architecture:** Every shard is an atomic unit containing both a KV store (for data/WAL) and an inverted index (for full-text search).**Decentralized Topology:** Zero master nodes. Utilizes Consistent Hashing and a custom Kademlia DHT behavior for seamless peer discovery and routing.**Supervised Smart Commits:** Intelligently batches writes with micro-second precision to optimize throughput while maintaining strict crash durability.**Tiered Cache Sizing:** Dynamically budgets memory across active shards based on system RAM to ensure steady-state operational safety.**Sophisticated Schema Detection:** Automatically infers and maps indices from raw data payloads via versatile columnar structural testing and verifiable format detections.**Intelligent Data Loader:** Robust, zero-copy ingestion pipeline that transparently handles multiple formats (`CSV`

,`TSV`

,`JSON`

,`JSONL`

) and on-the-fly decompression (`Gzip`

,`Bzip2`

,`Zstd`

,`XZ`

,`LZ4`

,`Deflate`

). It supports loading from local disk, distributed network files, and directly streaming from HTTP(S) endpoints.**Consistent Hybrid Recovery:** Guarantees data consistency during startup by automatically recovering and syncing uncommitted records from the ACID datastore (KV) into the search index.**Graceful Shutdowns:** Multi-phase process ensuring zero WAL replay on clean reboots.**Production Memory Management:** Jemalloc allocator with per-CPU arenas, background purge threads, and runtime admin endpoints for memory diagnostics and manual intervention.**Writer Core Pinning:** Optional CPU core affinity for shard writer threads to improve cache locality and reduce scheduling jitter on the write hot path.

Get a single-node CameoDB instance up and running instantly using Docker.

```
# Pre-create data directory with user permissions
mkdir -p $(pwd)/data/cameodb
chown -R 65532:65532 $(pwd)/data/cameodb

# 1. Run the CameoDB Server
docker run -d \
  --name cameodb-server \
  -p 9480:9480 \
  -p 9580:9580 \
  -v $(pwd)/data/cameodb:/data/cameodb \
  goranc/cameodb:latest

# 2. Launch the Interactive CLI (connects to the server)
docker run -it --rm \
  --network host \
  goranc/cameodb:latest \
  client --interactive --connect http://localhost:9480
```

*(CameoDB's HTTP API is now available on http://localhost:9480)*

For more deployment options (Docker Compose, multi-node clusters), see the [Deployment Guide](/cameodb/cameodb/blob/main/docs/DEPLOYMENT.md).

Dive deeper into CameoDB's architecture and APIs:

- 📖
: Full details on Search, Ingestion, and Index Management.[HTTP API Reference](/cameodb/cameodb/blob/main/docs/API_REFERENCE.md) - 🏗️
: How the distributed leaderless routing works under the hood.[Architecture & Routing](/cameodb/cameodb/blob/main/docs/ARCHITECTURE.md) - ⚙️
: Adjusting shard counts, cache sizes, and swarm ports.[Configuration Guide](/cameodb/cameodb/blob/main/docs/CONFIGURATION.md) - 📦
: Instructions for compiling cross-platform binaries and generating RPM/DEB packages.[Building & Packaging](/cameodb/cameodb/blob/main/docs/BUILDING.md) - 📊
: Sample python scripts and datasets (TED Talks, Book Summaries) to try out right away.[Data Ingestion Examples](/cameodb/cameodb/blob/main/examples/README.md)

CameoDB is distributed as a single, self-contained executable. It acts as the database server, a powerful CLI client, a schema operator, and a bulk data loader.

```
# Start the database server (HTTP API available on port 9480)
cameodb
```

The easiest way to explore CameoDB is through its interactive REPL, which provides auto-completion, history, and colorized JSON outputs.

```
# Launch the interactive client (connects to localhost:9480 by default)
cameodb client --interactive

# Inside the REPL, try:
cameodb@localhost:9480 ▶ health
cameodb@localhost:9480 ▶ schema detect ./examples/data/booksummaries.tsv
cameodb@localhost:9480 ▶ data load books ./examples/data/booksummaries.tsv
cameodb@localhost:9480 ▶ search books "title:Hitchhiker" limit 10
cameodb@localhost:9480 ▶ admin memory stats
cameodb@localhost:9480 ▶ admin memory purge --force
```

The CLI client features a robust, zero-copy ingestion pipeline that transparently handles:

**Formats:**`CSV`

,`TSV`

,`JSON`

(Documents/Arrays), and`JSONL/NDJSON`

.**Compression:** Automatically detects and decompresses`Gzip (.gz)`

,`Bzip2 (.bz2)`

,`Zstd (.zst)`

,`XZ (.xz)`

,`LZ4 (.lz4)`

, and`Deflate`

formats on the fly.**Sources:** Ingest data from local disk files, mounted network paths, or by streaming directly from public`HTTP/HTTPS`

URLs.

We welcome contributions! Whether it's adding new features, fixing bugs, or improving documentation, check out our [Contributing Guidelines](/cameodb/cameodb/blob/main/.github/CONTRIBUTING.md) to get started.

Please review our [Code of Conduct](/cameodb/cameodb/blob/main/.github/CODE_OF_CONDUCT.md) before participating in the community.

If you discover a vulnerability, please refer to our [Security Policy](/cameodb/cameodb/blob/main/.github/SECURITY.md).

This project is licensed under the [Apache License 2.0](/cameodb/cameodb/blob/main/LICENSE) - see the LICENSE file for details.
