Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
HBase, mail # dev - Re: How to replace MetaUtils.ScannerListener?


Copy link to this message
-
Re: How to replace MetaUtils.ScannerListener?
Jean-Marc Spaggiari 2013-03-22, 02:07
Hi Enis,

I totaly agree. But even if online merge are available, maybe offline
merges can still usefull in case the cluster is down for maintenance,
or because there is any issue to start it, or anything else? We have
it, so we should maybe try to keep it?

JM

2013/3/21 Enis Söztutar <[EMAIL PROTECTED]>:
> Thanks J-M.
>
> What I am trying to understand is that whether we should cut the cord for
> offline merge once online is working. If you think about it, there should
> not be a need to merge offline tables.
>
> Enis
>
>
> On Thu, Mar 21, 2013 at 3:16 PM, Jean-Marc Spaggiari <
> [EMAIL PROTECTED]> wrote:
>
>> Offline merge is already there and working fine.
>>
>> The usecase here was to retreive all the regions for a given table to
>> merge them 2 by 2, offline.
>>
>> It's working fine, but since the Meta rework it's not working anymore
>> and I'm trying to rebase the patch.
>>
>> Like J-D is saying, yes, it's used only in the offline merge... And
>> since the online merge is coming, I think it's cleaner to keep the
>> code in the offline merge since it will disapear soon, but in the
>> meantime, at least, we will have the offline one.
>>
>> JM
>>
>> 2013/3/21 Enis Söztutar <[EMAIL PROTECTED]>:
>> > What is the use case behind offline merge? Is it because we cannot do
>> > online merge yet? If we can get HBASE-7403 in, is there still need to
>> > support offline merge?
>> >
>> > Enis
>> >
>> >
>> > On Thu, Mar 21, 2013 at 2:56 PM, Jean-Daniel Cryans <[EMAIL PROTECTED]
>> >wrote:
>> >
>> >> As far as I can tell, only the merge code uses MetaUtils to do offline
>> >> work. If this is the code you are in then pull it back into MetaUtils
>> >> I think.
>> >>
>> >> J-D
>> >>
>> >> On Thu, Mar 21, 2013 at 2:44 PM, Jean-Marc Spaggiari
>> >> <[EMAIL PROTECTED]> wrote:
>> >> > Vector is because of a very old bad habit ;) I will change that to
>> >> ArrayList.
>> >> >
>> >> > So far I have inlined the scanMetaRegion feature into the Merge, but
>> >> > maybe it should be cleaner to put it back in?
>> >> >
>> >> > Anyway, I will keep the inlined one until everything is cleaned.
>> >> >
>> >> > 2013/3/21 Enis Söztutar <[EMAIL PROTECTED]>:
>> >> >> The problem around current META scanning is that there is more than
>> one
>> >> way
>> >> >> to do these, and the META layout is exposed. We should refrain from
>> >> >> exposing the META details.
>> >> >> AFAIK, these do the same thing:
>> >> >>  MetaReader.Visitor
>> >> >>  MetaScanner.MetaScannerVisitor, and
>> >> >>  MetaUtils.ScannerListener
>> >> >>
>> >> >> More concerning is that the code for managing META is spread over
>> >> >> MetaEditor, MetaReader, MetaScanner, MetaUtils, HRegionInfo (and
>> maybe
>> >> >> more). There are a couple of issues to rework these interfaces, but I
>> >> did
>> >> >> not get the chance to work on those.
>> >> >>
>> >> >>
>> >> >> Enis
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >> On Thu, Mar 21, 2013 at 2:18 PM, Jean-Daniel Cryans <
>> >> [EMAIL PROTECTED]>wrote:
>> >> >>
>> >> >>> Mmmm I may have been trigger happy. You could pull back the
>> >> >>> ScannerListener and scanMetaRegion.
>> >> >>>
>> >> >>> BTW, why are you using a Vector instead of ArrayList?
>> >> >>>
>> >> >>> J-D
>> >> >>>
>> >> >>> On Thu, Mar 21, 2013 at 2:05 PM, Jean-Marc Spaggiari
>> >> >>> <[EMAIL PROTECTED]> wrote:
>> >> >>> > Hi,
>> >> >>> >
>> >> >>> > In trunk, since HBASE-3171 (Drop ROOT and instead store META
>> >> >>> > location(s) directly in ZooKeeper ) there is no more
>> >> >>> > MetaUtils.ScannerListener.
>> >> >>> >
>> >> >>> > In the merge, I used it to retreive all the regions belonging to a
>> >> >>> > specific table, from the META. kind of scan.
>> >> >>> >
>> >> >>> >           // Retrieve the list of regions for this table.
>> >> >>> >           final List<HRegionInfo> regions = new
>> >> Vector<HRegionInfo>();
>> >> >>> >           utils.scanMetaRegion(HRegionInfo.FIRST_META_REGIONINFO,
>> new
>> >> >