Author: buildbot Date: Mon Feb 16 21:44:51 2015 New Revision: 940401 Log: Staging update by buildbot for accumulo
Modified: websites/staging/accumulo/trunk/content/ (props changed) websites/staging/accumulo/trunk/content/release_notes/1.6.2.html Propchange: websites/staging/accumulo/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Mon Feb 16 21:44:51 2015 @@ -1 +1 @@ -1660205 +1660210 Modified: websites/staging/accumulo/trunk/content/release_notes/1.6.2.html ============================================================================== --- websites/staging/accumulo/trunk/content/release_notes/1.6.2.html (original) +++ websites/staging/accumulo/trunk/content/release_notes/1.6.2.html Mon Feb 16 21:44:51 2015 @@ -223,6 +223,35 @@ the expected error conditions correctly. is meant to represent all of the information that represents the scan and can be useful to administrators or DevOps-types to observe and act on scans which are running for excessive periods of time. <a href="https://issues.apache.org/jira/browse/ACCUMULO-2641">ACCUMULO-2641</a> fixes <code>ActiveScan</code> to ensure that the internal identifier <code>scanId</code> is properly set.</p> +<h3 id="table-state-change-doesnt-wait-when-requested">Table state change doesn't wait when requested</h3> +<p>An Accumulo table has two states: <code>ONLINE</code> and <code>OFFLINE</code>. An offline table in Accumulo consumes no TabletServer +resources, only HDFS resources, which makes it useful to save infrequently used data. The Accumulo methods provided +to transition a state from <code>ONLINE</code> to <code>OFFLINE</code> and vice versa did not respect the <code>wait=true</code> parameter +when set. <a href="https://issues.apache.org/jira/browse/ACCUMULO-3301">ACCUMULO-3301</a> fixes the underlying implementation to ensure that when <code>wait=true</code> is provided, +the method will not return until the table's state transition has fully completed.</p> +<h3 id="keyvalue-doesnt-implement-hashcode-or-equals">KeyValue doesn't implement <code>hashCode()</code> or <code>equals()</code></h3> +<p>The <code>KeyValue</code> class is an implementation of <code>Entry<Key,Value></code> which is returned by the classes like +<code>Scanner</code> and <code>BatchScanner</code>. <a href="https://issues.apache.org/jira/browse/ACCUMULO-3217">ACCUMULO-3217</a> adds these methods which ensure that the returned <code>Entry<Key,Value></code> +operates as expected with <code>HashMaps</code> and <code>HashSets</code>. </p> +<h3 id="potential-deadlock-in-tabletserver">Potential deadlock in TabletServer</h3> +<p>Internal to the TabletServer, there are methods to construct instances of configuration objects for tables +and namespaces. The locking on these methods was not correctly implemented which created the possibility to +have concurrent requests to a TabletServer to deadlock. <a href="https://issues.apache.org/jira/browse/ACCUMULO-3372">ACCUMULO-3372</a> found this problem while performing +bulk imports of RFiles into Accumulo. Additional synchronization was added server-side to prevent this deadlock +from happening in the future.</p> +<h3 id="the-datelexicoder-incorrectly-serialized-dates-prior-1970">The <code>DateLexicoder</code> incorrectly serialized <code>Dates</code> prior 1970</h3> +<p>The <code>DateLexicode</code>, a part of the <code>Lexicoders</code> classes which implement methods to convert common type primitives +into lexicographically sorting Strings/bytes, incorrectly converted <code>Date</code> objects for dates prior to 1970. +<a href="https://issues.apache.org/jira/browse/ACCUMULO-3385">ACCUMULO-3385</a> fixed the <code>DateLexicoder</code> to correctly (de)serialize data <code>Date</code> objects. For users with +data stored in Accumulo using the broken implementation, the following can be performed to read the old data.</p> +<div class="codehilite"><pre> <span class="n">Lexicoder</span> <span class="n">lex</span> <span class="p">=</span> <span class="n">new</span> <span class="n">ULongLexicoder</span><span class="p">();</span> + <span class="k">for</span> <span class="p">(</span><span class="n">Entry</span><span class="o"><</span><span class="n">Key</span><span class="p">,</span> <span class="n">Value</span><span class="o">></span> <span class="n">e</span> <span class="p">:</span> <span class="n">scanner</span><span class="p">)</span> <span class="p">{</span> + <span class="n">Date</span> <span class="n">d</span> <span class="p">=</span> <span class="n">new</span> <span class="n">Date</span><span class="p">(</span><span class="n">lex</span><span class="p">.</span><span class="n">decode</span><span class="p">(</span><span class="n">TextUtil</span><span class="p">.</span><span class="n">getBytes</span><span class="p">(</span><span class="n">e</span><span class="p">.</span><span class="n">getKey</span><span class="p">().</span><span class="n">getRow</span><span class="p">())));</span> + <span class="o">//</span> <span class="p">...</span> + <span class="p">}</span> +</pre></div> + + <h2 id="performance-improvements">Performance Improvements</h2> <p>Apache Accumulo 1.6.2 includes a number of performance-related fixes over previous versions.</p> <h3 id="improvement-1">Improvement 1</h3>