Apache Accumulo 1.7.4
23 Mar 2018
Please check our release archive for a newer version.
Apache Accumulo 1.7.4 is a maintenance release on the 1.7 version branch. This release contains changes from 46 issues, comprised of bug-fixes, performance improvements, build quality improvements, and more. See Jira or the bottom of this page for a complete list.
Below are resources for this release:
- User Manual - In-depth developer and administrator documentation.
- Javadocs - Accumulo 1.7.4 API
- Examples - Code with corresponding readme files that give step by step instructions for running example code.
Accumulo follows Semantic Versioning guidelines. This release is a “patch version”, which means that only backwards compatible bug fixes are introduced in this version. A bug fix is defined as an internal change that fixes incorrect behavior. Users of any previous 1.7.x release are strongly encouraged to update as soon as possible to benefit from the bug fixes with very little concern in change of underlying functionality. As always, the Accumulo developers take API compatibility very seriously and have invested much time to ensure that we meet the promises set forth to our users. Users of 1.6 or earlier that are seeking to upgrade to 1.7 should consider 1.7.4 as a starting point.
Major Changes
Fixed upgrade process to set version on all volumes
During upgrades, only one volume in a multiple HDFS volume was updated with the correct version. This would cause all tablet servers to complain and ultimately fail. ACCUMULO-4686 fixes this by setting the version on all volumes.
Updated Accumulo to work with new releases of Guava
In ACCUMULO-4702, dependencies on Beta-annotated Guava classes and methods were removed. While Accumulo still includes Guava 14 in its tarball, it will work with newer versions of Guava in client code. It has been tested to work with Guava 23.
Updated RFile to prevent very large blocks
RFiles now use windowed statistics (ACCUMULO-4669) to prevent very large blocks. In 1.7.3 a bug was introduced that caused RFile data block sizes to grow very large in the case where key sizes slowly increased. This could lead to degraded query performance or out of memory exceptions on tablet servers.
Notable Changes
- ACCUMULO-4506 - Add a timeout to a replication RPC call
- ACCUMULO-4619 - Add splits hung forever
- ACCUMULO-4633 - Added check to prevent division by zero
- ACCUMULO-4640 - Accumulo shell is expecting instance.volumens in client.conf instead of accumulo-site.xml
- ACCUMULO-4657 - BulkImport Performance Bottleneck
- ACCUMULO-4665 - Must use the “real” user for RPCs when Kerberos is enabled
- ACCUMULO-4676 - Use HTTPOnly flags in monitor to prevent XSS attacks
- ACCUMULO-4776 - Fix advertised host in monitor
- ACCUMULO-4777 - Root tablet got spammed with 1.8 million log entries
- ACCUMULO-4787 - Close input stream in AccumuloReplicaSystem
- ACCUMULO-4809 - Avoid blocking during session clean up
- ACCUMULO-4817 - Update build plugins and parent POM
Upgrading
View the Upgrading Accumulo documentation for guidance.
Testing
Continuous ingest, random walk, and all integration test were run against RC0. A few bugs were found and fixed before RC1. Randomwalk was run overnight with 4 walkers. Continuous ingest was run with 9 nodes for 22 hours followed by a successful verification. A Kerberos IT failed because the 1.7.4 pom depends on Hadoop 2.2.0, the IT passed with a newer version of Hadoop.
All Changes
- ACCUMULO-1972 - Fixed Range constructor
- ACCUMULO-3208 - Integration test for the OrIterator and cleanup
- ACCUMULO-3283 - Create ColumnFQ only once
- ACCUMULO-3827 - Set default store types for monitor ssl to jks
- ACCUMULO-4170 - Clarify ClientConfiguration javadocs
- ACCUMULO-4365 - Fixes to prevent intermittent failures in ShellServerIT and ConditionalWriterIT
- ACCUMULO-4482 - Mention snappy compression in docs
- ACCUMULO-4506 - Add a timeout to a replication RPC call
- ACCUMULO-4546 - Create default log message for table error
- ACCUMULO-4555 - Removes parsing of version string in Version class
- ACCUMULO-4576 - Suppress warnings from deprecations
- ACCUMULO-4587 - Upgrade Monitor jquery to 3.2.1
- ACCUMULO-4591 - Add replication latency metrics
- ACCUMULO-4602 - Deleted AssignmentThreadsIT
- ACCUMULO-4619 - Add splits hung forever
- ACCUMULO-4627 - Add corrupt WAL recovery instructions to user manual
- ACCUMULO-4633 - Added check to prevent division by zero
- ACCUMULO-4636 - System iterator improvements
- ACCUMULO-4640 - Accumulo shell is expecting instance.volumens in client.conf instead of accumulo-site.xml
- ACCUMULO-4648 - Update voting text in build.sh script
- ACCUMULO-4657 - BulkImport Performance Bottleneck
- ACCUMULO-4658 - Cache call to ZooKeeper to get table id map for the duration of the method
- ACCUMULO-4660 - Sanitize incoming values from HTTP parameters
- ACCUMULO-4662 - Fix ambiguous table reference
- ACCUMULO-4665 - Use UGI with real Kerberos credentials
- ACCUMULO-4666 - Improve KerberosToken sanity-checks and related doc
- ACCUMULO-4669 - Use windowed statistics in RFile
- ACCUMULO-4676 - Use HTTPOnly flags in monitor to prevent XSS attacks
- ACCUMULO-4682 - Enforce import ordering
- ACCUMULO-4684 - Basic schema outline for accumulo:replication
- ACCUMULO-4685 - Fix minor warnings and bug in FileRefTest
- ACCUMULO-4686 - Fix upgrade process to set version in all volumes.
- ACCUMULO-4687 - Clean up some static-analysis warnings
- ACCUMULO-4699 - Fixed queued work key in replication
- ACCUMULO-4702 - Code fixes to work with Guava 23
- ACCUMULO-4713 - Correct handling min and max timestamps
- ACCUMULO-4716 - Don’t cache blks over max array size
- ACCUMULO-4721 - Document rfile-info in the user manual
- ACCUMULO-4741 - Remove minified files in Monitor
- ACCUMULO-4774 - Made conditional writer thread into daemon
- ACCUMULO-4776 - Fix advertised host in monitor
- ACCUMULO-4777 - Root tablet got spammed with 1.8 million log entries
- ACCUMULO-4780 - Add overflow check to seq num in CommitSession
- ACCUMULO-4781 - Fixed logging performance issue
- ACCUMULO-4787 - Close input stream in AccumuloReplicaSystem
- ACCUMULO-4809 - Avoid blocking during session cleanup
- ACCUMULO-4817 - Update build plugins and parent POM
View all releases in the archive