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


Java Nfs3Status.NFS3ERR_IO属性代码示例

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


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

示例1: mapErrorStatus

private int mapErrorStatus(IOException e) {
  if (e instanceof FileNotFoundException) {
    return Nfs3Status.NFS3ERR_STALE;
  } else if (e instanceof AccessControlException) {
    return Nfs3Status.NFS3ERR_ACCES;
  } else {
    return Nfs3Status.NFS3ERR_IO;
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:9,代码来源:RpcProgramNfs3.java

示例2: commitBeforeRead

int commitBeforeRead(DFSClient dfsClient, FileHandle fileHandle,
    long commitOffset) {
  int status;
  OpenFileCtx openFileCtx = fileContextCache.get(fileHandle);

  if (openFileCtx == null) {
    if (LOG.isDebugEnabled()) {
      LOG.debug("No opened stream for fileId: " + fileHandle.getFileId()
          + " commitOffset=" + commitOffset
          + ". Return success in this case.");
    }
    status = Nfs3Status.NFS3_OK;

  } else {
    // commit request triggered by read won't create pending comment obj
    COMMIT_STATUS ret = openFileCtx.checkCommit(dfsClient, commitOffset,
        null, 0, null, true);
    switch (ret) {
    case COMMIT_FINISHED:
    case COMMIT_INACTIVE_CTX:
      status = Nfs3Status.NFS3_OK;
      break;
    case COMMIT_INACTIVE_WITH_PENDING_WRITE:
    case COMMIT_ERROR:
      status = Nfs3Status.NFS3ERR_IO;
      break;
    case COMMIT_WAIT:
    case COMMIT_SPECIAL_WAIT:
      /**
       * This should happen rarely in some possible cases, such as read
       * request arrives before DFSClient is able to quickly flush data to DN,
       * or Prerequisite writes is not available. Won't wait since we don't
       * want to block read.
       */     
      status = Nfs3Status.NFS3ERR_JUKEBOX;
      break;
    case COMMIT_SPECIAL_SUCCESS:
      // Read beyond eof could result in partial read
      status = Nfs3Status.NFS3_OK;
      break;
    default:
      LOG.error("Should not get commit return code: " + ret.name());
      throw new RuntimeException("Should not get commit return code: "
          + ret.name());
    }
  }
  return status;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:48,代码来源:WriteManager.java

示例3: handleCommit

void handleCommit(DFSClient dfsClient, FileHandle fileHandle,
    long commitOffset, Channel channel, int xid, Nfs3FileAttributes preOpAttr) {
  long startTime = System.nanoTime();
  int status;
  OpenFileCtx openFileCtx = fileContextCache.get(fileHandle);

  if (openFileCtx == null) {
    LOG.info("No opened stream for fileId: " + fileHandle.getFileId()
        + " commitOffset=" + commitOffset + ". Return success in this case.");
    status = Nfs3Status.NFS3_OK;
    
  } else {
    COMMIT_STATUS ret = openFileCtx.checkCommit(dfsClient, commitOffset,
        channel, xid, preOpAttr, false);
    switch (ret) {
    case COMMIT_FINISHED:
    case COMMIT_INACTIVE_CTX:
      status = Nfs3Status.NFS3_OK;
      break;
    case COMMIT_INACTIVE_WITH_PENDING_WRITE:
    case COMMIT_ERROR:
      status = Nfs3Status.NFS3ERR_IO;
      break;
    case COMMIT_WAIT:
      // Do nothing. Commit is async now.
      return;
    case COMMIT_SPECIAL_WAIT:
      status = Nfs3Status.NFS3ERR_JUKEBOX;
      break;
    case COMMIT_SPECIAL_SUCCESS:
      status = Nfs3Status.NFS3_OK;
      break;
    default:
      LOG.error("Should not get commit return code: " + ret.name());
      throw new RuntimeException("Should not get commit return code: "
          + ret.name());
    }
  }
  
  // Send out the response
  Nfs3FileAttributes postOpAttr = null;
  try {
    postOpAttr = getFileAttr(dfsClient, new FileHandle(preOpAttr.getFileId()), iug);
  } catch (IOException e1) {
    LOG.info("Can't get postOpAttr for fileId: " + preOpAttr.getFileId(), e1);
  }
  WccData fileWcc = new WccData(Nfs3Utils.getWccAttr(preOpAttr), postOpAttr);
  COMMIT3Response response = new COMMIT3Response(status, fileWcc,
      Nfs3Constant.WRITE_COMMIT_VERF);
  RpcProgramNfs3.metrics.addCommit(Nfs3Utils.getElapsedTime(startTime));
  Nfs3Utils.writeChannelCommit(channel,
      response.serialize(new XDR(), xid, new VerifierNone()), xid);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:53,代码来源:WriteManager.java


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