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


Java FileDiffList.getSnapshotById方法代码示例

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


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

示例1: computeQuotaUsage

import org.apache.hadoop.hdfs.server.namenode.snapshot.FileDiffList; //导入方法依赖的package包/类
@Override
public final Quota.Counts computeQuotaUsage(Quota.Counts counts,
    boolean useCache, int lastSnapshotId) {
  long nsDelta = 1;
  final long dsDelta;
  FileWithSnapshotFeature sf = getFileWithSnapshotFeature();
  if (sf != null) {
    FileDiffList fileDiffList = sf.getDiffs();
    int last = fileDiffList.getLastSnapshotId();

    if (lastSnapshotId == Snapshot.CURRENT_STATE_ID
        || last == Snapshot.CURRENT_STATE_ID) {
      dsDelta = diskspaceConsumed();
    } else if (last < lastSnapshotId) {
      dsDelta = computeFileSize(true, false) * getFileReplication();
    } else {      
      int sid = fileDiffList.getSnapshotById(lastSnapshotId);
      dsDelta = diskspaceConsumed(sid);
    }
  } else {
    dsDelta = diskspaceConsumed();
  }
  counts.add(Quota.NAMESPACE, nsDelta);
  counts.add(Quota.DISKSPACE, dsDelta);
  return counts;
}
 
开发者ID:Nextzero,项目名称:hadoop-2.6.0-cdh5.4.3,代码行数:27,代码来源:INodeFile.java

示例2: computeQuotaUsage

import org.apache.hadoop.hdfs.server.namenode.snapshot.FileDiffList; //导入方法依赖的package包/类
@Override
public final Quota.Counts computeQuotaUsage(Quota.Counts counts,
    boolean useCache, int lastSnapshotId) {
  long nsDelta = 1;
  final long dsDelta;
  FileWithSnapshotFeature sf = getFileWithSnapshotFeature();
  if (sf != null) {
    FileDiffList fileDiffList = sf.getDiffs();
    int last = fileDiffList.getLastSnapshotId();
    List<FileDiff> diffs = fileDiffList.asList();

    if (lastSnapshotId == Snapshot.CURRENT_STATE_ID
        || last == Snapshot.CURRENT_STATE_ID) {
      nsDelta += diffs.size();
      dsDelta = diskspaceConsumed();
    } else if (last < lastSnapshotId) {
      dsDelta = computeFileSize(true, false) * getFileReplication();
    } else {      
      int sid = fileDiffList.getSnapshotById(lastSnapshotId);
      dsDelta = diskspaceConsumed(sid);
    }
  } else {
    dsDelta = diskspaceConsumed();
  }
  counts.add(Quota.NAMESPACE, nsDelta);
  counts.add(Quota.DISKSPACE, dsDelta);
  return counts;
}
 
开发者ID:yncxcw,项目名称:FlexMap,代码行数:29,代码来源:INodeFile.java

示例3: computeQuotaUsage

import org.apache.hadoop.hdfs.server.namenode.snapshot.FileDiffList; //导入方法依赖的package包/类
@Override
public final QuotaCounts computeQuotaUsage(
    BlockStoragePolicySuite bsps, byte blockStoragePolicyId,
    QuotaCounts counts, boolean useCache,
    int lastSnapshotId) {
  long nsDelta = 1;
  final long ssDeltaNoReplication;
  short replication;
  FileWithSnapshotFeature sf = getFileWithSnapshotFeature();
  if (sf != null) {
    FileDiffList fileDiffList = sf.getDiffs();
    int last = fileDiffList.getLastSnapshotId();

    if (lastSnapshotId == Snapshot.CURRENT_STATE_ID
        || last == Snapshot.CURRENT_STATE_ID) {
      ssDeltaNoReplication = storagespaceConsumedNoReplication();
      replication = getBlockReplication();
    } else if (last < lastSnapshotId) {
      ssDeltaNoReplication = computeFileSize(true, false);
      replication = getFileReplication();
    } else {
      int sid = fileDiffList.getSnapshotById(lastSnapshotId);
      ssDeltaNoReplication = storagespaceConsumedNoReplication(sid);
      replication = getReplication(sid);
    }
  } else {
    ssDeltaNoReplication = storagespaceConsumedNoReplication();
    replication = getBlockReplication();
  }
  counts.addNameSpace(nsDelta);
  counts.addStorageSpace(ssDeltaNoReplication * replication);

  if (blockStoragePolicyId != ID_UNSPECIFIED){
    BlockStoragePolicy bsp = bsps.getPolicy(blockStoragePolicyId);
    List<StorageType> storageTypes = bsp.chooseStorageTypes(replication);
    for (StorageType t : storageTypes) {
      if (!t.supportTypeQuota()) {
        continue;
      }
      counts.addTypeSpace(t, ssDeltaNoReplication);
    }
  }
  return counts;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:45,代码来源:INodeFile.java

示例4: computeQuotaUsage

import org.apache.hadoop.hdfs.server.namenode.snapshot.FileDiffList; //导入方法依赖的package包/类
@Override
public final QuotaCounts computeQuotaUsage(BlockStoragePolicySuite bsps,
    byte blockStoragePolicyId, boolean useCache, int lastSnapshotId) {
  final QuotaCounts counts = new QuotaCounts.Builder().nameSpace(1).build();

  final BlockStoragePolicy bsp = (blockStoragePolicyId ==
      BLOCK_STORAGE_POLICY_ID_UNSPECIFIED) ? null :
      bsps.getPolicy(blockStoragePolicyId);
  FileWithSnapshotFeature sf = getFileWithSnapshotFeature();
  if (sf == null) {
    counts.add(storagespaceConsumed(bsp));
    return counts;
  }

  FileDiffList fileDiffList = sf.getDiffs();
  int last = fileDiffList.getLastSnapshotId();

  if (lastSnapshotId == Snapshot.CURRENT_STATE_ID
      || last == Snapshot.CURRENT_STATE_ID) {
    counts.add(storagespaceConsumed(bsp));
    return counts;
  }

  final long ssDeltaNoReplication;
  short replication;
  if (isStriped()) {
    return computeQuotaUsageWithStriped(bsp, counts);
  }

  if (last < lastSnapshotId) {
    ssDeltaNoReplication = computeFileSize(true, false);
    replication = getFileReplication();
  } else {
    int sid = fileDiffList.getSnapshotById(lastSnapshotId);
    ssDeltaNoReplication = computeFileSize(sid);
    replication = getFileReplication(sid);
  }

  counts.addStorageSpace(ssDeltaNoReplication * replication);
  if (bsp != null) {
    List<StorageType> storageTypes = bsp.chooseStorageTypes(replication);
    for (StorageType t : storageTypes) {
      if (!t.supportTypeQuota()) {
        continue;
      }
      counts.addTypeSpace(t, ssDeltaNoReplication);
    }
  }
  return counts;
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:51,代码来源:INodeFile.java


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