Apache9 commented on a change in pull request #2095:
URL: https://github.com/apache/hbase/pull/2095#discussion_r458457936



##########
File path: 
hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
##########
@@ -2928,13 +2928,27 @@ public GetActiveMasterResponse 
getActiveMaster(RpcController rpcController,
 
   @Override
   public GetMetaRegionLocationsResponse getMetaRegionLocations(RpcController 
rpcController,
-      GetMetaRegionLocationsRequest request) throws ServiceException {
-    GetMetaRegionLocationsResponse.Builder response = 
GetMetaRegionLocationsResponse.newBuilder();
-    Optional<List<HRegionLocation>> metaLocations =
-        master.getMetaRegionLocationCache().getMetaRegionLocations();
-    metaLocations.ifPresent(hRegionLocations -> hRegionLocations.forEach(
-      location -> 
response.addMetaLocations(ProtobufUtil.toRegionLocation(location))));
-    return response.build();
+    GetMetaRegionLocationsRequest request) throws ServiceException {
+    MetaLocationCache cache = master.getMetaLocationCache();
+    RegionLocations locs;
+    try {
+      if (cache != null) {
+        locs = cache.locateMeta(HConstants.EMPTY_BYTE_ARRAY, 
RegionLocateType.CURRENT);
+      } else {

Review comment:
       What @bharathv mean is we can reuse the cache interface to simpilify the 
code, not for performance. After switching to active master we should serve the 
requests with local region, as we do not want to keep a cache at active master 
which could be stale?




----------------------------------------------------------------
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.

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


Reply via email to