Apache Fluo 1.0.0-incubating is the first release of Fluo as an Apache project and the fourth release for the project. Below are resources for this release:
Download a release tarball and verify by these procedures using these KEYS
| fluo-1.0.0-incubating-bin.tar.gz | ASC MD5 SHA1 | | fluo-1.0.0-incubating-source-release.tar.gz | ASC MD5 SHA1 |
View the [documentation][docs] for this release.
Read the [Javadocs][javadocs].
Starting with 1.0.0-incubating, Apache Fluo will follow semver for all future API changes. The API consists of everything under the org.apache.fluo.api
package. Code outside of this package can change at any time. If your project is using Fluo code that falls outside of the API, then consider initiating a discussion about adding it to the API.
The 1.0.0-incubating release includes [167 commits][commits] that were made since the last release (1.0.0-beta-2). The significant changes are summarized below. For information about changes before this release, see the archive of Fluo releases before becoming an Apache project.
Starting with this release, Apache Fluo's API will follow [semver]. The API is defined as everything under the org.apache.fluo.api Java package. Given that the plan is to support this API for a long time, a lot of API improvements were made since the beta-2 release. The following is a list of significant API changes since beta-2.
The previous releases of Fluo contained specific versions of Accumulo, Hadoop, Zookeeper, and other Fluo dependencies. However, the actual dependencies needed should be determined by the existing version of software where Fluo is run. Fluo changed to a model of making its classpath be completely configurable by an administrator. Example classpath configuration and download scripts ship with Fluo to help make setup easier. These script were only tested with specific versions of Hadoop and Accumulo and may not work with all versions. These changes were made in [#706][706] and [#687][687].
Added a version command to the Fluo scripts in [#779][779]. This makes it easy to automatically build shaded jars with the correct version of Fluo for use in Spark and Map Reduce.
Two major improvements related to metrics were made. Support for user metrics was added by [#767][767]. This allows observers to easily report application specific metrics. In [#635][635] the example InfluxDB and Grafana configurations were updated to show historical metrics.
Transaction processing throughput was increased by changes in [#593][593] and some subsequent bug fixes. These changes moved commit processing from the threads executing user code to an asynchronous background process. This allows user threads to queue a transaction for commit an immediately start working on another notification. This new process allows many more transactions to be working through the commit process concurrently. Before the change a worker could only be committing up to a few hundred transactions at any time. After the change, a single worker could easily be committing tens of thousands of transactions at a time. These changes increase the latency of individual transactions, which can have some drawbacks [#650][650]. For this release changes were made in [#654][654] to use a priority queue for notifications in the worker. The changes in [#654][654] partially solves the lock wait problem identified in [#650][650].
Fluo utilizes server side Accumulo iterators. For this release these iterators were modified to leverage seeking on the sever side. Before these changes the iterators used to sequentially scan data. For popular cells that had a lot versions, this could be slow. These changes were made in [#623][623].
A two day run of Webindex was started on September 7th using the latest snapshot version of Fluo. This test used 11 EC2 m3.xlarge nodes. The test ran without problem. A good bit before that a 3 day run of Webindex was conducted.
[javadocs]: {{ site.fluo_api_base }}/1.0.0-incubating/ [docs]: /docs/fluo/1.0.0-incubating/ [semver]: http://semver.org/ [commits]: https://github.com/apache/incubator-fluo/compare/1.0.0-beta-2...e1dbc60 [779]: https://github.com/fluo-io/fluo/issues/779 [772]: https://github.com/fluo-io/fluo/issues/772 [770]: https://github.com/fluo-io/fluo/issues/770 [768]: https://github.com/fluo-io/fluo/issues/768 [767]: https://github.com/fluo-io/fluo/issues/767 [758]: https://github.com/fluo-io/fluo/issues/758 [743]: https://github.com/fluo-io/fluo/issues/743 [723]: https://github.com/fluo-io/fluo/issues/723 [714]: https://github.com/fluo-io/fluo/issues/714 [706]: https://github.com/fluo-io/fluo/issues/706 [695]: https://github.com/fluo-io/fluo/issues/695 [687]: https://github.com/fluo-io/fluo/issues/687 [680]: https://github.com/fluo-io/fluo/issues/680 [668]: https://github.com/fluo-io/fluo/issues/668 [654]: https://github.com/fluo-io/fluo/issues/654 [650]: https://github.com/fluo-io/fluo/issues/650 [648]: https://github.com/fluo-io/fluo/issues/648 [647]: https://github.com/fluo-io/fluo/issues/647 [639]: https://github.com/fluo-io/fluo/issues/639 [635]: https://github.com/fluo-io/fluo/issues/635 [626]: https://github.com/fluo-io/fluo/issues/626 [623]: https://github.com/fluo-io/fluo/issues/623 [621]: https://github.com/fluo-io/fluo/issues/621 [619]: https://github.com/fluo-io/fluo/issues/619 [593]: https://github.com/fluo-io/fluo/issues/593 [119]: https://github.com/fluo-io/fluo/issues/119