MCPcopy Index your code
hub / github.com/apache/bookkeeper

github.com/apache/bookkeeper @release-4.18.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release release-4.18.0 ↗ · + Follow
23,603 symbols 135,563 edges 2,442 files 6,569 documented · 28%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Maven Central

logo Apache BookKeeper

Apache BookKeeper is a scalable, fault-tolerant and low latency storage service optimized for append-only workloads.

It is suitable for being used in following scenarios:

  • WAL (Write-Ahead-Logging), e.g. HDFS NameNode, Pravega.
  • Message Store, e.g. Apache Pulsar.
  • Offset/Cursor Store, e.g. Apache Pulsar.
  • Object/Blob Store, e.g. storing state machine snapshots.

Get Started

  • Checkout the project website.
  • Concepts: Start with the basic concepts of Apache BookKeeper. This will help you to fully understand the other parts of the documentation.
  • Follow the Installation guide to set up BookKeeper.

Documentation

Please visit the Documentation from the project website for more information.

Get In Touch

Report a Bug

For filing bugs, suggesting improvements, or requesting new features, help us out by opening a GitHub issue.

Need Help?

Subscribe or mail the user@bookkeeper.apache.org list - Ask questions, find answers, and also help other users.

Subscribe or mail the dev@bookkeeper.apache.org list - Join development discussions, propose new ideas and connect with contributors.

Join us on Slack - This is the most immediate way to connect with Apache BookKeeper committers and contributors.

Contributing

We feel that a welcoming open community is important and welcome contributions.

Contributing Code

  1. See our installation guide to get your local environment setup.

  2. Take a look at our open issues: GitHub Issues.

  3. Review our coding style and follow our pull requests to learn more about our conventions.

  4. Make your changes according to our contributing guide

Extension points exported contracts — how you extend this code

OpBuilder (Interface)
Base interface for builders. @since 4.6 [26 implementers]
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/api/OpBuilder.java
HttpEndpointService (Interface)
HttpEndpointService provides the abstraction for how to handle the logic for a specific endpoint. [70 implementers]
bookkeeper-http/http-server/src/main/java/org/apache/bookkeeper/http/service/HttpEndpointService.java
Recyclable (Interface)
An interface represents an object that is recyclable. [31 implementers]
bookkeeper-common/src/main/java/org/apache/bookkeeper/common/util/Recyclable.java
Gauge (Interface)
A guage is a value that has only one value at a specific point in time. An example is the number of elements in a queue. [22 …
stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/Gauge.java
QuorumConfigProvider (Interface)
Provider to provide quorum config. [6 implementers]
stream/distributedlog/core/src/main/java/org/apache/distributedlog/bk/QuorumConfigProvider.java
RangeStoreService (Interface)
The umbrella interface for accessing ranges (both metadata and data). [24 implementers]
stream/storage/api/src/main/java/org/apache/bookkeeper/stream/storage/api/metadata/RangeStoreService.java
Option (Interface)
Kv Op option. [207 implementers]
stream/api/src/main/java/org/apache/bookkeeper/api/kv/options/Option.java
KV (Interface)
A class represents a key value pair. @param key type @param value type [6 implementers]
stream/common/src/main/java/org/apache/bookkeeper/common/kv/KV.java

Core symbols most depended-on inside this repo

get
called by 2678
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/DistributionSchedule.java
info
called by 1824
bookkeeper-server/src/main/java/org/apache/bookkeeper/tools/cli/commands/bookies/ClusterInfoCommand.java
add
called by 1667
bookkeeper-server/src/main/java/org/apache/bookkeeper/net/NetworkTopology.java
toBookieId
called by 1328
bookkeeper-server/src/main/java/org/apache/bookkeeper/net/BookieSocketAddress.java
getBytes
called by 1259
circe-checksum/src/main/java/com/scurrilous/circe/StatefulHash.java
error
called by 1106
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/datainteg/DataIntegrityCheckImpl.java
size
called by 976
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/DistributionSchedule.java
get
called by 907
stream/distributedlog/common/src/main/java/org/apache/distributedlog/common/rate/MovingAverageRate.java

Shape

Method 20,203
Class 2,697
Interface 428
Function 211
Enum 61
Route 3

Languages

Java98%
Python2%
C++1%
Rust1%
C1%
TypeScript1%

Modules by API surface

bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/ServerConfiguration.java350 symbols
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieShell.java294 symbols
stream/distributedlog/core/src/main/java/org/apache/distributedlog/DistributedLogConfiguration.java240 symbols
stream/distributedlog/core/src/main/java/org/apache/distributedlog/tools/DistributedLogTool.java213 symbols
bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/ClientConfiguration.java170 symbols
bookkeeper-server/src/main/java/org/apache/bookkeeper/util/ByteBufVisitor.java145 symbols
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java110 symbols
bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/AbstractConfiguration.java101 symbols
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/DefaultEntryLogger.java98 symbols
bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java94 symbols
stream/distributedlog/core/src/main/java/org/apache/distributedlog/thrift/BKDLConfigFormat.java84 symbols
bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/NullMetadataBookieDriver.java84 symbols

For agents

$ claude mcp add bookkeeper \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact