This is the 16th release of Apache BookKeeper!
The 4.9.0 release incorporates hundreds of bug fixes, improvements, and features since previous major release, 4.8.0, which was released four months ago. It is a new milestone in Apache BookKeeper community.
Apache BookKeeper/DistributedLog users are encouraged to upgrade to 4.9.0. The technical details of this release are summarized below.
The main features in 4.9.0 cover are around following areas:
Here is a list of dependencies changed in 4.9.0:
2.8.9
to 2.9.7
.2.11
.4.1.22
to 4.1.31
.1.7.0
to 1.8.3
.There are multiple new client features introduced in 4.9.0. Here are two highlighted features:
asyncAddEntry
variant that takes ByteBufThere are bunch of new settings introduced in both bookie and client in 4.9.0. Here are those settings:
serverNumIOThreads
: configures the number of IO threads for bookies (see #1612)fileInfoFormatVersionToWrite
is bumped from 0
to 1
. (see #1689)journalFormatVersionToWrite
is bumped from 5
to 6
. (see #1689)numIOThreads
: configures the number of IO threads for client (see #1612)There are a few big changes around metadata in 4.9.0. They are:
Additionally, there are bunch of new interfaces introduced in the metadata driver API.
There are a lot of improvements and features introduced into the table service. The maturity of table service is moving from alpha to beta, and has started to be used as the state storage for Pulsar Functions. More table service usage will come in Pulsar's future releases.
Starting from 4.9.0, bookkeeper will release a python client for table service. See details at #1691
/api/v1/bookie/gc_details
is introduced to retrieve the GC details./api/v1/bookie/gc
is introduced to trigger GC through HTTP REST endpoint.There are are multiple new commands are added in BookieShell. Here are a few highlighted:
regenerate-interleaved-storage-index-file
command is introduced for rebuilding the index files for interleaved based ledger storage. (#1642)ledgermetadata
command now supports dumping/restoring ledger metadata to/from file.localconsistencycheck
command is introduce for running consistency check on bookies locally. (#1819)bk-perf
script is introduced for running performance benchmark on bookkeeper. (1697)A new BookKeeper CLI package is released as bkctl
. This bkctl
package includes both the existing bookie shell and the new bkctl
tool.
Mapped Diagnostic Context (MDC) is now supported at both bookie and client sides. Application request context can be passed as context and being logged through slf4j/log4j. This simplifies throubleshooting of request-level failures/errors. See details at #1672.
StatsDoc
annotation is introduced in BP-36. The StatsDoc
annotation is used for documenting stats added across the project.