|
| 1 | +--- |
| 2 | +title: Apache Accumulo 2.1.4 |
| 3 | +sortableversion: '02.01.04' |
| 4 | +draft: true |
| 5 | +LTM: true |
| 6 | +--- |
| 7 | +## About |
| 8 | + |
| 9 | +Apache Accumulo 2.1.4 is a patch release of the 2.1 LTM line. It contains bug |
| 10 | +fixes and minor enhancements. This version supersedes earlier 2.1 releases |
| 11 | +and users upgrading to 2.1 should upgrade directly to this version instead of |
| 12 | +any prior 2.1 release. |
| 13 | + |
| 14 | +## Notable Changes |
| 15 | + |
| 16 | +* {% ghi 5446 %} Many dependencies were updated, to include protobuf-java which |
| 17 | + was updated from 3.22.0 to 3.25.6 due to a vulnerability. Users may run into |
| 18 | + a runtime exception added in https://github.com/protocolbuffers/protobuf/pull/20084 |
| 19 | + when using old generated Protobuf files. Users may need to address any compatibility issues |
| 20 | + with this version of protobuf-java, if their code also makes use of this library. |
| 21 | +* {% ghi 5073 %} {% ghi 5034 %} Added `accumulo check-accumulo-properties` command that can be |
| 22 | + run before an instance is initialized to check the properties file. |
| 23 | +* {% ghi 5193 %} Added `accumulo admin signalShutdown` command to signal the server |
| 24 | + process to initiate a graceful shutdown. Compactors will finish the major compaction |
| 25 | + that they are currently working on, then will exit. Scan Servers will return a busy |
| 26 | + signal to all clients for new scan requests, and will shutdown when all in-progress |
| 27 | + scans have closed. Tablet Servers will signal the Manager that they are shutting down, |
| 28 | + which should prevent assignment of tablets to that server, then they will unload all |
| 29 | + tablets and shut down. The Monitor, Manager, GarbageCollector, and CompactionCoordinator |
| 30 | + will shut down also. The last step in the shutdown process for all servers is to remove |
| 31 | + their lock in ZooKeeper. |
| 32 | +* {% ghi 5438 %} Added `accumulo upgrade --prepare` command which should be used after |
| 33 | + shutting down an instance in preparation for an upgrade. This will check that no Fate |
| 34 | + transactions exist, delete any ZooKeeper locks for server processes, and prohibit any |
| 35 | + server processes from being started. |
| 36 | +* {% ghi 4898 %} New way to compute bulk load plans (TODO: Needs text) |
| 37 | +* {% ghi 5169 %} {% ghi 5170 %} The TabletServer will halt itself when a walog write or |
| 38 | + minc failure occurs and the TabletServer lock is not held in ZooKeeper. |
| 39 | +* {% ghi 5145 %} {% ghi 5132 %} The Manager and TabletServer processes now have a background |
| 40 | + thread that can be enabled via the property `general.server.lock.verification.interval` to |
| 41 | + validate that the process is holding the lock in ZooKeeper. The existing mechanism of relying |
| 42 | + on a Watcher to notify the process that the lock has been lost can be a problem due to the |
| 43 | + fact that there is a single thread in the ZooKeeper client that fires Watcher events. If the |
| 44 | + thread is currently waiting on a hung Watcher, then subsequent Watcher events will not fire |
| 45 | + and could leave the server running without a lock. |
| 46 | +* {% ghi 5174 %} Improvements to the `accumulo-cluster` and `accumulo-service` scripts have been |
| 47 | + backported from the main branch. This includes syntax changes. Users should review the scripts |
| 48 | + for changes that may effect them. |
| 49 | + |
| 50 | +### Configuration Improvements |
| 51 | + |
| 52 | +* {% ghi 4723 %} {% ghi 5239 %} Changes to properties `tserver.session.idle.max` and |
| 53 | + `tserver.session.update.idle.max` no longer require a TabletServer restart. |
| 54 | +* {% ghi 5397 %} {% ghi 5399 %} Added property `gc.threads.delete.wal` to control the number of threads to use for |
| 55 | + deleting write-ahead logs and recovery files. |
| 56 | +* {% ghi 5341 %} Created an optimization in Bulk Import v2 to enable faster processing of bulk import files |
| 57 | + when loading into a sparse set of tablets in a large table. See new table property `table.bulk.metadata.skip.distance`. |
| 58 | + |
| 59 | +### Notable Bug Fixes |
| 60 | + |
| 61 | +* {% ghi 5033 %} {% ghi 5038 %} Group names in cluster.yaml must conform to bash variable name rules |
| 62 | + or an error will be raised when parsing the cluster.yaml file. |
| 63 | +* {% ghi 5221 %} The shell will now print to stdout, instead of stderr, when there is no terminal set. This |
| 64 | + will help with piping the output of the shell to other commands such as grep. |
| 65 | +* {% ghi 5396 %} Modified `accumulo-cluster` to stop GC and ScanServer processes first when stopping the |
| 66 | + cluster. These processes write to the metadata table, which can lead to slower shutdown times. |
| 67 | +* {% ghi 4868 %} {% ghi 4871 %} Fixed listscans so that it shows a scan session id for batch scans instead |
| 68 | + of always showing zero. |
| 69 | +* {% ghi 4845 %} InstanceOperations.getActiveCompaction(String) did not handle the address of a |
| 70 | + Compactor process being passed in the parameter. This has been fixed. |
| 71 | +* {% ghi 5445 %} The `cf` and `cq` options for the DeleteMany and Grep shell commands were not being |
| 72 | + handled properly. |
| 73 | + |
| 74 | +### Metrics Improvements |
| 75 | + |
| 76 | +* {% ghi 4756 %} {% ghi 4757 %} {% ghi 4840 %} Added metric to indicate how many zombie scan threads are running |
| 77 | + in the TabletServer. |
| 78 | +* {% ghi 5011 %} Added queue tag to metrics emitted from the External Compactor processes. |
| 79 | +* {% ghi 5025 %} {% ghi 4922 %} Added property `general.micrometer.log.metrics` to enable metrics on |
| 80 | + the log4j2 or logback logging frameworks. Disabled by default. |
| 81 | + |
| 82 | +### Other Improvements |
| 83 | + |
| 84 | +* {% ghi 4755 %} {% ghi 5220 %} Fixed the help flag for the admin command so that it works for subcommands. |
| 85 | +* {% ghi 4819 %} Tablets that are closing will no longer wait on scans to complete. Instead they |
| 86 | + will try to interrupt the scan and then continue closing the tablet so that it can be migrated. |
| 87 | + It's possible that a zombie scan thread could remain in the TabletServer, if the scan thread is |
| 88 | + blocked on something and does not die. Users should monitor the new zombie scan metric mentioned |
| 89 | + in the section above. |
| 90 | +* {% ghi 4867 %} Lowered the memory burden of listing a large number of External Compactors in the Monitor. |
| 91 | +* {% ghi 5026 %} Modified CompactionJobPrioritizer.createPriority to give a higher priority to tablets that |
| 92 | + have more files than the maximum number of files per tablet. |
| 93 | +* {% ghi 5400 %} Modified AESCryptoService to prevent the creation of overlapping streams. |
| 94 | + |
| 95 | +## Requirements |
| 96 | + |
| 97 | +Accumulo 2.1.4 now requires JDK 17 to build, but still supports Java 11 runtime. |
| 98 | + |
| 99 | +## Upgrading |
| 100 | + |
| 101 | +View the [Upgrading Accumulo documentation][upgrade] for guidance. |
| 102 | + |
| 103 | +## Useful Links |
| 104 | + |
| 105 | +* [All Changes since 2.1.3][all-changes] |
| 106 | +* [All tickets related to this release][milestone] |
| 107 | + |
| 108 | + |
| 109 | +[upgrade]: /docs/2.x/administration/upgrading |
| 110 | +[milestone]: https://github.com/apache/accumulo/milestone/21 |
| 111 | +[all-changes]: https://github.com/apache/accumulo/compare/rel/2.1.3...apache:rel/2.1.4 |
0 commit comments