Release Notes - Bookkeeper - Version 4.0.0


Sub-task


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