Release Notes - Bookkeeper - Version 4.0.0 ** Sub-task * [BOOKKEEPER-109] - Add documentation to describe how bookies flushes data * [BOOKKEEPER-111] - Document bookie recovery feature * [BOOKKEEPER-120] - Review BookKeeper client documentation * [BOOKKEEPER-121] - Review Hedwig client documentation * [BOOKKEEPER-122] - Review BookKeeper server documentation ** Bug * [BOOKKEEPER-1] - Static variable makes tests fail * [BOOKKEEPER-5] - Issue with Netty in BookKeeper * [BOOKKEEPER-18] - maven build is unstable * [BOOKKEEPER-19] - BookKeeper doesn't support more than 2Gig of memory * [BOOKKEEPER-22] - Exception in LedgerCache causes addEntry request to fail * [BOOKKEEPER-27] - mvn site failed with unresolved dependencies * [BOOKKEEPER-28] - Create useful startup scripts for bookkeeper and hedwig * [BOOKKEEPER-29] - BookieRecoveryTest fails intermittently * [BOOKKEEPER-38] - Bookie Server doesn't exit when its zookeeper session is expired. So the process is hang there. * [BOOKKEEPER-39] - Bookie server failed to restart because of too many ledgers (more than ~50,000 ledgers) * [BOOKKEEPER-43] - NullPointException when releasing topic * [BOOKKEEPER-50] - NullPointException at LedgerDescriptor#cmpMasterKey * [BOOKKEEPER-51] - NullPointException at FIFODeliveryManager#deliveryPtrs * [BOOKKEEPER-52] - Message sequence confuse due to the subscribeMsgQueue@SubscribeResponseHandler * [BOOKKEEPER-53] - race condition of outstandingMsgSet@SubscribeResponseHandler * [BOOKKEEPER-57] - NullPointException at bookie.zk@EntryLogger * [BOOKKEEPER-58] - Changes introduced in BK-38 cause BookieClientTest to hang indefinitely. * [BOOKKEEPER-59] - Race condition in netty code allocates and orphans resources (BK-5 revisited) * [BOOKKEEPER-61] - BufferedChannel read endless when the remaining bytes of file is less than the capacity of read buffer * [BOOKKEEPER-62] - Bookie can not start when encountering corrupted records * [BOOKKEEPER-63] - Hedwig PubSubServer must wait for its Zookeeper client to be connected upon startup * [BOOKKEEPER-65] - fix dependencies on incompatible versions of netty * [BOOKKEEPER-66] - use IPv4 for builds * [BOOKKEEPER-68] - Conditional setData * [BOOKKEEPER-69] - ServerRedirectLoopException when a machine (hosts bookie server & hub server) reboot, which is caused by race condition of topic manager * [BOOKKEEPER-71] - hedwig c++ client does not build. * [BOOKKEEPER-79] - randomly startDelivery/stopDelivery will core dump in c++ hedwig client * [BOOKKEEPER-80] - subscription msg queue race condition in hedwig c++ client * [BOOKKEEPER-81] - disk space of garbage collected entry logger files isn't reclaimed util process quit * [BOOKKEEPER-86] - bookkeeper-benchmark fails to compile after BOOKKEEPER-68 * [BOOKKEEPER-87] - TestHedwigHub exhausts direct buffer memory with netty 3.2.4.Final * [BOOKKEEPER-88] - derby doesn't like - in the topic names * [BOOKKEEPER-92] - using wrong context object in readLastConfirmedComplete callback * [BOOKKEEPER-93] - bookkeeper doesn't work correctly on OpenLedgerNoRecovery * [BOOKKEEPER-94] - Double callbacks in readLastConfirmedOp which fails readLastConfirmed operation even received enough valid responses. * [BOOKKEEPER-100] - Some hedwig tests have build errors * [BOOKKEEPER-103] - ledgerId and entryId is parsed wrong when addEntry * [BOOKKEEPER-106] - recoveryBookieData can select a recovery bookie which is already in the ledgers ensemble * [BOOKKEEPER-107] - memory leak in HostAddress of hedwig c++ client * [BOOKKEEPER-115] - LocalBookKeeper fails after BOOKKEEPER-108 * [BOOKKEEPER-118] - Hedwig client doesn't kill and remove old subscription channel after redirection. * [BOOKKEEPER-119] - Keys in configuration have inconsistent style * [BOOKKEEPER-124] - build has RAT failures * [BOOKKEEPER-125] - log4j still used in some places * [BOOKKEEPER-127] - Make poms use official zookeeper 3.4.0 * [BOOKKEEPER-128] - pom and script modifications required for generating release packages * [BOOKKEEPER-129] - ZK_TIMEOUT typo in client/server configuration * [BOOKKEEPER-131] - Fix zookeeper test dependency * [BOOKKEEPER-134] - Delete superfluous lib directories * [BOOKKEEPER-138] - NOTICE.txt is invalid * [BOOKKEEPER-139] - Binary packages do not carry NOTICE.txt ** Improvement * [BOOKKEEPER-26] - Indentation is all messed up in the BookKeeper code * [BOOKKEEPER-30] - Test are too noisy * [BOOKKEEPER-33] - Add length and offset parameter to addEntry * [BOOKKEEPER-41] - Generation of packages for distribution. * [BOOKKEEPER-44] - Reuse publish channel to default server to avoid too many connect requests to default server when lots of producers came in same time * [BOOKKEEPER-82] - support journal rolling * [BOOKKEEPER-83] - Added versioning and flags to the bookie protocol * [BOOKKEEPER-84] - Add versioning for ZK metadata * [BOOKKEEPER-89] - Bookkeeper API changes for initial Bookkeeper release * [BOOKKEEPER-90] - Hedwig API changes for initial Bookkeeper release * [BOOKKEEPER-91] - Bookkeeper and hedwig clients should not use log4j directly * [BOOKKEEPER-102] - Make bookkeeper use ZK from temporary repo * [BOOKKEEPER-104] - Add versioning between bookie and its filesystem layout * [BOOKKEEPER-108] - add configuration support for BK * [BOOKKEEPER-114] - add a shutdown hook to shut down bookie server safely. * [BOOKKEEPER-117] - Support multi threads in hedwig cpp client to leverage multi-core hardware * [BOOKKEEPER-132] - Sign artifacts before deploying to maven ** New Feature * [BOOKKEEPER-11] - Read from open ledger * [BOOKKEEPER-101] - Add Fencing to Bookkeeper