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