JournalNodeRpcServer, QJournalProtocolTranslatorPB@Private
public interface QJournalProtocol
QuorumJournalManager
and each JournalNode.
This is responsible for sending edits as well as coordinating
recovery of the nodes.| Modifier and Type | Field | Description |
|---|---|---|
static long |
versionID |
| Modifier and Type | Method | Description |
|---|---|---|
void |
acceptRecovery(RequestInfo reqInfo,
QJournalProtocolProtos.SegmentStateProto stateToAccept,
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.
|
QJournalProtocolProtos.GetEditLogManifestResponseProto |
getEditLogManifest(java.lang.String jid,
java.lang.String nameServiceId,
long sinceTxId,
boolean inProgressOk) |
|
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 requestInfo,
long minTxIdToKeep) |
|
void |
startLogSegment(RequestInfo reqInfo,
long txid,
int layoutVersion) |
Start writing to a new log segment on the JournalNode.
|
static final long versionID
boolean isFormatted(java.lang.String journalId,
java.lang.String nameServiceId)
throws java.io.IOException
java.io.IOExceptionQJournalProtocolProtos.GetJournalStateResponseProto getJournalState(java.lang.String journalId, java.lang.String nameServiceId) throws java.io.IOException
java.io.IOExceptionvoid format(java.lang.String journalId,
java.lang.String nameServiceId,
NamespaceInfo nsInfo,
boolean force)
throws java.io.IOException
java.io.IOExceptionQJournalProtocolProtos.NewEpochResponseProto newEpoch(java.lang.String journalId, java.lang.String nameServiceId, NamespaceInfo nsInfo, long epoch) throws java.io.IOException
java.io.IOExceptionvoid journal(RequestInfo reqInfo, long segmentTxId, long firstTxnId, int numTxns, byte[] records) throws java.io.IOException
java.io.IOExceptionvoid heartbeat(RequestInfo reqInfo) throws java.io.IOException
java.io.IOExceptionvoid startLogSegment(RequestInfo reqInfo, long txid, int layoutVersion) throws java.io.IOException
finalizeLogSegment(RequestInfo, long, long).txid - the first txid in the new loglayoutVersion - the LayoutVersion of the new logjava.io.IOExceptionvoid finalizeLogSegment(RequestInfo reqInfo, long startTxId, long endTxId) throws java.io.IOException
startTxId - the starting transaction ID of the logendTxId - the expected last transaction in the given logjava.io.IOException - if no such segment existsvoid purgeLogsOlderThan(RequestInfo requestInfo, long minTxIdToKeep) throws java.io.IOException
java.io.IOExceptionLogsPurgeable.purgeLogsOlderThan(long)QJournalProtocolProtos.GetEditLogManifestResponseProto getEditLogManifest(java.lang.String jid, java.lang.String nameServiceId, long sinceTxId, boolean inProgressOk) throws java.io.IOException
jid - 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.IOExceptionQJournalProtocolProtos.GetJournaledEditsResponseProto getJournaledEdits(java.lang.String jid, java.lang.String nameServiceId, long sinceTxId, int maxTxns) throws java.io.IOException
JournaledEditsCache).
To enable this cache, in-progress edit log tailing must be enabled via the
"dfs.ha.tail-edits.in-progress" configuration key.jid - 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
getEditLogManifest(String, String, long, boolean)).JournaledEditsCacheQJournalProtocolProtos.PrepareRecoveryResponseProto prepareRecovery(RequestInfo reqInfo, long segmentTxId) throws java.io.IOException
java.io.IOExceptionvoid acceptRecovery(RequestInfo reqInfo, QJournalProtocolProtos.SegmentStateProto stateToAccept, java.net.URL fromUrl) throws java.io.IOException
java.io.IOExceptionvoid doPreUpgrade(java.lang.String journalId)
throws java.io.IOException
java.io.IOExceptionvoid doUpgrade(java.lang.String journalId,
StorageInfo sInfo)
throws java.io.IOException
java.io.IOExceptionvoid doFinalize(java.lang.String journalId,
java.lang.String nameServiceid)
throws java.io.IOException
java.io.IOExceptionjava.lang.Boolean canRollBack(java.lang.String journalId,
java.lang.String nameServiceid,
StorageInfo storage,
StorageInfo prevStorage,
int targetLayoutVersion)
throws java.io.IOException
java.io.IOExceptionvoid doRollback(java.lang.String journalId,
java.lang.String nameServiceid)
throws java.io.IOException
java.io.IOExceptionvoid discardSegments(java.lang.String journalId,
java.lang.String nameServiceId,
long startTxId)
throws java.io.IOException
java.io.IOExceptionjava.lang.Long getJournalCTime(java.lang.String journalId,
java.lang.String nameServiceId)
throws java.io.IOException
java.io.IOExceptionCopyright © 2008–2025 Apache Software Foundation. All rights reserved.