This is the second Apache release of DistributedLog and the first release as a sub-project of Apache BookKeeper!

The 0.5.0 release upgrades BookKeeper from Twitter 4.3.7-TWTTR-OSS version to the official Apache 4.5.0 version. It is a big milestone in Apache BookKeeper & DistributedLog community, converging the development efforts for both communities and moving the DistributedLog development on the official Apache bookkeeper release.

Apache DistributedLog users are encouraged to upgrade to 0.5.0. The technical details of this release are summarized below.

Highlights

BookKeeper Version Upgrade

The main change in 0.5.0 is BookKeeper version upgrade. We upgraded the BookKeeper version from Twitter’s 4.3.7-TWTTR-OSS to the official Apache BookKeeper 4.5.0 version. This upgrade brings in BookKeeper security feature and performance improvement (such as netty 4 upgrade). The upgrade should be straightforward, because there isn’t any backward compatible issue.

Change Twitter Future to Java Future

Prior to 0.5.0, the DistributedLog API heavily depends on Twitter Future library and other scala dependency. In 0.5.0, we change the twitter future API to a separate module and replace the core API with Java8 CompletableFuture. It reduces the dependencies introduced by Scala and also avoid maintaining multiple versions for different scala versions.

Better buffer/memory management

After upgrading to BookKeeper 4.5.0, we update the buffer and memory management in DistributedLog to leverage netty’s buffer management. It reduces object allocation, memory copies and improves the latency because less jvm garbage is produced.

Full list of changes

JIRA

####Sub-task

  • [DL-208] - Update release notes about the download location
  • [DL-209] - Update build script to build DistributedLog website under `bookkeeper.apache.org/distributedlog`
  • [DL-210] - Update DL mailing lists

####Bug

  • [DL-19] - Can't compile thrift file
  • [DL-124] - Use Java8 Future rather than twitter Future
  • [DL-128] - All TODO items should have jira tickets.
  • [DL-195] - Apache Rat Check Failures on DISCLAIMER.bin.txt
  • [DL-206] - Delete log doesn't delete log segments

####Improvement

  • [DL-204] - Bump libthrift to latest version for distributedlog-core

####Task

  • [DL-2] - DistributedLog should work with the official apache bookkeeper
  • [DL-81] - Build the distributedlog release procedure
  • [DL-82] - Automatically build and update the website
  • [DL-199] - Be able to support filesystem-path like name
  • [DL-205] - Remove StatusCode dependency on DLException
  • [DL-207] - DL Graduation Item

Github