hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matteo Bertozzi <theo.berto...@gmail.com>
Subject Re: RegionCoprocessorHost.preClose() execute multiple times
Date Tue, 14 Jun 2016 06:21:38 GMT
HBASE-8075

Matteo


On Tue, Jun 14, 2016 at 7:40 AM, Stephen Jiang <syuanjiangdev@gmail.com>
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}
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message