1fanwang opened a new pull request, #8570:
URL: https://github.com/apache/hbase/pull/8570

   The async client can update region replica locations one at a time after a 
move. Before this change, caching replicas 0, 1, and 2 separately left only one 
replica in the cache, so later lookups for the sibling replicas missed.
   
   Single-location updates now use a synchronized path that replaces only the 
matching replica. Different primary regions still use the existing replacement 
path, and complete metadata responses still control the replica-list length.
   
   Jira: https://issues.apache.org/jira/browse/HBASE-30165
   
   ## Verification
   
   The regression exercises `AsyncNonMetaRegionLocator.addLocationToCache` in 
ascending and descending replica order. It also checks that a different primary 
region with the same start key replaces stale siblings.
   
   <details>
   <summary>Commands and raw output</summary>
   
   Before, on `d11cafefbcbe8b356aaede41fcf9b153dbf2c2bc` with only the 
regression test applied:
   
   ```console
   $ JAVA_HOME=$(/usr/libexec/java_home -v 17) mvn -pl hbase-client 
-Dtest=TestAsyncRegionLocationCache test
   [ERROR] Tests run: 2, Failures: 1, Errors: 0, Skipped: 0
   [ERROR] 
TestAsyncRegionLocationCache.testAddingIndividualReplicasPreservesSiblings:55 
[0, 1, 2] ==> expected: <3> but was: <1>
   [INFO] BUILD FAILURE
   ```
   
   After:
   
   ```console
   $ JAVA_HOME=$(/usr/libexec/java_home -v 17) mvn -pl hbase-client 
-Dtest=TestAsyncRegionLocationCache test
   [INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
   [INFO] BUILD SUCCESS
   ```
   
   The only full-module failure is also present on unmodified master:
   
   ```console
   $ JAVA_HOME=$(/usr/libexec/java_home -v 17) mvn -pl hbase-client test
   [ERROR] TestRegistryEndpointsRefresher.testDurationBetweenRefreshes:121 40 
==> expected: <true> but was: <false>
   [ERROR] Tests run: 309, Failures: 1, Errors: 0, Skipped: 0
   
   $ git checkout d11cafefbcbe8b356aaede41fcf9b153dbf2c2bc
   $ JAVA_HOME=$(/usr/libexec/java_home -v 17) mvn -pl hbase-client 
-Dtest=TestRegistryEndpointsRefresher#testDurationBetweenRefreshes test
   [ERROR] TestRegistryEndpointsRefresher.testDurationBetweenRefreshes:121 36 
==> expected: <true> but was: <false>
   [INFO] BUILD FAILURE
   ```
   
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to