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


Java UndoInfo类代码示例

本文整理汇总了Java中org.apache.hadoop.hdfs.util.Diff.UndoInfo的典型用法代码示例。如果您正苦于以下问题:Java UndoInfo类的具体用法?Java UndoInfo怎么用?Java UndoInfo使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


UndoInfo类属于org.apache.hadoop.hdfs.util.Diff包,在下文中一共展示了UndoInfo类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: removeChild

import org.apache.hadoop.hdfs.util.Diff.UndoInfo; //导入依赖的package包/类
/**
 * Remove an inode from parent's children list. The caller of this method
 * needs to make sure that parent is in the given snapshot "latest".
 */
public boolean removeChild(INodeDirectory parent, INode child,
    int latestSnapshotId) {
  // For a directory that is not a renamed node, if isInLatestSnapshot returns
  // false, the directory is not in the latest snapshot, thus we do not need
  // to record the removed child in any snapshot.
  // For a directory that was moved/renamed, note that if the directory is in
  // any of the previous snapshots, we will create a reference node for the
  // directory while rename, and isInLatestSnapshot will return true in that
  // scenario (if all previous snapshots have been deleted, isInLatestSnapshot
  // still returns false). Thus if isInLatestSnapshot returns false, the
  // directory node cannot be in any snapshot (not in current tree, nor in
  // previous src tree). Thus we do not need to record the removed child in
  // any snapshot.
  ChildrenDiff diff = diffs.checkAndAddLatestSnapshotDiff(latestSnapshotId,
      parent).diff;
  UndoInfo<INode> undoInfo = diff.delete(child);

  final boolean removed = parent.removeChild(child);
  if (!removed && undoInfo != null) {
    // remove failed, undo
    diff.undoDelete(child, undoInfo);
  }
  return removed;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:29,代码来源:DirectoryWithSnapshotFeature.java

示例2: delete

import org.apache.hadoop.hdfs.util.Diff.UndoInfo; //导入依赖的package包/类
static void delete(INode inode, final List<INode> current,
    Diff<byte[], INode> diff) {
  final int i = Diff.search(current, inode.getKey());
  current.remove(i);
  if (diff != null) {
    //test undo with 1/UNDO_TEST_P probability
    final boolean testUndo = RANDOM.nextInt(UNDO_TEST_P) == 0;
    String before = null;
    if (testUndo) {
      before = diff.toString();
    }

    final UndoInfo<INode> undoInfo = diff.delete(inode);

    if (testUndo) {
      final String after = diff.toString();
      //undo
      diff.undoDelete(inode, undoInfo);
      assertDiff(before, diff);
      //re-do
      diff.delete(inode);
      assertDiff(after, diff);
    }
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:26,代码来源:TestDiff.java

示例3: removeChild

import org.apache.hadoop.hdfs.util.Diff.UndoInfo; //导入依赖的package包/类
/**
 * Remove an inode from parent's children list. The caller of this method
 * needs to make sure that parent is in the given snapshot "latest".
 */
public boolean removeChild(INodeDirectory parent, INode child,
    int latestSnapshotId) throws QuotaExceededException {
  // For a directory that is not a renamed node, if isInLatestSnapshot returns
  // false, the directory is not in the latest snapshot, thus we do not need
  // to record the removed child in any snapshot.
  // For a directory that was moved/renamed, note that if the directory is in
  // any of the previous snapshots, we will create a reference node for the
  // directory while rename, and isInLatestSnapshot will return true in that
  // scenario (if all previous snapshots have been deleted, isInLatestSnapshot
  // still returns false). Thus if isInLatestSnapshot returns false, the
  // directory node cannot be in any snapshot (not in current tree, nor in
  // previous src tree). Thus we do not need to record the removed child in
  // any snapshot.
  ChildrenDiff diff = diffs.checkAndAddLatestSnapshotDiff(latestSnapshotId,
      parent).diff;
  UndoInfo<INode> undoInfo = diff.delete(child);

  final boolean removed = parent.removeChild(child);
  if (!removed && undoInfo != null) {
    // remove failed, undo
    diff.undoDelete(child, undoInfo);
  }
  return removed;
}
 
开发者ID:yncxcw,项目名称:FlexMap,代码行数:29,代码来源:DirectoryWithSnapshotFeature.java

示例4: modify

import org.apache.hadoop.hdfs.util.Diff.UndoInfo; //导入依赖的package包/类
static void modify(INode inode, final List<INode> current,
    Diff<byte[], INode> diff) {
  final int i = Diff.search(current, inode.getKey());
  Assert.assertTrue(i >= 0);
  final INodeDirectory oldinode = (INodeDirectory)current.get(i);
  final INodeDirectory newinode = new INodeDirectory(oldinode, false,
    oldinode.getFeatures());
  newinode.setModificationTime(oldinode.getModificationTime() + 1);

  current.set(i, newinode);
  if (diff != null) {
    //test undo with 1/UNDO_TEST_P probability
    final boolean testUndo = RANDOM.nextInt(UNDO_TEST_P) == 0;
    String before = null;
    if (testUndo) {
      before = diff.toString();
    }

    final UndoInfo<INode> undoInfo = diff.modify(oldinode, newinode);

    if (testUndo) {
      final String after = diff.toString();
      //undo
      diff.undoModify(oldinode, newinode, undoInfo);
      assertDiff(before, diff);
      //re-do
      diff.modify(oldinode, newinode);
      assertDiff(after, diff);
    }
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:32,代码来源:TestDiff.java

示例5: removeChild

import org.apache.hadoop.hdfs.util.Diff.UndoInfo; //导入依赖的package包/类
@Override
public boolean removeChild(INode child, Snapshot latest,
    final INodeMap inodeMap) throws QuotaExceededException {
  ChildrenDiff diff = null;
  UndoInfo<INode> undoInfo = null;
  // For a directory that is not a renamed node, if isInLatestSnapshot returns
  // false, the directory is not in the latest snapshot, thus we do not need
  // to record the removed child in any snapshot.
  // For a directory that was moved/renamed, note that if the directory is in
  // any of the previous snapshots, we will create a reference node for the 
  // directory while rename, and isInLatestSnapshot will return true in that
  // scenario (if all previous snapshots have been deleted, isInLatestSnapshot
  // still returns false). Thus if isInLatestSnapshot returns false, the 
  // directory node cannot be in any snapshot (not in current tree, nor in 
  // previous src tree). Thus we do not need to record the removed child in 
  // any snapshot.
  if (isInLatestSnapshot(latest)) {
    diff = diffs.checkAndAddLatestSnapshotDiff(latest, this).diff;
    undoInfo = diff.delete(child);
  }
  final boolean removed = removeChild(child);
  if (undoInfo != null) {
    if (!removed) {
      //remove failed, undo
      diff.undoDelete(child, undoInfo);
    }
  }
  return removed;
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:30,代码来源:INodeDirectoryWithSnapshot.java

示例6: modify

import org.apache.hadoop.hdfs.util.Diff.UndoInfo; //导入依赖的package包/类
static void modify(INode inode, final List<INode> current,
    Diff<byte[], INode> diff) {
  final int i = Diff.search(current, inode.getKey());
  Assert.assertTrue(i >= 0);
  final INodeDirectory oldinode = (INodeDirectory)current.get(i);
  final INodeDirectory newinode = new INodeDirectory(oldinode, false);
  newinode.setModificationTime(oldinode.getModificationTime() + 1);

  current.set(i, newinode);
  if (diff != null) {
    //test undo with 1/UNDO_TEST_P probability
    final boolean testUndo = RANDOM.nextInt(UNDO_TEST_P) == 0;
    String before = null;
    if (testUndo) {
      before = diff.toString();
    }

    final UndoInfo<INode> undoInfo = diff.modify(oldinode, newinode);

    if (testUndo) {
      final String after = diff.toString();
      //undo
      diff.undoModify(oldinode, newinode, undoInfo);
      assertDiff(before, diff);
      //re-do
      diff.modify(oldinode, newinode);
      assertDiff(after, diff);
    }
  }
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:31,代码来源:TestDiff.java


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