hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stephen Jiang <syuanjiang...@gmail.com>
Subject Re: RegionCoprocessorHost.preClose() execute multiple times
Date Tue, 14 Jun 2016 16:43:33 GMT
thanks, Matteo.  I am surprised that this ancient JIRA is still OPEN.  I
put my comment in the JIRA and proposed a patch.

Thanks
Stephen

On Mon, Jun 13, 2016 at 11:21 PM, Matteo Bertozzi <theo.bertozzi@gmail.com>
wrote:

> 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