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 > >>> > 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 > >>> >
