This documentation is for Apache BookKeeper version 4.5.0-SNAPSHOT.

Apache BookKeeper is a scalable, fault tolerant and low latency storage service optimized for realtime workloads. It offers durability, replication and strong consistency as essentials for building reliable real-time applications.

It is suitable for being used in following scenerios:

  • WAL (Write-Ahead-Logging), e.g. HDFS namenode.
  • Message Store, e.g. Apache Pulsar.
  • Offset/Cursor Store, e.g. Apache Pulsar.
  • Object/Blob Store, e.g. storing snapshots to replicated state machines.

Learn more about Apache BookKeeper and what it can do for your organization:

Or start using Apache BookKeeper today.

Users

  • Concepts: Start with concepts. This will help you to fully understand the other parts of the documentation, including the setup, integration and operation guides.
  • Getting Started: Install Apache BookKeeper and run bookies locally
  • API: Read the API documentation to learn how to use Apache BookKeeper to build your applications.
  • Deployment: The Deployment Guide shows how to deploy Apache BookKeeper to production clusters.

Administrators

  • Operations: The Admin Guide shows how to run Apache BookKeeper on production, what are the production considerations and best practices.

Contributors

Apache BookKeeper 4.5.0-SNAPSHOT Documentation

An entry is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Entries are also known as records.

A ledger is a sequence of entries written to BookKeeper. Entries are written sequentially to ledgers and at most once, giving ledgers append-only semantics.

A bookie is an individial BookKeeper storage server.

Bookies store the content of ledgers and act as a distributed ensemble.

A subsystem that runs in the background on bookies to ensure that ledgers are fully replicated even if one bookie from the ensemble is down.

Striping is the process of distributing BookKeeper ledgers to sub-groups of bookies rather than to all bookies in a BookKeeper ensemble.

Striping is essential to ensuring fast performance.

A journal file stores BookKeeper transaction logs.

When a reader forces a ledger to close, preventing any further entries from being written to the ledger.

A record is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Records are also known as entries.