This is an automated email from the ASF dual-hosted git repository. bbeaudreault pushed a commit to annotated tag 2.6.0RC0 in repository https://gitbox.apache.org/repos/asf/hbase.git
commit d8f9a5662d8baa4eaf76a9806ee70ac168711254 Author: Bryan Beaudreault <bbeaudrea...@apache.org> AuthorDate: Thu Mar 21 15:17:31 2024 +0000 Preparing hbase release 2.6.0RC0; tagging and updates to CHANGES.md and RELEASENOTES.md Signed-off-by: Bryan Beaudreault <bbeaudrea...@apache.org> --- CHANGES.md | 550 ++++++++++++++++++++++++++++++++++++++++- RELEASENOTES.md | 746 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- pom.xml | 2 +- 3 files changed, 1289 insertions(+), 9 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 1decdcde8a2..237957ebdf5 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,4 +1,3 @@ -# HBASE Changelog <!--- # Licensed to the Apache Software Foundation (ASF) under one @@ -16,10 +15,553 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +--> +# HBASE Changelog + +## Release 2.6.0 - Unreleased (as of 2024-03-21) + + + +### NEW FEATURES: + +| JIRA | Summary | Priority | Component | +|:---- |:---- | :--- |:---- | +| [HBASE-26323](https://issues.apache.org/jira/browse/HBASE-26323) | Introduce a SnapshotProcedure | Major | proc-v2, snapshots | +| [HBASE-26666](https://issues.apache.org/jira/browse/HBASE-26666) | Add native TLS encryption support to RPC server/client | Major | encryption, security | +| [HBASE-27264](https://issues.apache.org/jira/browse/HBASE-27264) | Add options to consider compressed size when delimiting blocks during hfile writes | Major | . | +| [HBASE-20904](https://issues.apache.org/jira/browse/HBASE-20904) | Prometheus metrics http endpoint for monitoring integration | Major | metrics, monitoring | +| [HBASE-27304](https://issues.apache.org/jira/browse/HBASE-27304) | Support using IP to expose master/rs servers for some special scenarios | Minor | master, regionserver | +| [HBASE-27314](https://issues.apache.org/jira/browse/HBASE-27314) | Make index block be customized and configured | Major | . | +| [HBASE-27444](https://issues.apache.org/jira/browse/HBASE-27444) | Add tool commands list\_enabled\_tables and list\_disabled\_tables | Minor | master | +| [HBASE-27347](https://issues.apache.org/jira/browse/HBASE-27347) | Port FileWatcher from ZK to autodetect keystore/truststore changes in TLS connections | Major | IPC/RPC, security | +| [HBASE-27238](https://issues.apache.org/jira/browse/HBASE-27238) | Backport Backup/Restore to 2.x | Major | backport, backup&restore | +| [HBASE-26913](https://issues.apache.org/jira/browse/HBASE-26913) | Replication Observability Framework | Major | regionserver, Replication | +| [HBASE-27110](https://issues.apache.org/jira/browse/HBASE-27110) | Move replication peer storage from zookeeper to other storage systems | Major | Replication | +| [HBASE-27904](https://issues.apache.org/jira/browse/HBASE-27904) | A random data generator tool leveraging bulk load. | Major | util | +| [HBASE-27657](https://issues.apache.org/jira/browse/HBASE-27657) | Connection and Request Attributes | Major | . | +| [HBASE-26867](https://issues.apache.org/jira/browse/HBASE-26867) | Introduce a FlushProcedure | Minor | proc-v2 | +| [HBASE-28168](https://issues.apache.org/jira/browse/HBASE-28168) | Add option in RegionMover.java to isolate one or more regions on the RegionSever | Minor | . | +| [HBASE-28064](https://issues.apache.org/jira/browse/HBASE-28064) | Implement truncate\_region command to truncate region directly from FS | Major | Admin, shell | +| [HBASE-27784](https://issues.apache.org/jira/browse/HBASE-27784) | support quota user overrides | Major | . | +| [HBASE-28216](https://issues.apache.org/jira/browse/HBASE-28216) | HDFS erasure coding support for table data dirs | Major | . | + + +### IMPROVEMENTS: + +| JIRA | Summary | Priority | Component | +|:---- |:---- | :--- |:---- | +| [HBASE-26554](https://issues.apache.org/jira/browse/HBASE-26554) | Introduce a new parameter in jmx servlet to exclude the specific mbean | Minor | metrics | +| [HBASE-26943](https://issues.apache.org/jira/browse/HBASE-26943) | HMaster page style display confusion | Minor | master | +| [HBASE-26983](https://issues.apache.org/jira/browse/HBASE-26983) | Upgrade JRuby to 9.3.4.0 | Major | shell | +| [HBASE-27232](https://issues.apache.org/jira/browse/HBASE-27232) | Fix checking for encoded block size when deciding if block should be closed | Major | . | +| [HBASE-27185](https://issues.apache.org/jira/browse/HBASE-27185) | Rewrite NettyRpcServer to decode rpc request with netty handler | Major | netty, rpc | +| [HBASE-27144](https://issues.apache.org/jira/browse/HBASE-27144) | Add special rpc handlers for bulkload operations | Minor | regionserver, rpc | +| [HBASE-27278](https://issues.apache.org/jira/browse/HBASE-27278) | Improve TestTlsIPC to reuse existing IPC test code | Major | IPC/RPC, test | +| [HBASE-27279](https://issues.apache.org/jira/browse/HBASE-27279) | Make SslHandler work with SaslWrapHandler/SaslUnwrapHandler | Major | IPC/RPC, security | +| [HBASE-27320](https://issues.apache.org/jira/browse/HBASE-27320) | hide some sensitive configuration information in the UI | Minor | security, UI | +| [HBASE-27338](https://issues.apache.org/jira/browse/HBASE-27338) | brotli compression lib tests fail on arm64 | Minor | . | +| [HBASE-27342](https://issues.apache.org/jira/browse/HBASE-27342) | Use Hadoop Credentials API to retrieve passwords of TLS key/trust stores | Major | IPC/RPC, security | +| [HBASE-27332](https://issues.apache.org/jira/browse/HBASE-27332) | Remove RejectedExecutionHandler for long/short compaction thread pools | Minor | Compaction | +| [HBASE-27340](https://issues.apache.org/jira/browse/HBASE-27340) | Artifacts with resolved profiles | Minor | build, pom | +| [HBASE-27346](https://issues.apache.org/jira/browse/HBASE-27346) | Autodetect key/truststore file type from file extension | Major | security | +| [HBASE-27361](https://issues.apache.org/jira/browse/HBASE-27361) | Add .flattened-pom.xml to .gitignore | Major | build | +| [HBASE-27370](https://issues.apache.org/jira/browse/HBASE-27370) | Avoid decompressing blocks when reading from bucket cache prefetch threads | Major | . | +| [HBASE-27280](https://issues.apache.org/jira/browse/HBASE-27280) | Add mutual authentication support to TLS | Major | . | +| [HBASE-27365](https://issues.apache.org/jira/browse/HBASE-27365) | Minimise block addition failures due to no space in bucket cache writers queue by introducing wait time | Major | BucketCache | +| [HBASE-27395](https://issues.apache.org/jira/browse/HBASE-27395) | Adding description to Prometheus metrics | Minor | metrics | +| [HBASE-27339](https://issues.apache.org/jira/browse/HBASE-27339) | Improve sasl connection failure log message to include server | Minor | Client | +| [HBASE-27159](https://issues.apache.org/jira/browse/HBASE-27159) | Emit source metrics for BlockCacheExpressHitPercent | Minor | BlockCache, metrics | +| [HBASE-27406](https://issues.apache.org/jira/browse/HBASE-27406) | Make "/prometheus" endpoint accessible from HBase UI | Minor | UI | +| [HBASE-27363](https://issues.apache.org/jira/browse/HBASE-27363) | Fix the config key name for PREFETCH\_PERSISTENCE\_PATH\_KEY | Trivial | BucketCache | +| [HBASE-27434](https://issues.apache.org/jira/browse/HBASE-27434) | Use $revision as placeholder for maven version to make it easier to control the version from command line | Major | build, pom | +| [HBASE-27167](https://issues.apache.org/jira/browse/HBASE-27167) | s390x: Skip tests on unsupported compression libs | Major | build, pom | +| [HBASE-27450](https://issues.apache.org/jira/browse/HBASE-27450) | Update all our python scripts to use python3 | Major | scripts | +| [HBASE-27448](https://issues.apache.org/jira/browse/HBASE-27448) | Add an admin method to get replication enabled state | Major | Admin, Client | +| [HBASE-27414](https://issues.apache.org/jira/browse/HBASE-27414) | Search order for locations in HFileLink | Minor | Performance | +| [HBASE-27495](https://issues.apache.org/jira/browse/HBASE-27495) | Improve HFileLinkCleaner to validate back reference links ahead the next traverse | Major | master | +| [HBASE-27496](https://issues.apache.org/jira/browse/HBASE-27496) | Optionally limit the amount of plans executed in the Normalizer | Minor | Normalizer | +| [HBASE-27506](https://issues.apache.org/jira/browse/HBASE-27506) | Optionally disable sorting directories by size in CleanerChore | Minor | . | +| [HBASE-27503](https://issues.apache.org/jira/browse/HBASE-27503) | Support replace \<FILE-PATH\> in GC\_OPTS for ZGC | Minor | scripts | +| [HBASE-27512](https://issues.apache.org/jira/browse/HBASE-27512) | Add file \`.git-blame-ignore-revs\` for \`git blame\` | Trivial | . | +| [HBASE-27466](https://issues.apache.org/jira/browse/HBASE-27466) | hbase client metrics per user specified identity on hconnections. | Major | Client | +| [HBASE-22924](https://issues.apache.org/jira/browse/HBASE-22924) | GitHUB PR job should use when clause to filter to just PRs. | Minor | build, community | +| [HBASE-27435](https://issues.apache.org/jira/browse/HBASE-27435) | Make Prometheus metrics queryable | Minor | metrics | +| [HBASE-27459](https://issues.apache.org/jira/browse/HBASE-27459) | Improve our hbase\_docker to be able to build and start standalone clusters other than master branch | Major | scripts | +| [HBASE-27530](https://issues.apache.org/jira/browse/HBASE-27530) | Fix comment syntax errors | Trivial | documentation | +| [HBASE-27474](https://issues.apache.org/jira/browse/HBASE-27474) | Evict blocks on split/merge; Avoid caching reference/hlinks if compaction is enabled | Major | . | +| [HBASE-27514](https://issues.apache.org/jira/browse/HBASE-27514) | Move some persistent states from zookeeper to master region | Major | master, Zookeeper | +| [HBASE-27565](https://issues.apache.org/jira/browse/HBASE-27565) | Make the initial corePoolSize configurable for ChoreService | Major | conf | +| [HBASE-27529](https://issues.apache.org/jira/browse/HBASE-27529) | Provide RS coproc ability to attach WAL extended attributes to mutations at replication sink | Major | Coprocessors, Replication | +| [HBASE-27493](https://issues.apache.org/jira/browse/HBASE-27493) | Allow namespace admins to clone snapshots created by them | Major | snapshots | +| [HBASE-27562](https://issues.apache.org/jira/browse/HBASE-27562) | Publish SBOM artifacts | Major | java | +| [HBASE-27539](https://issues.apache.org/jira/browse/HBASE-27539) | Encapsulate and centralise access to ref count through StoreFileInfo | Major | . | +| [HBASE-27541](https://issues.apache.org/jira/browse/HBASE-27541) | Backups should be able to be restored to a separate filesystem | Minor | backup&restore | +| [HBASE-27542](https://issues.apache.org/jira/browse/HBASE-27542) | Remove unneeded distcp log cleanup after incremental backups | Minor | backup&restore | +| [HBASE-27551](https://issues.apache.org/jira/browse/HBASE-27551) | Add config options to delay assignment to retain last region location | Major | . | +| [HBASE-27583](https://issues.apache.org/jira/browse/HBASE-27583) | Remove -X option when building protoc check in nightly and pre commit job | Major | jenkins, scripts | +| [HBASE-27558](https://issues.apache.org/jira/browse/HBASE-27558) | Scan quotas and limits should account for total block IO | Major | . | +| [HBASE-27598](https://issues.apache.org/jira/browse/HBASE-27598) | Upgrade mockito to 4.x | Major | dependencies, test | +| [HBASE-27570](https://issues.apache.org/jira/browse/HBASE-27570) | Unify tracking of block IO across all read request types | Major | . | +| [HBASE-27534](https://issues.apache.org/jira/browse/HBASE-27534) | Determine too large requests by response block size rather than cell size | Major | . | +| [HBASE-27590](https://issues.apache.org/jira/browse/HBASE-27590) | Change Iterable to List in SnapshotFileCache | Minor | . | +| [HBASE-21521](https://issues.apache.org/jira/browse/HBASE-21521) | Expose master startup status via web UI | Major | master, UI | +| [HBASE-15242](https://issues.apache.org/jira/browse/HBASE-15242) | Client metrics for retries and timeouts | Major | metrics | +| [HBASE-27655](https://issues.apache.org/jira/browse/HBASE-27655) | Remove the empty path annotation from ClusterMetricsResource | Trivial | . | +| [HBASE-27666](https://issues.apache.org/jira/browse/HBASE-27666) | Allow preCompact hooks to return scanners whose cells can be shipped | Major | . | +| [HBASE-23102](https://issues.apache.org/jira/browse/HBASE-23102) | Improper Usage of Map putIfAbsent | Minor | . | +| [HBASE-27458](https://issues.apache.org/jira/browse/HBASE-27458) | Use ReadWriteLock for region scanner readpoint map | Minor | Scanners | +| [HBASE-23983](https://issues.apache.org/jira/browse/HBASE-23983) | Spotbugs warning complain on master build | Major | . | +| [HBASE-27670](https://issues.apache.org/jira/browse/HBASE-27670) | Improve FSUtils to directly obtain FSDataOutputStream | Major | Filesystem Integration | +| [HBASE-27672](https://issues.apache.org/jira/browse/HBASE-27672) | Read RPC threads may BLOCKED at the Configuration.get when using java compression | Minor | . | +| [HBASE-27681](https://issues.apache.org/jira/browse/HBASE-27681) | Refactor Table Latency Metrics | Major | . | +| [HBASE-27632](https://issues.apache.org/jira/browse/HBASE-27632) | Refactor WAL.Reader implementation so we can better support WAL splitting and replication | Major | Replication, wal | +| [HBASE-27615](https://issues.apache.org/jira/browse/HBASE-27615) | Add group of regionServer on Master webUI | Major | . | +| [HBASE-27686](https://issues.apache.org/jira/browse/HBASE-27686) | Recovery of BucketCache and Prefetched data after RS Crash | Major | BucketCache | +| [HBASE-27710](https://issues.apache.org/jira/browse/HBASE-27710) | ByteBuff ref counting is too expensive for on-heap buffers | Major | . | +| [HBASE-27646](https://issues.apache.org/jira/browse/HBASE-27646) | Should not use pread when prefetching in HFilePreadReader | Minor | Performance | +| [HBASE-27313](https://issues.apache.org/jira/browse/HBASE-27313) | Persist list of Hfiles names for which prefetch is done | Major | BucketCache | +| [HBASE-27676](https://issues.apache.org/jira/browse/HBASE-27676) | Scan handlers in the RPC executor should match at least one scan queues | Major | . | +| [HBASE-27744](https://issues.apache.org/jira/browse/HBASE-27744) | Update compression dependencies | Minor | io | +| [HBASE-26526](https://issues.apache.org/jira/browse/HBASE-26526) | Introduce a timeout to shutdown of WAL | Major | wal | +| [HBASE-27758](https://issues.apache.org/jira/browse/HBASE-27758) | Inconsistent synchronization in MetricsUserSourceImpl | Major | . | +| [HBASE-27756](https://issues.apache.org/jira/browse/HBASE-27756) | Make request guardrail configs in RSRpcServices live updatable | Major | . | +| [HBASE-27765](https://issues.apache.org/jira/browse/HBASE-27765) | Add biggest cell related info into web ui | Major | HFile, UI | +| [HBASE-27713](https://issues.apache.org/jira/browse/HBASE-27713) | Remove numRegions in Region Metrics | Major | metrics | +| [HBASE-27780](https://issues.apache.org/jira/browse/HBASE-27780) | FileChangeWatcher improvements | Major | . | +| [HBASE-27422](https://issues.apache.org/jira/browse/HBASE-27422) | Support replication for hbase:acl | Major | acl, Replication | +| [HBASE-27787](https://issues.apache.org/jira/browse/HBASE-27787) | Downgrade noisy info log in NettyRpcConnection when TLS enabled | Major | . | +| [HBASE-27785](https://issues.apache.org/jira/browse/HBASE-27785) | Encapsulate and centralize totalBufferUsed in ReplicationSourceManager | Major | Replication | +| [HBASE-27536](https://issues.apache.org/jira/browse/HBASE-27536) | Include more request information in slowlog for Scans | Major | . | +| [HBASE-27535](https://issues.apache.org/jira/browse/HBASE-27535) | Separate slowlog thresholds for scans vs other requests | Major | . | +| [HBASE-27818](https://issues.apache.org/jira/browse/HBASE-27818) | Split TestReplicationDroppedTables | Major | Replication, test | +| [HBASE-27808](https://issues.apache.org/jira/browse/HBASE-27808) | Change flatten mode for oss in our pom file | Major | community, pom | +| [HBASE-27819](https://issues.apache.org/jira/browse/HBASE-27819) | 10k RpcServer.MAX\_REQUEST\_SIZE is not enough in ReplicationDroppedTable related tests | Major | test | +| [HBASE-27792](https://issues.apache.org/jira/browse/HBASE-27792) | Guard Master/RS Dump Servlet behind admin walls | Minor | security, UI | +| [HBASE-27821](https://issues.apache.org/jira/browse/HBASE-27821) | Split TestFuzzyRowFilterEndToEnd | Major | test | +| [HBASE-27838](https://issues.apache.org/jira/browse/HBASE-27838) | Update zstd-jni from version 1.5.4-2 -\> 1.5.5-2 | Minor | io | +| [HBASE-27844](https://issues.apache.org/jira/browse/HBASE-27844) | changed type names to avoid conflicts with built-in types | Minor | build | +| [HBASE-27788](https://issues.apache.org/jira/browse/HBASE-27788) | Skip family comparing when compare cells inner the store | Major | Performance | +| [HBASE-27858](https://issues.apache.org/jira/browse/HBASE-27858) | Update surefire version to 3.0.0 and use the SurefireForkNodeFactory | Minor | test | +| [HBASE-27870](https://issues.apache.org/jira/browse/HBASE-27870) | Eliminate the 'WARNING: package jdk.internal.util.random not in java.base' when running UTs with jdk11 | Major | build, pom, test | +| [HBASE-27812](https://issues.apache.org/jira/browse/HBASE-27812) | Provide option in HBase UI to disable stack trace for security | Minor | UI | +| [HBASE-27848](https://issues.apache.org/jira/browse/HBASE-27848) | Should fast-fail if unmatched column family exists when using ImportTsv | Major | mapreduce | +| [HBASE-27876](https://issues.apache.org/jira/browse/HBASE-27876) | Only generate SBOM when releasing | Minor | build, pom | +| [HBASE-27855](https://issues.apache.org/jira/browse/HBASE-27855) | Support dynamic adjustment of flusher count | Minor | regionserver | +| [HBASE-27899](https://issues.apache.org/jira/browse/HBASE-27899) | Beautify the output information of the getStats method in ReplicationSource | Minor | Replication | +| [HBASE-27888](https://issues.apache.org/jira/browse/HBASE-27888) | Record readBlock message in log when it takes too long time | Minor | HFile | +| [HBASE-27939](https://issues.apache.org/jira/browse/HBASE-27939) | Bump snappy-java from 1.1.9.1 to 1.1.10.1 | Major | dependabot, security | +| [HBASE-27902](https://issues.apache.org/jira/browse/HBASE-27902) | New async admin api to invoke coproc on multiple servers | Major | . | +| [HBASE-27892](https://issues.apache.org/jira/browse/HBASE-27892) | Report memstore on-heap and off-heap size as jmx metrics | Major | metrics | +| [HBASE-27948](https://issues.apache.org/jira/browse/HBASE-27948) | Report memstore on-heap and off-heap size as jmx metrics in sub=Memory bean | Major | . | +| [HBASE-27954](https://issues.apache.org/jira/browse/HBASE-27954) | Eliminate duplicate code for getNonRootIndexedKey in HFileBlockIndex | Major | HFile | +| [HBASE-27920](https://issues.apache.org/jira/browse/HBASE-27920) | Skipping compact for this region if the table disable compaction | Major | Compaction | +| [HBASE-27845](https://issues.apache.org/jira/browse/HBASE-27845) | Distinguish the mutate types of rpc error in MetricsConnection | Minor | metrics | +| [HBASE-27798](https://issues.apache.org/jira/browse/HBASE-27798) | Client side should back off based on wait interval in RpcThrottlingException | Major | . | +| [HBASE-27897](https://issues.apache.org/jira/browse/HBASE-27897) | ConnectionImplementation#locateRegionInMeta should pause and retry when taking user region lock failed | Major | Client | +| [HBASE-27906](https://issues.apache.org/jira/browse/HBASE-27906) | Fix the javadoc for SyncFutureCache | Minor | documentation | +| [HBASE-26874](https://issues.apache.org/jira/browse/HBASE-26874) | VerifyReplication recompare async | Major | . | +| [HBASE-27896](https://issues.apache.org/jira/browse/HBASE-27896) | Disable hdfs readahead for pread reads | Major | . | +| [HBASE-27956](https://issues.apache.org/jira/browse/HBASE-27956) | Support wall clock profiling in ProfilerServlet | Major | . | +| [HBASE-27996](https://issues.apache.org/jira/browse/HBASE-27996) | Remove InterfaceStability.Stable from HTable | Major | . | +| [HBASE-28012](https://issues.apache.org/jira/browse/HBASE-28012) | Avoid CellUtil.cloneRow in BufferedEncodedSeeker | Major | Offheaping, Performance | +| [HBASE-28025](https://issues.apache.org/jira/browse/HBASE-28025) | Enhance ByteBufferUtils.findCommonPrefix to compare 8 bytes each time | Major | Performance | +| [HBASE-27717](https://issues.apache.org/jira/browse/HBASE-27717) | Add rsgroup name for dead region servers on master UI | Minor | UI | +| [HBASE-28051](https://issues.apache.org/jira/browse/HBASE-28051) | The javadoc about RegionProcedureStore.delete is incorrect | Trivial | documentation | +| [HBASE-28052](https://issues.apache.org/jira/browse/HBASE-28052) | Removing the useless parameters from ProcedureExecutor.loadProcedures | Minor | proc-v2 | +| [HBASE-28038](https://issues.apache.org/jira/browse/HBASE-28038) | Add TLS settings to ZooKeeper client | Major | Zookeeper | +| [HBASE-28059](https://issues.apache.org/jira/browse/HBASE-28059) | Use correct units in RegionLoad#getStoreUncompressedSizeMB() | Major | Admin | +| [HBASE-28008](https://issues.apache.org/jira/browse/HBASE-28008) | Add support for tcnative | Major | . | +| [HBASE-27853](https://issues.apache.org/jira/browse/HBASE-27853) | Add client side table metrics for rpc calls and request latency. | Major | Client, metrics | +| [HBASE-27981](https://issues.apache.org/jira/browse/HBASE-27981) | Add connection and request attributes to slow log | Major | . | +| [HBASE-28068](https://issues.apache.org/jira/browse/HBASE-28068) | Add hbase.normalizer.merge.merge\_request\_max\_number\_of\_regions property to limit max number of regions in a merge request for merge normalization | Minor | Normalizer | +| [HBASE-28128](https://issues.apache.org/jira/browse/HBASE-28128) | Reject requests at RPC layer when RegionServer is aborting | Major | . | +| [HBASE-22138](https://issues.apache.org/jira/browse/HBASE-22138) | Undo our direct dependence on protos in google.protobuf.Any in Procedure.proto | Major | proc-v2, Protobufs | +| [HBASE-28135](https://issues.apache.org/jira/browse/HBASE-28135) | Specify -Xms for tests | Major | test | +| [HBASE-28138](https://issues.apache.org/jira/browse/HBASE-28138) | Make the connection idle timeout configurable for the embedded HTTP servers | Minor | . | +| [HBASE-28113](https://issues.apache.org/jira/browse/HBASE-28113) | Modify the way of acquiring the RegionStateNode lock in checkOnlineRegionsReport to tryLock | Major | master | +| [HBASE-28043](https://issues.apache.org/jira/browse/HBASE-28043) | Reduce seeks from beginning of block in StoreFileScanner.seekToPreviousRow | Major | . | +| [HBASE-28085](https://issues.apache.org/jira/browse/HBASE-28085) | Configurably use scanner timeout as rpc timeout for scanner next calls | Major | . | +| [HBASE-27276](https://issues.apache.org/jira/browse/HBASE-27276) | Reduce reflection overhead in Filter deserialization | Major | . | +| [HBASE-28193](https://issues.apache.org/jira/browse/HBASE-28193) | Update plugin for SBOM generation to 2.7.10 | Major | build, pom | +| [HBASE-28176](https://issues.apache.org/jira/browse/HBASE-28176) | PrefetchExecutor should stop once cache reaches capacity | Major | . | +| [HBASE-25549](https://issues.apache.org/jira/browse/HBASE-25549) | Provide a switch that allows avoiding reopening all regions when modifying a table to prevent RIT storms. | Major | master, shell | +| [HBASE-28212](https://issues.apache.org/jira/browse/HBASE-28212) | Do not need to maintain rollback step when root procedure does not support rollback | Major | master, proc-v2 | +| [HBASE-28215](https://issues.apache.org/jira/browse/HBASE-28215) | Region reopen procedure should support some sort of throttling | Major | master, proc-v2 | +| [HBASE-27532](https://issues.apache.org/jira/browse/HBASE-27532) | Add block bytes scanned metrics | Major | . | +| [HBASE-28209](https://issues.apache.org/jira/browse/HBASE-28209) | Create a jmx metrics to expose the oldWALs directory size | Major | metrics | +| [HBASE-28029](https://issues.apache.org/jira/browse/HBASE-28029) | Netty SSL throughput improvement | Major | . | +| [HBASE-21243](https://issues.apache.org/jira/browse/HBASE-21243) | Correct java-doc for the method RpcServer.getRemoteAddress() | Trivial | . | +| [HBASE-20528](https://issues.apache.org/jira/browse/HBASE-20528) | Revise collections copying from iteration to built-in function | Minor | . | +| [HBASE-27402](https://issues.apache.org/jira/browse/HBASE-27402) | Clone Scan in ClientScanner to avoid errors with Scan re-used | Major | . | +| [HBASE-28307](https://issues.apache.org/jira/browse/HBASE-28307) | Add hbase-openssl module and include in release binaries | Major | . | +| [HBASE-28256](https://issues.apache.org/jira/browse/HBASE-28256) | Enhance ByteBufferUtils.readVLong to read more bytes at a time | Major | Performance | +| [HBASE-28306](https://issues.apache.org/jira/browse/HBASE-28306) | Add property to customize Version information | Major | . | +| [HBASE-28305](https://issues.apache.org/jira/browse/HBASE-28305) | Add "Uncompressed StoreFileSize" column to the table.jsp | Minor | UI | +| [HBASE-28271](https://issues.apache.org/jira/browse/HBASE-28271) | Infinite waiting on lock acquisition by snapshot can result in unresponsive master | Major | . | +| [HBASE-28302](https://issues.apache.org/jira/browse/HBASE-28302) | Add tracking of fs read times in ScanMetrics and slow logs | Major | . | +| [HBASE-28327](https://issues.apache.org/jira/browse/HBASE-28327) | Add remove(String key, Metric metric) method to MetricRegistry interface | Major | metrics | +| [HBASE-28332](https://issues.apache.org/jira/browse/HBASE-28332) | Type conversion is no need in method CompactionChecker.chore() | Minor | Compaction | +| [HBASE-28317](https://issues.apache.org/jira/browse/HBASE-28317) | RpcCallContext should expose client's TLS certificate | Minor | . | +| [HBASE-26642](https://issues.apache.org/jira/browse/HBASE-26642) | Increase the timeout for TestStochasticLoadBalancerRegionReplicaLargeCluster | Major | Balancer, test | +| [HBASE-28190](https://issues.apache.org/jira/browse/HBASE-28190) | Add slow sync log rolling test in TestAsyncLogRolling | Minor | test | +| [HBASE-28334](https://issues.apache.org/jira/browse/HBASE-28334) | Add comment around erasure coding policy in DEFAULT\_VALUE map | Major | . | +| [HBASE-27687](https://issues.apache.org/jira/browse/HBASE-27687) | Enhance quotas to consume blockBytesScanned rather than response size | Major | . | +| [HBASE-27800](https://issues.apache.org/jira/browse/HBASE-27800) | Add support for default user quotas | Major | . | +| [HBASE-28349](https://issues.apache.org/jira/browse/HBASE-28349) | Atomic requests should increment read usage in quotas | Major | . | +| [HBASE-28357](https://issues.apache.org/jira/browse/HBASE-28357) | MoveWithAck#isSuccessfulScan for Region movement should use Region End Key for limiting scan to one region only. | Minor | Region Assignment | +| [HBASE-28356](https://issues.apache.org/jira/browse/HBASE-28356) | RegionServer Canary can should use Scan just like Region Canary with option to enable Raw Scan | Minor | canary | +| [HBASE-28367](https://issues.apache.org/jira/browse/HBASE-28367) | Backport "HBASE-27811 Enable cache control for logs endpoint and set max age as 0" to branch-2 | Minor | . | +| [HBASE-28142](https://issues.apache.org/jira/browse/HBASE-28142) | Region Server Logs getting spammed with warning when storefile has no reader | Minor | . | +| [HBASE-28370](https://issues.apache.org/jira/browse/HBASE-28370) | Default user quotas are refreshing too frequently | Major | . | +| [HBASE-28398](https://issues.apache.org/jira/browse/HBASE-28398) | Make sure we close all the scanners in TestHRegion | Major | test | +| [HBASE-28313](https://issues.apache.org/jira/browse/HBASE-28313) | StorefileRefresherChore should not refresh readonly table | Major | regionserver | +| [HBASE-28342](https://issues.apache.org/jira/browse/HBASE-28342) | Decommissioned hosts should be rejected by the HMaster | Major | master | +| [HBASE-28359](https://issues.apache.org/jira/browse/HBASE-28359) | Improve quota RateLimiter synchronization | Major | . | +| [HBASE-28424](https://issues.apache.org/jira/browse/HBASE-28424) | Set correct Result to RegionActionResult for successful Put/Delete mutations | Major | . | +| [HBASE-28385](https://issues.apache.org/jira/browse/HBASE-28385) | Quota estimates are too optimistic for large scans | Major | . | +| [HBASE-28427](https://issues.apache.org/jira/browse/HBASE-28427) | FNFE related to 'master:store' when moving archived hfiles to global archived dir | Minor | master | +| [HBASE-28124](https://issues.apache.org/jira/browse/HBASE-28124) | Missing fields in Scan.toJSON | Major | . | + + +### BUG FIXES: + +| JIRA | Summary | Priority | Component | +|:---- |:---- | :--- |:---- | +| [HBASE-25166](https://issues.apache.org/jira/browse/HBASE-25166) | MobFileCompactionChore is closing the master's shared cluster connection | Major | master | +| [HBASE-26842](https://issues.apache.org/jira/browse/HBASE-26842) | TestSnapshotProcedure fails in branch-2 | Critical | proc-v2, snapshots | +| [HBASE-27092](https://issues.apache.org/jira/browse/HBASE-27092) | Regionserver table on Master UI is broken | Major | master | +| [HBASE-26977](https://issues.apache.org/jira/browse/HBASE-26977) | HMaster's ShutdownHook does not take effect, if tablesOnMaster is false | Major | master | +| [HBASE-27246](https://issues.apache.org/jira/browse/HBASE-27246) | RSGroupMappingScript#getRSGroup has thread safety problem | Major | rsgroup | +| [HBASE-27325](https://issues.apache.org/jira/browse/HBASE-27325) | the bulkload max call queue size can be update to a wrong value | Minor | IPC/RPC | +| [HBASE-27321](https://issues.apache.org/jira/browse/HBASE-27321) | The ReplicationLogCleaner is not thread safe but can be called from different threads at the same time | Critical | master, Replication | +| [HBASE-27152](https://issues.apache.org/jira/browse/HBASE-27152) | Under compaction mark may leak | Major | Compaction | +| [HBASE-27335](https://issues.apache.org/jira/browse/HBASE-27335) | HBase shell hang for a minute when quiting | Major | shell | +| [HBASE-27336](https://issues.apache.org/jira/browse/HBASE-27336) | The region visualizer shows 'undefined' region server | Major | master, UI | +| [HBASE-22939](https://issues.apache.org/jira/browse/HBASE-22939) | SpaceQuotas- Bulkload from different hdfs failed when space quotas are turned on. | Major | . | +| [HBASE-27353](https://issues.apache.org/jira/browse/HBASE-27353) | opentelemetry-context jar missing at runtime causes MR jobs to fail | Minor | . | +| [HBASE-27362](https://issues.apache.org/jira/browse/HBASE-27362) | Fix some tests hung by CompactSplit.requestCompactionInternal ignoring compactionsEnabled check | Major | Compaction | +| [HBASE-27352](https://issues.apache.org/jira/browse/HBASE-27352) | Quoted string argument with spaces passed from command line are propagated wrongly to the underlying java class | Minor | shell | +| [HBASE-27368](https://issues.apache.org/jira/browse/HBASE-27368) | Do not need to throw IllegalStateException when peer is not active in ReplicationSource.initialize | Major | regionserver, Replication | +| [HBASE-27386](https://issues.apache.org/jira/browse/HBASE-27386) | Use encoded size for calculating compression ratio in block size predicator | Major | . | +| [HBASE-27409](https://issues.apache.org/jira/browse/HBASE-27409) | Fix the javadoc for WARCRecord | Major | documentation | +| [HBASE-27407](https://issues.apache.org/jira/browse/HBASE-27407) | Fixing check for "description" request param in JMXJsonServlet.java | Minor | metrics | +| [HBASE-27419](https://issues.apache.org/jira/browse/HBASE-27419) | Update to hbase-thirdparty 4.1.2 | Major | dependencies | +| [HBASE-27424](https://issues.apache.org/jira/browse/HBASE-27424) | Upgrade Jettison for CVE-2022-40149/40150 | Major | . | +| [HBASE-27420](https://issues.apache.org/jira/browse/HBASE-27420) | Failure while connecting to zk if HBase is running in standalone mode in a container | Minor | Zookeeper | +| [HBASE-27426](https://issues.apache.org/jira/browse/HBASE-27426) | Region server abort with failing to list region servers. | Major | Zookeeper | +| [HBASE-27433](https://issues.apache.org/jira/browse/HBASE-27433) | DefaultMobStoreCompactor should delete MobStoreFile cleanly when compaction is failed | Major | mob | +| [HBASE-27440](https://issues.apache.org/jira/browse/HBASE-27440) | metrics method removeHistogramMetrics trigger serious memory leak | Major | metrics, regionserver | +| [HBASE-25983](https://issues.apache.org/jira/browse/HBASE-25983) | javadoc generation fails on openjdk-11.0.11+9 | Major | documentation, pom | +| [HBASE-27446](https://issues.apache.org/jira/browse/HBASE-27446) | Spotbugs 4.7.2 report a lot of logging errors when generating report | Major | build, jenkins, scripts | +| [HBASE-27437](https://issues.apache.org/jira/browse/HBASE-27437) | TestHeapSize is flaky | Major | test | +| [HBASE-27472](https://issues.apache.org/jira/browse/HBASE-27472) | The personality script set wrong hadoop2 check version for branch-2 | Major | jenkins, scripts | +| [HBASE-27473](https://issues.apache.org/jira/browse/HBASE-27473) | Fix spotbugs warnings in hbase-rest Client.getResponseBody | Major | REST | +| [HBASE-27480](https://issues.apache.org/jira/browse/HBASE-27480) | Skip error prone for hadoop2/3 checkes in our nightly jobs | Major | jenkins, scripts | +| [HBASE-27379](https://issues.apache.org/jira/browse/HBASE-27379) | numOpenConnections metric is one less than the actual | Minor | metrics | +| [HBASE-27423](https://issues.apache.org/jira/browse/HBASE-27423) | Upgrade hbase-thirdparty to 4.1.3 and upgrade Jackson for CVE-2022-42003/42004 | Major | security | +| [HBASE-27464](https://issues.apache.org/jira/browse/HBASE-27464) | In memory compaction 'COMPACT' may cause data corruption when adding cells large than maxAlloc(default 256k) size | Critical | in-memory-compaction | +| [HBASE-27501](https://issues.apache.org/jira/browse/HBASE-27501) | The .flattened-pom.xml for some modules are not installed | Blocker | build, pom | +| [HBASE-27445](https://issues.apache.org/jira/browse/HBASE-27445) | result of DirectMemoryUtils#getDirectMemorySize may be wrong | Minor | UI | +| [HBASE-27504](https://issues.apache.org/jira/browse/HBASE-27504) | Remove duplicated config 'hbase.normalizer.merge.min\_region\_age.days' in hbase-default.xml | Minor | conf | +| [HBASE-27463](https://issues.apache.org/jira/browse/HBASE-27463) | Reset sizeOfLogQueue when refresh replication source | Minor | Replication | +| [HBASE-27484](https://issues.apache.org/jira/browse/HBASE-27484) | FNFE on StoreFileScanner after a flush followed by a compaction | Major | . | +| [HBASE-27519](https://issues.apache.org/jira/browse/HBASE-27519) | Another case for FNFE on StoreFileScanner after a flush followed by a compaction | Major | . | +| [HBASE-27527](https://issues.apache.org/jira/browse/HBASE-27527) | Port HBASE-27498 to branch-2 | Major | Client | +| [HBASE-27524](https://issues.apache.org/jira/browse/HBASE-27524) | Fix python requirements problem | Major | scripts, security | +| [HBASE-27390](https://issues.apache.org/jira/browse/HBASE-27390) | getClusterMetrics NullPointerException when ServerTask status null | Major | . | +| [HBASE-27485](https://issues.apache.org/jira/browse/HBASE-27485) | HBaseTestingUtility minicluster requires log4j2 | Major | test | +| [HBASE-27489](https://issues.apache.org/jira/browse/HBASE-27489) | Fix several problems after HBASE-27304 | Minor | master, regionserver | +| [HBASE-27566](https://issues.apache.org/jira/browse/HBASE-27566) | Bump gitpython from 3.1.29 to 3.1.30 in /dev-support | Major | scripts, security | +| [HBASE-27560](https://issues.apache.org/jira/browse/HBASE-27560) | CatalogJanitor consistencyCheck cannot report the hole on last region if next table is disabled in meta | Minor | hbck2 | +| [HBASE-27563](https://issues.apache.org/jira/browse/HBASE-27563) | ChaosMonkey sometimes generates invalid boundaries for random item selection | Minor | integration tests | +| [HBASE-27564](https://issues.apache.org/jira/browse/HBASE-27564) | Add default encryption type for MiniKDC to fix failed tests on JDK11+ | Major | . | +| [HBASE-27528](https://issues.apache.org/jira/browse/HBASE-27528) | log duplication issues in MasterRpcServices | Major | logging, master, rpc, security | +| [HBASE-27579](https://issues.apache.org/jira/browse/HBASE-27579) | CatalogJanitor can cause data loss due to errors during cleanMergeRegion | Blocker | . | +| [HBASE-26300](https://issues.apache.org/jira/browse/HBASE-26300) | Skip archived master wals during incremental backups | Major | backup&restore | +| [HBASE-27589](https://issues.apache.org/jira/browse/HBASE-27589) | Rename TestConnectionImplementation in hbase-it to fix javadoc failure | Blocker | Client, documentation | +| [HBASE-27592](https://issues.apache.org/jira/browse/HBASE-27592) | Update hadoop netty version for hadoop-2.0 profile | Major | . | +| [HBASE-27586](https://issues.apache.org/jira/browse/HBASE-27586) | Bump up commons-codec to 1.15 | Major | dependencies, security | +| [HBASE-27547](https://issues.apache.org/jira/browse/HBASE-27547) | Close store file readers after region warmup | Major | regionserver | +| [HBASE-26967](https://issues.apache.org/jira/browse/HBASE-26967) | FilterList with FuzzyRowFilter and SingleColumnValueFilter evaluated with operator MUST\_PASS\_ONE doesn't work as expected | Critical | Filters | +| [HBASE-27585](https://issues.apache.org/jira/browse/HBASE-27585) | Bump up jruby to 9.3.9.0 and related joni and jcodings to 2.1.43 and 1.0.57 respectively | Major | jruby, security, shell | +| [HBASE-27608](https://issues.apache.org/jira/browse/HBASE-27608) | Use lowercase image reference name in our docker file | Major | scripts | +| [HBASE-27619](https://issues.apache.org/jira/browse/HBASE-27619) | Bulkload fails when trying to bulkload files with invalid names after HBASE-26707 | Major | . | +| [HBASE-27621](https://issues.apache.org/jira/browse/HBASE-27621) | Also clear the Dictionary when resetting when reading compressed WAL file | Critical | Replication, wal | +| [HBASE-27602](https://issues.apache.org/jira/browse/HBASE-27602) | Remove the impact of operating env on testHFileCleaning | Major | test | +| [HBASE-27637](https://issues.apache.org/jira/browse/HBASE-27637) | Zero length value would cause value compressor read nothing and not advance the position of the InputStream | Critical | dataloss, wal | +| [HBASE-27636](https://issues.apache.org/jira/browse/HBASE-27636) | The "CREATE\_TIME\_TS" value of the hfile generated by the HFileOutputFormat2 class is 0 | Major | HFile, mapreduce | +| [HBASE-27654](https://issues.apache.org/jira/browse/HBASE-27654) | IndexBlockEncoding is missing in HFileContextBuilder copy constructor | Major | . | +| [HBASE-27661](https://issues.apache.org/jira/browse/HBASE-27661) | Set size of systable queue in UT | Major | . | +| [HBASE-27649](https://issues.apache.org/jira/browse/HBASE-27649) | WALPlayer does not properly dedupe overridden cell versions | Major | . | +| [HBASE-27644](https://issues.apache.org/jira/browse/HBASE-27644) | Should not return false when WALKey has no following KVs while reading WAL file | Critical | dataloss, wal | +| [HBASE-27668](https://issues.apache.org/jira/browse/HBASE-27668) | PB's parseDelimitedFrom can successfully return when there are not enough bytes | Critical | Protobufs, wal | +| [HBASE-27650](https://issues.apache.org/jira/browse/HBASE-27650) | Merging empty regions corrupts meta cache | Major | . | +| [HBASE-24781](https://issues.apache.org/jira/browse/HBASE-24781) | Clean up peer metrics when disabling peer | Major | Replication | +| [HBASE-27673](https://issues.apache.org/jira/browse/HBASE-27673) | Fix mTLS client hostname verification | Major | rpc | +| [HBASE-23561](https://issues.apache.org/jira/browse/HBASE-23561) | Look up of Region in Master by encoded region name is O(n) | Trivial | . | +| [HBASE-25709](https://issues.apache.org/jira/browse/HBASE-25709) | Close region may stuck when region is compacting and skipped most cells read | Major | Compaction | +| [HBASE-27250](https://issues.apache.org/jira/browse/HBASE-27250) | MasterRpcService#setRegionStateInMeta does not support replica region encodedNames or region names | Minor | . | +| [HBASE-27688](https://issues.apache.org/jira/browse/HBASE-27688) | HFile splitting occurs during bulkload, the CREATE\_TIME\_TS of hfileinfo is 0 | Major | HFile | +| [HBASE-27714](https://issues.apache.org/jira/browse/HBASE-27714) | WALEntryStreamTestBase creates a new HBTU in startCluster method which causes all sub classes are testing default configurations | Major | Replication, test | +| [HBASE-27716](https://issues.apache.org/jira/browse/HBASE-27716) | Fix TestWALOpenAfterDNRollingStart | Major | test | +| [HBASE-27652](https://issues.apache.org/jira/browse/HBASE-27652) | Client-side lock contention around Configuration when using read replica regions | Major | Client, read replicas | +| [HBASE-27708](https://issues.apache.org/jira/browse/HBASE-27708) | CPU hot-spot resolving User subject | Major | Client, tracing | +| [HBASE-27729](https://issues.apache.org/jira/browse/HBASE-27729) | Missed one parameter when logging exception in StoreFileListFile | Major | logging | +| [HBASE-27718](https://issues.apache.org/jira/browse/HBASE-27718) | The regionStateNode only need remove once in regionOffline | Minor | amv2 | +| [HBASE-27651](https://issues.apache.org/jira/browse/HBASE-27651) | hbase-daemon.sh foreground\_start should propagate SIGHUP and SIGTERM | Minor | scripts | +| [HBASE-27671](https://issues.apache.org/jira/browse/HBASE-27671) | Client should not be able to restore/clone a snapshot after it's TTL has expired | Minor | . | +| [HBASE-27684](https://issues.apache.org/jira/browse/HBASE-27684) | Client metrics for user region lock related behaviors. | Major | Client | +| [HBASE-26866](https://issues.apache.org/jira/browse/HBASE-26866) | Shutdown WAL may abort region server | Major | wal | +| [HBASE-27732](https://issues.apache.org/jira/browse/HBASE-27732) | NPE in TestBasicWALEntryStreamFSHLog.testEOFExceptionInOldWALsDirectory | Major | Replication | +| [HBASE-27333](https://issues.apache.org/jira/browse/HBASE-27333) | Abort RS when the hostname is different from master seen | Major | regionserver | +| [HBASE-27726](https://issues.apache.org/jira/browse/HBASE-27726) | ruby shell not handled SyntaxError exceptions properly | Minor | shell | +| [HBASE-27704](https://issues.apache.org/jira/browse/HBASE-27704) | Quotas can drastically overflow configured limit | Major | . | +| [HBASE-27778](https://issues.apache.org/jira/browse/HBASE-27778) | Incorrect ReplicationSourceWALReader. totalBufferUsed may cause replication hang up | Major | Replication | +| [HBASE-27768](https://issues.apache.org/jira/browse/HBASE-27768) | Race conditions in BlockingRpcConnection | Major | . | +| [HBASE-27796](https://issues.apache.org/jira/browse/HBASE-27796) | Improve MemcachedBlockCache | Major | . | +| [HBASE-27807](https://issues.apache.org/jira/browse/HBASE-27807) | PressureAwareCompactionThroughputController#tune log the opposite of the actual scenario | Trivial | Compaction | +| [HBASE-27810](https://issues.apache.org/jira/browse/HBASE-27810) | HBCK throws RejectedExecutionException when closing ZooKeeper resources | Major | hbck | +| [HBASE-27822](https://issues.apache.org/jira/browse/HBASE-27822) | TestFromClientSide5.testAppendWithoutWAL is flaky | Major | scan, test | +| [HBASE-27823](https://issues.apache.org/jira/browse/HBASE-27823) | NPE in ClaimReplicationQueuesProcedure when running TestAssignmentManager.testAssignSocketTimeout | Major | test | +| [HBASE-27824](https://issues.apache.org/jira/browse/HBASE-27824) | NPE in MetricsMasterWrapperImpl.isRunning | Major | test | +| [HBASE-27851](https://issues.apache.org/jira/browse/HBASE-27851) | TestListTablesByState is silently failing due to a surefire bug | Minor | test | +| [HBASE-27857](https://issues.apache.org/jira/browse/HBASE-27857) | HBaseClassTestRule: system exit not restored if test times out may cause test to hang | Minor | test | +| [HBASE-27860](https://issues.apache.org/jira/browse/HBASE-27860) | Fix build error against Hadoop 3.3.5 | Major | build, hadoop3 | +| [HBASE-27865](https://issues.apache.org/jira/browse/HBASE-27865) | TestThriftServerCmdLine fails with org.apache.hadoop.hbase.SystemExitRule$SystemExitInTestException | Major | test, Thrift | +| [HBASE-27874](https://issues.apache.org/jira/browse/HBASE-27874) | Problem in flakey generated report causes pre-commit run to fail | Major | build | +| [HBASE-27277](https://issues.apache.org/jira/browse/HBASE-27277) | TestRaceBetweenSCPAndTRSP fails in pre commit | Major | proc-v2, test | +| [HBASE-27867](https://issues.apache.org/jira/browse/HBASE-27867) | Close the L1 victim handler race | Minor | BlockCache | +| [HBASE-27872](https://issues.apache.org/jira/browse/HBASE-27872) | xerial's snappy-java requires GLIBC \>= 2.32 | Minor | . | +| [HBASE-27793](https://issues.apache.org/jira/browse/HBASE-27793) | Make HBCK be able to report unknown servers | Major | hbck | +| [HBASE-27510](https://issues.apache.org/jira/browse/HBASE-27510) | Should use 'org.apache.hbase.thirdparty.io.netty.tryReflectionSetAccessible' | Major | . | +| [HBASE-27923](https://issues.apache.org/jira/browse/HBASE-27923) | NettyRpcServer may hange if it should skip initial sasl handshake | Major | netty, rpc, security | +| [HBASE-27924](https://issues.apache.org/jira/browse/HBASE-27924) | Remove duplicate code for NettyHBaseSaslRpcServerHandler and make the sentByte metrics more accurate | Major | netty, rpc, security | +| [HBASE-27940](https://issues.apache.org/jira/browse/HBASE-27940) | Midkey metadata in root index block would always be ignored by BlockIndexReader.readMultiLevelIndexRoot | Major | HFile | +| [HBASE-27871](https://issues.apache.org/jira/browse/HBASE-27871) | Meta replication stuck forever if wal it's still reading gets rolled and deleted | Major | meta replicas | +| [HBASE-27936](https://issues.apache.org/jira/browse/HBASE-27936) | NPE in StoreFileReader.passesGeneralRowPrefixBloomFilter() | Major | regionserver | +| [HBASE-27782](https://issues.apache.org/jira/browse/HBASE-27782) | During SSL handshake error, netty complains that exceptionCaught() was not handled | Major | Client, rpc, security | +| [HBASE-27950](https://issues.apache.org/jira/browse/HBASE-27950) | ClientSideRegionScanner does not adhere to RegionScanner.nextRaw contract | Minor | . | +| [HBASE-27951](https://issues.apache.org/jira/browse/HBASE-27951) | Use ADMIN\_QOS in MasterRpcServices for regionserver operational dependencies | Major | . | +| [HBASE-27942](https://issues.apache.org/jira/browse/HBASE-27942) | The description about hbase.hstore.comactionThreshold is not accurate | Minor | documentation | +| [HBASE-27859](https://issues.apache.org/jira/browse/HBASE-27859) | HMaster.getCompactionState can happen NPE when region state is closed | Major | master | +| [HBASE-27553](https://issues.apache.org/jira/browse/HBASE-27553) | SlowLog does not include params for Mutations | Minor | . | +| [HBASE-28011](https://issues.apache.org/jira/browse/HBASE-28011) | The logStats about LruBlockCache is not accurate | Minor | BlockCache | +| [HBASE-27979](https://issues.apache.org/jira/browse/HBASE-27979) | some syntax errors detected by IDEA in pom.xml | Minor | . | +| [HBASE-27947](https://issues.apache.org/jira/browse/HBASE-27947) | RegionServer OOM under load when TLS is enabled | Critical | rpc | +| [HBASE-28010](https://issues.apache.org/jira/browse/HBASE-28010) | Connection attributes can become corrupted on the server side | Blocker | . | +| [HBASE-28042](https://issues.apache.org/jira/browse/HBASE-28042) | Snapshot corruptions due to non-atomic rename within same filesystem | Major | snapshots | +| [HBASE-28055](https://issues.apache.org/jira/browse/HBASE-28055) | Performance improvement for scan over several stores. | Major | . | +| [HBASE-28079](https://issues.apache.org/jira/browse/HBASE-28079) | Unhandled TableExistsException and NamespaceExistException in BackupSystemTable | Major | . | +| [HBASE-28076](https://issues.apache.org/jira/browse/HBASE-28076) | NPE on initialization error in RecoveredReplicationSourceShipper | Minor | . | +| [HBASE-28061](https://issues.apache.org/jira/browse/HBASE-28061) | HBaseTestingUtility failed to start MiniHbaseCluster in case of Hadoop3.3.1 | Major | hadoop3, integration tests | +| [HBASE-28058](https://issues.apache.org/jira/browse/HBASE-28058) | HMaster snapshot file clean thread and the snapshot request handler thread encountered a deadlock | Major | snapshots | +| [HBASE-28065](https://issues.apache.org/jira/browse/HBASE-28065) | Corrupt HFile data is mishandled in several cases | Major | HFile | +| [HBASE-28101](https://issues.apache.org/jira/browse/HBASE-28101) | Should check the return value of protobuf Message.mergeDelimitedFrom | Critical | Protobufs, rpc | +| [HBASE-28106](https://issues.apache.org/jira/browse/HBASE-28106) | TestShadeSaslAuthenticationProvider fails for branch-2.x | Blocker | test | +| [HBASE-28105](https://issues.apache.org/jira/browse/HBASE-28105) | NPE in QuotaCache if Table is dropped from cluster | Major | Quotas | +| [HBASE-27991](https://issues.apache.org/jira/browse/HBASE-27991) | [hbase-examples] MultiThreadedClientExample throws java.lang.ClassCastException | Minor | . | +| [HBASE-28047](https://issues.apache.org/jira/browse/HBASE-28047) | Deadlock when opening mob files | Major | mob | +| [HBASE-28081](https://issues.apache.org/jira/browse/HBASE-28081) | Snapshot working dir does not retain ACLs after snapshot commit phase | Blocker | acl, test | +| [HBASE-28126](https://issues.apache.org/jira/browse/HBASE-28126) | TestSimpleRegionNormalizer fails 100% of times on flaky dashboard | Major | Normalizer | +| [HBASE-28082](https://issues.apache.org/jira/browse/HBASE-28082) | oldWALs naming can be incompatible with HBase backup | Major | backup&restore | +| [HBASE-28129](https://issues.apache.org/jira/browse/HBASE-28129) | Do not retry refreshSources when region server is already stopping | Major | Replication, rpc | +| [HBASE-28109](https://issues.apache.org/jira/browse/HBASE-28109) | NPE for the region state: Failed to become active master (HMaster) | Major | master | +| [HBASE-28144](https://issues.apache.org/jira/browse/HBASE-28144) | Canary publish read failure fails with NPE if region location is null | Major | . | +| [HBASE-28133](https://issues.apache.org/jira/browse/HBASE-28133) | TestSyncTimeRangeTracker fails with OOM with small -Xms values | Major | . | +| [HBASE-28114](https://issues.apache.org/jira/browse/HBASE-28114) | Add more comments to explain why replication log queue could never be empty for normal replication queue | Major | Replication | +| [HBASE-28146](https://issues.apache.org/jira/browse/HBASE-28146) | Remove ServerManager's rsAdmins map | Major | master | +| [HBASE-28017](https://issues.apache.org/jira/browse/HBASE-28017) | Client metrics are missing response and request size data when using netty | Major | . | +| [HBASE-28145](https://issues.apache.org/jira/browse/HBASE-28145) | When specifying the wrong BloomFilter type while creating a table in HBase shell, an error will occur. | Minor | shell | +| [HBASE-28157](https://issues.apache.org/jira/browse/HBASE-28157) | hbck should report previously reported regions with null region location | Major | . | +| [HBASE-28185](https://issues.apache.org/jira/browse/HBASE-28185) | Alter table to set TTL using hbase shell failed when ttl string is not match format | Minor | . | +| [HBASE-28184](https://issues.apache.org/jira/browse/HBASE-28184) | Tailing the WAL is very slow if there are multiple peers. | Major | Replication | +| [HBASE-28122](https://issues.apache.org/jira/browse/HBASE-28122) | TLSv1.3-compatible cipher suites are not used by default | Major | . | +| [HBASE-28189](https://issues.apache.org/jira/browse/HBASE-28189) | Fix the miss count in one of CombinedBlockCache getBlock implementations | Major | . | +| [HBASE-28175](https://issues.apache.org/jira/browse/HBASE-28175) | RpcLogDetails' Message can become corrupt before log is consumed | Major | . | +| [HBASE-28191](https://issues.apache.org/jira/browse/HBASE-28191) | Meta browser can happen NPE when the server or target server of region is null | Major | UI | +| [HBASE-24687](https://issues.apache.org/jira/browse/HBASE-24687) | MobFileCleanerChore uses a new Connection for each table each time it runs | Minor | mob | +| [HBASE-28174](https://issues.apache.org/jira/browse/HBASE-28174) | DELETE endpoint in REST API does not support deleting binary row keys/columns | Blocker | REST | +| [HBASE-28210](https://issues.apache.org/jira/browse/HBASE-28210) | There could be holes in stack ids when loading procedures | Critical | master, proc-v2 | +| [HBASE-28217](https://issues.apache.org/jira/browse/HBASE-28217) | PrefetchExecutor should not run for files from CFs that have disabled BLOCKCACHE | Major | . | +| [HBASE-28211](https://issues.apache.org/jira/browse/HBASE-28211) | BucketCache.blocksByHFile may leak on allocationFailure or if we reach io errors tolerated | Major | . | +| [HBASE-28222](https://issues.apache.org/jira/browse/HBASE-28222) | Leak in ExportSnapshot during verifySnapshot on S3A | Major | . | +| [HBASE-28226](https://issues.apache.org/jira/browse/HBASE-28226) | The flush table operation encountered an NPE and failed. | Major | . | +| [HBASE-28248](https://issues.apache.org/jira/browse/HBASE-28248) | Race between RegionRemoteProcedureBase and rollback operation could lead to ROLLEDBACK state be persisent to procedure store | Critical | proc-v2, Region Assignment | +| [HBASE-28241](https://issues.apache.org/jira/browse/HBASE-28241) | The snapshot operation encountered an NPE and failed. | Major | proc-v2, snapshots | +| [HBASE-28180](https://issues.apache.org/jira/browse/HBASE-28180) | Review the usage of RegionStates.getOrCreateServer | Major | amv2, master | +| [HBASE-21500](https://issues.apache.org/jira/browse/HBASE-21500) | "hbase.jetty.logs.serve.aliases" is broken with jetty 9.x version | Minor | . | +| [HBASE-28269](https://issues.apache.org/jira/browse/HBASE-28269) | Fix broken ruby scripts and clean up logging | Major | jruby | +| [HBASE-28224](https://issues.apache.org/jira/browse/HBASE-28224) | ClientSideRegionScanner appears not to shutdown MobFileCache | Minor | Scanners | +| [HBASE-28259](https://issues.apache.org/jira/browse/HBASE-28259) | Add java.base/java.io=ALL-UNNAMED open to jdk11\_jvm\_flags | Trivial | java | +| [HBASE-28252](https://issues.apache.org/jira/browse/HBASE-28252) | Add sun.net.dns and sun.net.util to the JDK11+ module exports in the hbase script | Major | scripts | +| [HBASE-28247](https://issues.apache.org/jira/browse/HBASE-28247) | Add java.base/sun.net.dns and java.base/sun.net.util export to jdk11 JVM test flags | Minor | java | +| [HBASE-28261](https://issues.apache.org/jira/browse/HBASE-28261) | Sync jvm11 module flags from hbase-surefire.jdk11.flags to bin/hbase | Trivial | . | +| [HBASE-28297](https://issues.apache.org/jira/browse/HBASE-28297) | IntegrationTestImportTsv fails with ArrayIndexOfOutBounds | Major | integration tests, test | +| [HBASE-28295](https://issues.apache.org/jira/browse/HBASE-28295) | Few tests are failing due to NCDFE: org/bouncycastle/operator/OperatorCreationException | Major | build, dependencies, hadoop3 | +| [HBASE-28301](https://issues.apache.org/jira/browse/HBASE-28301) | IntegrationTestImportTsv fails with UnsupportedOperationException | Minor | integration tests, test | +| [HBASE-28287](https://issues.apache.org/jira/browse/HBASE-28287) | MOB HFiles are expired earlier than their reference data | Major | mob | +| [HBASE-28312](https://issues.apache.org/jira/browse/HBASE-28312) | The bad auth exception can not be passed to client rpc calls properly | Major | Client, IPC/RPC | +| [HBASE-26268](https://issues.apache.org/jira/browse/HBASE-26268) | Provide coprocessor hooks for updateConfiguration and clearRegionBlockCache | Major | . | +| [HBASE-28324](https://issues.apache.org/jira/browse/HBASE-28324) | TestRegionNormalizerWorkQueue#testTake is flaky | Major | test | +| [HBASE-27966](https://issues.apache.org/jira/browse/HBASE-27966) | HBase Master/RS JVM metrics populated incorrectly | Major | metrics | +| [HBASE-28326](https://issues.apache.org/jira/browse/HBASE-28326) | All nightly jobs are failing | Major | jenkins | +| [HBASE-28315](https://issues.apache.org/jira/browse/HBASE-28315) | Remove noisy WARN from trying to construct MetricsServlet | Major | . | +| [HBASE-28330](https://issues.apache.org/jira/browse/HBASE-28330) | TestUnknownServers.testListUnknownServers is flaky in branch-2 | Major | test | +| [HBASE-26816](https://issues.apache.org/jira/browse/HBASE-26816) | Fix CME in ReplicationSourceManager | Minor | Replication | +| [HBASE-28331](https://issues.apache.org/jira/browse/HBASE-28331) | Client integration test fails after upgrading hadoop3 version to 3.3.x | Major | hadoop3, jenkins | +| [HBASE-28336](https://issues.apache.org/jira/browse/HBASE-28336) | Fix casting bug in NettyRpcServer introduced in HBASE-28317 | Minor | . | +| [HBASE-28345](https://issues.apache.org/jira/browse/HBASE-28345) | Close HBase connection on exit from HBase Shell | Major | shell | +| [HBASE-28352](https://issues.apache.org/jira/browse/HBASE-28352) | HTable batch does not honor RpcThrottlingException waitInterval | Major | . | +| [HBASE-28204](https://issues.apache.org/jira/browse/HBASE-28204) | Region Canary can take lot more time If any region (except the first region) starts with delete markers | Major | canary | +| [HBASE-28353](https://issues.apache.org/jira/browse/HBASE-28353) | Close HBase connection on implicit exit from HBase shell | Major | shell | +| [HBASE-28311](https://issues.apache.org/jira/browse/HBASE-28311) | Few ITs (using MiniMRYarnCluster on hadoop-2) are failing due to NCDFE: com/sun/jersey/core/util/FeaturesAndProperties | Major | integration tests, test | +| [HBASE-28377](https://issues.apache.org/jira/browse/HBASE-28377) | Fallback to simple is broken for blocking rpc client | Major | IPC/RPC | +| [HBASE-28390](https://issues.apache.org/jira/browse/HBASE-28390) | WAL value compression fails for cells with large values | Major | . | +| [HBASE-28391](https://issues.apache.org/jira/browse/HBASE-28391) | Remove the need for ADMIN permissions for listDecommissionedRegionServers | Major | Admin | +| [HBASE-28384](https://issues.apache.org/jira/browse/HBASE-28384) | Client ingegration tests fails for branch-2/branch-2.6 | Major | hadoop3, jenkins | +| [HBASE-28354](https://issues.apache.org/jira/browse/HBASE-28354) | RegionSizeCalculator throws NPE when regions are in transition | Major | . | +| [HBASE-28408](https://issues.apache.org/jira/browse/HBASE-28408) | Confusing logging during backup restore | Minor | backup&restore | +| [HBASE-28417](https://issues.apache.org/jira/browse/HBASE-28417) | TestBlockingIPC.testBadPreambleHeader sometimes fails with broken pipe instead of bad auth | Major | IPC/RPC, test | +| [HBASE-27230](https://issues.apache.org/jira/browse/HBASE-27230) | RegionServer should be aborted when WAL.sync throws TimeoutIOException | Major | wal | +| [HBASE-28260](https://issues.apache.org/jira/browse/HBASE-28260) | Possible data loss in WAL after RegionServer crash | Major | . | +| [HBASE-28338](https://issues.apache.org/jira/browse/HBASE-28338) | Bounded leak of FSDataInputStream buffers from checksum switching | Major | . | +| [HBASE-28415](https://issues.apache.org/jira/browse/HBASE-28415) | Remove Curator dependency from hbase-endpoint | Major | . | + + +### TESTS: + +| JIRA | Summary | Priority | Component | +|:---- |:---- | :--- |:---- | +| [HBASE-27360](https://issues.apache.org/jira/browse/HBASE-27360) | The trace related assertions are flaky for async client tests | Major | test, tracing | +| [HBASE-27479](https://issues.apache.org/jira/browse/HBASE-27479) | Flaky Test testClone in TestTaskMonitor | Trivial | test | +| [HBASE-27595](https://issues.apache.org/jira/browse/HBASE-27595) | ThreadGroup is removed since Hadoop 3.2.4 | Minor | . | +| [HBASE-28254](https://issues.apache.org/jira/browse/HBASE-28254) | Flaky test: TestTableShell | Major | flakies, integration tests | +| [HBASE-28275](https://issues.apache.org/jira/browse/HBASE-28275) | [Flaky test] Fix 'test\_list\_decommissioned\_regionservers' in TestAdminShell2.java | Minor | flakies, test | +| [HBASE-28274](https://issues.apache.org/jira/browse/HBASE-28274) | Flaky test: TestFanOutOneBlockAsyncDFSOutput (Part 2) | Major | flakies, integration tests, test | +| [HBASE-28337](https://issues.apache.org/jira/browse/HBASE-28337) | Positive connection test in TestShadeSaslAuthenticationProvider runs with Kerberos instead of Shade authentication | Major | . | + + +### SUB-TASKS: + +| JIRA | Summary | Priority | Component | +|:---- |:---- | :--- |:---- | +| [HBASE-26306](https://issues.apache.org/jira/browse/HBASE-26306) | Backport "HBASE-26220 Use P2P communicate between region servers to sync the list for bootstrap node" to branch-2 | Major | master, regionserver | +| [HBASE-26791](https://issues.apache.org/jira/browse/HBASE-26791) | Memstore flush fencing issue for SFT | Major | HFile | +| [HBASE-27265](https://issues.apache.org/jira/browse/HBASE-27265) | Tool to read the contents of the storefile tracker file | Minor | . | +| [HBASE-27270](https://issues.apache.org/jira/browse/HBASE-27270) | Add bulkloadExecutor.resizeQueues | Minor | regionserver, rpc | +| [HBASE-27317](https://issues.apache.org/jira/browse/HBASE-27317) | Correcting the Store file tracker tool help doc option | Minor | . | +| [HBASE-27310](https://issues.apache.org/jira/browse/HBASE-27310) | Add disabled table is displayed red on master web tables list | Minor | UI | +| [HBASE-27403](https://issues.apache.org/jira/browse/HBASE-27403) | Remove 'Remove unhelpful javadoc stubs' spotless rule for now | Major | documentation, pom | +| [HBASE-27401](https://issues.apache.org/jira/browse/HBASE-27401) | Clean up current broken 'n's in our javadoc | Major | documentation | +| [HBASE-27421](https://issues.apache.org/jira/browse/HBASE-27421) | Bump spotless plugin to 2.27.2 and reimplement the 'Remove unhelpful javadoc stubs' rule | Major | documentation, pom | +| [HBASE-27475](https://issues.apache.org/jira/browse/HBASE-27475) | Use different jdks when running hadoopcheck in personality scripts | Critical | jenkins, scripts | +| [HBASE-27309](https://issues.apache.org/jira/browse/HBASE-27309) | Add major compact table or region operation on master web table page | Minor | Compaction, UI | +| [HBASE-27557](https://issues.apache.org/jira/browse/HBASE-27557) | [JDK17] Update shade plugin version | Minor | . | +| [HBASE-25516](https://issues.apache.org/jira/browse/HBASE-25516) | [JDK17] reflective access Field.class.getDeclaredField("modifiers") not supported | Major | Filesystem Integration | +| [HBASE-27591](https://issues.apache.org/jira/browse/HBASE-27591) | [JDK17] Fix failure TestImmutableScan#testScanCopyConstructor | Minor | . | +| [HBASE-27581](https://issues.apache.org/jira/browse/HBASE-27581) | [JDK17] Fix failure TestHBaseTestingUtil#testResolvePortConflict | Minor | test | +| [HBASE-27645](https://issues.apache.org/jira/browse/HBASE-27645) | [JDK17] Use ReflectionUtils#getModifiersField in UT | Major | java, test | +| [HBASE-27643](https://issues.apache.org/jira/browse/HBASE-27643) | [JDK17] Add-opens java.util.concurrent | Major | java, test | +| [HBASE-27669](https://issues.apache.org/jira/browse/HBASE-27669) | chaos-daemon.sh should make use hbase script start/stop chaosagent and chaos monkey runner. | Major | . | +| [HBASE-27750](https://issues.apache.org/jira/browse/HBASE-27750) | Update the list of prefetched hfiles upon simple block eviction | Major | BucketCache | +| [HBASE-27727](https://issues.apache.org/jira/browse/HBASE-27727) | Implement filesystem based Replication peer storage | Major | Replication | +| [HBASE-27728](https://issues.apache.org/jira/browse/HBASE-27728) | Implement a tool to migrate replication peer data between different storage implementation | Major | Replication | +| [HBASE-27783](https://issues.apache.org/jira/browse/HBASE-27783) | Implement a shell command to disable all peer modification | Major | Replication, shell | +| [HBASE-20804](https://issues.apache.org/jira/browse/HBASE-20804) | Document and add tests for HBaseConfTool | Major | documentation, tooling | +| [HBASE-27806](https://issues.apache.org/jira/browse/HBASE-27806) | Support dynamic reinitializing replication peer storage | Major | conf, Replication | +| [HBASE-27752](https://issues.apache.org/jira/browse/HBASE-27752) | Update the list of prefetched files upon region movement | Major | BucketCache | +| [HBASE-27852](https://issues.apache.org/jira/browse/HBASE-27852) | Interrupt BucketCachePersister thread when BucketCache is shutdown | Major | BucketCache | +| [HBASE-27843](https://issues.apache.org/jira/browse/HBASE-27843) | If moveAndClose fails HFileArchiver should delete any incomplete archive side changes | Major | . | +| [HBASE-28027](https://issues.apache.org/jira/browse/HBASE-28027) | Make TestClusterScopeQuotaThrottle run faster | Major | Quotas, test | +| [HBASE-28004](https://issues.apache.org/jira/browse/HBASE-28004) | Persistent cache map can get corrupt if crash happens midway through the write | Major | . | +| [HBASE-28028](https://issues.apache.org/jira/browse/HBASE-28028) | Read all compressed bytes to a byte array before submitting them to decompressor | Major | . | +| [HBASE-28050](https://issues.apache.org/jira/browse/HBASE-28050) | RSProcedureDispatcher to fail-fast for krb auth failures | Major | . | +| [HBASE-27999](https://issues.apache.org/jira/browse/HBASE-27999) | Implement cache aware load balancer | Major | Balancer | +| [HBASE-28170](https://issues.apache.org/jira/browse/HBASE-28170) | Put the cached time at the beginning of the block; run cache validation in the background when retrieving the persistent cache | Major | . | +| [HBASE-27794](https://issues.apache.org/jira/browse/HBASE-27794) | Tooling for parsing/reading the prefetch files list file | Minor | . | +| [HBASE-24179](https://issues.apache.org/jira/browse/HBASE-24179) | Backport fix for "Netty SASL implementation does not wait for challenge response" to branch-2.x | Major | netty | +| [HBASE-28206](https://issues.apache.org/jira/browse/HBASE-28206) | [JDK17] JVM crashes intermittently on aarch64 | Major | . | +| [HBASE-27997](https://issues.apache.org/jira/browse/HBASE-27997) | Enhance prefetch executor to record region prefetch information along with the list of hfiles prefetched | Major | BucketCache | +| [HBASE-27998](https://issues.apache.org/jira/browse/HBASE-27998) | Enhance region metrics to include prefetch ratio for each region | Major | regionserver | +| [HBASE-28290](https://issues.apache.org/jira/browse/HBASE-28290) | Add 'TM' superscript to the index page title when generating javadoc | Major | build, documentation | +| [HBASE-28031](https://issues.apache.org/jira/browse/HBASE-28031) | TestClusterScopeQuotaThrottle is still failing with broken WAL writer | Major | test | +| [HBASE-28316](https://issues.apache.org/jira/browse/HBASE-28316) | Add BootstrapNodeService handlers | Blocker | IPC/RPC, regionserver | +| [HBASE-28322](https://issues.apache.org/jira/browse/HBASE-28322) | Attach the design doc in HBASE-26220 to our code base | Major | documentation | +| [HBASE-25051](https://issues.apache.org/jira/browse/HBASE-25051) | DIGEST based auth broken for rpc based ConnectionRegistry | Minor | Client, security | +| [HBASE-28341](https://issues.apache.org/jira/browse/HBASE-28341) | [JDK17] Fix Failure TestLdapHttpServer | Major | . | +| [HBASE-28340](https://issues.apache.org/jira/browse/HBASE-28340) | Add trust/key store type to ZK TLS settings handled by HBase | Major | Zookeeper | +| [HBASE-28321](https://issues.apache.org/jira/browse/HBASE-28321) | RpcConnectionRegistry is broken when security is enabled and we use different principal for master and region server | Critical | Client, IPC/RPC, security | +| [HBASE-28394](https://issues.apache.org/jira/browse/HBASE-28394) | Attach the design doc for preamble call to our code base | Major | documentation | +| [HBASE-27814](https://issues.apache.org/jira/browse/HBASE-27814) | Add support for dump and process metrics servlet in REST InfoServer | Minor | REST | +| [HBASE-28350](https://issues.apache.org/jira/browse/HBASE-28350) | [JDK17] Unable to run hbase-it tests with JDK 17 | Major | . | +| [HBASE-23324](https://issues.apache.org/jira/browse/HBASE-23324) | Deprecate clients that connect to Zookeeper | Major | . | +| [HBASE-28401](https://issues.apache.org/jira/browse/HBASE-28401) | Introduce a close method for memstore for release active segment | Major | in-memory-compaction, regionserver | + + +### OTHER: + +| JIRA | Summary | Priority | Component | +|:---- |:---- | :--- |:---- | +| [HBASE-26067](https://issues.apache.org/jira/browse/HBASE-26067) | Change the way on how we track store file list | Major | HFile | +| [HBASE-27037](https://issues.apache.org/jira/browse/HBASE-27037) | Display the region server state on the Web UI | Major | . | +| [HBASE-27736](https://issues.apache.org/jira/browse/HBASE-27736) | HFileSystem.getLocalFs is not used | Major | HFile | +| [HBASE-27371](https://issues.apache.org/jira/browse/HBASE-27371) | Bump spotbugs version | Major | build, pom | +| [HBASE-27373](https://issues.apache.org/jira/browse/HBASE-27373) | Fix new spotbugs warnings after upgrading spotbugs to 4.7.2 | Major | . | +| [HBASE-27372](https://issues.apache.org/jira/browse/HBASE-27372) | Update java versions in our Dockerfiles | Major | build, scripts | +| [HBASE-27411](https://issues.apache.org/jira/browse/HBASE-27411) | Update and clean up bcprov-jdk15on dependency | Minor | build | +| [HBASE-27431](https://issues.apache.org/jira/browse/HBASE-27431) | Remove TestRemoteTable.testLimitedScan | Trivial | REST, test | +| [HBASE-27425](https://issues.apache.org/jira/browse/HBASE-27425) | Run flaky test job more often | Minor | test | +| [HBASE-27460](https://issues.apache.org/jira/browse/HBASE-27460) | Fix the hadolint errors after HBASE-27456 | Major | scripts | +| [HBASE-27443](https://issues.apache.org/jira/browse/HBASE-27443) | Use java11 in the general check of our jenkins job | Major | build, jenkins | +| [HBASE-27513](https://issues.apache.org/jira/browse/HBASE-27513) | Modify README.txt to mention how to contribue | Major | community | +| [HBASE-27548](https://issues.apache.org/jira/browse/HBASE-27548) | Bump jettison from 1.5.1 to 1.5.2 | Major | dependabot, dependencies, security | +| [HBASE-27567](https://issues.apache.org/jira/browse/HBASE-27567) | Introduce ChaosMonkey Action to print HDFS Cluster status | Minor | integration tests | +| [HBASE-27568](https://issues.apache.org/jira/browse/HBASE-27568) | ChaosMonkey add support for JournalNodes | Major | integration tests | +| [HBASE-27575](https://issues.apache.org/jira/browse/HBASE-27575) | Bump future from 0.18.2 to 0.18.3 in /dev-support | Minor | . | +| [HBASE-27578](https://issues.apache.org/jira/browse/HBASE-27578) | Upgrade hbase-thirdparty to 4.1.4 | Blocker | dependencies, security | +| [HBASE-27588](https://issues.apache.org/jira/browse/HBASE-27588) | "Instantiating StoreFileTracker impl" INFO level logging is too chatty | Minor | . | +| [HBASE-27456](https://issues.apache.org/jira/browse/HBASE-27456) | Upgrade the dockerfile used in nightly and pre commit to ubuntu 22.04 | Major | jenkins, scripts | +| [HBASE-27626](https://issues.apache.org/jira/browse/HBASE-27626) | Suppress noisy logging in client.ConnectionImplementation | Minor | logging | +| [HBASE-27685](https://issues.apache.org/jira/browse/HBASE-27685) | Enable code coverage reporting to SonarQube in HBase | Minor | . | +| [HBASE-27715](https://issues.apache.org/jira/browse/HBASE-27715) | Refactoring the long tryAdvanceEntry method in WALEntryStream | Major | Replication | +| [HBASE-27702](https://issues.apache.org/jira/browse/HBASE-27702) | Remove 'hbase.regionserver.hlog.writer.impl' config | Major | wal | +| [HBASE-27737](https://issues.apache.org/jira/browse/HBASE-27737) | Add supplemental model for com.aayushatharva.brotli4j:native-osx-aarch64 | Minor | build, community | +| [HBASE-27741](https://issues.apache.org/jira/browse/HBASE-27741) | Fall back to protoc osx-x86\_64 on Apple Silicon | Minor | build | +| [HBASE-27748](https://issues.apache.org/jira/browse/HBASE-27748) | Bump jettison from 1.5.2 to 1.5.4 | Major | dependabot, dependencies, security | +| [HBASE-27720](https://issues.apache.org/jira/browse/HBASE-27720) | TestClusterRestartFailover is flakey due to metrics assertion | Minor | test | +| [HBASE-27791](https://issues.apache.org/jira/browse/HBASE-27791) | Upgrade vega and its related js libraries | Major | UI | +| [HBASE-27762](https://issues.apache.org/jira/browse/HBASE-27762) | Include EventType and ProcedureV2 pid in logging via MDC | Major | . | +| [HBASE-27863](https://issues.apache.org/jira/browse/HBASE-27863) | Add hadoop 3.3.5 check in our personality script | Major | jenkins, scripts | +| [HBASE-27864](https://issues.apache.org/jira/browse/HBASE-27864) | Reduce the Cardinality for TestFuzzyRowFilterEndToEndLarge | Major | test | +| [HBASE-27634](https://issues.apache.org/jira/browse/HBASE-27634) | Builds emit errors related to SBOM parsing | Minor | build | +| [HBASE-27880](https://issues.apache.org/jira/browse/HBASE-27880) | Bump requests from 2.28.1 to 2.31.0 in /dev-support/flaky-tests | Major | dependabot, scripts, security | +| [HBASE-27820](https://issues.apache.org/jira/browse/HBASE-27820) | HBase is not starting due to Jersey library conflicts with javax.ws.rs.api jar | Major | dependencies | +| [HBASE-27992](https://issues.apache.org/jira/browse/HBASE-27992) | Bump exec-maven-plugin to 3.1.0 | Trivial | build | +| [HBASE-28018](https://issues.apache.org/jira/browse/HBASE-28018) | Bump gitpython from 3.1.30 to 3.1.32 in /dev-support/flaky-tests | Major | dependabot, scripts, security | +| [HBASE-28022](https://issues.apache.org/jira/browse/HBASE-28022) | Remove netty 3 dependency in the pom file for hbase-endpoint | Major | dependencies, pom, security | +| [HBASE-28072](https://issues.apache.org/jira/browse/HBASE-28072) | Bump gitpython from 3.1.32 to 3.1.34 in /dev-support/flaky-tests | Major | dependabot, scripts, security | +| [HBASE-28074](https://issues.apache.org/jira/browse/HBASE-28074) | Bump gitpython from 3.1.34 to 3.1.35 in /dev-support/flaky-tests | Major | dependabot, scripts, security | +| [HBASE-28066](https://issues.apache.org/jira/browse/HBASE-28066) | Drop duplicate test class TestShellRSGroups.java | Minor | test | +| [HBASE-28087](https://issues.apache.org/jira/browse/HBASE-28087) | Add hadoop 3.3.6 in hadoopcheck | Major | jenkins, scripts | +| [HBASE-28089](https://issues.apache.org/jira/browse/HBASE-28089) | Upgrade BouncyCastle to fix CVE-2023-33201 | Major | . | +| [HBASE-28112](https://issues.apache.org/jira/browse/HBASE-28112) | Bump org.xerial.snappy:snappy-java from 1.1.10.1 to 1.1.10.4 | Major | dependabot, dependencies, security | +| [HBASE-28127](https://issues.apache.org/jira/browse/HBASE-28127) | Upgrade avro version to 1.11.3 | Major | dependencies, security | +| [HBASE-28147](https://issues.apache.org/jira/browse/HBASE-28147) | Bump gitpython from 3.1.35 to 3.1.37 in /dev-support/flaky-tests | Major | dependabot, scripts, security | +| [HBASE-28110](https://issues.apache.org/jira/browse/HBASE-28110) | Align TestShadeSaslAuthenticationProvider between different branches | Major | security, test | +| [HBASE-28153](https://issues.apache.org/jira/browse/HBASE-28153) | Upgrade zookeeper to a newer version | Major | security, Zookeeper | +| [HBASE-28245](https://issues.apache.org/jira/browse/HBASE-28245) | Sync internal protobuf version for hbase to be same as hbase-thirdparty | Major | . | +| [HBASE-28243](https://issues.apache.org/jira/browse/HBASE-28243) | Bump jackson version to 2.15.2 | Major | . | +| [HBASE-28249](https://issues.apache.org/jira/browse/HBASE-28249) | Bump jruby to 9.3.13.0 and related joni and jcodings to 2.2.1 and 1.0.58 respectively | Major | jruby, security, shell | +| [HBASE-28277](https://issues.apache.org/jira/browse/HBASE-28277) | Move minimum hadoop 3 support to 3.3.x for 2.6+ | Major | build, dependencies, hadoop3 | +| [HBASE-28304](https://issues.apache.org/jira/browse/HBASE-28304) | Add hbase-shaded-testing-util version to dependencyManagement | Major | . | +| [HBASE-28308](https://issues.apache.org/jira/browse/HBASE-28308) | Bump gitpython from 3.1.37 to 3.1.41 in /dev-support/flaky-tests | Major | dependabot, scripts, security, test | +| [HBASE-28310](https://issues.apache.org/jira/browse/HBASE-28310) | Bump jinja2 from 3.1.2 to 3.1.3 in /dev-support/flaky-tests | Major | dependabot, scripts, security, test | +| [HBASE-28333](https://issues.apache.org/jira/browse/HBASE-28333) | Refactor TestClientTimeouts to make it more clear that what we want to test | Major | Client, test | +| [HBASE-28329](https://issues.apache.org/jira/browse/HBASE-28329) | Output hbase logs to working directory in client integration test | Major | jenkins, scripts | +| [HBASE-28403](https://issues.apache.org/jira/browse/HBASE-28403) | Improve debugging for failures in procedure tests | Major | proc-v2, test | +| [HBASE-28379](https://issues.apache.org/jira/browse/HBASE-28379) | Upgrade thirdparty dep to 4.1.6 | Major | . | +| [HBASE-28444](https://issues.apache.org/jira/browse/HBASE-28444) | Bump org.apache.zookeeper:zookeeper from 3.8.3 to 3.8.4 | Blocker | security, Zookeeper | -# Be careful doing manual edits in this file. Do not change format -# of release header or remove the below marker. This file is generated. -# DO NOT REMOVE THIS MARKER; FOR INTERPOLATING CHANGES!--> ## Release 2.2.0 - Unreleased (as of 2019-06-11) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 1a342a87559..d40b5bb051d 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,5 +1,4 @@ # RELEASENOTES - <!--- # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -16,10 +15,749 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +--> +# HBASE 2.6.0 Release Notes + +These release notes cover new developer and user-facing incompatibilities, important issues, features, and major improvements. + + +--- + +* [HBASE-26554](https://issues.apache.org/jira/browse/HBASE-26554) | *Minor* | **Introduce a new parameter in jmx servlet to exclude the specific mbean** + +introduce a new parameter 'excl' in jmx servlet to exclude the specific mbean + + +--- + +* [HBASE-26323](https://issues.apache.org/jira/browse/HBASE-26323) | *Major* | **Introduce a SnapshotProcedure** + +Introduce a snapshot procedure to snapshot tables. Set hbase.snapshot.procedure.enabled to false to disable snapshot procedure. + + +--- + +* [HBASE-26067](https://issues.apache.org/jira/browse/HBASE-26067) | *Major* | **Change the way on how we track store file list** + +Introduces the StoreFileTracker interface to HBase. This is a server-side interface which abstracts how a Store (column family) knows what files should be included in that Store. Previously, HBase relied on a listing the directory a Store used for storage to determine the files which should make up that Store. + +After this feature, there are two implementations of StoreFileTrackers. The first (and default) implementation is listing the Store directory. The second is a new implementation which records files which belong to a Store within each Store. Whenever the list of files that make up a Store change, this metadata file will be updated. + +This feature is notable in that it better enables HBase to function on storage systems which do not provide the typical posix filesystem semantics, most importantly, those which do not implement a file rename operation which is atomic. Storage systems which do not implement atomic renames often implement a rename as a copy and delete operation which amplifies the I/O costs by 2x. + +At scale, this feature should have a 2x reduction in I/O costs when using storage systems that do not provide atomic renames, most importantly in HBase compactions and memstore flushes. See the corresponding section, "Store File Tracking", in the HBase book for more information on how to use this feature. + + +--- + +* [HBASE-26983](https://issues.apache.org/jira/browse/HBASE-26983) | *Major* | **Upgrade JRuby to 9.3.4.0** + +Updates the version of JRuby that ships with HBase for the HBase shell to 9.3.4.0. + +Note that this changes the supported version of Ruby for HBase shell integration to Ruby 2.6. + + +--- + +* [HBASE-27232](https://issues.apache.org/jira/browse/HBASE-27232) | *Major* | **Fix checking for encoded block size when deciding if block should be closed** + +This changed behaviour of "hbase.writer.unified.encoded.blocksize.ratio" property: + +Previous behaviour: Checks if the encoded block size \>= ("hbase.writer.unified.encoded.blocksize.ratio" \* BLOCK\_SIZE) \|\| (non-encoded block size \>= BLOCK\_SIZE) when delimiting hfile blocks. As most often (non-encoded block size \>= BLOCK\_SIZE) will be reached, setting "hbase.writer.unified.encoded.blocksize.ratio" usually had no effect. +The default value for "hbase.writer.unified.encoded.blocksize.ratio" was "1". + +New behaviour: If "hbase.writer.unified.encoded.blocksize.ratio" is set to anything different from "0", it will check if encoded block size \>= ("hbase.writer.unified.encoded.blocksize.ratio" \* BLOCK\_SIZE) when delimiting an hfile block. If "hbase.writer.unified.encoded.blocksize.ratio" is not set, it will check if encoded block size \>= BLOCK\_SIZE \|\| non-encoded block size \>= BLOCK\_SIZE when delimiting an hfile block. + + +--- + +* [HBASE-27144](https://issues.apache.org/jira/browse/HBASE-27144) | *Minor* | **Add special rpc handlers for bulkload operations** + +Bulkload will consume a lot of resources in the cluster. We try to reduce the impact of bulkload on online services and do simple resource isolation for bulkload. +The bulkload RpcExecutor is disabled by default. Enable by setting "hbase.regionserver.bulkload.handler.count" greater than 0. +Online HBASE cluster "hbase.regionserver.bulkload.handler.count" is recommended to be set to 1. +Offline HBASE clusters can be appropriately increased. +"hbase.regionserver.bulkload.handler.count" works with "hbase.ipc.server.bulkload.max.callqueue.length". + +Note: This change includes a source incompatible modification in LimitedPrivate class RpcScheduler. It is recommended to upgrade to 2.5.8 first and update code to extend DelegatingRpcScheduler. + + +--- + +* [HBASE-26666](https://issues.apache.org/jira/browse/HBASE-26666) | *Major* | **Add native TLS encryption support to RPC server/client** + +Full support for TLS/SSL encryption in Netty RPC client and server. The implementation is based on Netty's built-in SSL handler and capable of using JDK or OpenSSL implementation whichever is available on the classpath. The feature also supports side-by-side plaintext and encrypted communication which enables upgrading existing clusters with zero downtime. + + +--- + +* [HBASE-27264](https://issues.apache.org/jira/browse/HBASE-27264) | *Major* | **Add options to consider compressed size when delimiting blocks during hfile writes** + +This modified the block write logic for deciding on block size boundaries. When checking for block size limit, block writer now delegates this decision to implementations of the BlockCompressedSizePredicator interface. The aim here is to allow for pluggable implementations of how block size limit is defined when compression is in use. By default, it assumes the UncompressedBlockSizePredicator implementation, which doesn't modify the current behaviour of closing the block based on its unc [...] +Implementations of BlockCompressedSizePredicator should be defined by the hbase.block.compressed.size.predicator config property. + +To avoid very larger block sizes in the case of large compression factor, this also defines the hbase.block.max.size.uncompressed config property. If not set, this max size defaults to BLOCK\_SIZE \* 10. + + +--- + +* [HBASE-20904](https://issues.apache.org/jira/browse/HBASE-20904) | *Major* | **Prometheus metrics http endpoint for monitoring integration** + +HBase metrics can be published in JSON and now Prometheus friendly formats via servlets. Any of these servlets can be enabled or disabled by the configuration property 'hbase.http.metrics.servlets' in the 'hbase-default.xml' file. + +The value for the property should be a comma separated list of the servlet aliases which are '{jmx, metrics, prometheus}'. +The '/jmx', '/metrics', '/prometheus' servlets are enabled by default. + +To get metrics using these servlets access the URL 'http://SERVER\_HOSTNAME:SERVER\_WEB\_UI\_PORT/endpoint'. Where endpoint is one of {'/jmx', '/metrics', '/prometheus'}. + + +--- + +* [HBASE-27320](https://issues.apache.org/jira/browse/HBASE-27320) | *Minor* | **hide some sensitive configuration information in the UI** + +hide superuser and password related settings in the configuration UI + + +--- + +* [HBASE-27340](https://issues.apache.org/jira/browse/HBASE-27340) | *Minor* | **Artifacts with resolved profiles** + +Published poms now contain runtime dependencies only; build and test time dependencies are stripped. Profiles are also now resolved and in-lined at publish time. This removes the need/ability of downstreamers shaping hbase dependencies via enable/disable of hbase profile settings (Implication is that now the hbase project publishes artifacts for hadoop2 and for hadoop3, and so on). + + +--- + +* [HBASE-27371](https://issues.apache.org/jira/browse/HBASE-27371) | *Major* | **Bump spotbugs version** + +Bump spotbugs version from 4.2.2 to 4.7.2. Also bump maven spotbugs plugin version from 4.2.0 to 4.7.2.0. + + +--- + +* [HBASE-27372](https://issues.apache.org/jira/browse/HBASE-27372) | *Major* | **Update java versions in our Dockerfiles** + +Upgrade java version to 11.0.16.1 and 8u345b01 in the docker files which are used in our pre commit and nightly jobs. +Remove JDK7 in these docker files as we do not support JDK7 any more. + + +--- + +* [HBASE-27280](https://issues.apache.org/jira/browse/HBASE-27280) | *Major* | **Add mutual authentication support to TLS** + +By default, when TLS is enabled, we will also enable mutual authentication of certificates. This means, during handshake, the client will authenticate the server's certificate (as is usual) and also the server will authenticate the client's certificate. Additionally, each side will validate that the hostname presented by the certificate matches the address of the connection. These default settings can be customized with new properties "hbase.server.netty.tls.client.auth.mode" (default NE [...] + + +--- + +* [HBASE-27304](https://issues.apache.org/jira/browse/HBASE-27304) | *Minor* | **Support using IP to expose master/rs servers for some special scenarios** + +In some scenarios, such as the elastic scaling scenario on the cloud, the HBase client may not be able to resolve the hostname of the newly added node. If the network is interconnected, the client can actually access the HBase cluster nodes through ip. However, since the HBase client obtains the Master/RS address info from or the ZK or the meta table, so the Master/RS of the HBase cluster needs to expose the service with ip instead of the hostname. Therefore, We can use hostname by defau [...] +to support whether to use ip for Master/RS service. + + +--- + +* [HBASE-27434](https://issues.apache.org/jira/browse/HBASE-27434) | *Major* | **Use $revision as placeholder for maven version to make it easier to control the version from command line** + +Use ${revision} as placeholder for maven version in pom, so later you can use 'mvn install -Drevision=xxx' to specify the version at build time. +After this change, you can not use mvn versions:set to bump the version, instead. you should just modify the parent pom to change the value of the 'revision' property in the properties section. + + +--- + +* [HBASE-27472](https://issues.apache.org/jira/browse/HBASE-27472) | *Major* | **The personality script set wrong hadoop2 check version for branch-2** + +This only affects branch-2 but for aliging the personality scripts across all active branches, we apply it to all active branches. + + +--- + +* [HBASE-27443](https://issues.apache.org/jira/browse/HBASE-27443) | *Major* | **Use java11 in the general check of our jenkins job** + +Change to use java 11 in nightly and pre commit jobs. + +Bump error prone to 2.16 and force using jdk11 when error prone is enabled. + + +--- + +* [HBASE-27444](https://issues.apache.org/jira/browse/HBASE-27444) | *Minor* | **Add tool commands list\_enabled\_tables and list\_disabled\_tables** + +Introduce two shell commands 'list\_enabled\_tables' and 'list\_disabled\_tables' to list enabled or disabled tables. + + +--- + +* [HBASE-27506](https://issues.apache.org/jira/browse/HBASE-27506) | *Minor* | **Optionally disable sorting directories by size in CleanerChore** + +Added \`hbase.cleaner.directory.sorting\` configuration to enable the CleanerChore to sort the subdirectories by consumed space and start the cleaning with the largest subdirectory. Enabled by default. + + +--- + +* [HBASE-27513](https://issues.apache.org/jira/browse/HBASE-27513) | *Major* | **Modify README.txt to mention how to contribue** + +Remove README.txt and replace it with README.md. +Add a 'How to Contribute' section to tell contributors how to acquire a jira account. + + +--- + +* [HBASE-27527](https://issues.apache.org/jira/browse/HBASE-27527) | *Major* | **Port HBASE-27498 to branch-2** + +see HBASE-27598 + + +--- + +* [HBASE-27474](https://issues.apache.org/jira/browse/HBASE-27474) | *Major* | **Evict blocks on split/merge; Avoid caching reference/hlinks if compaction is enabled** + +This modifies behaviour of block cache management as follows: +1) Always evict blocks for the files from parent split region once it's closed, regardless of the "hbase.rs.evictblocksonclose" configured value; +2) If compactions are enabled, doesn't cache blocks for the refs/link files under split daughters once these regions are opened; + +For #1 above, an additional evict\_cache property has been added to the CloseRegionRequest protobuf message. It's default to false. Rolling upgrading cluster would retain the previous behaviour on RSes not yet upgraded. + + +--- + +* [HBASE-27514](https://issues.apache.org/jira/browse/HBASE-27514) | *Major* | **Move some persistent states from zookeeper to master region** + +Moved the follow states from zookeeper to master local region's 'state' family. + +The on/off state for load balancer +The on/off state for region normalizer +The enable/disable state for snapshot cleanup task +The enable/disable for split/merge + + +--- + +* [HBASE-27565](https://issues.apache.org/jira/browse/HBASE-27565) | *Major* | **Make the initial corePoolSize configurable for ChoreService** + +Add 'hbase.choreservice.initial.pool.size' configuration property to set the initial number of threads for the ChoreService. + + +--- + +* [HBASE-27529](https://issues.apache.org/jira/browse/HBASE-27529) | *Major* | **Provide RS coproc ability to attach WAL extended attributes to mutations at replication sink** + +New regionserver coproc endpoints that can be used by coproc at the replication sink cluster if WAL has extended attributes. +Using the new endpoints, WAL extended attributes can be transferred to Mutation attributes at the replication sink cluster. + + +--- + +* [HBASE-27493](https://issues.apache.org/jira/browse/HBASE-27493) | *Major* | **Allow namespace admins to clone snapshots created by them** + +Allow namespace admins to clone snapshots created by them to any table inside their namespace, not just re-create the old table + + +--- + +* [HBASE-27575](https://issues.apache.org/jira/browse/HBASE-27575) | *Minor* | **Bump future from 0.18.2 to 0.18.3 in /dev-support** + +pushed to 2.4, 2.5, branch-2, and master + + +--- + +* [HBASE-27238](https://issues.apache.org/jira/browse/HBASE-27238) | *Major* | **Backport Backup/Restore to 2.x** + +Provides EXPERIMENTAL support for native backup/restore functionality to HBASE 2.x releases, as originally documented in https://hbase.apache.org/book.html#backuprestore. In addition to all of the changes there, introduces a new config to ensure backwards compatibility. Users of MultiTableHFileOutputFormat who wish to disambiguate output files for tables in different namespaces may set hbase.hfileoutputformat.tablename.namespace.inclusive to true. This is enabled by default in backup and [...] + + +--- + +* [HBASE-27541](https://issues.apache.org/jira/browse/HBASE-27541) | *Minor* | **Backups should be able to be restored to a separate filesystem** + +Adds a new withRestoreRootDir method to RestoreRequest. When specified, the bulk output will be sent to that directory rather than the value of hbase.fs.tmp.dir (which defaults to current user's home dir on current FS). You can pass a fully qualified URI to withRestoreRootDir, which allows the RestoreJob to save the output to a remote cluster if you've loaded the job's Configuration with the appropriate hdfs configs to connect to that cluster. + + +--- + +* [HBASE-27551](https://issues.apache.org/jira/browse/HBASE-27551) | *Major* | **Add config options to delay assignment to retain last region location** + +This change introduces a boolean hbase.master.scp.retain.assignment.force property with default value of false to the AssignmentManager. +AssignmentManager already defines a hbase.master.scp.retain.assignment property, which enables AssignmentManager to prioritise the previous RegionServer the region was online when coming up with an assignment plan. This, however, does not guarantee the assignment retainment, in case the SCP triggers the TransitRegionStateProcedure (TRSP) before the given RegionServer is online. +To forcibly "honour" the retainment, hbase.master.scp.retain.assignment.force property should be also set to true. +Note that this could delay the region assignment until the given RegionServer reports itself as online to the master, and RITs may be reported on master UI or by HBCK. +The amount of time the TRSP will try to open the region on the given RS is determined by hbase.master.scp.retain.assignment.force.retries (default to 600). Between each retry, the TRSP will sleep for an exponential factor of the value defined in hbase.master.scp.retain.assignment.force.wait-interval (default to 50) in millis. + + +--- + +* [HBASE-27558](https://issues.apache.org/jira/browse/HBASE-27558) | *Major* | **Scan quotas and limits should account for total block IO** + +Scan quotas and hbase.server.scanner.max.result.size will now be enforced against the total bytes of actual blocks scanned by the request. Block bytes scanned will typically be much higher for heavily filtered scans, since the cost will include the size of every block read rather than just the size of the returned cells. If you have heavily filtered scans, you may need to account for that in your defined quotas. + + +--- + +* [HBASE-27570](https://issues.apache.org/jira/browse/HBASE-27570) | *Major* | **Unify tracking of block IO across all read request types** + +Unifies block IO accounting code across all request types. As a result, the behavior of MultiActionResultTooLarge handling may change slightly. In certain circumstances, a multiget might trip the "too large" threshold sooner than it used to in the past. This should largely be transparent to users since the client automatically retries, and the behavior change should only be noticeable for very large multigets that fetch many rows from the same block. + + +--- + +* [HBASE-27534](https://issues.apache.org/jira/browse/HBASE-27534) | *Major* | **Determine too large requests by response block size rather than cell size** + +In addition to response size, requests will now show up in the slow log if the block bytes scanned to retrieve the cells exceeds the hbase.ipc.warn.response.size. This will cause heavily filtered scans which scan lots of data but don't return much to start showing up. + + +--- + +* [HBASE-27250](https://issues.apache.org/jira/browse/HBASE-27250) | *Minor* | **MasterRpcService#setRegionStateInMeta does not support replica region encodedNames or region names** + +MasterRpcServices#setRegionStateInMeta can now work with both primary and timeline-consistent replica regions. + + +--- + +* [HBASE-27681](https://issues.apache.org/jira/browse/HBASE-27681) | *Major* | **Refactor Table Latency Metrics** + +Table request metrics (table latency histograms and TableReadQueryMeter/TableWriteQueryMeter) have been reorganized into a new metric bean TableRequests. The new TableRequests bean is published separately for each table on the regionserver, with the bean name including the table name and metric names within the bean simplified. Beans will be cleaned up after tables leave the regionserver. + +Users who collect TableLatencies or table query meters will have to update metric collection to work with the new structure. For example: + +Old: +{ + "name": "Hadoop:service=HBase,name=RegionServer,sub=TableLatencies", + "modelerType": "RegionServer,sub=TableLatencies", + "tag.Context": "regionserver", + "tag.Hostname": "hostname", + "Namespace\_default\_table\_usertable\_metric\_deleteTime\_num\_ops": 0, + "Namespace\_default\_table\_usertable\_metric\_deleteTime\_min": 0, + "Namespace\_default\_table\_usertable\_metric\_deleteTime\_max": 0, + "Namespace\_default\_table\_usertable\_metric\_deleteTime\_mean": 0, + ... +} + +New: +{ + "name": "Hadoop:service=HBase,name=RegionServer,sub=TableRequests\_Namespace\_default\_table\_usertable", + "modelerType": "RegionServer,sub=TableRequests\_Namespace\_default\_table\_usertable", + "tag.Context": "regionserver", + "tag.Hostname": "hostname", + "DeleteTime\_num\_ops": 0, + "DeleteTime\_min": 0, + "DeleteTime\_max": 0, + "DeleteTime\_mean": 0, + ... +} + + +--- + +* [HBASE-27632](https://issues.apache.org/jira/browse/HBASE-27632) | *Major* | **Refactor WAL.Reader implementation so we can better support WAL splitting and replication** + +Introduced two types of WAL reader, WALStreamReader and WALTailingReader. The former one is for most use cases where we only need to read closed WAL files, such as splitting and replaying, and the second one is for replication, where we need to tail a WAL file which is being written currently. + +The config 'hbase.regionserver.hlog.reader.impl' is removed, as now we have two types of WAL reader. And starting from at least 0.98, we do not support sequence file format WAL file any more, the only accepted format is protobuf. And for encrypted WAL files, now you do not need to specify SecureProtobufLogReader either, as the new implementation will choose to use SecureWALCellCodec based on the properties in WALHeader. +There is still a config called 'hbase.regionserver.wal.stream.reader.impl', for specifying the implementation for WALStreamReader. This is only designed to be used in HBase itself, for injecting some error when writing UTs, downstream users should not use it as it is unstable. + + +--- + +* [HBASE-27686](https://issues.apache.org/jira/browse/HBASE-27686) | *Major* | **Recovery of BucketCache and Prefetched data after RS Crash** + +This adds a background thread into the RS process, that periodically checks if there were updates in the bucket cache. If the bucket cache has been updated since the last check, it saves the bucket cache index to the file path defined by "hbase.bucketcache.persistent.path", as well as the list of completed prefetched files into the path defined by "hbase.prefetch.file.list.path" property. The thread is named as "bucket-cache-persister", and the check interval is defined by the "hbase.buc [...] + + +--- + +* [HBASE-27702](https://issues.apache.org/jira/browse/HBASE-27702) | *Major* | **Remove 'hbase.regionserver.hlog.writer.impl' config** + +Changed the configuration names to 'hbase.regionserver.wal.writer.impl' and 'hbase.regionserver.wal.async.writer.impl', which are mainly used for unit testing. End users should not use them. + +Removed 'SecureProtobufLogWriter' and 'SecureAsyncProtobufLogWriter'. You can now use ProtobufLogWriter and AsyncProtobufLogWriter to write encrypted data directly. Since the configuration names have changed, there will be no problems if users’ old configuration files contain SecureProtobufLogWriter and SecureAsyncProtobufLogWriter, as they will never be loaded. But we still suggest that you remove these unused configurations from your configuration file. + + +--- + +* [HBASE-27651](https://issues.apache.org/jira/browse/HBASE-27651) | *Minor* | **hbase-daemon.sh foreground\_start should propagate SIGHUP and SIGTERM** + +<!-- markdown --> +Introduce separate `trap`s for SIGHUP vs. the rest. Treat `SIGINT`, `SIGKILL`, and `EXIT` identically, as before. Use the signal name without `SIG` prefix for increased portability, as per the POSIX man page for `trap`. + +`SIGTERM` handler will now honor `HBASE_STOP_TIMEOUT` as described in the file header. + + +--- + +* [HBASE-27741](https://issues.apache.org/jira/browse/HBASE-27741) | *Minor* | **Fall back to protoc osx-x86\_64 on Apple Silicon** + +<!-- markdown --> +This change introduces and automatically applies a new profile for osx-aarch_64 hosts named `apple-silicon-workaround`. This profile overrides the property `os.detected.classifier` with the value `osx-x86_64`. The intention is that this change will permit the build to proceed with the x86 version of `protoc`, making use of the Rosetta instruction translation service built into the OS. If you'd like to provide and make use of your own aarch_64 `protoc`, you can disable this profile on the [...] + + +--- + +* [HBASE-27748](https://issues.apache.org/jira/browse/HBASE-27748) | *Major* | **Bump jettison from 1.5.2 to 1.5.4** + +Bump jettison from 1.5.2 to 1.5.4 for CVE-2023-1436. + + +--- + +* [HBASE-27765](https://issues.apache.org/jira/browse/HBASE-27765) | *Major* | **Add biggest cell related info into web ui** + +Save len and key of the biggest cell into fileinfo when generate hfile, and shows them on webui for better monitor. + + +--- + +* [HBASE-27110](https://issues.apache.org/jira/browse/HBASE-27110) | *Major* | **Move replication peer storage from zookeeper to other storage systems** + +Introduced a ‘hbase.replication.peer.storage.impl’ config to support using different replication peer storage implementation. For now there are two built in implementations, ‘zookeeper’ and ‘filesystem’. The default implementation is still zookeeper as users do not need to specify this configuration in the past so if we change the default implementation, after upgrading, the implementation will be changed and cause data loss. +For filesystem replication peer storage, there is a config ‘hbase.replication.peers.directory’ for specifying the directory. The value is relative to the hbase root directory and the default value is ‘peers’. +We also implemented a tool for migrating replication peer data across different replication peer storage implementations. Use + +./bin/hbase copyreppeers \<SRC\_REPLICATION\_PEER\_STORAGE\> \<DST\_REPLICATION\_PEER\_STORAGE\> + +to copy the replication peer data. Notice that we will not delete the data in the src storage, for supporting online migration. You need to delete the old storage manually after copying. +For supporting online migration, we implemented a shell command to disable replication peer modification. Use + +peer\_modification\_switch \<disableOrEnable\>, \<drainProcedures\> + +to enable or disable replication peer modification. The \`drainProcedures\` parameter means whether you want to wait until all the existing peer modification procedures to finish before returning when disabling peer modification. We also implemented a shell command ‘peer\_modification\_enabled’ to query whether replication peer modification is enabled currently. + +So when you want to migrate replication peer storage online, you can disable replication peer modification first, then run the copyreppeers tool to copy the replication data from the old storage to new storage, then update all the config files in the cluster, then trigger a online configuration update to load the configuration. + + +--- + +* [HBASE-27808](https://issues.apache.org/jira/browse/HBASE-27808) | *Major* | **Change flatten mode for oss in our pom file** + +Changed the flatten mode from default to oss. It will include these extra section in the published pom files: + +name, description, url, developers, scm, inceptionYear, organization, mailingLists, issueManagement, distributionManagement. + + +--- + +* [HBASE-27762](https://issues.apache.org/jira/browse/HBASE-27762) | *Major* | **Include EventType and ProcedureV2 pid in logging via MDC** + +<!-- markdown --> +Log the `o.a.h.hbase.executor.EventType` and ProcedureV2 pid in log messages via MDC. PatternLayouts on master and branch-2 have been updated to make use of the MDC variables. Note that due to LOG4J2-3660, log lines for which the MDC is empty will have extraneous characters. To opt-in on branch-2.5 or branch-2.4, make an appropriate change to `conf/log4j2.properties`. + + +--- + +* [HBASE-27838](https://issues.apache.org/jira/browse/HBASE-27838) | *Minor* | **Update zstd-jni from version 1.5.4-2 -\> 1.5.5-2** + +Bump zstd-jni from 1.5.4-2 to 1.5.5-2, which fixed a critical issue on s390x. + + +--- + +* [HBASE-27855](https://issues.apache.org/jira/browse/HBASE-27855) | *Minor* | **Support dynamic adjustment of flusher count** + +Support dynamic adjustment of flusher count + + +--- + +* [HBASE-27888](https://issues.apache.org/jira/browse/HBASE-27888) | *Minor* | **Record readBlock message in log when it takes too long time** + +Add a configuration parameter,which control to record read block slow in logs. +\<property\> + \<name\>hbase.fs.reader.warn.time.ms\</name\> + \<value\>-1\</value\> +\</property\> +If reading block cost time in milliseconds more than the threshold, a warning will be logged,the default value is -1, it means skipping record the read block slow warning log. + + +--- + +* [HBASE-27798](https://issues.apache.org/jira/browse/HBASE-27798) | *Major* | **Client side should back off based on wait interval in RpcThrottlingException** + +When throttling quotas are enabled, clients will now respect the wait interval sent along from the server in the RpcThrottlingException. As a result, in these cases retries will backoff differently from your normally configured pause time/schedule to respect the throttling dictated by the server. + + +--- + +* [HBASE-27657](https://issues.apache.org/jira/browse/HBASE-27657) | *Major* | **Connection and Request Attributes** + +It is now possible to send Connection and Request attributes to the server. + +Connection attributes are passed in via new method overloads in ConnectionFactory. These attributes are only sent once per connection, during connection handshake. They will remain in memory on the server side for the duration of the connection. + +Request attributes can be configured via a new setRequestAttributes on TableBuilder and AsyncTableBuilder. Requests sent through the built table will all send along the configured attributes. Each request sent to a RegionServer will include the request attributes in the header. This differs from existing Operation attributes for Scan (which doesn't accept operation attributes) and Multi (which each operation in a batch has its own attributes). + +These new attributes can be retrieved in server side plugins by inspecting RpcServer.getCurrentCall(). The returned RpcCall has a getHeader(), which returns the RequestHeader which has a getAttributeList() containing request attributes. We also added a getConnectionHeader() to RpcCall, which also has a getAttributeList() for getting connection attributes. + +Note: This involved addition of a new Map\<String, byte[]\> argument to ConnectionImplementation, AsyncConnectionImpl, NettyRpcClient, and BlockingRpcClient. Users who have custom implementations of these Private and LimitedPrivate classes will need to update their constructors accordingly to match so that reflection continues to work. + + +--- + +* [HBASE-26874](https://issues.apache.org/jira/browse/HBASE-26874) | *Major* | **VerifyReplication recompare async** + +VerifyReplication can now do multiple recompares (rather than 1 previously), with exponential backoff. In order to speed up the job when there are many discrepancies, the recompares can be run in background threads. New options added: --recompareTries (default 1 if --recompareSleep is \> 0, otherwise 0), --recompareThreads (default 0), --recompareBackoffExponent (default 1). + + +--- + +* [HBASE-27896](https://issues.apache.org/jira/browse/HBASE-27896) | *Major* | **Disable hdfs readahead for pread reads** + +PREAD reads will no longer do HDFS readahead by default. This should save substantial disk and network IO for random read workloads, but one can re-enable it if desired by setting "hbase.store.reader.no-readahead" to false. + + +--- + +* [HBASE-27956](https://issues.apache.org/jira/browse/HBASE-27956) | *Major* | **Support wall clock profiling in ProfilerServlet** + +You can now do wall clock profiling with async-profiler by specifying ?event=wall query param on the profiler servlet (/prof) + + +--- + +* [HBASE-27947](https://issues.apache.org/jira/browse/HBASE-27947) | *Critical* | **RegionServer OOM under load when TLS is enabled** + +When a slow client is not able to read responses from the server fast enough, the server side channel outbound buffer will grow. This can eventually lead to an OOM under extreme cases, and here we add new configurations to protect against that: +- hbase.server.netty.writable.watermark.low +- hbase.server.netty.writable.watermark.high +- hbase.server.netty.writable.watermark.fatal + +When high watermark is exceeded, server will stop accepting new requests from the client. When outbound bytes drops below the low watermark, it will start again. This does not stop the server from processing already enqueued requests, so if those requests continue to grow the outbound bytes beyond the fatal threshold, the connection will be forcibly closed. + +Also added new metrics for monitoring this situation in bean "Hadoop:service=HBase,name=RegionServer,sub=IPC": + - UnwritableTime\_\* - histogram of time periods between when the high watermark was exceeded and when it eventually drops below low watermark. +- nettyTotalPendingOutboundBytes - as the name suggests, for all channels the total amount of bytes waiting to be written to sockets +- nettyMaxPendingOutboundBytes - the number of bytes waiting on the most backed up channel across all channels + + +--- + +* [HBASE-26867](https://issues.apache.org/jira/browse/HBASE-26867) | *Minor* | **Introduce a FlushProcedure** + +Introduce a flush procedure to flush tables. The flush procedure is used to perform flush-related operations by default. Set hbase.flush.procedure.enabled to false to disable flush procedure. + + +--- + +* [HBASE-28008](https://issues.apache.org/jira/browse/HBASE-28008) | *Major* | **Add support for tcnative** + +If a properly shaded netty-tcnative is found on the classpath, hbase will automatically pick it up for use in accelerating TLS handling. Properly shaded means relocated to prefix with org.apache.hbase.thirdparty + + +--- + +* [HBASE-28068](https://issues.apache.org/jira/browse/HBASE-28068) | *Minor* | **Add hbase.normalizer.merge.merge\_request\_max\_number\_of\_regions property to limit max number of regions in a merge request for merge normalization** + +Added a new property "hbase.normalizer.merge.merge\_request\_max\_number\_of\_regions" to limit the max number of region to be processed for merge request in a single merge normalisation. Defaults to 100 + + +--- + +* [HBASE-28168](https://issues.apache.org/jira/browse/HBASE-28168) | *Minor* | **Add option in RegionMover.java to isolate one or more regions on the RegionSever** + +This adds a new "isolate\_regions" operation to RegionMover, which allows operators to pass a list of region encoded ids to be "isolated" in the passed RegionServer. +Regions currently deployed in the RegionServer that are not in the passed list of regions would be moved to other RegionServers. Regions in the passed list that are currently on other RegionServers would be moved to the passed RegionServer. + +Please refer to the command help for further information. + + +--- + +* [HBASE-28043](https://issues.apache.org/jira/browse/HBASE-28043) | *Major* | **Reduce seeks from beginning of block in StoreFileScanner.seekToPreviousRow** + +Optimizes StoreFileScanner.seekToPreviousRow to use keep track of a hint which allows us to eliminate one seek per call, resulting in 40% or more throughput increase for reverse scans. External users (Phoenix) of this LimitedPrivate method should be aware of the change in semantics. It is expected that seekToPreviousRow is used for scanning backwards in the StoreFile. Calling with an originalKey greater than the previously passed key (i.e. forward in the StoreFile), the originalKey will [...] + + +--- + +* [HBASE-28085](https://issues.apache.org/jira/browse/HBASE-28085) | *Major* | **Configurably use scanner timeout as rpc timeout for scanner next calls** + +Adds a new configuration key: hbase.client.use.scanner.timeout.period.for.next.calls. The default value is false to preserve original behavior. When set to true, ClientScanner will use hbase.client.scanner.timeout.period for the RPC timeout of individual next() RPC calls. This is in-line with the behavior of AsyncTable and future 3.0 release. + + +--- + +* [HBASE-28222](https://issues.apache.org/jira/browse/HBASE-28222) | *Major* | **Leak in ExportSnapshot during verifySnapshot on S3A** + +ExportSnapshot now uses FileSystems from the global FileSystem cache, and as such does not close those FileSystems when it finishes. If users plan to run ExportSnapshot over and over in a single process for different FileSystem urls, they should run FileSystem.closeAll() between runs. See JIRA for details. + + +--- + +* [HBASE-25549](https://issues.apache.org/jira/browse/HBASE-25549) | *Major* | **Provide a switch that allows avoiding reopening all regions when modifying a table to prevent RIT storms.** + +New APIs are added to Admin, AsyncAdmin, and hbase shell to allow modifying a table without reopening all regions. Care should be used in using this API, as regions will be in an inconsistent state until they are all reopened. Whether this matters depends on the change, and some changes are disallowed (such as enabling region replication or adding/removing a column family). + + +--- + +* [HBASE-28215](https://issues.apache.org/jira/browse/HBASE-28215) | *Major* | **Region reopen procedure should support some sort of throttling** + +Adds new configurations to control the speed and batching of region reopens after modifying a table: +- hbase.reopen.table.regions.progressive.batch.size.max - When set, the HMaster will progressively reopen regions, starting with one region and then doubling until it reaches the specified max. After reaching the max, it will continue reopening at that batch size until all regions are reopened. +- hbase.reopen.table.regions.progressive.batch.backoff.ms - When set, the HMaster will back off for this amount of time between each batch. + + +--- + +* [HBASE-27532](https://issues.apache.org/jira/browse/HBASE-27532) | *Major* | **Add block bytes scanned metrics** + +Adds blockBytesScannedCount metrics for the regionserver, table, and operations in JMX. Adds a countOfBlockBytesScanned to ScanMetrics. + + +--- + +* [HBASE-28277](https://issues.apache.org/jira/browse/HBASE-28277) | *Major* | **Move minimum hadoop 3 support to 3.3.x for 2.6+** + +The minimum hadoop 3 version support for hbase 2.6+ is 3.3.5 now. + + +--- + +* [HBASE-28307](https://issues.apache.org/jira/browse/HBASE-28307) | *Major* | **Add hbase-openssl module and include in release binaries** + +Adds a new org.apache.hbase:hbase-openssl module which users can add as a dependency in their project if they'd like to use tcnative with netty TLS. The bundled tcnative is statically linked to boringssl and properly shaded to just work with hbase netty. Additionally, the tcnative jar has been added to the release binaries published by hbase (through hbase-assembly) + + +--- + +* [HBASE-28306](https://issues.apache.org/jira/browse/HBASE-28306) | *Major* | **Add property to customize Version information** + +Added a new build property -Dversioninfo.version which can be used to influence the generated Version.java class in custom build scenarios. The version specified will show up in the HMaster UI and also have implications on various version-related checks. This is an advanced usage property and it's recommended not to stray too far from the default format of major.minor.patch-suffix. + + +--- + +* [HBASE-26268](https://issues.apache.org/jira/browse/HBASE-26268) | *Major* | **Provide coprocessor hooks for updateConfiguration and clearRegionBlockCache** + +- Added methods preUpdateMasterConfiguration and postUpdateMasterConfiguration to MasterObserver to allow coprocessors to hook into configuration reloads in HMasters. Runs when reload is triggered by RPC or by SIGHUP. +- Added methods preUpdateRegionServerConfiguration and postUpdateRegionServerConfiguration to RegionServerObserver to do the same in RegionServers. +- Added methods preClearRegionBlockCache and postClearRegionBlockCache to RegionServerObserver to allow coprocessors to hook into block cache clearing. + + +--- + +* [HBASE-28302](https://issues.apache.org/jira/browse/HBASE-28302) | *Major* | **Add tracking of fs read times in ScanMetrics and slow logs** + +Adds a new getFsReadTime() to the slow log records, and fsReadTime counter to ScanMetrics. In both cases, this is the cumulative time spent reading blocks from hdfs for the given request. Additionally, a new fsSlowReadsCount jmx metric is added to the sub=IO bean. This is the count of HDFS reads which took longer than hbase.fs.reader.warn.time.ms. + + +--- + +* [HBASE-28317](https://issues.apache.org/jira/browse/HBASE-28317) | *Minor* | **RpcCallContext should expose client's TLS certificate** + +Adds RpcCallContext.getClientCertificateChain() for accessing the SSL cert when TLS is enabled and a cert is available. + + +--- + +* [HBASE-27784](https://issues.apache.org/jira/browse/HBASE-27784) | *Major* | **support quota user overrides** + +Adds a RegionServer config hbase.quota.user.override.key which can be set to the name of a request attribute whose value should be used as the username when evaluating quotas. + + +--- + +* [HBASE-28216](https://issues.apache.org/jira/browse/HBASE-28216) | *Major* | **HDFS erasure coding support for table data dirs** + +If you use hadoop3, managing the erasure coding policy of a table's data directory is now possible with a new table descriptor setting ERASURE\_CODING\_POLICY. The policy you set must be available and enabled in hdfs, and hbase will validate that your cluster topology is sufficient to support that policy. After setting the policy, you must major compact the table for the change to take effect. Attempting to use this feature with hadoop2 will fail a validation check prior to making any changes. + + +--- + +* [HBASE-27687](https://issues.apache.org/jira/browse/HBASE-27687) | *Major* | **Enhance quotas to consume blockBytesScanned rather than response size** + +Read size quotas are now evaluated against block bytes scanned for a request, rather than result size. Block bytes scanned is a measure of the total size in bytes of all hfile blocks opened to serve a request. This results in a much more accurate picture of actual work done by a query and is the recommended mode. One can revert to the old behavior by setting hbase.quota.use.result.size.bytes to true. + + +--- + +* [HBASE-25051](https://issues.apache.org/jira/browse/HBASE-25051) | *Minor* | **DIGEST based auth broken for rpc based ConnectionRegistry** + +We implement a new way to get information from a server through different rpc preamble headers, and use it to get the cluster id before actually setting up the secure rpc client. + + +--- + +* [HBASE-27800](https://issues.apache.org/jira/browse/HBASE-27800) | *Major* | **Add support for default user quotas** + +Adds a bunch of new configs for default user machine quotas: hbase.quota.default.user.machine.read.num, hbase.quota.default.user.machine.read.size, hbase.quota.default.user.machine.write.num, hbase.quota.default.user.machine.write.size, hbase.quota.default.user.machine.request.num, hbase.quota.default.user.machine.request.size. Setting any these will apply the given limit as a default for users which are not explicitly covered by existing quotas defined through set\_quota, etc. The confi [...] + + +--- + +* [HBASE-28349](https://issues.apache.org/jira/browse/HBASE-28349) | *Major* | **Atomic requests should increment read usage in quotas** + +Conditional atomic mutations which involve a read-modify-write (increment/append) or check-and-mutate, will now count as both a read and write when evaluating quotas. Previously they would just count as a write, despite involving a read as well. + + +--- + +* [HBASE-28204](https://issues.apache.org/jira/browse/HBASE-28204) | *Major* | **Region Canary can take lot more time If any region (except the first region) starts with delete markers** + +Canary is using Scan for first region of the table and Get for rest of the region. RAW Scan was only enabled for first region of any table. If a region has high number of deleted rows for the first row of the key-space, then It can take really long time for Get to finish execution. + +With this change, Region canary will use scan to validate that every region is accessible and also enables RAW Scan if it's enabled by the user. + + +--- + +* [HBASE-28321](https://issues.apache.org/jira/browse/HBASE-28321) | *Critical* | **RpcConnectionRegistry is broken when security is enabled and we use different principal for master and region server** + +Introduced a preamble security call to let server respond its server principal so client knows which one to use if there are multiple server principal candidates. + +This requires changing the SecurityInfo to accept a list of server principal patterns for a given rpc service. + +Altough SecurityInfo is marked as IA.Private, since it is leaked in SaslClientAuthenticationProvider, we still keep the getServerPrincipal method and only mark it as deprecated since 2.6.0, and plan to remove it in 4.0.0. + +In SaslClientAuthenticationProvider, we marked the old createClient method as deprecated since 2.6.0 and plan to remove in 4.0.0. Now you should prefer the method which passes a String server principal, instead of passing a SecurityInfo. + +And notice that, if you do use different server principals for master and region server, then if you use 2.6.0+ hbase client, you can not connect a 2.6.0- cluster now, as we do not implement the fallback logic since it is not easy as the server will close the connection directly with unexpected header error. But anyway, you can not connect to the cluster with 2.6.0- client either, because there is no to provide two candidates in the old code base, and this is just what this issue fixes. + + +--- + +* [HBASE-28342](https://issues.apache.org/jira/browse/HBASE-28342) | *Major* | **Decommissioned hosts should be rejected by the HMaster** + +<!-- markdown --> +This change introduces the configuration `hbase.master.reject.decommissioned.hosts`. When this property is set to `true`, region servers added to the [decommissioning hosts list](https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Admin.html#decommissionRegionServers-java.util.List-boolean-) will be checked by hostname only (not taking into consideration RPC port or startcode). When a region server with a hostname that matches the list attempts to join the cluster, the Master [...] + + +--- + +* [HBASE-27230](https://issues.apache.org/jira/browse/HBASE-27230) | *Major* | **RegionServer should be aborted when WAL.sync throws TimeoutIOException** + +This changes add additional logic for WAL.sync: +If WAL.sync get a timeout exception, we wrap TimeoutIOException as a special WALSyncTimeoutIOException. When upper layer such as HRegion.doMiniBatchMutate called by HRegion.batchMutation catches this special exception, we abort the region server. + + +--- + +* [HBASE-23324](https://issues.apache.org/jira/browse/HBASE-23324) | *Major* | **Deprecate clients that connect to Zookeeper** + +ZooKeeper is becoming an internal implementation detail, removed from our public interface. Connecting to a cluster via ZooKeeper quorum will be considered deprecated starting in 2.6. Our default connection mechanism will switch to via RPC in 3.0 And finally we intend to remove the ZooKeeper connection mechanism from client-facing APIs in 4.0. + + +--- + +* [HBASE-28260](https://issues.apache.org/jira/browse/HBASE-28260) | *Major* | **Possible data loss in WAL after RegionServer crash** + +Adds a new flag hbase.regionserver.wal.avoid-local-writes. When true (default false), we will avoid writing a block replica to the local datanode for WAL writes. This will improve MTTR and redundancy, but may come with a performance impact for WAL writes. It's recommended to enable, but monitor performance in doing so if that is a concern for you. + + +--- + +* [HBASE-28385](https://issues.apache.org/jira/browse/HBASE-28385) | *Major* | **Quota estimates are too optimistic for large scans** + +When hbase.quota.use.result.size.bytes is false, we will now estimate the amount of quota to grab for a scan based on the block bytes scanned of previous next() requests. This will increase throughput for large scans which might prefer to wait a little longer for a larger portion of the quota. + + +--- + +* [HBASE-28444](https://issues.apache.org/jira/browse/HBASE-28444) | *Blocker* | **Bump org.apache.zookeeper:zookeeper from 3.8.3 to 3.8.4** + +Upgrade zookeeper to 3.8.4 for addressing CVE-2024-23944. + -# Be careful doing manual edits in this file. Do not change format -# of release header or remove the below marker. This file is generated. -# DO NOT REMOVE THIS MARKER; FOR INTERPOLATING CHANGES!--> # HBASE 2.2.0 Release Notes diff --git a/pom.xml b/pom.xml index 2b4aa9c03c6..fbf55ccc4e2 100644 --- a/pom.xml +++ b/pom.xml @@ -523,7 +523,7 @@ </site> </distributionManagement> <properties> - <revision>2.6.0-SNAPSHOT</revision> + <revision>2.6.0</revision> <!-- override on command line to have generated LICENSE files include diagnostic info for verifying notice requirements --> <license.debug.print.included>false</license.debug.print.included>