Since compactions are long running, async jobs anyways, I don't see much gain in grouping these together. Sure, we might save a round-trip, but these are neither high-volume calls nor bottle-necked in the RTT of the request.
It could be nice to see this unified though into a general multi-region Callable that can do do this same logic cleanly; certainly could think of a couple places we might want to do that. ------------------- Jesse Yates @jesse_yates jyates.github.com On Wed, Mar 20, 2013 at 2:14 PM, Ted Yu <[email protected]> wrote: > Hi, > I was looking at how compaction is invoked from HBaseAdmin (line 1460 in > trunk code) > > final String tableName = tableNameString(tableNameOrRegionName, > ct); > > List<Pair<HRegionInfo, ServerName>> pairs = > > MetaReader.getTableRegionsAndLocations(ct, > > tableName); > > for (Pair<HRegionInfo, ServerName> pair: pairs) { > > if (pair.getFirst().isOffline()) continue; > > if (pair.getSecond() == null) continue; > > try { > > compact(pair.getSecond(), pair.getFirst(), major, > columnFamily); > > We issue one compaction request per region. > > Looks like we can group regions which reside on the same server and make > one network trip per region server. > > > Your comment on this would be appreciated. >
