HBASE-8075 Matteo
On Tue, Jun 14, 2016 at 7:40 AM, Stephen Jiang <[email protected]> wrote: > In RSRpcServices#closeRegion(), it calls RegionCoprocessorHost#preClose() > first, then calls HRegionServer#closeRegion(). > > In HRegionServer#closeRegion(), the RegionCoprocessorHost#preClose() is > called again. > > I just wonder whether the RegionCoprocessorHost#preClose() call > in RSRpcServices#closeRegion() is unnecessary. Anyone has idea? The code > seems there forever. > > I think we should be able to remove the call in RSRpcServices#closeRegion() > and rely on HRegionServer#closeRegion() call for this CP. > > {code} > > @Override > > @QosPriority(priority=HConstants.ADMIN_QOS) > > public CloseRegionResponse closeRegion(final RpcController controller, > > final CloseRegionRequest request) throws ServiceException { > > ... > > // Can be null if we're calling close on a region that's not online > > final Region region = regionServer.getFromOnlineRegions( > encodedRegionName); > > if ((region != null) && (region .getCoprocessorHost() != null)) { > > region.getCoprocessorHost().preClose(false); > > } > > ... > > boolean closed = regionServer.closeRegion(encodedRegionName, false, > sn > ); > > {code} >
