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
>>> > MetaUtils.ScannerListener() {
>>> >             public boolean processRow(HRegionInfo info) {
>>> >               if ((info != null) &&
>>> > (Bytes.compareTo(info.getTableName(), tableName) == 0)) {
>>> >                 regions.add(info);
>>> >               }
>>> >               return true;
>>> >             }
>>> >           });
>>> >
>>> >
>>> > Is there a recommanded way to replace that? The Merge is running
>>> > offline, so I can't do a scan.
>>> >
>>> > Thanks,
>>> >
>>> > JM
>>>

Reply via email to