當前位置: 首頁>>代碼示例>>Java>>正文


Java HRegionInfo.areAdjacent方法代碼示例

本文整理匯總了Java中org.apache.hadoop.hbase.HRegionInfo.areAdjacent方法的典型用法代碼示例。如果您正苦於以下問題:Java HRegionInfo.areAdjacent方法的具體用法?Java HRegionInfo.areAdjacent怎麽用?Java HRegionInfo.areAdjacent使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.apache.hadoop.hbase.HRegionInfo的用法示例。


在下文中一共展示了HRegionInfo.areAdjacent方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: prepare

import org.apache.hadoop.hbase.HRegionInfo; //導入方法依賴的package包/類
/**
 * Does checks on merge inputs.
 * @param services
 * @return <code>true</code> if the regions are mergeable else
 *         <code>false</code> if they are not (e.g. its already closed, etc.).
 */
@Override
public boolean prepare(final RegionServerServices services) throws IOException {
  if (!region_a.getTableDesc().getTableName()
      .equals(region_b.getTableDesc().getTableName())) {
    LOG.info("Can't merge regions " + region_a + "," + region_b
        + " because they do not belong to the same table");
    return false;
  }
  if (region_a.getRegionInfo().equals(region_b.getRegionInfo())) {
    LOG.info("Can't merge the same region " + region_a);
    return false;
  }
  if (!forcible && !HRegionInfo.areAdjacent(region_a.getRegionInfo(),
          region_b.getRegionInfo())) {
    String msg = "Skip merging " + this.region_a.getRegionInfo().getRegionNameAsString()
        + " and " + this.region_b.getRegionInfo().getRegionNameAsString()
        + ", because they are not adjacent.";
    LOG.info(msg);
    return false;
  }
  if (!this.region_a.isMergeable() || !this.region_b.isMergeable()) {
    return false;
  }
  try {
    boolean regionAHasMergeQualifier = hasMergeQualifierInMeta(services,
        region_a.getRegionInfo().getRegionName());
    if (regionAHasMergeQualifier ||
        hasMergeQualifierInMeta(services, region_b.getRegionInfo().getRegionName())) {
      LOG.debug("Region " + (regionAHasMergeQualifier ?
            region_a.getRegionInfo().getRegionNameAsString() :
              region_b.getRegionInfo().getRegionNameAsString())
          + " is not mergeable because it has merge qualifier in META");
      return false;
    }
  } catch (IOException e) {
    LOG.warn("Failed judging whether merge transaction is available for "
            + region_a.getRegionInfo().getRegionNameAsString() + " and "
            + region_b.getRegionInfo().getRegionNameAsString(), e);
    return false;
  }

  // WARN: make sure there is no parent region of the two merging regions in
  // hbase:meta If exists, fixing up daughters would cause daughter regions(we
  // have merged one) online again when we restart master, so we should clear
  // the parent region to prevent the above case
  // Since HBASE-7721, we don't need fix up daughters any more. so here do
  // nothing

  this.mergedRegionInfo = getMergedRegionInfo(region_a.getRegionInfo(),
      region_b.getRegionInfo());

  transition(RegionMergeTransactionPhase.PREPARED);
  return true;
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:61,代碼來源:RegionMergeTransactionImpl.java


注:本文中的org.apache.hadoop.hbase.HRegionInfo.areAdjacent方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。