InterQJournalProtocol, QJournalProtocol@Private @VisibleForTesting public class JournalNodeRpcServer extends java.lang.Object implements QJournalProtocol, InterQJournalProtocol
versionIDversionID| Modifier and Type | Method | Description |
|---|---|---|
void |
acceptRecovery(RequestInfo reqInfo,
QJournalProtocolProtos.SegmentStateProto log,
java.net.URL fromUrl) |
Accept a proposed recovery for the given transaction ID.
|
java.lang.Boolean |
canRollBack(java.lang.String journalId,
java.lang.String nameServiceId,
StorageInfo storage,
StorageInfo prevStorage,
int targetLayoutVersion) |
|
void |
discardSegments(java.lang.String journalId,
java.lang.String nameServiceId,
long startTxId) |
Discard journal segments whose first TxId is greater than or equal to the
given txid.
|
void |
doFinalize(java.lang.String journalId,
java.lang.String nameServiceId) |
|
void |
doPreUpgrade(java.lang.String journalId) |
|
void |
doRollback(java.lang.String journalId,
java.lang.String nameServiceId) |
|
void |
doUpgrade(java.lang.String journalId,
StorageInfo sInfo) |
|
void |
finalizeLogSegment(RequestInfo reqInfo,
long startTxId,
long endTxId) |
Finalize the given log segment on the JournalNode.
|
void |
format(java.lang.String journalId,
java.lang.String nameServiceId,
NamespaceInfo nsInfo,
boolean force) |
Format the underlying storage for the given namespace.
|
java.net.InetSocketAddress |
getAddress() |
|
QJournalProtocolProtos.GetEditLogManifestResponseProto |
getEditLogManifest(java.lang.String jid,
java.lang.String nameServiceId,
long sinceTxId,
boolean inProgressOk) |
|
QJournalProtocolProtos.GetEditLogManifestResponseProto |
getEditLogManifestFromJournal(java.lang.String jid,
java.lang.String nameServiceId,
long sinceTxId,
boolean inProgressOk) |
|
protected int |
getHandlerCount() |
|
java.lang.Long |
getJournalCTime(java.lang.String journalId,
java.lang.String nameServiceId) |
|
QJournalProtocolProtos.GetJournaledEditsResponseProto |
getJournaledEdits(java.lang.String jid,
java.lang.String nameServiceId,
long sinceTxId,
int maxTxns) |
Fetch edit logs present in the Journal's in-memory cache of edits
(
JournaledEditsCache). |
QJournalProtocolProtos.GetJournalStateResponseProto |
getJournalState(java.lang.String journalId,
java.lang.String nameServiceId) |
Get the current state of the journal, including the most recent
epoch number and the HTTP port.
|
void |
heartbeat(RequestInfo reqInfo) |
Heartbeat.
|
boolean |
isFormatted(java.lang.String journalId,
java.lang.String nameServiceId) |
|
void |
journal(RequestInfo reqInfo,
long segmentTxId,
long firstTxnId,
int numTxns,
byte[] records) |
Journal edit records.
|
QJournalProtocolProtos.NewEpochResponseProto |
newEpoch(java.lang.String journalId,
java.lang.String nameServiceId,
NamespaceInfo nsInfo,
long epoch) |
Begin a new epoch.
|
QJournalProtocolProtos.PrepareRecoveryResponseProto |
prepareRecovery(RequestInfo reqInfo,
long segmentTxId) |
Begin the recovery process for a given segment.
|
void |
purgeLogsOlderThan(RequestInfo reqInfo,
long minTxIdToKeep) |
|
void |
startLogSegment(RequestInfo reqInfo,
long txid,
int layoutVersion) |
Start writing to a new log segment on the JournalNode.
|
@VisibleForTesting protected int getHandlerCount()
public java.net.InetSocketAddress getAddress()
public boolean isFormatted(java.lang.String journalId,
java.lang.String nameServiceId)
throws java.io.IOException
isFormatted in interface QJournalProtocoljava.io.IOExceptionpublic QJournalProtocolProtos.GetJournalStateResponseProto getJournalState(java.lang.String journalId, java.lang.String nameServiceId) throws java.io.IOException
QJournalProtocolgetJournalState in interface QJournalProtocoljava.io.IOExceptionpublic QJournalProtocolProtos.NewEpochResponseProto newEpoch(java.lang.String journalId, java.lang.String nameServiceId, NamespaceInfo nsInfo, long epoch) throws java.io.IOException
QJournalProtocolnewEpoch in interface QJournalProtocoljava.io.IOExceptionpublic void format(java.lang.String journalId,
java.lang.String nameServiceId,
NamespaceInfo nsInfo,
boolean force)
throws java.io.IOException
QJournalProtocolformat in interface QJournalProtocoljava.io.IOExceptionpublic void journal(RequestInfo reqInfo, long segmentTxId, long firstTxnId, int numTxns, byte[] records) throws java.io.IOException
QJournalProtocoljournal in interface QJournalProtocoljava.io.IOExceptionpublic void heartbeat(RequestInfo reqInfo) throws java.io.IOException
QJournalProtocolheartbeat in interface QJournalProtocoljava.io.IOExceptionpublic void startLogSegment(RequestInfo reqInfo, long txid, int layoutVersion) throws java.io.IOException
QJournalProtocolQJournalProtocol.finalizeLogSegment(RequestInfo, long, long).startLogSegment in interface QJournalProtocoltxid - the first txid in the new loglayoutVersion - the LayoutVersion of the new logjava.io.IOExceptionpublic void finalizeLogSegment(RequestInfo reqInfo, long startTxId, long endTxId) throws java.io.IOException
QJournalProtocolfinalizeLogSegment in interface QJournalProtocolstartTxId - the starting transaction ID of the logendTxId - the expected last transaction in the given logjava.io.IOException - if no such segment existspublic void purgeLogsOlderThan(RequestInfo reqInfo, long minTxIdToKeep) throws java.io.IOException
purgeLogsOlderThan in interface QJournalProtocoljava.io.IOExceptionLogsPurgeable.purgeLogsOlderThan(long)public QJournalProtocolProtos.GetEditLogManifestResponseProto getEditLogManifest(java.lang.String jid, java.lang.String nameServiceId, long sinceTxId, boolean inProgressOk) throws java.io.IOException
getEditLogManifest in interface QJournalProtocoljid - the journal from which to enumerate editssinceTxId - the first transaction which the client cares aboutinProgressOk - whether or not to check the in-progress edit log
segmentjava.io.IOExceptionpublic QJournalProtocolProtos.GetJournaledEditsResponseProto getJournaledEdits(java.lang.String jid, java.lang.String nameServiceId, long sinceTxId, int maxTxns) throws java.io.IOException
QJournalProtocolJournaledEditsCache).
To enable this cache, in-progress edit log tailing must be enabled via the
"dfs.ha.tail-edits.in-progress" configuration key.getJournaledEdits in interface QJournalProtocoljid - The ID of the journal from which to fetch edits.nameServiceId - The ID of the namespace for which to fetch edits.sinceTxId - Fetch edits starting at this transaction IDmaxTxns - Request at most this many transactions to be returnedjava.io.IOException - If there was an issue encountered while fetching edits
from the cache, including a cache miss (cache does not contain the
requested edits). The caller should then attempt to fetch the edits via
the streaming mechanism (starting with
QJournalProtocol.getEditLogManifest(String, String, long, boolean)).JournaledEditsCachepublic QJournalProtocolProtos.PrepareRecoveryResponseProto prepareRecovery(RequestInfo reqInfo, long segmentTxId) throws java.io.IOException
QJournalProtocolprepareRecovery in interface QJournalProtocoljava.io.IOExceptionpublic void acceptRecovery(RequestInfo reqInfo, QJournalProtocolProtos.SegmentStateProto log, java.net.URL fromUrl) throws java.io.IOException
QJournalProtocolacceptRecovery in interface QJournalProtocoljava.io.IOExceptionpublic void doPreUpgrade(java.lang.String journalId)
throws java.io.IOException
doPreUpgrade in interface QJournalProtocoljava.io.IOExceptionpublic void doUpgrade(java.lang.String journalId,
StorageInfo sInfo)
throws java.io.IOException
doUpgrade in interface QJournalProtocoljava.io.IOExceptionpublic void doFinalize(java.lang.String journalId,
java.lang.String nameServiceId)
throws java.io.IOException
doFinalize in interface QJournalProtocoljava.io.IOExceptionpublic java.lang.Boolean canRollBack(java.lang.String journalId,
java.lang.String nameServiceId,
StorageInfo storage,
StorageInfo prevStorage,
int targetLayoutVersion)
throws java.io.IOException
canRollBack in interface QJournalProtocoljava.io.IOExceptionpublic void doRollback(java.lang.String journalId,
java.lang.String nameServiceId)
throws java.io.IOException
doRollback in interface QJournalProtocoljava.io.IOExceptionpublic void discardSegments(java.lang.String journalId,
java.lang.String nameServiceId,
long startTxId)
throws java.io.IOException
QJournalProtocoldiscardSegments in interface QJournalProtocoljava.io.IOExceptionpublic java.lang.Long getJournalCTime(java.lang.String journalId,
java.lang.String nameServiceId)
throws java.io.IOException
getJournalCTime in interface QJournalProtocoljava.io.IOExceptionpublic QJournalProtocolProtos.GetEditLogManifestResponseProto getEditLogManifestFromJournal(java.lang.String jid, java.lang.String nameServiceId, long sinceTxId, boolean inProgressOk) throws java.io.IOException
getEditLogManifestFromJournal in interface InterQJournalProtocoljid - the journal from which to enumerate editssinceTxId - the first transaction which the client cares aboutinProgressOk - whether or not to check the in-progress edit log
segmentjava.io.IOExceptionCopyright © 2008–2025 Apache Software Foundation. All rights reserved.