Apache Accumulo 1.6.3

04 Jul 2015

Apache Accumulo 1.6.3 is a maintenance release on the 1.6 version branch. This release contains changes from over 63 issues, comprised of bug-fixes, performance improvements and better test cases. See JIRA for a complete list.

Below are resources for this release:

Users of 1.6.0, 1.6.1, and 1.6.2 are strongly encouraged to update as soon as possible to benefit from the improvements with very little concern in change of underlying functionality. Users of 1.4 or 1.5 that are seeking to upgrade to 1.6 should consider 1.6.3 as a starting point.

Fixed BatchWriter hold time error

In previous releases, a BatchWriter could fail with a MutationsRejectedException with server errors. If inspection of the tserver logs showed HoldTimeoutException was the cause, the workaround was to increase the value of general.rpc.timeout. Changing this setting is no longer necessary as this bug was fixed by ACCUMULO-2388.

Severe bug fixes

  • ACCUMULO-3597 Fixed a deadlock where a table flush and metadata tablet load were waiting on each other. This was a rare bug. If it occurred it could impact the availability of Accumulo as most Accumulo operations depend on metadata tablets.
  • ACCUMULO-3709 Fixed a potential data loss bug where AccumuloOutputFormat close did not rethrow exception.
  • ACCUMULO-3745 Fixed a deadlock in SourceSwitchingIterator that occurred when using custom iterators that called deepCopy. This bug would cause scans to hang indefinitely until the offending tserver was killed.
  • ACCUMULO-3859 Fixed a race condition that could prevent table constraints from ever loading for a Tablet. It is likely to only affect users when the constraint is first added to a table.

Notable bug fixes

  • ACCUMULO-3589 du in Shell does not check table existence.
  • ACCUMULO-3692 Offline’ing a table disabled subsequent balancing.
  • ACCUMULO-3696 Tracing could queue too many traces
  • ACCUMULO-3718 Fixed a bug that prevented a Mutation from being created in Scala.
  • ACCUMULO-3747 Thrashing tablet servers would be removed from the Monitor’s Dead Server list.
  • ACCUMULO-3750 Fixed an issue where the Master would perpetually fail when there was a bad instance.secret setting.
  • ACCUMULO-3784 Fixed a bug in getauths Shell command where it treated visibilities that differed only in case as the same.
  • ACCUMULO-3796 Added documentation about turning off zone reclaim.
  • ACCUMULO-3880 Fixed an issue where malformed configuration caused TabletServers to shutdown.
  • ACCUMULO-3890 Fixed a performance issue with CredentialProvider. Information stored in the CredentialProvider was not cached which resulted in repeatedly reading the file from HDFS which can degrade HDFS performance.

Known Issues

During testing HDFS-8406 was encountered which is summarized by write-ahead log recovery that was never completed due to an inability to recover the HDFS lease on the WAL. To work around this issue, the following steps can be done:

  1. Locate block for walog whose lease can not be recovered.
  2. Copy block into HDFS as temp file TMP_WALOG
  3. Delete the walog whose lease can not be recovered.
  4. Move TMP_WALOG to the filename of the walog deleted in the previous step.

Using the fetchColumns() method on a scanner in conjunction with custom iterators that add column families in their seek() method can lead to unexpected behavior. See ACCUMULO-3905 for more details. In that issue javadoc updates were made, but the updates did not make it into 1.6.3.

Testing

Each unit and functional test only runs on a single node, while the RandomWalk and Continuous Ingest tests run on any number of nodes. Agitation refers to randomly restarting Accumulo processes and Hadoop Datanode processes, and, in HDFS High-Availability instances, forcing NameNode failover.

OS Hadoop Nodes ZooKeeper HDFS HA Tests
Amazon Linux 2014.09 2.6.0 20 3.4.5 No 24hr ContinuousIngest w/ verification w/ and w/o agitation
Amazon Linux 2014.09 2.6.0 20 3.4.5 No 24hr Randomwalk w/o agitation
Centos 6.5 2.7.1 6 3.4.5 No Continuous Ingest and Verify (6B entries)
Centos 6.6 2.2.0 6 3.4.5 No All integration test passed. Some needed to be run a 2nd time.

View all releases in the archive