Author: elserj Date: Mon Feb 16 20:05:50 2015 New Revision: 1660193 URL: http://svn.apache.org/r1660193 Log: Stub out 1.6.2 release notes.
Modified: accumulo/site/trunk/content/release_notes/1.6.2.mdtext Modified: accumulo/site/trunk/content/release_notes/1.6.2.mdtext URL: http://svn.apache.org/viewvc/accumulo/site/trunk/content/release_notes/1.6.2.mdtext?rev=1660193&r1=1660192&r2=1660193&view=diff ============================================================================== --- accumulo/site/trunk/content/release_notes/1.6.2.mdtext (original) +++ accumulo/site/trunk/content/release_notes/1.6.2.mdtext Mon Feb 16 20:05:50 2015 @@ -16,14 +16,16 @@ Notice: Licensed to the Apache Softwa specific language governing permissions and limitations under the License. -Apache Accumulo 1.6.1 is a maintenance release on the 1.6 version branch. -This release contains changes from over 175 issues, comprised of bug-fixes, performance -improvements and better test cases. As this is a maintenance release, Apache Accumulo -1.6.1 has no client API incompatibilities over Apache Accumulo 1.6.0. Users of 1.6.0 -are strongly encouraged to update as soon as possible to benefit from the improvements. - -New users are encouraged to use this release over 1.6.0 or any other older releases. For -information about improvements since Accumulo 1.5, see the [1.6.0 release notes][32]. +Apache Accumulo 1.6.2 is a maintenance release on the 1.6 version branch. +This release contains changes from over 150 issues, comprised of bug-fixes, performance +improvements and better test cases. Apache Accumulo 1.6.2 is the first release since the +community has adopted [Semantic Versioning][1] which means that all changes to the [public API][2] +are guaranteed to be made without adding to or removing from the public API. This ensures +that client code that runs against 1.6.1 is guaranteed to run against 1.6.2 and vice versa. + +Users of 1.6.0 or 1.6.1 are strongly encouraged to update as soon as possible to benefit from +the improvements with very little concern in change of underlying functionality. For +information about improvements since Accumulo 1.5, see the [1.6.0][3] and [1.6.1][4] release notes. ## Performance Improvements @@ -31,134 +33,24 @@ Apache Accumulo 1.6.1 includes a number Many of these improvements were also included in the recently released Apache Accumulo 1.5.2. -### Write-Ahead Log sync performance - -The Write-Ahead Log (WAL) files are used to ensure durability of updates made to Accumulo. -A sync is called on the file in HDFS to make sure that the changes to the WAL are persisted -to disk, which allows Accumulo to recover in the case of failure. [ACCUMULO-2766][9] fixed -an issue where an operation against a WAL would unnecessarily wait for multiple syncs, slowing -down the ingest on the system. - -### Minor-Compactions not aggressive enough - -On a system with ample memory provided to Accumulo, long hold-times were observed which -blocks the ingest of new updates. Trying to free more server-side memory by running minor -compactions more frequently increased the overall throughput on the node. These changes -were made in [ACCUMULO-2905][10]. - -### HeapIterator optimization - -Iterators, a notable feature of Accumulo, are provided to users as a server-side programming -construct, but are also used internally for numerous server operations. One of these system iterator -is the HeapIterator which implements a PriorityQueue of other Iterators. One way this iterator is -used is to merge multiple files in HDFS to present a single, sorted stream of Key-Value pairs. [ACCUMULO-2827][11] -introduces a performance optimization to the HeapIterator which can improve the speed of the -HeapIterator in common cases. - -### Write-Ahead log sync implementation - -In Hadoop-2, two implementations of sync are provided: hflush and hsync. Both of these -methods provide a way to request that the datanodes write the data to the underlying -medium and not just hold it in memory (the *fsync* syscall). While both of these methods -inform the Datanodes to sync the relevant block(s), *hflush* does not wait for acknowledgement -from the Datanodes that the sync finished, where *hsync* does. To provide the most reliable system -"out of the box", Accumulo defaults to *hsync* so that your data is as secure as possible in -a variety of situations (notably, unexpected power outages). - -The downside is that performance tends to suffer because waiting for a sync to disk is a very -expensive operation. [ACCUMULO-2842][12] introduces a new system property, tserver.wal.sync.method, -that lets users to change the HDFS sync implementation from *hsync* to *hflush*. Using *hflush* instead -of *hsync* may result in about a 30% increase in ingest performance. +### Improvement 1 -For users upgrading from Hadoop-1 or Hadoop-0.20 releases, *hflush* is the equivalent of how -sync was implemented in these older versions of Hadoop and should give comparable performance. +### Improvement 2 ## Other improvements -### Use of Hadoop CredentialProviders - -Apache Hadoop 2.6.0 introduced a new API aimed at providing ways to separate sensitive values -from being stored in plaintext as a part of [HADOOP-10607][28]. Accumulo has had two sensitive -configuration properties stored in *accumulo-site.xml* for every standard installation: instance.secret -and trace.token.property.password. If either of these properties are compromised, it could lead to -unwanted access of Accumulo. [ACCUMULO-2464][29] modifies Accumulo so that it can stored any sensitive -configuration properties in a Hadoop CredentialProvider. With sensitive values removed from accumulo-site.xml, -it can be shared without concern and security can be focused solely on the CredentialProvider. +### Improvement 1 ## Notable Bug Fixes -### Add configurable maximum frame size to Thrift proxy - -The Thrift proxy server was subject to memory exhaustion, typically -due to bad input, where the server would attempt to allocate a very large -buffer and die in the process. [ACCUMULO-2658][2] introduces a configuration -parameter, like [ACCUMULO-2360][3], to prevent this error. - -### Offline tables can prevent tablet balancing - -Before 1.6.1, when a table with many tablets was created, ingested into, and -taken offline, tablet balancing may have stoppped. This would happen if there -were tablet migrations for the table, because the migrations couldn't occur. -The balancer will not run when there are outstanding migrations; therefore, a -system could become unbalanced. [ACCUMULO-2694][4] introduces a fix to ensure -that offline tables do not block balancing and improves the server-side -logging. - -### MiniAccumuloCluster process management - -MiniAccumuloCluster had a few issues which could cause deadlock or a method that -never returns. Most of these are related to management of the Accumulo processes -([ACCUMULO-2764][5], [ACCUMULO-2985][6], and [ACCUMULO-3055][7]). - -### IteratorSettings not correctly serialized in RangeInputSplit - -The Writable interface methods on the RangeInputSplit class accidentally omitted -calls to serialize the IteratorSettings configured for the Job. [ACCUMULO-2962][8] -fixes the serialization and adds some additional tests. - -### Constraint violation causes hung scans - -A failed bulk import transaction had the ability to create an infinitely retrying -loop due to a constraint violation. This directly prevents scans from completing, -but will also hang compactions. [ACCUMULO-3096][14] fixes the issue so that the -constraint no longer hangs the entire system. - -### Unable to upgrade cleanly from 1.5 - -When upgrading a table from 1.5.1 to 1.6.0, a user experienced an error where the table -never came online. [ACCUMULO-2974][27] fixes an issue from the change of file references -stored as absolute paths instead of relative paths in the Accumulo metadata table. - -### Guava dependency changed - -[ACCUMULO-3100][30] lowered the dependency on Guava from 15.0 to 14.0.1. This dependency -now matches what Hadoop is depending on for the 2.x.y version line. Depending on a newer -version of Guava introduces many issues stemming from deprecated classes in use by Hadoop -which have been removed. While installations of Accumulo will likely work as expected with -newer versions of Guava on the classpath (because the Hadoop processes will have their own -classpath), use of MiniDfsClusters with the new Guava version will result in errors. - -Users can attempt to use a newer version of Guava on the Accumulo server classpath; however, -the success is dependent on Hadoop client libraries not using (missing) Guava methods internally. - -### Scanners eat InterruptedException +### Bug fix 1 -Scanners previously consumed InterruptedExceptions and did not exit after. In multi-threaded -environments, this is very problematic as there is no means to stop the Scanner from reading data. -[ACCUMULO-3030][31] fixes the Scanner so that interrupts are observed and the Scanner exits as expected. +### Bug fix 2 ## Documentation The following documentation updates were made: - * [ACCUMULO-2767][15] - * [ACCUMULO-2796][16] - * [ACCUMULO-2919][17] - * [ACCUMULO-3008][18] - * [ACCUMULO-2874][19] - * [ACCUMULO-2821][20] - * [ACCUMULO-3097][21] - * [ACCUMULO-3097][22] ## Testing @@ -176,48 +68,24 @@ and, in HDFS High-Availability instances </tr> <tr> <td>Gentoo</tdt> - <td>Apache 2.6.0-SNAPSHOT</td> - <td>2</td> - <td>Apache 3.4.5</td> + <td>N/A</td> + <td>1</td> + <td>N/A</td> <td>No</td> - <td>Unit and Functional Tests, ContinuousIngest w/ verification (2B entries)</td> + <td>Unit and Integration Tests</td> </tr> <tr> <td>CentOS 6</td> - <td>Apache 2.3.0</td> + <td>Keith TBD</td> <td>20</td> - <td>Apache 3.4.5</td> + <td>Keith TBD</td> <td>No</td> - <td>24/hr RandomWalk, ContinuousIngest w/ verification w/ and w/o agitation (17B entries), 24hr Randomwalk test</td> + <td>(Keith Verify this) ContinuousIngest w/ verification w/ and w/o agitation (31B and 21B entries, respectively)</td> </tr> </table> -[1]: https://issues.apache.org/jira/browse/ACCUMULO-2586 -[2]: https://issues.apache.org/jira/browse/ACCUMULO-2658 -[3]: https://issues.apache.org/jira/browse/ACCUMULO-2360 -[4]: https://issues.apache.org/jira/browse/ACCUMULO-2694 -[5]: https://issues.apache.org/jira/browse/ACCUMULO-2764 -[6]: https://issues.apache.org/jira/browse/ACCUMULO-2985 -[7]: https://issues.apache.org/jira/browse/ACCUMULO-3055 -[8]: https://issues.apache.org/jira/browse/ACCUMULO-2962 -[9]: https://issues.apache.org/jira/browse/ACCUMULO-2766 -[10]: https://issues.apache.org/jira/browse/ACCUMULO-2905 -[11]: https://issues.apache.org/jira/browse/ACCUMULO-2827 -[12]: https://issues.apache.org/jira/browse/ACCUMULO-2842 -[13]: https://issues.apache.org/jira/browse/ACCUMULO-3018 -[14]: https://issues.apache.org/jira/browse/ACCUMULO-3096 -[15]: https://issues.apache.org/jira/browse/ACCUMULO-2767 -[16]: https://issues.apache.org/jira/browse/ACCUMULO-2796 -[17]: https://issues.apache.org/jira/browse/ACCUMULO-2919 -[18]: https://issues.apache.org/jira/browse/ACCUMULO-3008 -[19]: https://issues.apache.org/jira/browse/ACCUMULO-2874 -[20]: https://issues.apache.org/jira/browse/ACCUMULO-2821 -[21]: https://issues.apache.org/jira/browse/ACCUMULO-3097 -[22]: https://issues.apache.org/jira/browse/ACCUMULO-3097 -[27]: https://issues.apache.org/jira/browse/ACCUMULO-2974 -[28]: https://issues.apache.org/jira/browse/HADOOP-10607 -[29]: https://issues.apache.org/jira/browse/ACCUMULO-2464 -[30]: https://issues.apache.org/jira/browse/ACCUMULO-3100 -[31]: https://issues.apache.org/jira/browse/ACCUMULO-3030 -[32]: /release_notes/1.6.0.html \ No newline at end of file +[1]: http://semver.org +[2]: https://github.com/apache/accumulo#api +[3]: http://accumulo.apache.org/release_notes/1.6.0.html +[4]: http://accumulo.apache.org/release_notes/1.6.1.html \ No newline at end of file