Search in sources :

Example 1 with GetEditLogManifestResponseProto

use of org.apache.hadoop.hdfs.qjournal.protocol.QJournalProtocolProtos.GetEditLogManifestResponseProto in project hadoop by apache.

the class JournalNodeSyncer method syncWithJournalAtIndex.

private void syncWithJournalAtIndex(int index) {
    LOG.info("Syncing Journal " + jn.getBoundIpcAddress().getAddress() + ":" + jn.getBoundIpcAddress().getPort() + " with " + otherJNProxies.get(index) + ", journal id: " + jid);
    final QJournalProtocolPB jnProxy = otherJNProxies.get(index).jnProxy;
    if (jnProxy == null) {
        LOG.error("JournalNode Proxy not found.");
        return;
    }
    List<RemoteEditLog> thisJournalEditLogs;
    try {
        thisJournalEditLogs = journal.getEditLogManifest(0, false).getLogs();
    } catch (IOException e) {
        LOG.error("Exception in getting local edit log manifest", e);
        return;
    }
    GetEditLogManifestResponseProto editLogManifest;
    try {
        editLogManifest = jnProxy.getEditLogManifest(null, GetEditLogManifestRequestProto.newBuilder().setJid(jidProto).setSinceTxId(0).setInProgressOk(false).build());
    } catch (ServiceException e) {
        LOG.error("Could not sync with Journal at " + otherJNProxies.get(journalNodeIndexForSync), e);
        return;
    }
    getMissingLogSegments(thisJournalEditLogs, editLogManifest, otherJNProxies.get(index));
}
Also used : GetEditLogManifestResponseProto(org.apache.hadoop.hdfs.qjournal.protocol.QJournalProtocolProtos.GetEditLogManifestResponseProto) ServiceException(com.google.protobuf.ServiceException) QJournalProtocolPB(org.apache.hadoop.hdfs.qjournal.protocolPB.QJournalProtocolPB) RemoteEditLog(org.apache.hadoop.hdfs.server.protocol.RemoteEditLog) IOException(java.io.IOException)

Aggregations

ServiceException (com.google.protobuf.ServiceException)1 IOException (java.io.IOException)1 GetEditLogManifestResponseProto (org.apache.hadoop.hdfs.qjournal.protocol.QJournalProtocolProtos.GetEditLogManifestResponseProto)1 QJournalProtocolPB (org.apache.hadoop.hdfs.qjournal.protocolPB.QJournalProtocolPB)1 RemoteEditLog (org.apache.hadoop.hdfs.server.protocol.RemoteEditLog)1