accumulo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r951946 - in /websites/staging/accumulo/trunk/content: ./ release_notes/1.7.0.html
Date Tue, 19 May 2015 22:43:17 GMT
Author: buildbot
Date: Tue May 19 22:43:17 2015
New Revision: 951946

Log:
Staging update by buildbot for accumulo

Modified:
    websites/staging/accumulo/trunk/content/   (props changed)
    websites/staging/accumulo/trunk/content/release_notes/1.7.0.html

Propchange: websites/staging/accumulo/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Tue May 19 22:43:17 2015
@@ -1 +1 @@
-1680412
+1680414

Modified: websites/staging/accumulo/trunk/content/release_notes/1.7.0.html
==============================================================================
--- websites/staging/accumulo/trunk/content/release_notes/1.7.0.html (original)
+++ websites/staging/accumulo/trunk/content/release_notes/1.7.0.html Tue May 19 22:43:17 2015
@@ -377,47 +377,51 @@ with at least Apache Hadoop 2.6.0.</p>
 <h2 id="performance-improvements">Performance Improvements</h2>
 <h3 id="configurable-threadpool-size-for-assignments">Configurable Threadpool Size
for Assignments</h3>
 <p>One of the primary tasks that the Accumulo Master is responsible for is the
-assignment of Tablets to TabletServers. Before a TabletServer can be brought online,
+assignment of Tablets to TabletServers. Before a Tablet can be brought online,
 the tablet must not have any outstanding logs as this represents a need to perform
 recovery (the tablet was not unloaded cleanly). This process can take some time for
 large write-ahead log files and is performed on a TabletServer to keep the Master
 light and agile.</p>
-<p>Assignments, whether the Tablets need to perform recovery or not, share the same
+<p>Assignment of Tablets, whether those Tablets need to perform recovery or not, share
the same
 threadpool in the Master. This means that when a large number of TabletServers are
 available, too few threads dedicated to assignment can restrict the speed at which
 assignments can be performed. <a href="https://issues.apache.org/jira/browse/ACCUMULO-1085">ACCUMULO-1085</a>
allows the size of the
 threadpool used in the Master for assignments to be configurable which can be
-dynamically altered to remove the artificial limitation when sufficient servers are available.</p>
+dynamically altered to remove the limitation when sufficient servers are available.</p>
 <h3 id="group-commit-threshold-as-a-factor-of-data-size">Group-Commit Threshold as
a Factor of Data Size</h3>
 <p>When ingesting data into Accumulo, the majority of time is spent in the write-ahead
 log. As such, this is a common place that optimizations are added. One optimization
 is the notion of "group-commit". When multiple clients are writing data to the same
 Accumulo Tablet, it is not efficient for each of them to synchronize the WAL, flush their
 updates to disk for durability, and then release the lock. The idea of group-commit
-is that multiple writers can queue their write their mutations to the WAL and perform
-then wait for a sync that could satisfy the durability constraints of multiple clients
-instead of just one. This has a drastic improvement on performance.</p>
+is that multiple writers can queue their write their mutations to the WAL and
+then wait for a sync that will satisfy the durability constraints of their batch of
+updates. This has a drastic improvement on performance as many threads writing batches
+concurrently can "share" the same <code>fsync</code>.</p>
 <p>In previous versions, Accumulo controlled the frequency in which this group-commit
-sync was performed as a factor of clients writing to Accumulo. This was both confusing
-to correctly configure and also encouraged sub-par performance with fewer writers.
+sync was performed as a factor of the number of clients writing to Accumulo. This was both
confusing
+to correctly configure and also encouraged sub-par performance with few write threads.
 <a href="https://issues.apache.org/jira/browse/ACCUMULO-1950">ACCUMULO-1950</a>
introduced a new configuration property <code>tserver.total.mutation.queue.max</code>
 which defines the amount of data that is queued before a group-commit is performed
 in such a way that is agnostic of the number of writers. This new configuration property
-is much easier to reason about than the previous, now deprecated, <code>tserver.mutation.queue.max</code>.</p>
+is much easier to reason about than the previous (now deprecated) <code>tserver.mutation.queue.max</code>.
+Users who have altered <code>tserver.mutation.queue.max</code> in the past are
encouraged to start
+using the new <code>tserver.total.mutation.queue.max</code> property.</p>
 <h2 id="notable-bug-fixes">Notable Bug Fixes</h2>
 <h3 id="sourceswitchingiterator-deadlock">SourceSwitchingIterator Deadlock</h3>
 <p>An instance of SourceSwitchingIterator, the Accumulo iterator which transparently
-manages whether data for a Tablet is in memory (the in-memory map) or disk (HDFS 
+manages whether data for a Tablet read from memory (the in-memory map) or disk (HDFS 
 after a minor compaction), was found deadlocked in a production system.</p>
 <p>This deadlock prevented the scan and the minor compaction from ever successfully
 completing without restarting the TabletServer. <a href="https://issues.apache.org/jira/browse/ACCUMULO-3745">ACCUMULO-3745</a>
 fixes the inconsistent synchronization inside of the SourceSwitchingIterator
 to prevent this deadlock from happening in the future.</p>
+<p>The only mitigation of this bug is to restart the TabletServer that is deadlocked.</p>
 <h3 id="table-flush-blocked-indefinitely">Table flush blocked indefinitely</h3>
 <p>While running the Accumulo Randomwalk distributed test, it was observed
 that all activity in Accumulo had stopped and there was an offline
-Accumulo metadata table tablet. The system first tried to flush a user
-tablet but the metadata table was not online (likely due to the agitation
+Accumulo Metadata table tablet. The system first tried to flush a user
+tablet, but the metadata table was not online (likely due to the agitation
 process which stops and starts Accumulo processes during the test). After
 this call, a call to load the metadata tablet was queued but could not 
 complete until the previous flush call. Thus, a deadlock occurred.</p>
@@ -425,26 +429,29 @@ complete until the previous flush call.
 before the load tablet call completed, but the load tablet call couldn't
 run because of connection caching we perform in Accumulo's RPC layer
 to reduce the quantity of sockets we need to create to send data. 
-<a href="https://issues.apache.org/jira/browse/ACCUMULO-3597">ACCUMULO-3597</a>
prevents this dealock by forcing a
-non-cached connection for the message requesting loads of metadata tablets,
-we can ensure that this deadlock won't occur.</p>
+<a href="https://issues.apache.org/jira/browse/ACCUMULO-3597">ACCUMULO-3597</a>
prevents this deadlock by forcing the use of a
+non-cached connection for the RPCs requesting a load of a metadata tablet. While
+this feature does result in additional network resources to be used, the concern is minimal
+because the number of metadata tablets is typically very small with respect to the
+total number of tablets in the system.</p>
+<p>The only mitigation of this bug is to restart the TabletServer that is hung.</p>
 <h2 id="other-changes">Other changes</h2>
 <h3 id="versions-file-present-in-binary-distribution">VERSIONS file present in binary
distribution</h3>
-<p>In the pre-built binary distribution, or distributions built by users from the
+<p>In the pre-built binary distribution or distributions built by users from the
 official source release, users will now see a <code>VERSIONS</code> file present
in the lib
 directory alongside the Accumulo server-side jars. Because the created tarball
-strips off versions from the jar file names, it can be extra work to actually
-find what the version of the deployed jars is.</p>
-<p><a href="https://issues.apache.org/jira/browse/ACCUMULO-2863">ACCUMULO-2863</a>
adds this <code>VERSIONS</code> file to the <code>lib/</code> directory
+strips off versions from the jar file names, it can require extra work to actually
+find what the version of each dependent jar.</p>
+<p><a href="https://issues.apache.org/jira/browse/ACCUMULO-2863">ACCUMULO-2863</a>
adds a <code>VERSIONS</code> file to the <code>lib/</code> directory
 which contains the Maven groupId, artifactId, and verison (GAV) information for
-each jar file.</p>
+each jar file included in the distribution.</p>
 <h3 id="per-table-volume-chooser">Per-Table Volume Chooser</h3>
 <p>The <code>VolumeChooser</code> interface is a server-side extension
point that allows user
 tables to provide custom logic in choosing where its files are written when multiple
 HDFS instances are available. By default, a randomized volume chooser implementation
 is used to evenly balance files across all HDFS instances.</p>
 <p>Previously, this VolumeChooser logic was instance-wide which meant that it would
-affect system tables. This is potentially undesirable as it might unintentionally
+affect all tables. This is potentially undesirable as it might unintentionally
 impact other users in a multi-tenant system. <a href="https://issues.apache.org/jira/browse/ACCUMULO-3177">ACCUMULO-3177</a>
introduces
 a new per-table property which supports configuration of a <code>VolumeChooser</code>.
This
 ensures that the implementation to choose how HDFS utilization happens when multiple



Mime
View raw message