| logSync(long) |  | 0% |  | 0% | 13 | 13 | 65 | 65 | 1 | 1 |
| startLogSegment(long, int) |  | 0% |  | 0% | 7 | 7 | 24 | 24 | 1 | 1 |
| createJournal(URI) |  | 0% | | n/a | 1 | 1 | 14 | 14 | 1 | 1 |
| initJournals(List) |  | 0% |  | 0% | 5 | 5 | 19 | 19 | 1 | 1 |
| openForWrite(int) |  | 0% |  | 0% | 5 | 5 | 13 | 13 | 1 | 1 |
| logOpenFile(String, INodeFile, boolean, boolean) |  | 0% |  | 0% | 3 | 3 | 26 | 26 | 1 | 1 |
| endCurrentLogSegment(boolean) |  | 0% |  | 0% | 3 | 3 | 17 | 17 | 1 | 1 |
| FSEditLog(Configuration, NNStorage, List) |  | 0% | | n/a | 1 | 1 | 20 | 20 | 1 | 1 |
| checkForGaps(List, long, long, boolean) |  | 0% |  | 0% | 6 | 6 | 15 | 15 | 1 | 1 |
| close() |  | 0% |  | 0% | 7 | 7 | 16 | 16 | 1 | 1 |
| printStatistics(boolean) |  | 0% |  | 0% | 3 | 3 | 17 | 17 | 1 | 1 |
| recoverUnclosedStreams(boolean) |  | 0% |  | 0% | 3 | 3 | 14 | 14 | 1 | 1 |
| logAddBlock(String, INodeFile) |  | 0% |  | 0% | 4 | 4 | 9 | 9 | 1 | 1 |
| startLogSegment(long, boolean, int) |  | 0% |  | 0% | 4 | 4 | 14 | 14 | 1 | 1 |
| selectInputStreams(long, long, MetaRecoveryContext, boolean, boolean) |  | 0% |  | 0% | 2 | 2 | 13 | 13 | 1 | 1 |
| logMkDir(String, INode) |  | 0% |  | 0% | 3 | 3 | 14 | 14 | 1 | 1 |
| registerBackupNode(NamenodeRegistration, NamenodeRegistration) |  | 0% |  | 0% | 3 | 3 | 12 | 12 | 1 | 1 |
| journal(long, int, byte[]) |  | 0% |  | 0% | 2 | 2 | 7 | 7 | 1 | 1 |
| logEdit(FSEditLogOp) |  | 0% |  | 0% | 5 | 5 | 12 | 12 | 1 | 1 |
| setNextTxId(long) |  | 0% |  | 0% | 3 | 3 | 4 | 4 | 1 | 1 |
| getFormatConfirmables() |  | 0% |  | 0% | 4 | 4 | 7 | 7 | 1 | 1 |
| formatNonFileJournals(NamespaceInfo, boolean) |  | 0% |  | 0% | 4 | 4 | 6 | 6 | 1 | 1 |
| doEditTransaction(FSEditLogOp) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| endTransaction(long) |  | 0% |  | 0% | 4 | 4 | 7 | 7 | 1 | 1 |
| getJournalClass(Configuration, String) |  | 0% |  | 0% | 2 | 2 | 10 | 10 | 1 | 1 |
| logAppendFile(String, INodeFile, boolean, boolean) |  | 0% |  | 0% | 3 | 3 | 9 | 9 | 1 | 1 |
| purgeLogsOlderThan(long) |  | 0% |  | 0% | 5 | 5 | 9 | 9 | 1 | 1 |
| initSharedJournalsForRead() |  | 0% |  | 0% | 4 | 4 | 7 | 7 | 1 | 1 |
| beginTransaction(FSEditLogOp) |  | 0% |  | 0% | 4 | 4 | 7 | 7 | 1 | 1 |
| logCloseFile(String, INodeFile) |  | 0% | | n/a | 1 | 1 | 10 | 10 | 1 | 1 |
| canRollBackSharedLog(StorageInfo, int) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| initJournalsForWrite() |  | 0% |  | 0% | 3 | 3 | 4 | 4 | 1 | 1 |
| rollEditLog(int) |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| logSymlink(String, String, long, long, INodeSymlink, boolean) |  | 0% | | n/a | 1 | 1 | 10 | 10 | 1 | 1 |
| logSyncAll() |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| findBackupJournal(NamenodeRegistration) |  | 0% |  | 0% | 4 | 4 | 6 | 6 | 1 | 1 |
| newInstance(Configuration, NNStorage, List) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| getSharedLogCTime() |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| releaseBackupStream(NamenodeRegistration) |  | 0% |  | 0% | 2 | 2 | 7 | 7 | 1 | 1 |
| doUpgradeOfSharedLog() |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| logUpdateBlocks(String, INodeFile, boolean) |  | 0% | | n/a | 1 | 1 | 7 | 7 | 1 | 1 |
| logRename(String, String, long, boolean, Options.Rename[]) |  | 0% | | n/a | 1 | 1 | 8 | 8 | 1 | 1 |
| logTruncate(String, String, String, long, long, Block) |  | 0% | | n/a | 1 | 1 | 9 | 9 | 1 | 1 |
| logRenameSnapshot(String, String, String, boolean, long) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| doPreUpgradeOfSharedLog() |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| doFinalizeOfSharedLog() |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| doRollback() |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| logRename(String, String, long, boolean) |  | 0% | | n/a | 1 | 1 | 7 | 7 | 1 | 1 |
| logConcat(String, String[], long, boolean) |  | 0% | | n/a | 1 | 1 | 7 | 7 | 1 | 1 |
| logCreateSnapshot(String, String, boolean, long) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| logDeleteSnapshot(String, String, boolean, long) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| logSetXAttrs(String, List, boolean) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| logRemoveXAttrs(String, List, boolean) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| abortCurrentLogSegment() |  | 0% |  | 0% | 2 | 2 | 8 | 8 | 1 | 1 |
| logRpcIds(FSEditLogOp, boolean) |  | 0% |  | 0% | 2 | 2 | 6 | 6 | 1 | 1 |
| discardSegments(long) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| logDelete(String, long, boolean) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| logAddErasureCodingPolicy(ErasureCodingPolicy, boolean) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| logEnableErasureCodingPolicy(String, boolean) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| logDisableErasureCodingPolicy(String, boolean) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| logRemoveErasureCodingPolicy(String, boolean) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| logEdit(int, byte[]) |  | 0% | | n/a | 1 | 1 | 7 | 7 | 1 | 1 |
| logRemoveCacheDirectiveInfo(Long, boolean) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| logSetQuota(String, long, long) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| logSetOwner(String, String, String) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| logTimes(String, long, long) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| logReassignLease(String, String, String) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| logAddCacheDirectiveInfo(CacheDirectiveInfo, boolean) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| logModifyCacheDirectiveInfo(CacheDirectiveInfo, boolean) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| logAddCachePool(CachePoolInfo, boolean) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| logModifyCachePool(CachePoolInfo, boolean) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| logRemoveCachePool(String, boolean) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| logSetAcl(String, List) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| getTotalSyncCount() |  | 0% |  | 0% | 2 | 2 | 7 | 7 | 1 | 1 |
| static {...} |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| getCurSegmentTxId() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| logSetQuotaByStorageType(String, long, StorageType) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| startLogSegmentAndWriteHeaderTxn(long, int) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| closeAllStreams(Iterable) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| logSetReplication(String, short) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| logSetStoragePolicy(String, byte) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| logSetPermissions(String, FsPermission) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| logGetDelegationToken(DelegationTokenIdentifier, long) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| logRenewDelegationToken(DelegationTokenIdentifier, long) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| isOpenForWrite() |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| isOpenForWriteWithoutLock() |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| logStartRollingUpgrade(long) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| logFinalizeRollingUpgrade(long) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| logLegacyGenerationStamp(long) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| logGenerationStamp(long) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| logAllocateBlockId(long) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| logCancelDelegationToken(DelegationTokenIdentifier) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| logUpdateMasterKey(DelegationKey) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| logAllowSnapshot(String) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| logDisallowSnapshot(String) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| waitIfAutoSyncScheduled() |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| waitForSyncToFinish() |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| doneWithAutoSyncScheduling() |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| isSegmentOpen() |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| isSegmentOpenWithoutLock() |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| isOpenForRead() |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| selectInputStreams(Collection, long, boolean, boolean) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| selectInputStreams(long, long) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| selectInputStreams(long, long, MetaRecoveryContext, boolean) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| logSync() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getEditLogManifest(long) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setOutputBufferCapacity(int) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| shouldForceSync() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getJournals() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setJournalSetForTesting(JournalSet) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| setMetricsForTests(NameNodeMetrics) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| recoverUnclosedStreams() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getEditURIs() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getLastWrittenTxId() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getLastWrittenTxIdWithoutLock() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getCurSegmentTxIdWithoutLock() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getJournalSet() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getSyncTxId() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| restart() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |