This is an automated email from the ASF dual-hosted git repository. git-site-role pushed a commit to branch asf-staging in repository https://gitbox.apache.org/repos/asf/accumulo-website.git
The following commit(s) were added to refs/heads/asf-staging by this push: new 9405be5d Automatic Site Publish by Buildbot 9405be5d is described below commit 9405be5dccb886d924a6bf3492315d1540fe82f0 Author: buildbot <us...@infra.apache.org> AuthorDate: Wed Nov 2 07:12:38 2022 +0000 Automatic Site Publish by Buildbot --- output/docs/2.x/getting-started/features.html | 7 +- output/feed.xml | 513 +++++++++++++++++++++----- output/index.html | 14 +- output/news/index.html | 7 + output/release/accumulo-2.0.1/index.html | 3 +- output/release/accumulo-2.1.0/index.html | 439 ++++++++++++---------- output/release/index.html | 4 +- output/search_data.json | 4 +- 8 files changed, 677 insertions(+), 314 deletions(-) diff --git a/output/docs/2.x/getting-started/features.html b/output/docs/2.x/getting-started/features.html index 8cb3d351..4981f19e 100644 --- a/output/docs/2.x/getting-started/features.html +++ b/output/docs/2.x/getting-started/features.html @@ -697,7 +697,7 @@ into Accumulo keys in a way that their natural sort order is preserved.</p> <h2 id="plugins">Plugins</h2> -<p>The <a href="TODO">Service Plugin Interface (SPI)</a> was created to expose Accumulo system level information to +<p>The <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/2.1.0/org/apache/accumulo/core/spi/package-summary.html">Service Plugin Interface (SPI)</a> was created to expose Accumulo system level information to plugins in a stable manner.</p> <h3 id="balancer">Balancer</h3> @@ -718,7 +718,8 @@ spread.</p> <h3 id="compaction">Compaction</h3> -<p>Compactions were reworked in 2.1 to allow plugin capabilities. TODO expand</p> +<p>Compactions were reworked in 2.1 to allow plugin capabilities. See <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/2.1.0/org/apache/accumulo/core/spi/compaction/package-summary.html">the documentation for +compactions</a>.</p> <h3 id="scan">Scan</h3> @@ -727,7 +728,7 @@ spread.</p> <h3 id="volume-chooser">Volume Chooser</h3> <p>The Volume Chooser has been around for some time but was refactored in 2.1 to be included in the SPI. -See the <a href="TODO">javadoc</a> for more information.</p> +See the <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/2.1.0/org/apache/accumulo/core/spi/fs/VolumeChooser.html">javadoc</a> for more information.</p> <h3 id="pluggable-block-caches">Pluggable Block Caches</h3> diff --git a/output/feed.xml b/output/feed.xml index b034a747..a9636775 100644 --- a/output/feed.xml +++ b/output/feed.xml @@ -6,11 +6,425 @@ </description> <link>https://accumulo.apache.org/</link> <atom:link href="https://accumulo.apache.org/feed.xml" rel="self" type="application/rss+xml"/> - <pubDate>Wed, 02 Nov 2022 04:51:34 +0000</pubDate> - <lastBuildDate>Wed, 02 Nov 2022 04:51:34 +0000</lastBuildDate> + <pubDate>Wed, 02 Nov 2022 07:12:31 +0000</pubDate> + <lastBuildDate>Wed, 02 Nov 2022 07:12:31 +0000</lastBuildDate> <generator>Jekyll v4.3.1</generator> + <item> + <title>Apache Accumulo 2.1.0</title> + <description><h2 id="about">About</h2> + +<p>Apache Accumulo 2.1.0 brings many new features and updates since 1.10 and 2.0. The 2.1 release +series is an LTM series, and as such, is expected to receive stability-improving bugfixes, as +needed. This makes this series suitable for production environments where stability is preferable +over new features that might appear in subsequent non-LTM releases.</p> + +<p>This release has received more than 1200 commits from over 50 contributors, including numerous +bugfixes, updates, and features.</p> + +<h2 id="minimum-requirements">Minimum Requirements</h2> + +<p>This version of Accumulo requires at least Java 11 to run. Various Java 11 versions from different +distributors were used throughout its testing and development, so we expect it to work with any +standard OpenJDK-based Java distribution.</p> + +<p>At least Hadoop 3 is required, though it is recommended to use a more recent version. Version 3.3 +was used extensively during testing, but we have no specific knowledge that an earlier version of +Hadoop 3 will not work. Whichever major/minor version you use, it is recommended to use the latest +bugfix/patch version available. By default, our POM depends on 3.3.4.</p> + +<p>During much of this release’s development, ZooKeeper 3.5 was used as a minimum. However, that +version reach its end-of-life during development, and we do not recommend using end-of-life versions +of ZooKeeper. The latest bugfix version of 3.6, 3.7, or 3.8 should also work fine. By default, our +POM depends on 3.8.0.</p> + +<h2 id="binary-incompatibility">Binary Incompatibility</h2> + +<p>This release is known to be incompatible with prior versions of the client libraries. That is, the +2.0.0 or 2.0.1 version of the client libraries will not be able to communicate with a 2.1.0 or later +installation of Accumulo, nor will the 2.1.0 or later version of the client libraries communicate +with a 2.0.1 or earlier installation.</p> + +<h2 id="major-new-features">Major New Features</h2> + +<h3 id="overhaul-of-table-compactions">Overhaul of Table Compactions</h3> + +<p>Significant changes were made to how Accumulo compacts files in this release. See +<a href="/docs/2.x/administration/compaction">compaction </a> for details, below are some highlights.</p> + +<ul> + <li>Multiple concurrent compactions per tablet on disjoint files is now supported. Previously only a +single compaction could run on a tablet. This allows tablets that are running long compactions +on large files to concurrently compact new smaller files that arrive.</li> + <li>Multiple compaction thread pools per tablet server are now supported. Previously only a single +thread pool existed within a tablet server for compactions. With a single thread pool, if all +threads are working on long compactions it can starve quick compactions. Now compactions with +little data can be processed by dedicated thread pools.</li> + <li>Accumulo’s default algorithm for selecting files to compact was modified to select the smallest +set of files that meet the compaction ratio criteria instead of the largest set. This change +makes tablets more aggressive about reducing their number files while still doing logarithmic +compaction work. This change also enables efficiently compacting new small files that arrive +during a long running compaction.</li> + <li>Having dedicated compaction threads pools for tables is now supported through configuration. The +default configuration for Accumulo sets up dedicated thread pools for compacting the Accumulo +metadata table.</li> + <li>Merging minor compactions were dropped. These were added to Accumulo to address the problem of +new files arriving while a long running compaction was running. Merging minor compactions could +cause O(N^2) compaction work. The new compaction changes in this release can satisfy this use +case while doing a logarithmic amount of work.</li> +</ul> + +<p>CompactionStrategy was deprecated in favor of new public APIs. CompactionStrategy was never public +API as it used internal types and one of these types <code class="language-plaintext highlighter-rouge">FileRef</code> was removed in 2.1. Users who have +written a CompactionStrategy can replace <code class="language-plaintext highlighter-rouge">FileRef</code> with its replacement internal type +<code class="language-plaintext highlighter-rouge">StoredTabletFile</code> but this is not recommended. Since it is very likely that CompactionStrategy will +be removed in a future release, any work put into rewriting a CompactionStrategy will be lost. It is +recommended that users implement CompactionSelector, CompactionConfigurer, and CompactionPlanner +instead. The new compaction changes in 2.1 introduce new algorithms for optimally scheduling +compactions across multiple thread pools, configuring a deprecated compaction strategy may result is +missing out on the benefits of these new algorithms.</p> + +<p>See the <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-tserver/2.1.0/org/apache/accumulo/tserver/compaction/CompactionStrategy.html">javadoc</a> for more +information.</p> + +<p>GitHub tickets related to these changes: <a href="https://github.com/apache/accumulo/issues/564">#564</a> <a href="https://github.com/apache/accumulo/issues/1605">#1605</a> <a href="https://github.com/apache/accumulo/issues/1609">#1609</a> <a href="https://github.com/apache/accumulo/issues/1649">#1649</a></p> + +<h3 id="external-compactions-experimental">External Compactions (experimental)</h3> + +<p>This feature includes two new optional server components, CompactionCoordinator and Compactor, that +enables the user to run major compactions outside of the TabletServer. See <a href="/docs/2.x/getting-started/design">design </a>, <a href="/docs/2.x/administration/compaction">compaction </a>, and the External Compaction <a href="/blog/2021/07/08/external-compactions.html">blog +post</a> for more information. This work was completed over many tickets, see the GitHub +<a href="https://github.com/apache/accumulo/projects/20">project</a> for the related issues. <a href="https://github.com/apache/accumulo/issues/2096">#2096</a></p> + +<h3 id="scan-servers-experimental">Scan Servers (experimental)</h3> + +<p>This feature includes a new optional server component, Scan Server, that enables the user to run +scans outside of the TabletServer. See <a href="/docs/2.x/getting-started/design">design </a>, +<a href="https://github.com/apache/accumulo/issues/2411">#2411</a>, and <a href="https://github.com/apache/accumulo/issues/2665">#2665</a> for more information. Importantly, users can utilize this +feature to avoid bogging down the TabletServer with long-running scans, slow iterators, etc., +provided they are willing to tolerate eventual consistency.</p> + +<h3 id="new-per-table-on-disk-encryption-experimental">New Per-Table On-Disk Encryption (experimental)</h3> + +<p>On-disk encryption can now be configured on a per table basis as well as for the entire instance +(all tables). See <a href="/docs/2.x/security/on-disk-encryption">on-disk-encryption </a> for more information.</p> + +<h3 id="new-jshell-entry-point">New jshell entry point</h3> + +<p>Created new “jshell” convenience entry point. Run <code class="language-plaintext highlighter-rouge">bin/accumulo jshell</code> to start up jshell, +preloaded with Accumulo classes imported and with an instance of AccumuloClient already created for +you to connect to Accumulo (assuming you have a client properties file on the class path) <a href="https://github.com/apache/accumulo/issues/1870">#1870</a> <a href="https://github.com/apache/accumulo/issues/1910">#1910</a></p> + +<h2 id="major-improvements">Major Improvements</h2> + +<h3 id="fixed-gc-metadata-hotspots">Fixed GC Metadata hotspots</h3> + +<p>Prior to this release, Accumulo stored GC file candidates in the metadata table using rows of the +form <code class="language-plaintext highlighter-rouge">~del&lt;URI&gt;</code>. This row schema lead to uneven load on the metadata table and metadata tablets +that were eventually never used. In <a href="https://github.com/apache/accumulo/issues/1043">#1043</a> / <a href="https://github.com/apache/accumulo/issues/1344">#1344</a>, the row format was changed to +<code class="language-plaintext highlighter-rouge">~del&lt;hash(URI)&gt;&lt;URI&gt;</code> resulting in even load on the metadata table and even data spread in the +tablets. After upgrading, there may still be splits in the metadata table using the old row format. +These splits can be merged away as shown in the example below which starts off with splits generated +from the old and new row schema. The old splits with the prefix <code class="language-plaintext highlighter-rouge">~delhdfs</code> are merged away.</p> + +<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>root@uno&gt; getsplits -t accumulo.metadata +2&lt; +~ +~del55 +~dela7 +~delhdfs://localhost:8020/accumulo/tables/2/default_tablet/F00000a0.rf +~delhdfs://localhost:8020/accumulo/tables/2/default_tablet/F00000kb.rf +root@uno&gt; merge -t accumulo.metadata -b ~delhdfs -e ~delhdfs~ +root@uno&gt; getsplits -t accumulo.metadata +2&lt; +~ +~del55 +~dela7 +</code></pre></div></div> + +<h3 id="master-renamed-to-manager">Master Renamed to Manager</h3> + +<p>In order to use more inclusive language in our code, the Accumulo team has renamed all references to +the word “master” to “manager” (with the exception of deprecated classes and packages retained for +compatibility). This change includes the master server process, configuration properties with master +in the name, utilities with master in the name, and packages/classes in the code base. Where these +changes affect the public API, the deprecated “master” name will still be supported until Accumulo +3.0.</p> + +<blockquote> + <p><strong>Important</strong> + One particular change to be aware of is that certain state for the manager process is stored in + ZooKeeper, previously in under a directory named <code class="language-plaintext highlighter-rouge">masters</code>. This directory has been renamed to + <code class="language-plaintext highlighter-rouge">managers</code>, and the upgrade will happen automatically if you launch Accumulo using the provided + scripts. However, if you do not use the built in scripts (e.g., accumulo-cluster or + accumulo-service), then you will need to perform a one-time upgrade of the ZooKeeper state by + executing the <code class="language-plaintext highlighter-rouge">RenameMasterDirInZK</code> utility:</p> + <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> ${ACCUMULO_HOME}/bin/accumulo org.apache.accumulo.manager.upgrade.RenameMasterDirInZK +</code></pre></div> </div> +</blockquote> + +<p>Some other specific examples of these changes include:</p> + +<ul> + <li>All configuration properties starting with <code class="language-plaintext highlighter-rouge">master.</code> have been renamed to start with <code class="language-plaintext highlighter-rouge">manager.</code> +instead. The <code class="language-plaintext highlighter-rouge">master.*</code> property names in the site configuration file (or passed on the +command-line) are converted internally to the new name, and a warning is printed. However, the old +name can still be used until at least the 3.0 release of Accumulo. Any <code class="language-plaintext highlighter-rouge">master.*</code> properties that +have been set in ZooKeeper will be automatically converted to the new <code class="language-plaintext highlighter-rouge">manager.*</code> name when +Accumulo is upgraded. The old property names can still be used by the <code class="language-plaintext highlighter-rouge">config</code> shell command or +via the methods accessible via <code class="language-plaintext highlighter-rouge">AccumuloClient</code>, but a warning will be generated when the old +names are used. You are encouraged to update all references to <code class="language-plaintext highlighter-rouge">master</code> in your site configuration +files to <code class="language-plaintext highlighter-rouge">manager</code> when installing Accumulo 2.1.</li> + <li>The tablet balancers in the <code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.master.balancer</code> package have all been +relocated to <code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.manager.balancer</code>. DefaultLoadBalancer has been also +renamed to SimpleLoadBalancer along with the move. The default balancer has been updated from +<code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.master.balancer.TableLoadBalancer</code> to +<code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.manager.balancer.TableLoadBalancer</code>, and the default per-table +balancer has been updated from <code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.master.balancer.DefaultLoadBalancer</code> to +<code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.manager.balancer.SimpleLoadBalancer</code>. If you have customized the +tablet balancer configuration, you are strongly encouraged to update your configuration to +reference the updated balancer names. If you have written a custom tablet balancer, it should be +updated to implement the new interface +<code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.manager.balancer.TabletBalancer</code> rather than extending the deprecated +abstract <code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.master.balancer.TabletBalancer</code>.</li> + <li>The configuration file <code class="language-plaintext highlighter-rouge">masters</code> for identifying the manager host(s) has been deprecated. If this +file is found, a warning will be printed. The replacement file <code class="language-plaintext highlighter-rouge">managers</code> should be used (i.e., +rename your masters file to managers) instead.</li> + <li>The <code class="language-plaintext highlighter-rouge">master</code> argument to the <code class="language-plaintext highlighter-rouge">accumulo-service</code> script has been deprecated, and the replacement +<code class="language-plaintext highlighter-rouge">manager</code> argument should be used instead.</li> + <li>The <code class="language-plaintext highlighter-rouge">-master</code> argument to the <code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.util.ZooZap</code> utility has been deprecated +and the replacement <code class="language-plaintext highlighter-rouge">-manager</code> argument should be used instead.</li> + <li>The <code class="language-plaintext highlighter-rouge">GetMasterStats</code> utility has been renamed to <code class="language-plaintext highlighter-rouge">GetManagerStats</code>.</li> + <li><code class="language-plaintext highlighter-rouge">org.apache.accumulo.master.state.SetGoalState</code> is deprecated, and any custom scripts that invoke +this utility should be updated to call <code class="language-plaintext highlighter-rouge">org.apache.accumulo.manager.state.SetGoalState</code> instead.</li> + <li><code class="language-plaintext highlighter-rouge">masterMemory</code> in <code class="language-plaintext highlighter-rouge">minicluster.properties</code> has been deprecated and <code class="language-plaintext highlighter-rouge">managerMemory</code> should be used +instead in any <code class="language-plaintext highlighter-rouge">minicluster.properties</code> files you have configured.</li> + <li>See also <a href="https://github.com/apache/accumulo/issues/1640">#1640</a> <a href="https://github.com/apache/accumulo/issues/1642">#1642</a> <a href="https://github.com/apache/accumulo/issues/1703">#1703</a> <a href="https://github.com/apache/accumulo/issues/1704">#1704</a> <a href="https://github.com/apache/accumulo/issues/1873">#1873</a> <a href="https://g [...] +</ul> + +<h3 id="new-tracing-facility">New Tracing Facility</h3> + +<p>HTrace support was removed in this release and has been replaced with <a href="https://opentelemetry.io/">OpenTelemetry</a>. Trace information will not be shown in the monitor. See comments in <a href="https://github.com/apache/accumulo/issues/2259">#2259</a> for an example of how to configure Accumulo to emit traces to supported OpenTelemetry sinks. +<a href="https://github.com/apache/accumulo/issues/2257">#2257</a></p> + +<h3 id="new-metrics-implementation">New Metrics Implementation</h3> + +<p>The Hadoop Metrics2 framework is no longer being used to emit metrics from Accumulo. Accumulo is now +using the <a href="https://micrometer.io/">Micrometer</a> framework. Metric name and type changes have been +documented in org.apache.accumulo.core.metrics.MetricsProducer, see the <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/2.1.0/org/apache/accumulo/core/metrics/MetricsProducer.html">javadoc</a> for more information. See comments in <a href="https://github.com/apache/accumulo/issues/2305">#2305</a> for an example of how to configure Accumulo to emit metrics to supported Micrometer sinks. +<a href="https://github.com/apache/accumulo/issues/1134">#1134</a></p> + +<h3 id="new-spi-package">New SPI Package</h3> + +<p>A new Service Plugin Interface (SPI) package was created in the accumulo-core jar, at +<a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/2.1.0/org/apache/accumulo/core/spi/package-summary.html">org.apache.accumulo.core.spi</a>, under which exists interfaces for the various pluggable +components. See <a href="https://github.com/apache/accumulo/issues/1900">#1900</a> <a href="https://github.com/apache/accumulo/issues/1905">#1905</a> <a href="https://github.com/apache/accumulo/issues/1880">#1880</a> <a href="https://github.com/apache/accumulo/issues/1891">#1891</a> <a href="https://github.com/apache/accumulo/issues/1426">#1426</a></p> + +<h2 id="minor-improvements">Minor Improvements</h2> + +<h3 id="new-listtablets-shell-command">New listtablets Shell Command</h3> + +<p>A new command was created for debugging called listtablets, that shows detailed tablet information +on a single line. This command aggregates data about a tablet such as status, location, size, number +of entries and HDFS directory name. It even shows the start and end rows of tablets, displaying them +in the same sorted order they are stored in the metadata. See example command output below. <a href="https://github.com/apache/accumulo/issues/1317">#1317</a> <a href="https://github.com/apache/accumulo/issues/1821">#1821</a></p> + +<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>root@uno&gt; listtablets -t test_ingest -h +2021-01-04T15:12:47,663 [Shell.audit] INFO : root@uno&gt; listtablets -t test_ingest -h +NUM TABLET_DIR FILES WALS ENTRIES SIZE STATUS LOCATION ID START (Exclusive) END +TABLE: test_ingest +1 t-0000007 1 0 60 552 HOSTED CURRENT:ip-10-113-12-25:9997 2 -INF row_0000000005 +2 t-0000006 1 0 500 2.71K HOSTED CURRENT:ip-10-113-12-25:9997 2 row_0000000005 row_0000000055 +3 t-0000008 1 0 5.00K 24.74K HOSTED CURRENT:ip-10-113-12-25:9997 2 row_0000000055 row_0000000555 +4 default_tablet 1 0 4.44K 22.01K HOSTED CURRENT:ip-10-113-12-25:9997 2 row_0000000555 +INF +root@uno&gt; listtablets -t accumulo.metadata +2021-01-04T15:13:21,750 [Shell.audit] INFO : root@uno&gt; listtablets -t accumulo.metadata +NUM TABLET_DIR FILES WALS ENTRIES SIZE STATUS LOCATION ID START (Exclusive) END +TABLE: accumulo.metadata +1 table_info 2 0 7 524 HOSTED CURRENT:ip-10-113-12-25:9997 !0 -INF ~ +2 default_tablet 0 0 0 0 HOSTED CURRENT:ip-10-113-12-25:9997 !0 ~ +INF +</code></pre></div></div> + +<h3 id="new-utility-for-generating-splits">New Utility for Generating Splits</h3> + +<p>A new command line utility was created to generate split points from 1 or more rfiles. One or more +HDFS directories can be given as well. The utility will iterate over all the files provided and +determine the proper split points based on either the size or number given. It uses Apache +Datasketches to get the split points from the data. <a href="https://github.com/apache/accumulo/issues/2361">#2361</a> <a href="https://github.com/apache/accumulo/issues/2368">#2368</a></p> + +<h3 id="new-option-for-cloning-offline">New Option for Cloning Offline</h3> + +<p>Added option to leave cloned tables offline <a href="https://github.com/apache/accumulo/issues/1474">#1474</a> <a href="https://github.com/apache/accumulo/issues/1475">#1475</a></p> + +<h3 id="new-max-tablets-option-in-bulk-import">New Max Tablets Option in Bulk Import</h3> + +<p>The property <code class="language-plaintext highlighter-rouge">table.bulk.max.tablets</code> was created in new bulk import technique. This property acts +as a cluster performance failsafe to prevent a single ingested file from being distributed across +too much of a cluster. The value is enforced by the new bulk import technique and is the maximum +number of tablets allowed for one bulk import file. When this property is set, an error will be +thrown when the value is exceeded during a bulk import. <a href="https://github.com/apache/accumulo/issues/1614">#1614</a></p> + +<h3 id="new-health-check-thread-in-tabletserver">New Health Check Thread in TabletServer</h3> + +<p>A new thread was added to the tablet server to periodically verify tablet metadata. <a href="https://github.com/apache/accumulo/issues/2320">#2320</a> +This thread also prints to the debug log how long it takes the tserver to scan the metadata table. +The property tserver.health.check.interval was added to control the frequency at which this health +check takes place. <a href="https://github.com/apache/accumulo/issues/2583">#2583</a></p> + +<h3 id="new-ability-for-user-to-define-context-classloaders">New ability for user to define context classloaders</h3> + +<p>Deprecated the existing VFS ClassLoader for eventual removal and created a new mechanism for users +to load their own classloader implementations. The new VFS classloader and VFS context classloaders +are in a new <a href="https://github.com/apache/accumulo-classloaders/tree/main/modules/vfs-class-loader">repo</a> and can now be specified using Java’s own system +properties. Alternatively, one can set their own classloader (they always could do this). <a href="https://github.com/apache/accumulo/issues/1747">#1747</a> <a href="https://github.com/apache/accumulo/issues/1715">#1715</a></p> + +<p>Please reference the Known Issues section of the 2.0.1 release notes for an issue affecting the +VFSClassLoader.</p> + +<h3 id="change-in-uncaught-exceptionerror-handling-in-server-side-threads">Change in uncaught Exception/Error handling in server-side threads</h3> + +<p>Consolidated and normalized thread pool and thread creation. All threads created through this code +path will have an UncaughtExceptionHandler attached to it that will log the fact that the Thread +encountered an uncaught Exception and is now dead. When an Error is encountered in a server process, +it will attempt to print a message to stderr then terminate the VM using Runtime.halt. On the client +side, the default UncaughtExceptionHandler will only log the Exception/Error in the client and does +not terminate the VM. Additionally, the user has the ability to set their own +UncaughtExceptionHandler implementation on the client. <a href="https://github.com/apache/accumulo/issues/1808">#1808</a> <a href="https://github.com/apache/accumulo/issues/1818">#1818</a> <a href="https://github.com/apache/accumulo/issues/2554">#2554</a></p> + +<h3 id="updated-hash-algorithm">Updated hash algorithm</h3> + +<p>With the default password Authenticator, Accumulo used to store password hashes using SHA-256 and +using custom code to add a salt. In this release, we now use Apache commons-codec to store password +hashes in the <code class="language-plaintext highlighter-rouge">crypt(3)</code> standard format. With this change, we’ve also defaulted to using the +stronger SHA-512. Existing stored password hashes (if upgrading from an earlier version of Accumulo) +will automatically be upgraded when users authenticate or change their passwords, and Accumulo will +log a warning if it detects any passwords have not been upgraded. <a href="https://github.com/apache/accumulo/issues/1787">#1787</a> <a href="https://github.com/apache/accumulo/issues/1788">#1788</a> <a href="https://github.com/apache/accumulo/issues/1798">#1798</a> <a href="https://github.com/apache/accumulo/issues/1810">#1810</a></p> + +<h3 id="various-performance-improvements-when-deleting-tables">Various Performance improvements when deleting tables</h3> + +<ul> + <li>Make delete table operations cancel user compactions <a href="https://github.com/apache/accumulo/issues/2030">#2030</a> <a href="https://github.com/apache/accumulo/issues/2169">#2169</a>.</li> + <li>Prevent compactions from starting when delete table is called <a href="https://github.com/apache/accumulo/issues/2182">#2182</a> <a href="https://github.com/apache/accumulo/issues/2240">#2240</a>.</li> + <li>Added check to not flush when table is being deleted <a href="https://github.com/apache/accumulo/issues/1887">#1887</a>.</li> + <li>Added log message before waiting for deletes to finish <a href="https://github.com/apache/accumulo/issues/1881">#1881</a>.</li> + <li>Added code to stop user flush if table is being deleted <a href="https://github.com/apache/accumulo/issues/1931">#1931</a></li> +</ul> + +<h3 id="new-monitor-pages-improvements--features">New Monitor Pages, Improvements &amp; Features</h3> + +<ul> + <li>A page was added to the Monitor that lists the active compactions and the longest running active +compaction. As an optimization, this page will only fetch data if a user loads the page and will +only do so a maximum of once a minute. This optimization was also added for the Active Scans page, +along with the addition of a “Fetched” column indicating when the data was retrieved.</li> + <li>A new feature was added to the TabletServer page to help users identify which tservers are in +recovery mode. When a tserver is recovering, its corresponding row in the TabletServer Status +table will be highlighted.</li> + <li>A new page was also created for External Compactions that allows users to see the progress of +compactions and other details about ongoing compactions (see below).</li> +</ul> + +<p><a href="https://github.com/apache/accumulo/issues/2283">#2283</a> <a href="https://github.com/apache/accumulo/issues/2294">#2294</a> <a href="https://github.com/apache/accumulo/issues/2358">#2358</a> <a href="https://github.com/apache/accumulo/issues/2663">#2663</a></p> + +<p><img src="/images/release/ec-running2.png" alt="External Compactions" style="width:85%" /></p> + +<p><img src="/images/release/ec-running-details.png" alt="External Compactions Details" style="width:85%" /></p> + +<h3 id="new-tserver-scan-timeout-property">New tserver scan timeout property</h3> + +<p>The new property <code class="language-plaintext highlighter-rouge">tserver.scan.results.max.timeout</code> was added to allow configuration of the timeout. +A bug was discovered where tservers were running out of memory, partially due to this timeout being +so short. The default value is 1 second, but now it can be increased. It is the max time for the +thrift client handler to wait for scan results before timing out. <a href="https://github.com/apache/accumulo/issues/2599">#2599</a> <a href="https://github.com/apache/accumulo/issues/2598">#2598</a></p> + +<h3 id="always-choose-volumes-for-new-tablet-files">Always choose volumes for new tablet files</h3> + +<p>In <a href="https://github.com/apache/accumulo/issues/1389">#1389</a>, we changed the behavior of the VolumeChooser. It now runs any time a new file is +created. This means VolumeChooser decisions are no longer “sticky” for tablets. This allows tablets +to balance their files across multiple HDFS volumes, instead of the first selected. Now, only the +directory name is “sticky” for a tablet, but the volume is not. So, new files will appear in a +directory named the same on different volumes that the VolumeChooser selects.</p> + +<h3 id="iterators-package-is-now-public-api">Iterators package is now public API</h3> + +<p><a href="https://github.com/apache/accumulo/issues/1390">#1390</a> <a href="https://github.com/apache/accumulo/issues/1400">#1400</a> <a href="https://github.com/apache/accumulo/issues/1411">#1411</a> We declared that the core.iterators package is public +API, so it will now follow the semver rules for public API.</p> + +<h3 id="better-accumulo-gc-memory-usage">Better accumulo-gc memory usage</h3> + +<p><a href="https://github.com/apache/accumulo/issues/1543">#1543</a> <a href="https://github.com/apache/accumulo/issues/1650">#1650</a> Switch from batching file candidates to delete based on the amount of +available memory, and instead use a fixed-size batching strategy. This allows the accumulo-gc to run +consistently using a batch size that is configurable by the user. The user is responsbile for +ensuring the process is given enough memory to accommodate the batch size they configure, but this +makes the process much more consistent and predictable.</p> + +<h3 id="log4j2">Log4j2</h3> + +<p><a href="https://github.com/apache/accumulo/issues/1528">#1528</a> <a href="https://github.com/apache/accumulo/issues/1514">#1514</a> <a href="https://github.com/apache/accumulo/issues/1515">#1515</a> <a href="https://github.com/apache/accumulo/issues/1516">#1516</a> While we still use slf4j, we have +upgraded the default logger binding to log4j2, which comes with a bunch of features, such as dynamic +reconfiguration, colorized console logging, and more.</p> + +<h3 id="added-foreach-method-to-scanner">Added forEach method to Scanner</h3> + +<p><a href="https://github.com/apache/accumulo/issues/1742">#1742</a> <a href="https://github.com/apache/accumulo/issues/1765">#1765</a> We added a forEach method to Scanner objects, so you can easily +iterate over the results using a lambda / BiConsumer that accepts a key-value pair.</p> + +<h3 id="new-public-api-to-set-multiple-properties-atomically">New public API to set multiple properties atomically</h3> + +<p><a href="https://github.com/apache/accumulo/issues/2692">#2692</a> We added a new public API added to support setting multiple properties at once +atomically using a read-modify-write pattern. This is available for table, namespace, and system +properties, and is called <code class="language-plaintext highlighter-rouge">modifyProperties()</code>. This builds off a related change that allows us to +more efficiently store and properties in ZooKeeper, which also results in fewer ZooKeeper watches.</p> + +<h3 id="other-notable-changes">Other notable changes</h3> + +<ul> + <li><a href="https://github.com/apache/accumulo/issues/1174">#1174</a> <a href="https://github.com/apache/accumulo/issues/816">#816</a> Abstract metadata and change root metadata schema</li> + <li><a href="https://github.com/apache/accumulo/issues/1309">#1309</a> Explicitly prevent cloning metadata table to prevent poor user experience</li> + <li><a href="https://github.com/apache/accumulo/issues/1313">#1313</a> <a href="https://github.com/apache/accumulo/issues/936">#936</a> Store Root Tablet list of files in Zookeeper</li> + <li><a href="https://github.com/apache/accumulo/issues/1294">#1294</a> <a href="https://github.com/apache/accumulo/issues/1299">#1299</a> Add optional -t tablename to importdirectory shell command.</li> + <li><a href="https://github.com/apache/accumulo/issues/1332">#1332</a> Disable FileSystemMonitor checks of /proc by default (to be removed in future)</li> + <li><a href="https://github.com/apache/accumulo/issues/1345">#1345</a> <a href="https://github.com/apache/accumulo/issues/1352">#1352</a> Optionally disable gc-initiated compactions/flushes</li> + <li><a href="https://github.com/apache/accumulo/issues/1397">#1397</a> <a href="https://github.com/apache/accumulo/issues/1461">#1461</a> Replace relative paths in the metadata tables on upgrade.</li> + <li><a href="https://github.com/apache/accumulo/issues/1456">#1456</a> <a href="https://github.com/apache/accumulo/issues/1457">#1457</a> Prevent catastrophic tserver shutdown by rate limiting the shutdown</li> + <li><a href="https://github.com/apache/accumulo/issues/1053">#1053</a> <a href="https://github.com/apache/accumulo/issues/1060">#1060</a> <a href="https://github.com/apache/accumulo/issues/1576">#1576</a> Support multiple volumes in import table</li> + <li><a href="https://github.com/apache/accumulo/issues/1568">#1568</a> Support multiple tservers / node in accumulo-service</li> + <li><a href="https://github.com/apache/accumulo/issues/1644">#1644</a> <a href="https://github.com/apache/accumulo/issues/1645">#1645</a> Fix issue with minor compaction not retrying</li> + <li><a href="https://github.com/apache/accumulo/issues/1660">#1660</a> Dropped unused MemoryManager property</li> + <li><a href="https://github.com/apache/accumulo/issues/1764">#1764</a> <a href="https://github.com/apache/accumulo/issues/1783">#1783</a> Parallelize listcompactions in shell</li> + <li><a href="https://github.com/apache/accumulo/issues/1797">#1797</a> Add table option to shell delete command.</li> + <li><a href="https://github.com/apache/accumulo/issues/2039">#2039</a> <a href="https://github.com/apache/accumulo/issues/2045">#2045</a> Add bulk import option to ignore empty dirs</li> + <li><a href="https://github.com/apache/accumulo/issues/2117">#2117</a> <a href="https://github.com/apache/accumulo/issues/2236">#2236</a> Make sorted recovery write to RFiles. New <code class="language-plaintext highlighter-rouge">tserver.wal.sort.file.</code> +property to configure</li> + <li><a href="https://github.com/apache/accumulo/issues/2076">#2076</a> Sorted recovery files can now be encrypted</li> + <li><a href="https://github.com/apache/accumulo/issues/2441">#2441</a> Upgraded to Junit 5</li> + <li><a href="https://github.com/apache/accumulo/issues/2462">#2462</a> Added SUBMITTED FaTE status to differentiate between things submitted vs. running</li> + <li><a href="https://github.com/apache/accumulo/issues/2467">#2467</a> Added fate shell command option to cancel FaTE operations that are NEW or SUBMITTED</li> + <li><a href="https://github.com/apache/accumulo/issues/2807">#2807</a> Added several troubleshooting utilities to the <code class="language-plaintext highlighter-rouge">accumulo admin</code> command.</li> + <li><a href="https://github.com/apache/accumulo/issues/2820">#2820</a> <a href="https://github.com/apache/accumulo/issues/2900">#2900</a> <code class="language-plaintext highlighter-rouge">du</code> command performance improved by using the metadata table for +computation instead of HDFS</li> + <li><a href="https://github.com/apache/accumulo/issues/2966">#2966</a> Upgrade Thrift to 0.17.0</li> +</ul> + +<h2 id="upgrading">Upgrading</h2> + +<p>View the <a href="/docs/2.x/administration/upgrading">Upgrading Accumulo documentation</a> for guidance.</p> + +<h2 id="210-github-project">2.1.0 GitHub Project</h2> + +<p><a href="https://github.com/apache/accumulo/projects/3">All tickets related to 2.1.0.</a></p> + +</description> + <pubDate>Tue, 01 Nov 2022 00:00:00 +0000</pubDate> + <link>https://accumulo.apache.org/release/accumulo-2.1.0/</link> + <guid isPermaLink="true">https://accumulo.apache.org/release/accumulo-2.1.0/</guid> + + + <category>release</category> + + </item> + <item> <title>2.1.0 Metrics and Tracing Changes</title> <description><p>Metrics and Tracing changed in 2.1.0. This post explains the new implementations and provides examples on how to configure them.</p> @@ -1576,101 +1990,6 @@ pipenv run python2 basic_client.py <guid isPermaLink="true">https://accumulo.apache.org/blog/2019/12/16/accumulo-proxy.html</guid> - <category>blog</category> - - </item> - - <item> - <title>Checking API use</title> - <description><p>Accumulo follows <a href="https://semver.org/">SemVer</a> across versions with the declaration of a public API. Code not in the public API should be -considered unstable, at risk of changing between versions. The public API packages are <a href="/api/">listed on the website</a> -but may not be considered when an Accumulo user writes code. This blog post explains how to make Maven -automatically detect usage of Accumulo code outside the public API.</p> - -<p>The techniques described in this blog post only work for Accumulo 2.0 and later. Do not use with 1.X versions.</p> - -<h2 id="checkstyle-plugin">Checkstyle Plugin</h2> - -<p>First add the checkstyle Maven plugin to your pom.</p> - -<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;plugin&gt;</span> - <span class="c">&lt;!-- This was added to ensure project only uses Accumulo's public API --&gt;</span> - <span class="nt">&lt;groupId&gt;</span>org.apache.maven.plugins<span class="nt">&lt;/groupId&gt;</span> - <span class="nt">&lt;artifactId&gt;</span>maven-checkstyle-plugin<span class="nt">&lt;/artifactId&gt;</span> - <span class="nt">&lt;version&gt;</span>3.1.0<span class="nt">&lt;/version&gt;</span> - <span class="nt">&lt;executions&gt;</span> - <span class="nt">&lt;execution&gt;</span> - <span class="nt">&lt;id&gt;</span>check-style<span class="nt">&lt;/id&gt;</span> - <span class="nt">&lt;goals&gt;</span> - <span class="nt">&lt;goal&gt;</span>check<span class="nt">&lt;/goal&gt;</span> - <span class="nt">&lt;/goals&gt;</span> - <span class="nt">&lt;configuration&gt;</span> - <span class="nt">&lt;configLocation&gt;</span>checkstyle.xml<span class="nt">&lt;/configLocation&gt;</span> - <span class="nt">&lt;/configuration&gt;</span> - <span class="nt">&lt;/execution&gt;</span> - <span class="nt">&lt;/executions&gt;</span> - <span class="nt">&lt;/plugin&gt;</span> -</code></pre></div></div> -<p>The plugin version is the latest at the time of this post. For more information see the website for -the <a href="https://maven.apache.org/plugins/maven-checkstyle-plugin/">Apache Maven Checkstyle Plugin</a>. The configuration above adds the plugin to <code class="language-plaintext highlighter-rouge">check</code> execution goal -so it will always run with your build.</p> - -<p>Create the configuration file specified above: <code class="language-plaintext highlighter-rouge">checkstyle.xml</code></p> - -<h3 id="checkstylexml">checkstyle.xml</h3> - -<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">&lt;!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd"&gt;</span> -<span class="nt">&lt;module</span> <span class="na">name=</span><span class="s">"Checker"</span><span class="nt">&gt;</span> - <span class="nt">&lt;property</span> <span class="na">name=</span><span class="s">"charset"</span> <span class="na">value=</span><span class="s">"UTF-8"</span><span class="nt">/&gt;</span> - <span class="nt">&lt;module</span> <span class="na">name=</span><span class="s">"TreeWalker"</span><span class="nt">&gt;</span> - <span class="c">&lt;!--check that only Accumulo public APIs are imported--&gt;</span> - <span class="nt">&lt;module</span> <span class="na">name=</span><span class="s">"ImportControl"</span><span class="nt">&gt;</span> - <span class="nt">&lt;property</span> <span class="na">name=</span><span class="s">"file"</span> <span class="na">value=</span><span class="s">"import-control.xml"</span><span class="nt">/&gt;</span> - <span class="nt">&lt;/module&gt;</span> - <span class="nt">&lt;/module&gt;</span> -<span class="nt">&lt;/module&gt;</span> -</code></pre></div></div> -<p>This file sets up the ImportControl module.</p> - -<h2 id="import-control-configuration">Import Control Configuration</h2> - -<p>Create the second file specified above, <code class="language-plaintext highlighter-rouge">import-control.xml</code> and copy the configuration below. Make sure to replace -“insert-your-package-name” with the package name of your project.</p> -<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">&lt;!DOCTYPE import-control PUBLIC - "-//Checkstyle//DTD ImportControl Configuration 1.4//EN" - "https://checkstyle.org/dtds/import_control_1_4.dtd"&gt;</span> - -<span class="c">&lt;!-- This checkstyle rule is configured to ensure only use of Accumulo API --&gt;</span> -<span class="nt">&lt;import-control</span> <span class="na">pkg=</span><span class="s">"insert-your-package-name"</span> <span class="na">strategyOnMismatch=</span><span class="s">"allowed"</span><span class="nt">&gt;</span> - <span class="c">&lt;!-- API packages --&gt;</span> - <span class="nt">&lt;allow</span> <span class="na">pkg=</span><span class="s">"org.apache.accumulo.core.client"</span><span class="nt">/&gt;</span> - <span class="nt">&lt;allow</span> <span class="na">pkg=</span><span class="s">"org.apache.accumulo.core.data"</span><span class="nt">/&gt;</span> - <span class="nt">&lt;allow</span> <span class="na">pkg=</span><span class="s">"org.apache.accumulo.core.security"</span><span class="nt">/&gt;</span> - <span class="nt">&lt;allow</span> <span class="na">pkg=</span><span class="s">"org.apache.accumulo.core.iterators"</span><span class="nt">/&gt;</span> - <span class="nt">&lt;allow</span> <span class="na">pkg=</span><span class="s">"org.apache.accumulo.minicluster"</span><span class="nt">/&gt;</span> - <span class="nt">&lt;allow</span> <span class="na">pkg=</span><span class="s">"org.apache.accumulo.hadoop.mapreduce"</span><span class="nt">/&gt;</span> - - <span class="c">&lt;!-- disallow everything else coming from accumulo --&gt;</span> - <span class="nt">&lt;disallow</span> <span class="na">pkg=</span><span class="s">"org.apache.accumulo"</span><span class="nt">/&gt;</span> -<span class="nt">&lt;/import-control&gt;</span> -</code></pre></div></div> -<p>This file configures the ImportControl module to only allow packages that are declared public API.</p> - -<h2 id="hold-the-line">Hold the line</h2> - -<p>Adding this to an existing project may expose usage of non public Accumulo API’s. It may take more time than is available -to fix those at first, but do not let this discourage adding this plugin. One possible way to proceed is to allow the -currently used non-public APIs in a commented section of import-control.xml noting these are temporarily allowed until -they can be removed. This strategy prevents new usages of non-public APIs while allowing time to work on fixing the current - usages of non public APIs. Also, if you don’t want your project failing to build because of this, you can add <code class="language-plaintext highlighter-rouge">&lt;failOnViolation&gt;false&lt;/failOnViolation&gt;</code> -to the maven-checkstyle-plugin configuration.</p> - -</description> - <pubDate>Mon, 04 Nov 2019 00:00:00 +0000</pubDate> - <link>https://accumulo.apache.org/blog/2019/11/04/checkstyle-import-control.html</link> - <guid isPermaLink="true">https://accumulo.apache.org/blog/2019/11/04/checkstyle-import-control.html</guid> - - <category>blog</category> </item> diff --git a/output/index.html b/output/index.html index 9ab181b5..aedc01ec 100644 --- a/output/index.html +++ b/output/index.html @@ -179,6 +179,13 @@ <p style="font-size: 24px; margin-bottom: 0px;">Latest News</p> + <div class="row latest-news-item"> + <div class="col-sm-12" style="margin-bottom: 5px"> + <span style="font-size: 12px; margin-right: 5px;">Nov 2022</span> + <a href="/release/accumulo-2.1.0/">Apache Accumulo 2.1.0</a> + </div> + </div> + <div class="row latest-news-item"> <div class="col-sm-12" style="margin-bottom: 5px"> <span style="font-size: 12px; margin-right: 5px;">Jun 2022</span> @@ -207,13 +214,6 @@ </div> </div> - <div class="row latest-news-item"> - <div class="col-sm-12" style="margin-bottom: 5px"> - <span style="font-size: 12px; margin-right: 5px;">Dec 2020</span> - <a href="/release/accumulo-2.0.1/">Apache Accumulo 2.0.1</a> - </div> - </div> - <div id="news-archive-link"> <p>View all posts in the <a href="/news">news archive</a></p> </div> diff --git a/output/news/index.html b/output/news/index.html index 4253d935..9bb35720 100644 --- a/output/news/index.html +++ b/output/news/index.html @@ -149,6 +149,13 @@ + <div class="row" style="margin-top: 15px"> + <div class="col-md-1">Nov 01</div> + <div class="col-md-10"><a href="/release/accumulo-2.1.0/">Apache Accumulo 2.1.0</a></div> + </div> + + + <div class="row" style="margin-top: 15px"> <div class="col-md-1">Jun 22</div> <div class="col-md-10"><a href="/blog/2022/06/22/2.1.0-metrics-and-tracing.html">2.1.0 Metrics and Tracing Changes</a></div> diff --git a/output/release/accumulo-2.0.1/index.html b/output/release/accumulo-2.0.1/index.html index 1cb33b2c..9d1c0c5d 100644 --- a/output/release/accumulo-2.0.1/index.html +++ b/output/release/accumulo-2.0.1/index.html @@ -159,7 +159,8 @@ <div class="alert alert-warning" role="alert"> - <p>This version is not a <a class="alert-link" href="/contributor/versioning#LTM">Long Term Maintenance (non-LTM)</a></strong> release.</p> + <p>This version of Accumulo has been superceded by a newer version.</p> + <p>Please check <a class="alert-link" href="/release/">our release archive</a> for a newer version.</p> </div> diff --git a/output/release/accumulo-2.1.0/index.html b/output/release/accumulo-2.1.0/index.html index 9f6d99f8..5c669d9a 100644 --- a/output/release/accumulo-2.1.0/index.html +++ b/output/release/accumulo-2.1.0/index.html @@ -154,11 +154,6 @@ </ul></nav> -<div class="alert alert-danger" style="margin-bottom: 0px;" role="alert"> - <p>These are <strong>draft</strong> release notes for a future release of Accumulo!</p> - <p>Please view <a class="alert-link" href="/release/accumulo-2.1.0/">the latest release notes</a>.</p> -</div> - <div class="alert alert-success" role="alert"> @@ -166,98 +161,120 @@ </div> -<p>** DRAFT RELEASE NOTES **</p> - <h2 id="about">About</h2> -<p>TODO high level description of the release</p> - -<p>TODO summarize contributions</p> +<p>Apache Accumulo 2.1.0 brings many new features and updates since 1.10 and 2.0. The 2.1 release +series is an LTM series, and as such, is expected to receive stability-improving bugfixes, as +needed. This makes this series suitable for production environments where stability is preferable +over new features that might appear in subsequent non-LTM releases.</p> -<p>TODO Version Upgrade guidance</p> +<p>This release has received more than 1200 commits from over 50 contributors, including numerous +bugfixes, updates, and features.</p> <h2 id="minimum-requirements">Minimum Requirements</h2> -<p>TODO describe requirements</p> +<p>This version of Accumulo requires at least Java 11 to run. Various Java 11 versions from different +distributors were used throughout its testing and development, so we expect it to work with any +standard OpenJDK-based Java distribution.</p> + +<p>At least Hadoop 3 is required, though it is recommended to use a more recent version. Version 3.3 +was used extensively during testing, but we have no specific knowledge that an earlier version of +Hadoop 3 will not work. Whichever major/minor version you use, it is recommended to use the latest +bugfix/patch version available. By default, our POM depends on 3.3.4.</p> + +<p>During much of this release’s development, ZooKeeper 3.5 was used as a minimum. However, that +version reach its end-of-life during development, and we do not recommend using end-of-life versions +of ZooKeeper. The latest bugfix version of 3.6, 3.7, or 3.8 should also work fine. By default, our +POM depends on 3.8.0.</p> <h2 id="binary-incompatibility">Binary Incompatibility</h2> -<p>This release is known to be incompatible with prior versions of the client -libraries. That is, the 2.0.0 or 2.0.1 version of the client libraries will not -be able to communicate with a 2.1.0 or later installation of Accumulo, nor will -the 2.1.0 or later version of the client libraries communicate with a 2.0.1 or -earlier installation.</p> +<p>This release is known to be incompatible with prior versions of the client libraries. That is, the +2.0.0 or 2.0.1 version of the client libraries will not be able to communicate with a 2.1.0 or later +installation of Accumulo, nor will the 2.1.0 or later version of the client libraries communicate +with a 2.0.1 or earlier installation.</p> -<h2 id="major-changes">Major Changes</h2> +<h2 id="major-new-features">Major New Features</h2> <h3 id="overhaul-of-table-compactions">Overhaul of Table Compactions</h3> -<p>Significant changes were made to how Accumulo compacts files in this release. See +<p>Significant changes were made to how Accumulo compacts files in this release. See <a href="/docs/2.x/administration/compaction">compaction </a> for details, below are some highlights.</p> <ul> - <li>Multiple concurrent compactions per tablet on disjoint files is now -supported. Previously only a single compaction could run on a tablet. This -allows tablets that are running long compactions on large files to -concurrently compact new smaller files that arrive.</li> - <li>Multiple compaction thread pools per tablet server are now supported. -Previously only a single thread pool existed within a tablet server for -compactions. With a single thread pool, if all threads are working on long -compactions it can starve quick compactions. Now compactions with little -data can be processed by dedicated thread pools.</li> - <li>Accumulo’s default algorithm for selecting files to compact was modified to -select the smallest set of files that meet the compaction ratio criteria -instead of the largest set. This change makes tablets more aggressive about -reducing their number files while still doing logarithmic compaction work. -This change also enables efficiently compacting new small files that arrive + <li>Multiple concurrent compactions per tablet on disjoint files is now supported. Previously only a +single compaction could run on a tablet. This allows tablets that are running long compactions +on large files to concurrently compact new smaller files that arrive.</li> + <li>Multiple compaction thread pools per tablet server are now supported. Previously only a single +thread pool existed within a tablet server for compactions. With a single thread pool, if all +threads are working on long compactions it can starve quick compactions. Now compactions with +little data can be processed by dedicated thread pools.</li> + <li>Accumulo’s default algorithm for selecting files to compact was modified to select the smallest +set of files that meet the compaction ratio criteria instead of the largest set. This change +makes tablets more aggressive about reducing their number files while still doing logarithmic +compaction work. This change also enables efficiently compacting new small files that arrive during a long running compaction.</li> - <li>Having dedicated compaction threads pools for tables is now supported -through configuration. The default configuration for Accumulo sets up -dedicated thread pools for compacting the Accumulo metadata table.</li> - <li>Merging minor compactions were dropped. These were added to Accumulo to -address the problem of new files arriving while a long running compaction -was running. Merging minor compactions could cause O(N^2) compaction work. -The new compaction changes in this release can satisfy this use case while -doing a logarithmic amount of work.</li> + <li>Having dedicated compaction threads pools for tables is now supported through configuration. The +default configuration for Accumulo sets up dedicated thread pools for compacting the Accumulo +metadata table.</li> + <li>Merging minor compactions were dropped. These were added to Accumulo to address the problem of +new files arriving while a long running compaction was running. Merging minor compactions could +cause O(N^2) compaction work. The new compaction changes in this release can satisfy this use +case while doing a logarithmic amount of work.</li> </ul> -<p>CompactionStrategy was deprecated in favor of new public APIs. CompactionStrategy was never public API as it -used internal types and one of these types <code class="language-plaintext highlighter-rouge">FileRef</code> was removed in 2.1. Users who have written a CompactionStrategy -can replace <code class="language-plaintext highlighter-rouge">FileRef</code> with its replacement internal type <code class="language-plaintext highlighter-rouge">StoredTabletFile</code> but this is not recommended. Since it is -very likely that CompactionStrategy will be removed in a future release, any work put into rewriting a CompactionStrategy -will be lost. It is recommended that users implement CompactionSelector, CompactionConfigurer, and CompactionPlanner instead. The new compaction changes in 2.1 introduce new algorithms for optimally scheduling compactions across multiple thread pools, configuring a deprecated compaction strategy may result is missing out on the benefits of these new algorithms. See -<a href="https://static.javadoc.io/org.apache.accumulo/accumulo-tserver/2.1.0/org/apache/accumulo/tserver/compaction/CompactionStrategy.html">javadoc</a> -for more information. GitHub tickets related to these changes: <a href="https://github.com/apache/accumulo/issues/564">#564</a> <a href="https://github.com/apache/accumulo/issues/1605">#1605</a> <a href="https://github.com/apache/accumulo/issues/1609">#1609</a> <a href="https://github.com/apache/accumulo/issues/1649">#1649</a></p> +<p>CompactionStrategy was deprecated in favor of new public APIs. CompactionStrategy was never public +API as it used internal types and one of these types <code class="language-plaintext highlighter-rouge">FileRef</code> was removed in 2.1. Users who have +written a CompactionStrategy can replace <code class="language-plaintext highlighter-rouge">FileRef</code> with its replacement internal type +<code class="language-plaintext highlighter-rouge">StoredTabletFile</code> but this is not recommended. Since it is very likely that CompactionStrategy will +be removed in a future release, any work put into rewriting a CompactionStrategy will be lost. It is +recommended that users implement CompactionSelector, CompactionConfigurer, and CompactionPlanner +instead. The new compaction changes in 2.1 introduce new algorithms for optimally scheduling +compactions across multiple thread pools, configuring a deprecated compaction strategy may result is +missing out on the benefits of these new algorithms.</p> + +<p>See the <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-tserver/2.1.0/org/apache/accumulo/tserver/compaction/CompactionStrategy.html">javadoc</a> for more +information.</p> + +<p>GitHub tickets related to these changes: <a href="https://github.com/apache/accumulo/issues/564">#564</a> <a href="https://github.com/apache/accumulo/issues/1605">#1605</a> <a href="https://github.com/apache/accumulo/issues/1609">#1609</a> <a href="https://github.com/apache/accumulo/issues/1649">#1649</a></p> <h3 id="external-compactions-experimental">External Compactions (experimental)</h3> -<p>This feature includes two new optional server components, CompactionCoordinator and Compactor, -that enables the user to run major compactions outside of the Tablet Server. See -<a href="/docs/2.x/_docs-2/getting-started/design.md">design.md </a>, <a href="/docs/2.x/administration/compaction">compaction </a> and the -External Compaction <a href="/blog/2021/07/08/external-compactions.html">blog post</a> for more information. This work was completed -over many tickets, see the GitHub <a href="https://github.com/apache/accumulo/projects/20">project</a> for the related issues. <a href="https://github.com/apache/accumulo/issues/2096">#2096</a></p> +<p>This feature includes two new optional server components, CompactionCoordinator and Compactor, that +enables the user to run major compactions outside of the TabletServer. See <a href="/docs/2.x/getting-started/design">design </a>, <a href="/docs/2.x/administration/compaction">compaction </a>, and the External Compaction <a href="/blog/2021/07/08/external-compactions.html">blog +post</a> for more information. This work was completed over many tickets, see the GitHub +<a href="https://github.com/apache/accumulo/projects/20">project</a> for the related issues. <a href="https://github.com/apache/accumulo/issues/2096">#2096</a></p> <h3 id="scan-servers-experimental">Scan Servers (experimental)</h3> -<p>This feature includes a new optional server component, Scan Server, that enables the user -to run scans outside of the Tablet Server. See <a href="/docs/2.x/_docs-2/getting-started/design.md">design.md </a>, -<a href="https://github.com/apache/accumulo/issues/2411">#2411</a>, and <a href="https://github.com/apache/accumulo/issues/2665">#2665</a> for more information.</p> +<p>This feature includes a new optional server component, Scan Server, that enables the user to run +scans outside of the TabletServer. See <a href="/docs/2.x/getting-started/design">design </a>, +<a href="https://github.com/apache/accumulo/issues/2411">#2411</a>, and <a href="https://github.com/apache/accumulo/issues/2665">#2665</a> for more information. Importantly, users can utilize this +feature to avoid bogging down the TabletServer with long-running scans, slow iterators, etc., +provided they are willing to tolerate eventual consistency.</p> + +<h3 id="new-per-table-on-disk-encryption-experimental">New Per-Table On-Disk Encryption (experimental)</h3> -<h3 id="new-per-table-on-disk-encryption-experimental">New Per Table On Disk Encryption (Experimental)</h3> +<p>On-disk encryption can now be configured on a per table basis as well as for the entire instance +(all tables). See <a href="/docs/2.x/security/on-disk-encryption">on-disk-encryption </a> for more information.</p> + +<h3 id="new-jshell-entry-point">New jshell entry point</h3> -<p>On Disk Encryption can now be configured per table as well as for the entire instance (all tables). -See <a href="/docs/2.x/security/on-disk-encryption">on-disk-encryption </a> for more information.</p> +<p>Created new “jshell” convenience entry point. Run <code class="language-plaintext highlighter-rouge">bin/accumulo jshell</code> to start up jshell, +preloaded with Accumulo classes imported and with an instance of AccumuloClient already created for +you to connect to Accumulo (assuming you have a client properties file on the class path) <a href="https://github.com/apache/accumulo/issues/1870">#1870</a> <a href="https://github.com/apache/accumulo/issues/1910">#1910</a></p> + +<h2 id="major-improvements">Major Improvements</h2> <h3 id="fixed-gc-metadata-hotspots">Fixed GC Metadata hotspots</h3> -<p>Prior to this release, Accumulo stored GC file candidates in the metadata table -using rows of the form <code class="language-plaintext highlighter-rouge">~del<URI></code>. This row schema lead to uneven load on -the metadata table and metadata tablets that were eventually never used. In <a href="https://github.com/apache/accumulo/issues/1043">#1043</a> <a href="https://github.com/apache/accumulo/issues/1344">#1344</a> the row format was changed to <code class="language-plaintext highlighter-rouge">~del<hash(URI)><URI></code> resulting in -even load on the metadata table and even data spread in the tablets. After -upgrading, there may still be splits in the metadata table using the old row -format. These splits can be merged away as shown in the example below which -starts off with splits generated from the old and new row schema. The old -splits with the prefix <code class="language-plaintext highlighter-rouge">~delhdfs</code> are merged away.</p> +<p>Prior to this release, Accumulo stored GC file candidates in the metadata table using rows of the +form <code class="language-plaintext highlighter-rouge">~del<URI></code>. This row schema lead to uneven load on the metadata table and metadata tablets +that were eventually never used. In <a href="https://github.com/apache/accumulo/issues/1043">#1043</a> / <a href="https://github.com/apache/accumulo/issues/1344">#1344</a>, the row format was changed to +<code class="language-plaintext highlighter-rouge">~del<hash(URI)><URI></code> resulting in even load on the metadata table and even data spread in the +tablets. After upgrading, there may still be splits in the metadata table using the old row format. +These splits can be merged away as shown in the example below which starts off with splits generated +from the old and new row schema. The old splits with the prefix <code class="language-plaintext highlighter-rouge">~delhdfs</code> are merged away.</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>root@uno> getsplits -t accumulo.metadata 2< @@ -276,23 +293,21 @@ root@uno> getsplits -t accumulo.metadata <h3 id="master-renamed-to-manager">Master Renamed to Manager</h3> -<p>In order to support more inclusive language in our code, the Accumulo team has -renamed all references to the word “master” to “manager” (with the exception -of deprecated classes and packages retained for compatibility). This change -includes the master process, configuration properties with master in the name, -utilities with master in the name, and packages/classes in the code base. Where -these changes affect the public API, the deprecated “master” name will still be -supported until at least Accumulo 3.0.</p> +<p>In order to use more inclusive language in our code, the Accumulo team has renamed all references to +the word “master” to “manager” (with the exception of deprecated classes and packages retained for +compatibility). This change includes the master server process, configuration properties with master +in the name, utilities with master in the name, and packages/classes in the code base. Where these +changes affect the public API, the deprecated “master” name will still be supported until Accumulo +3.0.</p> <blockquote> <p><strong>Important</strong> - One particular change to be aware of is that certain state for the manager - process is stored in ZooKeeper, previously in under a directory named - <code class="language-plaintext highlighter-rouge">masters</code>. This directory has been renamed to <code class="language-plaintext highlighter-rouge">managers</code>, and the upgrade - will happen automatically if you launch Accumulo using the provided scripts. - However, if you do not use the built in scripts (e.g., accumulo-cluster or - accumulo-service), then you will need to perform a one-time upgrade of the - ZooKeeper state by executing the <code class="language-plaintext highlighter-rouge">RenameMasterDirInZK</code> utility:</p> + One particular change to be aware of is that certain state for the manager process is stored in + ZooKeeper, previously in under a directory named <code class="language-plaintext highlighter-rouge">masters</code>. This directory has been renamed to + <code class="language-plaintext highlighter-rouge">managers</code>, and the upgrade will happen automatically if you launch Accumulo using the provided + scripts. However, if you do not use the built in scripts (e.g., accumulo-cluster or + accumulo-service), then you will need to perform a one-time upgrade of the ZooKeeper state by + executing the <code class="language-plaintext highlighter-rouge">RenameMasterDirInZK</code> utility:</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> ${ACCUMULO_HOME}/bin/accumulo org.apache.accumulo.manager.upgrade.RenameMasterDirInZK </code></pre></div> </div> </blockquote> @@ -300,76 +315,68 @@ supported until at least Accumulo 3.0.</p> <p>Some other specific examples of these changes include:</p> <ul> - <li>All configuration properties starting with <code class="language-plaintext highlighter-rouge">master.</code> have been renamed to -start with <code class="language-plaintext highlighter-rouge">manager.</code> instead. The <code class="language-plaintext highlighter-rouge">master.*</code> property names in the site -configuration file (or passed on the command-line) are converted internally -to the new name, and a warning is printed. However, the old name can still be -used until at least the 3.0 release of Accumulo. Any <code class="language-plaintext highlighter-rouge">master.*</code> properties -that have been set in ZooKeeper will be automatically converted to the new -<code class="language-plaintext highlighter-rouge">manager.*</code> name when Accumulo is upgraded. The old property names can still -be used by the <code class="language-plaintext highlighter-rouge">config</code> shell command or via the methods accessible via -<code class="language-plaintext highlighter-rouge">AccumuloClient</code>, but a warning will be generated when the old names are -used. You are encouraged to update all references to <code class="language-plaintext highlighter-rouge">master</code> in your site -configuration files to <code class="language-plaintext highlighter-rouge">manager</code> when installing Accumulo 2.1.</li> - <li>The tablet balancers in the <code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.master.balancer</code> -package have all been relocated to <code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.manager.balancer</code>. -DefaultLoadBalancer has been also renamed to SimpleLoadBalancer along with -the move. The default balancer has been updated from + <li>All configuration properties starting with <code class="language-plaintext highlighter-rouge">master.</code> have been renamed to start with <code class="language-plaintext highlighter-rouge">manager.</code> +instead. The <code class="language-plaintext highlighter-rouge">master.*</code> property names in the site configuration file (or passed on the +command-line) are converted internally to the new name, and a warning is printed. However, the old +name can still be used until at least the 3.0 release of Accumulo. Any <code class="language-plaintext highlighter-rouge">master.*</code> properties that +have been set in ZooKeeper will be automatically converted to the new <code class="language-plaintext highlighter-rouge">manager.*</code> name when +Accumulo is upgraded. The old property names can still be used by the <code class="language-plaintext highlighter-rouge">config</code> shell command or +via the methods accessible via <code class="language-plaintext highlighter-rouge">AccumuloClient</code>, but a warning will be generated when the old +names are used. You are encouraged to update all references to <code class="language-plaintext highlighter-rouge">master</code> in your site configuration +files to <code class="language-plaintext highlighter-rouge">manager</code> when installing Accumulo 2.1.</li> + <li>The tablet balancers in the <code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.master.balancer</code> package have all been +relocated to <code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.manager.balancer</code>. DefaultLoadBalancer has been also +renamed to SimpleLoadBalancer along with the move. The default balancer has been updated from <code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.master.balancer.TableLoadBalancer</code> to -<code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.manager.balancer.TableLoadBalancer</code>, and the -default per-table balancer has been updated from -<code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.master.balancer.DefaultLoadBalancer</code> to -<code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.manager.balancer.SimpleLoadBalancer</code>. If you have -customized the tablet balancer configuration, you are strongly encouraged to -update your configuration to reference the updated balancer names. If you -have written a custom tablet balancer, it should be updated to implement the new -interface <code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.manager.balancer.TabletBalancer</code> -rather than extending the deprecated abstract -<code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.master.balancer.TabletBalancer</code>.</li> - <li>The configuration file <code class="language-plaintext highlighter-rouge">masters</code> for identifying the manager host(s) has been -deprecated. If this file is found, a warning will be printed. The replacement -file <code class="language-plaintext highlighter-rouge">managers</code> should be used (i.e., rename your masters file to managers) -instead.</li> - <li>The <code class="language-plaintext highlighter-rouge">master</code> argument to the <code class="language-plaintext highlighter-rouge">accumulo-service</code> script has been deprecated, -and the replacement <code class="language-plaintext highlighter-rouge">manager</code> argument should be used instead.</li> - <li>The <code class="language-plaintext highlighter-rouge">-master</code> argument to the <code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.util.ZooZap</code> -utility has been deprecated and the replacement <code class="language-plaintext highlighter-rouge">-manager</code> argument should be -used instead.</li> +<code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.manager.balancer.TableLoadBalancer</code>, and the default per-table +balancer has been updated from <code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.master.balancer.DefaultLoadBalancer</code> to +<code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.manager.balancer.SimpleLoadBalancer</code>. If you have customized the +tablet balancer configuration, you are strongly encouraged to update your configuration to +reference the updated balancer names. If you have written a custom tablet balancer, it should be +updated to implement the new interface +<code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.manager.balancer.TabletBalancer</code> rather than extending the deprecated +abstract <code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.master.balancer.TabletBalancer</code>.</li> + <li>The configuration file <code class="language-plaintext highlighter-rouge">masters</code> for identifying the manager host(s) has been deprecated. If this +file is found, a warning will be printed. The replacement file <code class="language-plaintext highlighter-rouge">managers</code> should be used (i.e., +rename your masters file to managers) instead.</li> + <li>The <code class="language-plaintext highlighter-rouge">master</code> argument to the <code class="language-plaintext highlighter-rouge">accumulo-service</code> script has been deprecated, and the replacement +<code class="language-plaintext highlighter-rouge">manager</code> argument should be used instead.</li> + <li>The <code class="language-plaintext highlighter-rouge">-master</code> argument to the <code class="language-plaintext highlighter-rouge">org.apache.accumulo.server.util.ZooZap</code> utility has been deprecated +and the replacement <code class="language-plaintext highlighter-rouge">-manager</code> argument should be used instead.</li> <li>The <code class="language-plaintext highlighter-rouge">GetMasterStats</code> utility has been renamed to <code class="language-plaintext highlighter-rouge">GetManagerStats</code>.</li> - <li><code class="language-plaintext highlighter-rouge">org.apache.accumulo.master.state.SetGoalState</code> is deprecated, and any custom -scripts that invoke this utility should be updated to call -<code class="language-plaintext highlighter-rouge">org.apache.accumulo.manager.state.SetGoalState</code> instead.</li> - <li><code class="language-plaintext highlighter-rouge">masterMemory</code> in <code class="language-plaintext highlighter-rouge">minicluster.properties</code> has been deprecated and -<code class="language-plaintext highlighter-rouge">managerMemory</code> should be used instead in any <code class="language-plaintext highlighter-rouge">minicluster.properties</code> files -you have configured.</li> + <li><code class="language-plaintext highlighter-rouge">org.apache.accumulo.master.state.SetGoalState</code> is deprecated, and any custom scripts that invoke +this utility should be updated to call <code class="language-plaintext highlighter-rouge">org.apache.accumulo.manager.state.SetGoalState</code> instead.</li> + <li><code class="language-plaintext highlighter-rouge">masterMemory</code> in <code class="language-plaintext highlighter-rouge">minicluster.properties</code> has been deprecated and <code class="language-plaintext highlighter-rouge">managerMemory</code> should be used +instead in any <code class="language-plaintext highlighter-rouge">minicluster.properties</code> files you have configured.</li> <li>See also <a href="https://github.com/apache/accumulo/issues/1640">#1640</a> <a href="https://github.com/apache/accumulo/issues/1642">#1642</a> <a href="https://github.com/apache/accumulo/issues/1703">#1703</a> <a href="https://github.com/apache/accumulo/issues/1704">#1704</a> <a href="https://github.com/apache/accumulo/issues/1873">#1873</a> <a href="https://github.com/apache/accumulo/issues/1907">#1907</a></li> </ul> <h3 id="new-tracing-facility">New Tracing Facility</h3> -<p>HTrace support was removed in this release and has been replaced with <a href="https://opentelemetry.io/">OpenTelemetry</a>. Trace information -will not be shown in the monitor. See comments in <a href="https://github.com/apache/accumulo/issues/2259">#2259</a> for an example of how to configure -Accumulo to emit traces to supported OpenTelemetry sinks. <a href="https://github.com/apache/accumulo/issues/2257">#2257</a></p> +<p>HTrace support was removed in this release and has been replaced with <a href="https://opentelemetry.io/">OpenTelemetry</a>. Trace information will not be shown in the monitor. See comments in <a href="https://github.com/apache/accumulo/issues/2259">#2259</a> for an example of how to configure Accumulo to emit traces to supported OpenTelemetry sinks. +<a href="https://github.com/apache/accumulo/issues/2257">#2257</a></p> <h3 id="new-metrics-implementation">New Metrics Implementation</h3> <p>The Hadoop Metrics2 framework is no longer being used to emit metrics from Accumulo. Accumulo is now -using the <a href="https://micrometer.io/">Micrometer</a> framework. Metric name and type changes have been documented in -org.apache.accumulo.core.metrics.MetricsProducer, see the <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/2.1.0/org/apache/accumulo/core/metrics/MetricsProducer.html">javadoc</a> -for more information. See comments in <a href="https://github.com/apache/accumulo/issues/2305">#2305</a> for an example of how to configure Accumulo to emit -metrics to supported Micrometer sinks. <a href="https://github.com/apache/accumulo/issues/1134">#1134</a></p> +using the <a href="https://micrometer.io/">Micrometer</a> framework. Metric name and type changes have been +documented in org.apache.accumulo.core.metrics.MetricsProducer, see the <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/2.1.0/org/apache/accumulo/core/metrics/MetricsProducer.html">javadoc</a> for more information. See comments in <a href="https://github.com/apache/accumulo/issues/2305">#2305</a> for an example of how to configure Accumulo to emit metrics to supported Micrometer sinks. +<a href="https://github.com/apache/accumulo/issues/1134">#1134</a></p> <h3 id="new-spi-package">New SPI Package</h3> -<p>TODO describe New SPI Package <a href="https://github.com/apache/accumulo/issues/1900">#1900</a> <a href="https://github.com/apache/accumulo/issues/1905">#1905</a> <a href="https://github.com/apache/accumulo/issues/1880">#1880</a> <a href="https://github.com/apache/accumulo/issues/1891">#1891</a> <a href="https://github.com/apache/accumulo/issues/1426">#1426</a></p> +<p>A new Service Plugin Interface (SPI) package was created in the accumulo-core jar, at +<a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/2.1.0/org/apache/accumulo/core/spi/package-summary.html">org.apache.accumulo.core.spi</a>, under which exists interfaces for the various pluggable +components. See <a href="https://github.com/apache/accumulo/issues/1900">#1900</a> <a href="https://github.com/apache/accumulo/issues/1905">#1905</a> <a href="https://github.com/apache/accumulo/issues/1880">#1880</a> <a href="https://github.com/apache/accumulo/issues/1891">#1891</a> <a href="https://github.com/apache/accumulo/issues/1426">#1426</a></p> + +<h2 id="minor-improvements">Minor Improvements</h2> -<h3 id="new-listtablets-shell-command">New listtablets shell command.</h3> +<h3 id="new-listtablets-shell-command">New listtablets Shell Command</h3> <p>A new command was created for debugging called listtablets, that shows detailed tablet information -on a single line. This command aggregates data about a tablet such as status, location, size, -number of entries and HDFS directory name. It even shows the start and end rows of tablets, -displaying them in the same sorted order they are stored in the metadata. See example command output below. -<a href="https://github.com/apache/accumulo/issues/1317">#1317</a> <a href="https://github.com/apache/accumulo/issues/1821">#1821</a></p> +on a single line. This command aggregates data about a tablet such as status, location, size, number +of entries and HDFS directory name. It even shows the start and end rows of tablets, displaying them +in the same sorted order they are stored in the metadata. See example command output below. <a href="https://github.com/apache/accumulo/issues/1317">#1317</a> <a href="https://github.com/apache/accumulo/issues/1821">#1821</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>root@uno> listtablets -t test_ingest -h 2021-01-04T15:12:47,663 [Shell.audit] INFO : root@uno> listtablets -t test_ingest -h @@ -387,50 +394,60 @@ TABLE: accumulo.metadata 2 default_tablet 0 0 0 0 HOSTED CURRENT:ip-10-113-12-25:9997 !0 ~ +INF </code></pre></div></div> -<h3 id="new-utility-for-generating-splits">New Utility for generating splits</h3> +<h3 id="new-utility-for-generating-splits">New Utility for Generating Splits</h3> -<p>A new command line utility was created to generate split points from 1 or more rfiles. One or more HDFS directories can -be given as well. The utility will iterate over all the files provided and determine the proper split points -based on either the size or number given. It uses Apache Datasketches to get the split points from the data. <a href="https://github.com/apache/accumulo/issues/2361">#2361</a> <a href="https://github.com/apache/accumulo/issues/2368">#2368</a></p> +<p>A new command line utility was created to generate split points from 1 or more rfiles. One or more +HDFS directories can be given as well. The utility will iterate over all the files provided and +determine the proper split points based on either the size or number given. It uses Apache +Datasketches to get the split points from the data. <a href="https://github.com/apache/accumulo/issues/2361">#2361</a> <a href="https://github.com/apache/accumulo/issues/2368">#2368</a></p> -<h3 id="new-option-for-cloning-offline">New option for cloning offline</h3> +<h3 id="new-option-for-cloning-offline">New Option for Cloning Offline</h3> <p>Added option to leave cloned tables offline <a href="https://github.com/apache/accumulo/issues/1474">#1474</a> <a href="https://github.com/apache/accumulo/issues/1475">#1475</a></p> -<h3 id="new-max-tablets-option-in-bulk-import">New max tablets option in bulk import</h3> +<h3 id="new-max-tablets-option-in-bulk-import">New Max Tablets Option in Bulk Import</h3> -<p>The property <code class="language-plaintext highlighter-rouge">table.bulk.max.tablets</code> was created in new bulk import technique. This property acts as a cluster performance -failsafe to prevent a single ingested file from being distributed across too much of a cluster. The value is enforced -by the new bulk import technique and is the maximum number of tablets allowed for one bulk import file. When this property -is set, an error will be thrown when the value is exceeded during a bulk import. <a href="https://github.com/apache/accumulo/issues/1614">#1614</a></p> +<p>The property <code class="language-plaintext highlighter-rouge">table.bulk.max.tablets</code> was created in new bulk import technique. This property acts +as a cluster performance failsafe to prevent a single ingested file from being distributed across +too much of a cluster. The value is enforced by the new bulk import technique and is the maximum +number of tablets allowed for one bulk import file. When this property is set, an error will be +thrown when the value is exceeded during a bulk import. <a href="https://github.com/apache/accumulo/issues/1614">#1614</a></p> -<h3 id="new-health-check-thread-in-tserver">New Health check Thread in tserver</h3> +<h3 id="new-health-check-thread-in-tabletserver">New Health Check Thread in TabletServer</h3> -<p>A new thread was added to the tablet server to periodically verify tablet metadata. <a href="https://github.com/apache/accumulo/issues/2320">#2320</a> This thread also prints -to the debug log how long it takes the tserver to scan the metadata table. The property tserver.health.check.interval was -added to control the frequency at which this health check takes place. <a href="https://github.com/apache/accumulo/issues/2583">#2583</a></p> +<p>A new thread was added to the tablet server to periodically verify tablet metadata. <a href="https://github.com/apache/accumulo/issues/2320">#2320</a> +This thread also prints to the debug log how long it takes the tserver to scan the metadata table. +The property tserver.health.check.interval was added to control the frequency at which this health +check takes place. <a href="https://github.com/apache/accumulo/issues/2583">#2583</a></p> <h3 id="new-ability-for-user-to-define-context-classloaders">New ability for user to define context classloaders</h3> <p>Deprecated the existing VFS ClassLoader for eventual removal and created a new mechanism for users to load their own classloader implementations. The new VFS classloader and VFS context classloaders -are in a new <a href="https://github.com/apache/accumulo-classloaders/tree/main/modules/vfs-class-loader">repo</a> and can now be specified using system properties. <a href="https://github.com/apache/accumulo/issues/1747">#1747</a> <a href="https://github.com/apache/accumulo/issues/1715">#1715</a></p> +are in a new <a href="https://github.com/apache/accumulo-classloaders/tree/main/modules/vfs-class-loader">repo</a> and can now be specified using Java’s own system +properties. Alternatively, one can set their own classloader (they always could do this). <a href="https://github.com/apache/accumulo/issues/1747">#1747</a> <a href="https://github.com/apache/accumulo/issues/1715">#1715</a></p> -<p>Please reference the Known Issues section of the 2.0.1 release notes for an issue affecting the VFSClassLoader.</p> +<p>Please reference the Known Issues section of the 2.0.1 release notes for an issue affecting the +VFSClassLoader.</p> <h3 id="change-in-uncaught-exceptionerror-handling-in-server-side-threads">Change in uncaught Exception/Error handling in server-side threads</h3> -<p>Consolidated and normalized thread pool and thread creation. All threads created through this code path -will have an UncaughtExceptionHandler attached to it that will log the fact that the Thread encountered -an uncaught Exception and is now dead. When an Error is encountered in a server process, it will attempt -to print a message to stderr then terminate the VM using Runtime.halt. On the client side, the default -UncaughtExceptionHandler will only log the Exception/Error in the client and does not terminate the VM. -Additionally, the user has the ability to set their own UncaughtExceptionHandler implementation on the -client. <a href="https://github.com/apache/accumulo/issues/1808">#1808</a> <a href="https://github.com/apache/accumulo/issues/1818">#1818</a> <a href="https://github.com/apache/accumulo/issues/2554">#2554</a></p> +<p>Consolidated and normalized thread pool and thread creation. All threads created through this code +path will have an UncaughtExceptionHandler attached to it that will log the fact that the Thread +encountered an uncaught Exception and is now dead. When an Error is encountered in a server process, +it will attempt to print a message to stderr then terminate the VM using Runtime.halt. On the client +side, the default UncaughtExceptionHandler will only log the Exception/Error in the client and does +not terminate the VM. Additionally, the user has the ability to set their own +UncaughtExceptionHandler implementation on the client. <a href="https://github.com/apache/accumulo/issues/1808">#1808</a> <a href="https://github.com/apache/accumulo/issues/1818">#1818</a> <a href="https://github.com/apache/accumulo/issues/2554">#2554</a></p> <h3 id="updated-hash-algorithm">Updated hash algorithm</h3> -<p>TODO clarify what was done for this. <a href="https://github.com/apache/accumulo/issues/1787">#1787</a> <a href="https://github.com/apache/accumulo/issues/1788">#1788</a> <a href="https://github.com/apache/accumulo/issues/1798">#1798</a> <a href="https://github.com/apache/accumulo/issues/1810">#1810</a></p> +<p>With the default password Authenticator, Accumulo used to store password hashes using SHA-256 and +using custom code to add a salt. In this release, we now use Apache commons-codec to store password +hashes in the <code class="language-plaintext highlighter-rouge">crypt(3)</code> standard format. With this change, we’ve also defaulted to using the +stronger SHA-512. Existing stored password hashes (if upgrading from an earlier version of Accumulo) +will automatically be upgraded when users authenticate or change their passwords, and Accumulo will +log a warning if it detects any passwords have not been upgraded. <a href="https://github.com/apache/accumulo/issues/1787">#1787</a> <a href="https://github.com/apache/accumulo/issues/1788">#1788</a> <a href="https://github.com/apache/accumulo/issues/1798">#1798</a> <a href="https://github.com/apache/accumulo/issues/1810">#1810</a></p> <h3 id="various-performance-improvements-when-deleting-tables">Various Performance improvements when deleting tables</h3> @@ -442,20 +459,18 @@ client. <a href="https://github.com/apache/accumulo/issues/1808">#1808</a> <a hr <li>Added code to stop user flush if table is being deleted <a href="https://github.com/apache/accumulo/issues/1931">#1931</a></li> </ul> -<h3 id="new-jshell-entry-point">New jshell entry point</h3> - -<p>Created new “jshell” convenience entry point <a href="https://github.com/apache/accumulo/issues/1870">#1870</a> <a href="https://github.com/apache/accumulo/issues/1910">#1910</a></p> - <h3 id="new-monitor-pages-improvements--features">New Monitor Pages, Improvements & Features</h3> <ul> - <li>A page was added to the Monitor that lists the active compactions and the longest running -active compaction. As an optimization, this page will only fetch data if a user loads the -page and will only do so a maximum of once a minute. This optimization was also added for the Active Scans page, + <li>A page was added to the Monitor that lists the active compactions and the longest running active +compaction. As an optimization, this page will only fetch data if a user loads the page and will +only do so a maximum of once a minute. This optimization was also added for the Active Scans page, along with the addition of a “Fetched” column indicating when the data was retrieved.</li> - <li>A new feature was added to the Tablet Server page to help users identify which tservers are in recovery mode. When -a tserver is recovering, its corresponding row in the Tablet Server Status table will be highlighted.</li> - <li>A new page was also created for External Compactions that allows users to see the progress of compactions and other details about ongoing compactions (see below).</li> + <li>A new feature was added to the TabletServer page to help users identify which tservers are in +recovery mode. When a tserver is recovering, its corresponding row in the TabletServer Status +table will be highlighted.</li> + <li>A new page was also created for External Compactions that allows users to see the progress of +compactions and other details about ongoing compactions (see below).</li> </ul> <p><a href="https://github.com/apache/accumulo/issues/2283">#2283</a> <a href="https://github.com/apache/accumulo/issues/2294">#2294</a> <a href="https://github.com/apache/accumulo/issues/2358">#2358</a> <a href="https://github.com/apache/accumulo/issues/2663">#2663</a></p> @@ -466,58 +481,78 @@ a tserver is recovering, its corresponding row in the Tablet Server Status table <h3 id="new-tserver-scan-timeout-property">New tserver scan timeout property</h3> -<p>The new property <code class="language-plaintext highlighter-rouge">tserver.scan.results.max.timeout</code> was added to allow configuration of the timeout. A bug was -discovered where tservers were running out of memory, partially due to this timeout being so short. The default value -is 1 second, but now it can be increased. It is the max time for the thrift client handler to wait for scan results before -timing out. <a href="https://github.com/apache/accumulo/issues/2599">#2599</a> <a href="https://github.com/apache/accumulo/issues/2598">#2598</a></p> +<p>The new property <code class="language-plaintext highlighter-rouge">tserver.scan.results.max.timeout</code> was added to allow configuration of the timeout. +A bug was discovered where tservers were running out of memory, partially due to this timeout being +so short. The default value is 1 second, but now it can be increased. It is the max time for the +thrift client handler to wait for scan results before timing out. <a href="https://github.com/apache/accumulo/issues/2599">#2599</a> <a href="https://github.com/apache/accumulo/issues/2598">#2598</a></p> + +<h3 id="always-choose-volumes-for-new-tablet-files">Always choose volumes for new tablet files</h3> + +<p>In <a href="https://github.com/apache/accumulo/issues/1389">#1389</a>, we changed the behavior of the VolumeChooser. It now runs any time a new file is +created. This means VolumeChooser decisions are no longer “sticky” for tablets. This allows tablets +to balance their files across multiple HDFS volumes, instead of the first selected. Now, only the +directory name is “sticky” for a tablet, but the volume is not. So, new files will appear in a +directory named the same on different volumes that the VolumeChooser selects.</p> + +<h3 id="iterators-package-is-now-public-api">Iterators package is now public API</h3> + +<p><a href="https://github.com/apache/accumulo/issues/1390">#1390</a> <a href="https://github.com/apache/accumulo/issues/1400">#1400</a> <a href="https://github.com/apache/accumulo/issues/1411">#1411</a> We declared that the core.iterators package is public +API, so it will now follow the semver rules for public API.</p> + +<h3 id="better-accumulo-gc-memory-usage">Better accumulo-gc memory usage</h3> + +<p><a href="https://github.com/apache/accumulo/issues/1543">#1543</a> <a href="https://github.com/apache/accumulo/issues/1650">#1650</a> Switch from batching file candidates to delete based on the amount of +available memory, and instead use a fixed-size batching strategy. This allows the accumulo-gc to run +consistently using a batch size that is configurable by the user. The user is responsbile for +ensuring the process is given enough memory to accommodate the batch size they configure, but this +makes the process much more consistent and predictable.</p> + +<h3 id="log4j2">Log4j2</h3> + +<p><a href="https://github.com/apache/accumulo/issues/1528">#1528</a> <a href="https://github.com/apache/accumulo/issues/1514">#1514</a> <a href="https://github.com/apache/accumulo/issues/1515">#1515</a> <a href="https://github.com/apache/accumulo/issues/1516">#1516</a> While we still use slf4j, we have +upgraded the default logger binding to log4j2, which comes with a bunch of features, such as dynamic +reconfiguration, colorized console logging, and more.</p> + +<h3 id="added-foreach-method-to-scanner">Added forEach method to Scanner</h3> + +<p><a href="https://github.com/apache/accumulo/issues/1742">#1742</a> <a href="https://github.com/apache/accumulo/issues/1765">#1765</a> We added a forEach method to Scanner objects, so you can easily +iterate over the results using a lambda / BiConsumer that accepts a key-value pair.</p> + +<h3 id="new-public-api-to-set-multiple-properties-atomically">New public API to set multiple properties atomically</h3> + +<p><a href="https://github.com/apache/accumulo/issues/2692">#2692</a> We added a new public API added to support setting multiple properties at once +atomically using a read-modify-write pattern. This is available for table, namespace, and system +properties, and is called <code class="language-plaintext highlighter-rouge">modifyProperties()</code>. This builds off a related change that allows us to +more efficiently store and properties in ZooKeeper, which also results in fewer ZooKeeper watches.</p> <h3 id="other-notable-changes">Other notable changes</h3> <ul> <li><a href="https://github.com/apache/accumulo/issues/1174">#1174</a> <a href="https://github.com/apache/accumulo/issues/816">#816</a> Abstract metadata and change root metadata schema</li> - <li><a href="https://github.com/apache/accumulo/issues/1309">#1309</a> Prevent cloning metadata table</li> + <li><a href="https://github.com/apache/accumulo/issues/1309">#1309</a> Explicitly prevent cloning metadata table to prevent poor user experience</li> <li><a href="https://github.com/apache/accumulo/issues/1313">#1313</a> <a href="https://github.com/apache/accumulo/issues/936">#936</a> Store Root Tablet list of files in Zookeeper</li> - <li><a href="https://github.com/apache/accumulo/issues/1310">#1310</a> Examine WALs used by root tablet during GC</li> <li><a href="https://github.com/apache/accumulo/issues/1294">#1294</a> <a href="https://github.com/apache/accumulo/issues/1299">#1299</a> Add optional -t tablename to importdirectory shell command.</li> - <li><a href="https://github.com/apache/accumulo/issues/1332">#1332</a> Disable FileSystemMonitor checks by default</li> - <li><a href="https://github.com/apache/accumulo/issues/1345">#1345</a> <a href="https://github.com/apache/accumulo/issues/1352">#1352</a> Allow gc initiated compaction as option.</li> - <li><a href="https://github.com/apache/accumulo/issues/1090">#1090</a> <a href="https://github.com/apache/accumulo/issues/1330">#1330</a> Consolidate/Simplify ServerOpts</li> - <li><a href="https://github.com/apache/accumulo/issues/1389">#1389</a> Always choose volume for new tablet files.</li> - <li><a href="https://github.com/apache/accumulo/issues/1390">#1390</a> <a href="https://github.com/apache/accumulo/issues/1400">#1400</a> <a href="https://github.com/apache/accumulo/issues/1411">#1411</a> Declare core.iterators package public API</li> - <li><a href="https://github.com/apache/accumulo/issues/1441">#1441</a> <a href="https://github.com/apache/accumulo/issues/1405">#1405</a> Improvements to Upgrades</li> - <li><a href="https://github.com/apache/accumulo/issues/1397">#1397</a> <a href="https://github.com/apache/accumulo/issues/1461">#1461</a> Replace relative paths on upgrade.</li> + <li><a href="https://github.com/apache/accumulo/issues/1332">#1332</a> Disable FileSystemMonitor checks of /proc by default (to be removed in future)</li> + <li><a href="https://github.com/apache/accumulo/issues/1345">#1345</a> <a href="https://github.com/apache/accumulo/issues/1352">#1352</a> Optionally disable gc-initiated compactions/flushes</li> + <li><a href="https://github.com/apache/accumulo/issues/1397">#1397</a> <a href="https://github.com/apache/accumulo/issues/1461">#1461</a> Replace relative paths in the metadata tables on upgrade.</li> <li><a href="https://github.com/apache/accumulo/issues/1456">#1456</a> <a href="https://github.com/apache/accumulo/issues/1457">#1457</a> Prevent catastrophic tserver shutdown by rate limiting the shutdown</li> - <li><a href="https://github.com/apache/accumulo/issues/1528">#1528</a> <a href="https://github.com/apache/accumulo/issues/1514">#1514</a> <a href="https://github.com/apache/accumulo/issues/1515">#1515</a> <a href="https://github.com/apache/accumulo/issues/1516">#1516</a> Upgraded to Log4j2</li> <li><a href="https://github.com/apache/accumulo/issues/1053">#1053</a> <a href="https://github.com/apache/accumulo/issues/1060">#1060</a> <a href="https://github.com/apache/accumulo/issues/1576">#1576</a> Support multiple volumes in import table</li> - <li><a href="https://github.com/apache/accumulo/issues/1464">#1464</a> Leverage SimpleThreadPool for improving importtable performance</li> <li><a href="https://github.com/apache/accumulo/issues/1568">#1568</a> Support multiple tservers / node in accumulo-service</li> <li><a href="https://github.com/apache/accumulo/issues/1644">#1644</a> <a href="https://github.com/apache/accumulo/issues/1645">#1645</a> Fix issue with minor compaction not retrying</li> - <li><a href="https://github.com/apache/accumulo/issues/1660">#1660</a> Dropped MemoryManager property</li> - <li><a href="https://github.com/apache/accumulo/issues/1543">#1543</a> <a href="https://github.com/apache/accumulo/issues/1650">#1650</a> Use batching strategy for SimpleGarbageCollector candidate memory utilization</li> - <li><a href="https://github.com/apache/accumulo/issues/1692">#1692</a> Fix file permissions in source assembly tarball</li> - <li><a href="https://github.com/apache/accumulo/issues/1721">#1721</a> Mark security properties experimental</li> - <li><a href="https://github.com/apache/accumulo/issues/1739">#1739</a> <a href="https://github.com/apache/accumulo/issues/1746">#1746</a> Cleanup Splits file if CreateTable FaTE operation fails.</li> - <li><a href="https://github.com/apache/accumulo/issues/1742">#1742</a> <a href="https://github.com/apache/accumulo/issues/1765">#1765</a> Added forEach to Scanner</li> + <li><a href="https://github.com/apache/accumulo/issues/1660">#1660</a> Dropped unused MemoryManager property</li> <li><a href="https://github.com/apache/accumulo/issues/1764">#1764</a> <a href="https://github.com/apache/accumulo/issues/1783">#1783</a> Parallelize listcompactions in shell</li> <li><a href="https://github.com/apache/accumulo/issues/1797">#1797</a> Add table option to shell delete command.</li> - <li><a href="https://github.com/apache/accumulo/issues/1848">#1848</a> Update column name in the monitor UI</li> <li><a href="https://github.com/apache/accumulo/issues/2039">#2039</a> <a href="https://github.com/apache/accumulo/issues/2045">#2045</a> Add bulk import option to ignore empty dirs</li> - <li><a href="https://github.com/apache/accumulo/issues/2064">#2064</a> Add option to disable encryption to AESCryptoService</li> - <li><a href="https://github.com/apache/accumulo/issues/2117">#2117</a> <a href="https://github.com/apache/accumulo/issues/2236">#2236</a> Make sorted recovery write to RFiles. New <code class="language-plaintext highlighter-rouge">tserver.wal.sort.file.</code> property to configure</li> + <li><a href="https://github.com/apache/accumulo/issues/2117">#2117</a> <a href="https://github.com/apache/accumulo/issues/2236">#2236</a> Make sorted recovery write to RFiles. New <code class="language-plaintext highlighter-rouge">tserver.wal.sort.file.</code> +property to configure</li> <li><a href="https://github.com/apache/accumulo/issues/2076">#2076</a> Sorted recovery files can now be encrypted</li> <li><a href="https://github.com/apache/accumulo/issues/2441">#2441</a> Upgraded to Junit 5</li> - <li><a href="https://github.com/apache/accumulo/issues/2462">#2462</a> Added SUBMITTED FaTE status to differentiate between things that are submitted and running</li> - <li><a href="https://github.com/apache/accumulo/issues/2467">#2467</a> Added option to fate shell command to cancel FaTE operations that are NEW or SUBMITTED</li> - <li><a href="https://github.com/apache/accumulo/issues/2562">#2562</a> Updated fate shell command to use CommandLine options instead of manual arg parsing</li> - <li><a href="https://github.com/apache/accumulo/issues/2524">#2524</a> Scheduled background tasks are now periodically checked to see if they failed</li> - <li><a href="https://github.com/apache/accumulo/issues/2692">#2692</a> New public API added to support setting multiple properties at once atomically</li> - <li><a href="https://github.com/apache/accumulo/issues/2749">#2749</a> Upgrade Monitor to Bootstrap 5</li> + <li><a href="https://github.com/apache/accumulo/issues/2462">#2462</a> Added SUBMITTED FaTE status to differentiate between things submitted vs. running</li> + <li><a href="https://github.com/apache/accumulo/issues/2467">#2467</a> Added fate shell command option to cancel FaTE operations that are NEW or SUBMITTED</li> <li><a href="https://github.com/apache/accumulo/issues/2807">#2807</a> Added several troubleshooting utilities to the <code class="language-plaintext highlighter-rouge">accumulo admin</code> command.</li> - <li><a href="https://github.com/apache/accumulo/issues/2820">#2820</a> <a href="https://github.com/apache/accumulo/issues/2900">#2900</a> <code class="language-plaintext highlighter-rouge">du</code> command performance improved by using the metadata table for computation instead of HDFS</li> - <li><a href="https://github.com/apache/accumulo/issues/2920">#2920</a> Upgraded to Zookeeper 3.8.0</li> - <li><a href="https://github.com/apache/accumulo/issues/2933">#2933</a> Upgraded to slf4j2</li> + <li><a href="https://github.com/apache/accumulo/issues/2820">#2820</a> <a href="https://github.com/apache/accumulo/issues/2900">#2900</a> <code class="language-plaintext highlighter-rouge">du</code> command performance improved by using the metadata table for +computation instead of HDFS</li> <li><a href="https://github.com/apache/accumulo/issues/2966">#2966</a> Upgrade Thrift to 0.17.0</li> - <li><a href="https://github.com/apache/accumulo/issues/3015">#3015</a> Modified Shell ConfigCommand to handle permission errors when getting configuration information</li> </ul> <h2 id="upgrading">Upgrading</h2> diff --git a/output/release/index.html b/output/release/index.html index 5d6798d5..0a85e759 100644 --- a/output/release/index.html +++ b/output/release/index.html @@ -157,7 +157,7 @@ <div class="row" style="margin-top: 15px; font-family: monospace"> <div class="col-md-1">Nov 01</div> <div class="col-md-10"> - <span class="label label-danger"> DRAFT! </span> <span class="label label-success"><a style="color: #ffffff; text-decoration: none" href="/contributor/versioning#LTM"> LTM </a></span><em><strong> <a href="/release/accumulo-2.1.0/">Apache Accumulo 2.1.0</a></strong></em> + <span class="label label-success"><a style="color: #ffffff; text-decoration: none" href="/contributor/versioning#LTM"> LTM </a></span><strong> <a href="/release/accumulo-2.1.0/">Apache Accumulo 2.1.0</a></strong> </div> </div> @@ -183,7 +183,7 @@ <div class="row" style="margin-top: 15px; font-family: monospace"> <div class="col-md-1">Dec 24</div> <div class="col-md-10"> - <span class="label label-warning"><a style="color: #ffffff; text-decoration: none" href="/contributor/versioning#LTM">non-LTM</a></span><strong> <a href="/release/accumulo-2.0.1/">Apache Accumulo 2.0.1</a></strong> + <span class="label label-default"><a style="color: #ffffff; text-decoration: none" href="https://archive.apache.org/dist/accumulo/">Archive</a></span> <a href="/release/accumulo-2.0.1/">Apache Accumulo 2.0.1</a> </div> </div> diff --git a/output/search_data.json b/output/search_data.json index ff09ad28..fd81d559 100644 --- a/output/search_data.json +++ b/output/search_data.json @@ -170,7 +170,7 @@ "docs-2-x-getting-started-features": { "title": "Features", - "content": " Table Design and Configuration Integrity/Availability Performance Testing Client API Plugins General Administration Internal Data Management On-demand Data ManagementTable Design and ConfigurationIteratorsIterators are server-side programming mechanisms that encode functions such as filtering andaggregation within the data management steps (scopes where data is read from orwritten to disk) that happen in the tablet server.Security labelsAccumulo Keys can conta [...] + "content": " Table Design and Configuration Integrity/Availability Performance Testing Client API Plugins General Administration Internal Data Management On-demand Data ManagementTable Design and ConfigurationIteratorsIterators are server-side programming mechanisms that encode functions such as filtering andaggregation within the data management steps (scopes where data is read from orwritten to disk) that happen in the tablet server.Security labelsAccumulo Keys can conta [...] "url": " /docs/2.x/getting-started/features", "categories": "getting-started" }, @@ -318,7 +318,7 @@ "release-accumulo-2-1-0": { "title": "Apache Accumulo 2.1.0", - "content": "** DRAFT RELEASE NOTES **AboutTODO high level description of the releaseTODO summarize contributionsTODO Version Upgrade guidanceMinimum RequirementsTODO describe requirementsBinary IncompatibilityThis release is known to be incompatible with prior versions of the clientlibraries. That is, the 2.0.0 or 2.0.1 version of the client libraries will notbe able to communicate with a 2.1.0 or later installation of Accumulo, nor willthe 2.1.0 or later version of the client libr [...] + "content": "AboutApache Accumulo 2.1.0 brings many new features and updates since 1.10 and 2.0. The 2.1 releaseseries is an LTM series, and as such, is expected to receive stability-improving bugfixes, asneeded. This makes this series suitable for production environments where stability is preferableover new features that might appear in subsequent non-LTM releases.This release has received more than 1200 commits from over 50 contributors, including numerousbugfixes, updates, and f [...] "url": " /release/accumulo-2.1.0/", "categories": "release" }