当前位置: 首页>>代码示例>>Java>>正文


Java ObserverContext.bypass方法代码示例

本文整理汇总了Java中org.apache.hadoop.hbase.coprocessor.ObserverContext.bypass方法的典型用法代码示例。如果您正苦于以下问题:Java ObserverContext.bypass方法的具体用法?Java ObserverContext.bypass怎么用?Java ObserverContext.bypass使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.hadoop.hbase.coprocessor.ObserverContext的用法示例。


在下文中一共展示了ObserverContext.bypass方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: preBatchMutate

import org.apache.hadoop.hbase.coprocessor.ObserverContext; //导入方法依赖的package包/类
@Override
public void preBatchMutate(final ObserverContext<RegionCoprocessorEnvironment> c,
                           final MiniBatchOperationInProgress<Mutation> miniBatchOp)
    throws IOException {
  if (ops.incrementAndGet() % 20000 == 0) {
    LOG.info("Wrote " + ops.get() + " times in region " + regionName);
  }

  for (int i = 0; i < miniBatchOp.size(); i++) {
    miniBatchOp.setOperationStatus(i,
        new OperationStatus(HConstants.OperationStatusCode.SUCCESS));
  }
  c.bypass();
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:15,代码来源:WriteSinkCoprocessor.java

示例2: preGetOp

import org.apache.hadoop.hbase.coprocessor.ObserverContext; //导入方法依赖的package包/类
@Override
public void preGetOp(final ObserverContext<RegionCoprocessorEnvironment> c,
    final Get get, final List<Cell> result) throws IOException {
  if (get.getAttribute("count") != null) {
    result.clear();
    // order is important!
    result.add(new KeyValue(count, count, delete, Bytes.toBytes(nDelete)));
    result.add(new KeyValue(count, count, put, Bytes.toBytes(nCount)));
    c.bypass();
  }
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:12,代码来源:TestMasterReplication.java

示例3: prePut

import org.apache.hadoop.hbase.coprocessor.ObserverContext; //导入方法依赖的package包/类
@Override
public void prePut(ObserverContext<RegionCoprocessorEnvironment> e, Put put, WALEdit edit,
    Durability durability) throws IOException {
  Region region = e.getEnvironment().getRegion();
  if (!region.getRegionInfo().isMetaTable()
      && !region.getRegionInfo().getTable().isSystemTable()) {
    if (put.getAttribute(TEST_ATR_KEY) != null) {
      LOG.debug("allow any put to happen " + region.getRegionInfo().getRegionNameAsString());
    } else {
      e.bypass();
    }
  }
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:14,代码来源:TestImportTSVWithOperationAttributes.java

示例4: prePrepareTimeStampForDeleteVersion

import org.apache.hadoop.hbase.coprocessor.ObserverContext; //导入方法依赖的package包/类
@Override
public void prePrepareTimeStampForDeleteVersion(
    ObserverContext<RegionCoprocessorEnvironment> ctx, Mutation delete, Cell cell,
    byte[] byteNow, Get get) throws IOException {
  // Nothing to do if we are not filtering by visibility
  if (!authorizationEnabled) {
    return;
  }

  CellVisibility cellVisibility = null;
  try {
    cellVisibility = delete.getCellVisibility();
  } catch (DeserializationException de) {
    throw new IOException("Invalid cell visibility specified " + delete, de);
  }
  // The check for checkForReservedVisibilityTagPresence happens in preBatchMutate happens.
  // It happens for every mutation and that would be enough.
  List<Tag> visibilityTags = new ArrayList<Tag>();
  if (cellVisibility != null) {
    String labelsExp = cellVisibility.getExpression();
    try {
      visibilityTags = this.visibilityLabelService.createVisibilityExpTags(labelsExp, false,
          false);
    } catch (InvalidLabelException e) {
      throw new IOException("Invalid cell visibility specified " + labelsExp, e);
    }
  }
  get.setFilter(new DeleteVersionVisibilityExpressionFilter(visibilityTags,
      VisibilityConstants.SORTED_ORDINAL_SERIALIZATION_FORMAT));
  List<Cell> result = ctx.getEnvironment().getRegion().get(get, false);

  if (result.size() < get.getMaxVersions()) {
    // Nothing to delete
    CellUtil.updateLatestStamp(cell, Long.MIN_VALUE);
    return;
  }
  if (result.size() > get.getMaxVersions()) {
    throw new RuntimeException("Unexpected size: " + result.size()
        + ". Results more than the max versions obtained.");
  }
  Cell getCell = result.get(get.getMaxVersions() - 1);
  CellUtil.setTimestamp(cell, getCell.getTimestamp());

  // We are bypassing here because in the HRegion.updateDeleteLatestVersionTimeStamp we would
  // update with the current timestamp after again doing a get. As the hook as already determined
  // the needed timestamp we need to bypass here.
  // TODO : See if HRegion.updateDeleteLatestVersionTimeStamp() could be
  // called only if the hook is not called.
  ctx.bypass();
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:51,代码来源:VisibilityController.java

示例5: preSplitBeforePONR

import org.apache.hadoop.hbase.coprocessor.ObserverContext; //导入方法依赖的package包/类
@Override
public void preSplitBeforePONR(ObserverContext<RegionCoprocessorEnvironment> ctx,
    byte[] splitKey, List<Mutation> metaEntries) throws IOException {
  RegionCoprocessorEnvironment environment = ctx.getEnvironment();
  HRegionServer rs = (HRegionServer) environment.getRegionServerServices();
  List<Region> onlineRegions =
      rs.getOnlineRegions(TableName.valueOf("testSplitHooksBeforeAndAfterPONR_2"));
  Region region = onlineRegions.get(0);
  for (Region r : onlineRegions) {
    if (r.getRegionInfo().containsRow(splitKey)) {
      region = r;
      break;
    }
  }
  st = new SplitTransactionImpl((HRegion) region, splitKey);
  if (!st.prepare()) {
    LOG.error("Prepare for the table " + region.getTableDesc().getNameAsString()
        + " failed. So returning null. ");
    ctx.bypass();
    return;
  }
  ((HRegion)region).forceSplit(splitKey);
  daughterRegions = st.stepsBeforePONR(rs, rs, false);
  HRegionInfo copyOfParent = new HRegionInfo(region.getRegionInfo());
  copyOfParent.setOffline(true);
  copyOfParent.setSplit(true);
  // Put for parent
  Put putParent = MetaTableAccessor.makePutFromRegionInfo(copyOfParent);
  MetaTableAccessor.addDaughtersToPut(putParent, daughterRegions.getFirst().getRegionInfo(),
    daughterRegions.getSecond().getRegionInfo());
  metaEntries.add(putParent);
  // Puts for daughters
  Put putA = MetaTableAccessor.makePutFromRegionInfo(
    daughterRegions.getFirst().getRegionInfo());
  Put putB = MetaTableAccessor.makePutFromRegionInfo(
    daughterRegions.getSecond().getRegionInfo());
  st.addLocation(putA, rs.getServerName(), 1);
  st.addLocation(putB, rs.getServerName(), 1);
  metaEntries.add(putA);
  metaEntries.add(putB);
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:42,代码来源:TestSplitTransactionOnCluster.java


注:本文中的org.apache.hadoop.hbase.coprocessor.ObserverContext.bypass方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。