You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@bookkeeper.apache.org by Enrico Olivelli <eo...@gmail.com> on 2020/10/27 16:21:57 UTC

BP-41 Separate BookieId from Bookie Network Address is ready

Hi BookKeepers,
(cross-posting to user@ and dev@)

I am happy to announce that most of the work has been committed regarding
BP-41
http://bookkeeper.apache.org/bps/BP-41-bookieid/

Basically the idea is that from BK 4.12.0 we are no longer referring to a
bookie using a network endpoint hostname:port but with a generic string
"BookieID".

The new behaviour is optional and totally compatible with older BK clients
and servers, you have to explicitly enable it in your Bookie configuration
(bk_server.conf).

Currently (up to 4.11.0) BookKeeper stores the "location" of each ledger in
the LedgerMetadata on ZooKeeper (or ETCD if you prefer).

This location was the network address of the bookie, and this was a big
problem if you want to use dynamic addresses for the Bookie or if you need
to move the Bookie to another network.

Now if you set "bookieId" configuration entry in bk_server.conf then the
clients will store such "id" (think about a UUID like xxx-xxx-xxx-xxxx or
some meaningful bookie name) in the metadata.
This way you can "move" the Bookie to a new address.

This change also opens the door to enabling multiple network endpoints for
a Bookie and multiple protocols (like pure TLS).

If you have time please check the current master and build it and try to
set a "bookieId" to your bookie and play with the tools and the clients.
Just changing the bookie port was enough to mess up BK 4.11.

- git clone https://github.com/apache/bookkeeper
- mvn clean install -DskipTests
- look inside bookkeeper-dist/server/target for the binaries

Enjoy BookKeeeper

Enrico