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


Java RequestInfo类代码示例

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


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

示例1: journal

import org.apache.hadoop.hdfs.qjournal.protocol.RequestInfo; //导入依赖的package包/类
@Override
public void journal(RequestInfo reqInfo,
    long segmentTxId, long firstTxnId, int numTxns,
    byte[] records) throws IOException {
  JournalRequestProto req = JournalRequestProto.newBuilder()
      .setReqInfo(convert(reqInfo))
      .setSegmentTxnId(segmentTxId)
      .setFirstTxnId(firstTxnId)
      .setNumTxns(numTxns)
      .setRecords(PBHelper.getByteString(records))
      .build();
  try {
    rpcProxy.journal(NULL_CONTROLLER, req);
  } catch (ServiceException e) {
    throw ProtobufHelper.getRemoteException(e);
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:18,代码来源:QJournalProtocolTranslatorPB.java

示例2: testFormatResetsCachedValues

import org.apache.hadoop.hdfs.qjournal.protocol.RequestInfo; //导入依赖的package包/类
@Test (timeout = 10000)
public void testFormatResetsCachedValues() throws Exception {
  journal.newEpoch(FAKE_NSINFO, 12345L);
  journal.startLogSegment(new RequestInfo(JID, 12345L, 1L, 0L), 1L,
      NameNodeLayoutVersion.CURRENT_LAYOUT_VERSION);

  assertEquals(12345L, journal.getLastPromisedEpoch());
  assertEquals(12345L, journal.getLastWriterEpoch());
  assertTrue(journal.isFormatted());
  
  // Close the journal in preparation for reformatting it.
  journal.close();
  journal.format(FAKE_NSINFO_2);
  
  assertEquals(0, journal.getLastPromisedEpoch());
  assertEquals(0, journal.getLastWriterEpoch());
  assertTrue(journal.isFormatted());
}
 
开发者ID:naver,项目名称:hadoop,代码行数:19,代码来源:TestJournal.java

示例3: journal

import org.apache.hadoop.hdfs.qjournal.protocol.RequestInfo; //导入依赖的package包/类
@Override
public void journal(RequestInfo reqInfo,
    long segmentTxId, long firstTxnId, int numTxns,
    byte[] records) throws IOException {
  JournalRequestProto req = JournalRequestProto.newBuilder()
      .setReqInfo(convert(reqInfo))
      .setSegmentTxnId(segmentTxId)
      .setFirstTxnId(firstTxnId)
      .setNumTxns(numTxns)
      .setRecords(PBHelperClient.getByteString(records))
      .build();
  try {
    rpcProxy.journal(NULL_CONTROLLER, req);
  } catch (ServiceException e) {
    throw ProtobufHelper.getRemoteException(e);
  }
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:18,代码来源:QJournalProtocolTranslatorPB.java

示例4: purgeLogsOlderThan

import org.apache.hadoop.hdfs.qjournal.protocol.RequestInfo; //导入依赖的package包/类
/**
 * @see JournalManager#purgeLogsOlderThan(long)
 */
public synchronized void purgeLogsOlderThan(RequestInfo reqInfo,
    long minTxIdToKeep) throws IOException {
  checkJournalStorageFormatted();
  checkRequest(reqInfo);
  
  journalStorage.purgeDataOlderThan(minTxIdToKeep);
  if (minTxIdToKeep == FSEditLog.PURGE_ALL_TXID) {
    // When trying to remove all the segments, reset
    // the committed transaction ID too.
    committedTxnId.set(0, true);
    minTxid = 0;
  } else {
    minTxid = minTxIdToKeep;
  }
  if (imageStorage.isFormatted()) {
    imageStorage.purgeDataOlderThan(minTxIdToKeep == 0 ? -1 : minTxIdToKeep);
  }
}
 
开发者ID:rhli,项目名称:hadoop-EAR,代码行数:22,代码来源:Journal.java

示例5: testFormatResetsCachedValues

import org.apache.hadoop.hdfs.qjournal.protocol.RequestInfo; //导入依赖的package包/类
@Test (timeout = 10000)
public void testFormatResetsCachedValues() throws Exception {
  journal.newEpoch(FAKE_NSINFO, 12345L);
  journal.startLogSegment(new RequestInfo(JID, 12345L, 1L, 0L), 1L);

  assertEquals(12345L, journal.getLastPromisedEpoch());
  assertEquals(12345L, journal.getLastWriterEpoch());
  assertTrue(journal.isFormatted());
  
  // Close the journal in preparation for reformatting it.
  journal.close();
  journal.format(FAKE_NSINFO_2);
  
  assertEquals(0, journal.getLastPromisedEpoch());
  assertEquals(0, journal.getLastWriterEpoch());
  assertTrue(journal.isFormatted());
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:18,代码来源:TestJournal.java

示例6: checkRequest

import org.apache.hadoop.hdfs.qjournal.protocol.RequestInfo; //导入依赖的package包/类
/**
 * Ensure that the given request is coming from the correct writer and in-order.
 * @param reqInfo the request info
 * @throws IOException if the request is invalid.
 */
private synchronized void checkRequest(RequestInfo reqInfo) throws IOException {
  // Invariant 25 from ZAB paper
  if (reqInfo.getEpoch() < lastPromisedEpoch.get()) {
    throw new IOException("IPC's epoch " + reqInfo.getEpoch() +
        " is less than the last promised epoch " +
        lastPromisedEpoch.get());
  } else if (reqInfo.getEpoch() > lastPromisedEpoch.get()) {
    // A newer client has arrived. Fence any previous writers by updating
    // the promise.
    updateLastPromisedEpoch(reqInfo.getEpoch());
  }
  
  // Ensure that the IPCs are arriving in-order as expected.
  checkSync(reqInfo.getIpcSerialNumber() > currentEpochIpcSerial,
      "IPC serial %s from client %s was not higher than prior highest " +
      "IPC serial %s", reqInfo.getIpcSerialNumber(),
      Server.getRemoteIp(),
      currentEpochIpcSerial);
  currentEpochIpcSerial = reqInfo.getIpcSerialNumber();

  if (reqInfo.hasCommittedTxId()) {
    Preconditions.checkArgument(
        reqInfo.getCommittedTxId() >= committedTxnId.get(),
        "Client trying to move committed txid backward from " +
        committedTxnId.get() + " to " + reqInfo.getCommittedTxId());
    
    committedTxnId.set(reqInfo.getCommittedTxId());
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:35,代码来源:Journal.java

示例7: checkWriteRequest

import org.apache.hadoop.hdfs.qjournal.protocol.RequestInfo; //导入依赖的package包/类
private synchronized void checkWriteRequest(RequestInfo reqInfo) throws IOException {
  checkRequest(reqInfo);
  
  if (reqInfo.getEpoch() != lastWriterEpoch.get()) {
    throw new IOException("IPC's epoch " + reqInfo.getEpoch() +
        " is not the current writer epoch  " +
        lastWriterEpoch.get());
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:10,代码来源:Journal.java

示例8: purgeLogsOlderThan

import org.apache.hadoop.hdfs.qjournal.protocol.RequestInfo; //导入依赖的package包/类
/**
 * @see JournalManager#purgeLogsOlderThan(long)
 */
public synchronized void purgeLogsOlderThan(RequestInfo reqInfo,
    long minTxIdToKeep) throws IOException {
  checkFormatted();
  checkRequest(reqInfo);
  
  storage.purgeDataOlderThan(minTxIdToKeep);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:11,代码来源:Journal.java

示例9: syncLog

import org.apache.hadoop.hdfs.qjournal.protocol.RequestInfo; //导入依赖的package包/类
/**
 * Synchronize a log segment from another JournalNode. The log is
 * downloaded from the provided URL into a temporary location on disk,
 * which is named based on the current request's epoch.
 *
 * @return the temporary location of the downloaded file
 */
private File syncLog(RequestInfo reqInfo,
    final SegmentStateProto segment, final URL url) throws IOException {
  final File tmpFile = storage.getSyncLogTemporaryFile(
      segment.getStartTxId(), reqInfo.getEpoch());
  final List<File> localPaths = ImmutableList.of(tmpFile);

  LOG.info("Synchronizing log " +
      TextFormat.shortDebugString(segment) + " from " + url);
  SecurityUtil.doAsLoginUser(
      new PrivilegedExceptionAction<Void>() {
        @Override
        public Void run() throws IOException {
          // We may have lost our ticket since last checkpoint, log in again, just in case
          if (UserGroupInformation.isSecurityEnabled()) {
            UserGroupInformation.getCurrentUser().checkTGTAndReloginFromKeytab();
          }

          boolean success = false;
          try {
            TransferFsImage.doGetUrl(url, localPaths, storage, true);
            assert tmpFile.exists();
            success = true;
          } finally {
            if (!success) {
              if (!tmpFile.delete()) {
                LOG.warn("Failed to delete temporary file " + tmpFile);
              }
            }
          }
          return null;
        }
      });
  return tmpFile;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:42,代码来源:Journal.java

示例10: journal

import org.apache.hadoop.hdfs.qjournal.protocol.RequestInfo; //导入依赖的package包/类
@Override
public void journal(RequestInfo reqInfo,
    long segmentTxId, long firstTxnId,
    int numTxns, byte[] records) throws IOException {
  jn.getOrCreateJournal(reqInfo.getJournalId())
     .journal(reqInfo, segmentTxId, firstTxnId, numTxns, records);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:8,代码来源:JournalNodeRpcServer.java

示例11: convert

import org.apache.hadoop.hdfs.qjournal.protocol.RequestInfo; //导入依赖的package包/类
private RequestInfo convert(
    QJournalProtocolProtos.RequestInfoProto reqInfo) {
  return new RequestInfo(
      reqInfo.getJournalId().getIdentifier(),
      reqInfo.getEpoch(),
      reqInfo.getIpcSerialNumber(),
      reqInfo.hasCommittedTxId() ?
        reqInfo.getCommittedTxId() : HdfsConstants.INVALID_TXID);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:10,代码来源:QJournalProtocolServerSideTranslatorPB.java

示例12: heartbeat

import org.apache.hadoop.hdfs.qjournal.protocol.RequestInfo; //导入依赖的package包/类
@Override
public void heartbeat(RequestInfo reqInfo) throws IOException {
  try {
    rpcProxy.heartbeat(NULL_CONTROLLER, HeartbeatRequestProto.newBuilder()
          .setReqInfo(convert(reqInfo))
          .build());
  } catch (ServiceException e) {
    throw ProtobufHelper.getRemoteException(e);
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:11,代码来源:QJournalProtocolTranslatorPB.java

示例13: convert

import org.apache.hadoop.hdfs.qjournal.protocol.RequestInfo; //导入依赖的package包/类
private QJournalProtocolProtos.RequestInfoProto convert(
    RequestInfo reqInfo) {
  RequestInfoProto.Builder builder = RequestInfoProto.newBuilder()
      .setJournalId(convertJournalId(reqInfo.getJournalId()))
      .setEpoch(reqInfo.getEpoch())
      .setIpcSerialNumber(reqInfo.getIpcSerialNumber());
  if (reqInfo.hasCommittedTxId()) {
    builder.setCommittedTxId(reqInfo.getCommittedTxId());
  }
  return builder.build();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:12,代码来源:QJournalProtocolTranslatorPB.java

示例14: startLogSegment

import org.apache.hadoop.hdfs.qjournal.protocol.RequestInfo; //导入依赖的package包/类
@Override
public void startLogSegment(RequestInfo reqInfo, long txid, int layoutVersion)
    throws IOException {
  StartLogSegmentRequestProto req = StartLogSegmentRequestProto.newBuilder()
      .setReqInfo(convert(reqInfo))
      .setTxid(txid).setLayoutVersion(layoutVersion)
      .build();
  try {
    rpcProxy.startLogSegment(NULL_CONTROLLER, req);
  } catch (ServiceException e) {
    throw ProtobufHelper.getRemoteException(e);
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:14,代码来源:QJournalProtocolTranslatorPB.java

示例15: finalizeLogSegment

import org.apache.hadoop.hdfs.qjournal.protocol.RequestInfo; //导入依赖的package包/类
@Override
public void finalizeLogSegment(RequestInfo reqInfo, long startTxId,
    long endTxId) throws IOException {
  FinalizeLogSegmentRequestProto req =
      FinalizeLogSegmentRequestProto.newBuilder()
      .setReqInfo(convert(reqInfo))
      .setStartTxId(startTxId)
      .setEndTxId(endTxId)
      .build();
  try {
    rpcProxy.finalizeLogSegment(NULL_CONTROLLER, req);
  } catch (ServiceException e) {
    throw ProtobufHelper.getRemoteException(e);
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:16,代码来源:QJournalProtocolTranslatorPB.java


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