This is an automated email from the ASF dual-hosted git repository. asf-gitbox-commits pushed a commit to annotated tag 2.6.6RC0 in repository https://gitbox.apache.org/repos/asf/hbase.git
commit d5f63f523c065f963992ea4e74db268d17816631 Author: Andrew Purtell <[email protected]> AuthorDate: Thu Jun 4 11:04:46 2026 -0700 Preparing hbase release 2.6.6RC0; tagging and updates to CHANGES.md and RELEASENOTES.md Signed-off-by: Andrew Purtell <[email protected]> --- CHANGES.md | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RELEASENOTES.md | 51 ++++++++++++++++++++++++ pom.xml | 2 +- 3 files changed, 170 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 458f125200b..ae06c099e86 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -18,6 +18,124 @@ --> # HBASE Changelog +## Release 2.6.6 - 2026-06-08 + + + +### NEW FEATURES: + +| JIRA | Summary | Priority | Component | +|:---- |:---- | :--- |:---- | +| [HBASE-29267](https://issues.apache.org/jira/browse/HBASE-29267) | Support shaded clients in Exception deserialization by prefixing shaded package in IPCUtil | Minor | . | + + +### IMPROVEMENTS: + +| JIRA | Summary | Priority | Component | +|:---- |:---- | :--- |:---- | +| [HBASE-29947](https://issues.apache.org/jira/browse/HBASE-29947) | Improve CopyTable usage instructions for copying between secure and non-secure clusters | Minor | documentation, mapreduce, Replication | +| [HBASE-30191](https://issues.apache.org/jira/browse/HBASE-30191) | Upgrade hbase-testing-util to use junit5 | Major | test | +| [HBASE-30161](https://issues.apache.org/jira/browse/HBASE-30161) | Add paginated, single-RPC RegionLocator.getRegionLocations(startKey, limit) API for bulk meta-cache warmup | Major | . | +| [HBASE-30172](https://issues.apache.org/jira/browse/HBASE-30172) | Avoid invoking OpenSsl.isAvailable() when TLS\_USE\_OPENSSL config is false | Major | netty, security | +| [HBASE-26962](https://issues.apache.org/jira/browse/HBASE-26962) | Add mob info in web UI | Minor | UI | +| [HBASE-30150](https://issues.apache.org/jira/browse/HBASE-30150) | Propagate filter hints through composite filters | Major | Filters, Scanners | +| [HBASE-29974](https://issues.apache.org/jira/browse/HBASE-29974) | Filter seek hints underutilized due to early circuit breaks in scan pipeline, causing unnecessary cell-level iteration | Major | Filters, Scanners | +| [HBASE-30079](https://issues.apache.org/jira/browse/HBASE-30079) | Upgrade hbase-compression to use junit5 | Major | compression, test | +| [HBASE-30036](https://issues.apache.org/jira/browse/HBASE-30036) | Delete marker consolidation on memstore flush | Major | Performance | +| [HBASE-29039](https://issues.apache.org/jira/browse/HBASE-29039) | Optimize read performance for accumulated delete markers on the same row or cell | Major | Performance, Scanners | +| [HBASE-30056](https://issues.apache.org/jira/browse/HBASE-30056) | Fix markdown in hbase-archetypes README.md | Trivial | documentation | +| [HBASE-30052](https://issues.apache.org/jira/browse/HBASE-30052) | Fix copied Javadoc in MultipleColumnPrefixFilter | Trivial | documentation | +| [HBASE-29968](https://issues.apache.org/jira/browse/HBASE-29968) | Upgrade hbase-mapreduce to use junit5 | Major | mapreduce, test | +| [HBASE-29970](https://issues.apache.org/jira/browse/HBASE-29970) | SplitSuccess and SplitTime metrics are no longer used at RegionServer and Table level | Major | metrics | +| [HBASE-29770](https://issues.apache.org/jira/browse/HBASE-29770) | Exclude commons-logging from HBase | Major | logging | + + +### BUG FIXES: + +| JIRA | Summary | Priority | Component | +|:---- |:---- | :--- |:---- | +| [HBASE-30166](https://issues.apache.org/jira/browse/HBASE-30166) | Attempt to fix flakeyness in TestPrefetchPersistence | Major | . | +| [HBASE-30155](https://issues.apache.org/jira/browse/HBASE-30155) | MobFileCleanerChore does not shut down its internal executor on cleanup | Major | mob | +| [HBASE-30156](https://issues.apache.org/jira/browse/HBASE-30156) | TestSecureWAL is broken | Major | test, wal | +| [HBASE-30147](https://issues.apache.org/jira/browse/HBASE-30147) | Bump gitpython from 3.1.47 to 3.1.50 in /dev-support/flaky-tests | Major | dependabot, jenkins, scripts, security | +| [HBASE-30128](https://issues.apache.org/jira/browse/HBASE-30128) | Fix WALCellCodec off-heap KV tags compression test mismatch | Major | test | +| [HBASE-30101](https://issues.apache.org/jira/browse/HBASE-30101) | Stray TGT Renewer from RpcServer accessing UGI before Kerberos login | Minor | . | +| [HBASE-30126](https://issues.apache.org/jira/browse/HBASE-30126) | Fix mismatched LoggerFactory class references | Major | . | +| [HBASE-30120](https://issues.apache.org/jira/browse/HBASE-30120) | Bump gitpython from 3.1.41 to 3.1.47 in /dev-support/flaky-tests | Major | dependabot, jenkins, scripts, security | +| [HBASE-30111](https://issues.apache.org/jira/browse/HBASE-30111) | TestBlockBytesScannedQuota is flapping | Minor | . | +| [HBASE-30038](https://issues.apache.org/jira/browse/HBASE-30038) | RefCnt Leak error when caching | Critical | . | +| [HBASE-30103](https://issues.apache.org/jira/browse/HBASE-30103) | Error in TestZstdDictionarySplitMerge | Minor | test | +| [HBASE-30033](https://issues.apache.org/jira/browse/HBASE-30033) | Scan.setBatch() validation can be bypassed by calling setBatch() before setFilter() | Minor | Client | +| [HBASE-28660](https://issues.apache.org/jira/browse/HBASE-28660) | list\_namespace not working after an incorrect user input | Major | shell | +| [HBASE-30055](https://issues.apache.org/jira/browse/HBASE-30055) | Correct the configuration in MobFileCompactionChore log | Major | . | +| [HBASE-30007](https://issues.apache.org/jira/browse/HBASE-30007) | Multiget with timestamp incorrectly returns 404 not found | Critical | REST | +| [HBASE-30000](https://issues.apache.org/jira/browse/HBASE-30000) | testCompactionWithCorruptBlock fails on branch-2.5 | Major | test | +| [HBASE-29933](https://issues.apache.org/jira/browse/HBASE-29933) | update\_all\_config hangs indefinitely when balancing event is in progress | Major | . | + + +### TESTS: + +| JIRA | Summary | Priority | Component | +|:---- |:---- | :--- |:---- | +| [HBASE-30042](https://issues.apache.org/jira/browse/HBASE-30042) | AuthUtil.loginClient fails when another Kerberos user is already logged in | Minor | test | + + +### SUB-TASKS: + +| JIRA | Summary | Priority | Component | +|:---- |:---- | :--- |:---- | +| [HBASE-30119](https://issues.apache.org/jira/browse/HBASE-30119) | Stop JmxCacheBuster in HBTU | Major | metrics, test | +| [HBASE-30188](https://issues.apache.org/jira/browse/HBASE-30188) | Upgrade hbase-server to use junit5 Part20 | Major | Replication, test | +| [HBASE-30138](https://issues.apache.org/jira/browse/HBASE-30138) | Upgrade hbase-server to use junit5 Part16 | Major | regionserver, test | +| [HBASE-30175](https://issues.apache.org/jira/browse/HBASE-30175) | Upgrade hbase-server to use junit5 Part19 | Major | test | +| [HBASE-30136](https://issues.apache.org/jira/browse/HBASE-30136) | Upgrade hbase-server to use junit5 Part15 | Major | . | +| [HBASE-30123](https://issues.apache.org/jira/browse/HBASE-30123) | Upgrade hbase-server to use junit5 Part13 | Major | test | +| [HBASE-30082](https://issues.apache.org/jira/browse/HBASE-30082) | Upgrade hbase-server to use junit5 Part12 | Major | test | +| [HBASE-30145](https://issues.apache.org/jira/browse/HBASE-30145) | Upgrade hbase-server to use junit5 Part17 | Major | test | +| [HBASE-30146](https://issues.apache.org/jira/browse/HBASE-30146) | Upgrade hbase-server to use junit5 Part18 | Major | test | +| [HBASE-30135](https://issues.apache.org/jira/browse/HBASE-30135) | Improve CacheAwareLoadBalancer to simulate low cache ratio regions as cached in candidate servers with enough cache space | Major | Balancer | +| [HBASE-30134](https://issues.apache.org/jira/browse/HBASE-30134) | Improve CacheAwareLoadBalancer to consider low cache ratio when calculating imbalance | Major | Balancer | +| [HBASE-30131](https://issues.apache.org/jira/browse/HBASE-30131) | Rewrite TestAsyncMetaRegionLocator | Major | test | +| [HBASE-30124](https://issues.apache.org/jira/browse/HBASE-30124) | Upgrade hbase-server to use junit5 Part14 | Major | regionserver, test | +| [HBASE-30141](https://issues.apache.org/jira/browse/HBASE-30141) | Split TestFromClientSide5 | Major | Client, test | +| [HBASE-30140](https://issues.apache.org/jira/browse/HBASE-30140) | Rewrite TestScannersFromClientSide | Major | test | +| [HBASE-30125](https://issues.apache.org/jira/browse/HBASE-30125) | Rewrite TestHFileBlockHeaderCorruption | Major | test | +| [HBASE-30102](https://issues.apache.org/jira/browse/HBASE-30102) | Add metric to account for region data classified as cold by the Time Based Priority logic | Major | . | +| [HBASE-30129](https://issues.apache.org/jira/browse/HBASE-30129) | Split TestFromClientSide3 | Major | test | +| [HBASE-30086](https://issues.apache.org/jira/browse/HBASE-30086) | Rewrite TestFromClientSide related tests | Major | test | +| [HBASE-30089](https://issues.apache.org/jira/browse/HBASE-30089) | Rewrite AbstractTestAsyncTableScan and related sub classes | Major | test | +| [HBASE-30098](https://issues.apache.org/jira/browse/HBASE-30098) | Rewrite RestoreSnapshotFromClientTestBase and its sub classes | Major | test | +| [HBASE-30066](https://issues.apache.org/jira/browse/HBASE-30066) | Upgrade hbase-server to use junit5 Part9 | Major | test | +| [HBASE-30063](https://issues.apache.org/jira/browse/HBASE-30063) | Upgrade hbase-server to use junit5 Part7 | Major | master, test | +| [HBASE-30067](https://issues.apache.org/jira/browse/HBASE-30067) | Upgrade hbase-server to use junit5 Part10 | Major | test | +| [HBASE-30064](https://issues.apache.org/jira/browse/HBASE-30064) | Upgrade hbase-server to use junit5 Part8 | Major | master, test | +| [HBASE-30059](https://issues.apache.org/jira/browse/HBASE-30059) | Upgrade hbase-server to use junit5 Part6 | Major | master, test | +| [HBASE-30091](https://issues.apache.org/jira/browse/HBASE-30091) | Rewrite CloneSnapshotFromClientTestBase and its sub classes | Major | test | +| [HBASE-30012](https://issues.apache.org/jira/browse/HBASE-30012) | Upgrade hbase-server to use junit5 Part2 | Major | test | +| [HBASE-30011](https://issues.apache.org/jira/browse/HBASE-30011) | Upgrade hbase-server to use junit5 Part1 | Major | test | +| [HBASE-30071](https://issues.apache.org/jira/browse/HBASE-30071) | Upgrade hbase-server to use junit5 Part11 | Major | test | +| [HBASE-30041](https://issues.apache.org/jira/browse/HBASE-30041) | Upgrade hbase-server to use junit5 Part4 | Major | test | +| [HBASE-30039](https://issues.apache.org/jira/browse/HBASE-30039) | Upgrade hbase-server to use junit5 Part3 | Major | test | +| [HBASE-30057](https://issues.apache.org/jira/browse/HBASE-30057) | Upgrade hbase-server to use junit5 Part5 | Major | test | + + +### OTHER: + +| JIRA | Summary | Priority | Component | +|:---- |:---- | :--- |:---- | +| [HBASE-30183](https://issues.apache.org/jira/browse/HBASE-30183) | Refactoring scanner related code in hbase-thrift and hbase-rest | Major | REST, Thrift | +| [HBASE-30193](https://issues.apache.org/jira/browse/HBASE-30193) | Exclude transitive jakarta.mail dependency (CVE-2025-7962) | Major | . | +| [HBASE-30153](https://issues.apache.org/jira/browse/HBASE-30153) | Upgrade hbase-common to junit5 | Major | test | +| [HBASE-30133](https://issues.apache.org/jira/browse/HBASE-30133) | Add opt-in yetus prerelease testing to GitHub Actions precommit | Major | build | +| [HBASE-30132](https://issues.apache.org/jira/browse/HBASE-30132) | Expose per column family storeFileSize JMX metric | Minor | metrics | +| [HBASE-30088](https://issues.apache.org/jira/browse/HBASE-30088) | Bump org.bouncycastle:bcpkix-jdk18on from 1.81 to 1.84 | Major | dependabot, dependencies, security | +| [HBASE-30013](https://issues.apache.org/jira/browse/HBASE-30013) | Update documentation links to point to new docs | Major | documentation, UI | +| [HBASE-30083](https://issues.apache.org/jira/browse/HBASE-30083) | Bump org.apache.logging.log4j:log4j-1.2-api from 2.25.3 to 2.25.4 | Major | dependabot, dependencies, logging, pom | +| [HBASE-30029](https://issues.apache.org/jira/browse/HBASE-30029) | Bump requests from 2.32.4 to 2.33.0 in /dev-support/flaky-tests | Major | dependabot, jenkins, scripts | +| [HBASE-30028](https://issues.apache.org/jira/browse/HBASE-30028) | Bump io.opentelemetry.javaagent:opentelemetry-javaagent from 2.15.0 to 2.26.1 | Major | dependabot, security, tracing | +| [HBASE-29990](https://issues.apache.org/jira/browse/HBASE-29990) | Upgrade deprecated GitHub Actions versions | Major | build | + + ## Release 2.6.5 - 2026-03-20 diff --git a/RELEASENOTES.md b/RELEASENOTES.md index b1caf20a942..42a4de67eb9 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -16,6 +16,57 @@ # See the License for the specific language governing permissions and # limitations under the License. --> +# HBASE 2.6.6 Release Notes + +These release notes cover new developer and user-facing incompatibilities, important issues, features, and major improvements. + + +--- + +* [HBASE-30135](https://issues.apache.org/jira/browse/HBASE-30135) | *Major* | **Improve CacheAwareLoadBalancer to simulate low cache ratio regions as cached in candidate servers with enough cache space** + +If an imbalance is found following the changes in the CacheAwareCostFunction introduced by HBASE-30134, these changes the generate logic in the CacheAwareCandidateGenerator as follows: +1) For regions with no cache on other servers, if the cache ratio is below the hbase.master.balancer.cacheaware.lowCacheRatioThreshold value (defaults 0.35), it will suggest a move plan for a server with enough cache space available to accommodate the region's hot data size (as determined by DataTieringManager) times the “hbase.master.balancer.cacheaware.minFreeCacheSpaceFactor” value (defaults to 1). +2) If there's no server with cache space available for the region, no plan is suggested for that specific region. + +This also changes CacheAwareCostFunction.regionMoved method, which is called once StochasticLoadBalancer obtains the plan and verifies if it decreases the overall cost, by simply calculating the individual cache ratio for the region in the new server, either using the already cached data, or potential cache due to free space. Then it takes a diff of this from the cache ratio on current server, normalizing it by the best ever possible overall ratio and increment this value to the current [...] + + +--- + +* [HBASE-30134](https://issues.apache.org/jira/browse/HBASE-30134) | *Major* | **Improve CacheAwareLoadBalancer to consider low cache ratio when calculating imbalance** + +This modified CacheAwareLoadBalancer in order to exclude region data labeled "cold" by BucketCache Time Based Priority setting when calculation region's cache ratio to define imbalance. + +It also changes CacheAwareLoadBalancer.CacheAwareCostFunction to optimistically consider that moves of low cache ratio regions to servers with available cache space succeed in bringing up cache ratio for the given region, reducing the imbalance. + +Low cache ratio for regions to be eligible to move to servers with available cache space is defined by a configurable, float threshold: hbase.master.balancer.cacheaware.lowCacheRatioThreshold (defaults to 0.35). + +The cost of moving such low cache ratios regions to servers with available cache space will be calculating assuming the cache ratio for these regions in the target server would be region hot data size times a configurable float factor: hbase.master.balancer.cacheaware.potentialCacheRatioAfterMove (defaults to 0.95); + +The available cache space to be considered for the "hypothetical" cache ratio on target server from moved low cached region is also defined by a configurable float factor: hbase.master.balancer.cacheaware.minFreeCacheSpaceFactor (defaults to 1.0f); + +For example, considering a cluster with total regions hot data size 100TB, total cache capacity 120TB, but having several regions with low cache ratio on their current servers, such that total cached hot data size is only 90TB and all regions are evenly distributed, so that there's no region skewness. Prior to these changes, if no region has cached data on servers other than the current server the regions are hosted on, CacheAwareCostFunction.cost for this setup would be 0 and no imbalan [...] + +With HBASE-30134 default configurations, the initial cache ratio for this deployment would be (9/10) and the CacheAwareCost value ~ (1 -(9/10)). + +The imbalance is then defined by: + +((CacheAwareCost.cost \* CacheAwareCost.multiplier) + (CacheAwareRegionSkewness.cost \* CacheAwareRegionSkewness.multiplier)) / (CacheAwareCost.multiplier + CacheAwareRegionSkewness.multiplier) + +In the example: (0.1 \* 20) + (0\*20) / (20 + 20) = 0.05 + +Balancer would be triggered, as the current imbalance is above the default hbase.master.balancer.stochastic.minCostNeedBalance value of 0.025. + + +--- + +* [HBASE-30132](https://issues.apache.org/jira/browse/HBASE-30132) | *Minor* | **Expose per column family storeFileSize JMX metric** + +Adds a per-column-family storeFileSize gauge under the RegionServer Tables MBean, exposed as Namespace\_\<namespace\>\_table\_\<tableName\>\_columnfamily\_\<columnfamilyName\>\_metric\_storeFileSize. + + + # HBASE 2.6.5 Release Notes These release notes cover new developer and user-facing incompatibilities, important issues, features, and major improvements. diff --git a/pom.xml b/pom.xml index 7f0c1ed528e..fcd33eef28c 100644 --- a/pom.xml +++ b/pom.xml @@ -523,7 +523,7 @@ </site> </distributionManagement> <properties> - <revision>2.6.6-SNAPSHOT</revision> + <revision>2.6.6</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>
