| backup(Repository, Database, BackupCommand) |   | 30% |   | 26% | 40 | 42 | 61 | 107 | 0 | 1 |
| restore(Repository, Database, RestoreCommand) |   | 29% |   | 28% | 19 | 20 | 48 | 71 | 0 | 1 |
| cancel(CancelBackupCommand) |   | 63% |   | 51% | 21 | 29 | 12 | 55 | 0 | 1 |
| checkAndFilterRestoreObjsExistInSnapshot(BackupJobInfo, RestoreCommand) |   | 41% |   | 35% | 10 | 12 | 18 | 37 | 0 | 1 |
| write(DataOutput) |  | 0% |  | 0% | 5 | 5 | 21 | 21 | 1 | 1 |
| BackupHandler() |  | 0% | | n/a | 1 | 1 | 18 | 18 | 1 | 1 |
| alterRepository(String, Map) |  | 0% |  | 0% | 4 | 4 | 18 | 18 | 1 | 1 |
| report(TTaskType, long, long, int, int) |  | 0% |  | 0% | 11 | 11 | 14 | 14 | 1 | 1 |
| checkAndFilterRestoreOlapTableExistInSnapshot(Map, TableRefInfo) |   | 26% |   | 20% | 5 | 6 | 6 | 12 | 0 | 1 |
| process(BackupCommand) |   | 47% |   | 41% | 6 | 7 | 5 | 20 | 0 | 1 |
| process(RestoreCommand) |   | 49% |   | 42% | 7 | 8 | 5 | 20 | 0 | 1 |
| canActivateJob(long, AbstractJob, boolean) |   | 65% |   | 53% | 19 | 27 | 14 | 38 | 0 | 1 |
| onJobCompleted(long, long, AbstractJob) |   | 70% |   | 53% | 11 | 17 | 10 | 37 | 0 | 1 |
| init() |   | 44% |   | 71% | 4 | 8 | 8 | 20 | 0 | 1 |
| replayAddJob(AbstractJob) |   | 51% |   | 50% | 6 | 9 | 12 | 25 | 0 | 1 |
| dropRepository(String) |   | 50% |   | 50% | 5 | 7 | 5 | 17 | 0 | 1 |
| addBackupOrRestoreJob(long, AbstractJob) |   | 56% |   | 36% | 10 | 12 | 10 | 23 | 0 | 1 |
| createRepository(CreateRepositoryCommand) |   | 52% |   | 62% | 3 | 5 | 5 | 14 | 0 | 1 |
| checkConcurrency(long, String, boolean, boolean, List) |   | 63% |   | 75% | 3 | 7 | 3 | 13 | 0 | 1 |
| updateOngoingJobs(long, Repository) |  | 0% |  | 0% | 5 | 5 | 8 | 8 | 1 | 1 |
| handleDownloadSnapshotTask(DownloadTask, TFinishTaskRequest) |   | 61% |   | 50% | 5 | 8 | 8 | 21 | 0 | 1 |
| addSnapshot(String, BackupJob) |  | 0% |  | 0% | 2 | 2 | 6 | 6 | 1 | 1 |
| handleFinishedSnapshotUploadTask(UploadTask, TFinishTaskRequest) |   | 72% |   | 50% | 6 | 9 | 6 | 22 | 0 | 1 |
| getJobs(long, Predicate) |   | 34% |   | 50% | 1 | 2 | 6 | 10 | 0 | 1 |
| readFields(DataInput) |  | 0% |  | 0% | 2 | 2 | 6 | 6 | 1 | 1 |
| addToHistoryQueue(long, AbstractJob) |   | 66% |   | 70% | 3 | 6 | 5 | 19 | 0 | 1 |
| getSnapshot(String) |  | 0% |  | 0% | 2 | 2 | 6 | 6 | 1 | 1 |
| handleFinishedSnapshotTask(SnapshotTask, TFinishTaskRequest) |   | 82% |   | 75% | 5 | 11 | 6 | 29 | 0 | 1 |
| addActiveJob(long, AbstractJob) |   | 79% |   | 75% | 2 | 5 | 5 | 19 | 0 | 1 |
| removeSnapshot(String) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| canActivate(long, AbstractJob, boolean, boolean) |   | 87% |   | 72% | 12 | 26 | 4 | 31 | 0 | 1 |
| onJobDeactivated(long, AbstractJob, boolean) |   | 74% |   | 90% | 1 | 6 | 3 | 16 | 0 | 1 |
| tryLock() |   | 32% |   | 50% | 1 | 2 | 3 | 6 | 0 | 1 |
| runAfterCatalogReady() |   | 57% |   | 60% | 3 | 6 | 6 | 13 | 0 | 1 |
| tryActivatePendingJobs(long) |   | 88% |   | 64% | 8 | 15 | 4 | 31 | 0 | 1 |
| handleDirMoveTask(DirMoveTask, TFinishTaskRequest) |   | 84% |   | 71% | 4 | 8 | 4 | 21 | 0 | 1 |
| onJobCreated(long, AbstractJob, boolean, boolean) |   | 81% |   | 83% | 1 | 4 | 2 | 14 | 0 | 1 |
| onJobActivated(long, AbstractJob, boolean, boolean) |   | 71% |   | 83% | 1 | 4 | 2 | 10 | 0 | 1 |
| mergeProperties(Repository, Map) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| removeFromRunningQueue(long, AbstractJob) |   | 79% |   | 70% | 3 | 6 | 2 | 14 | 0 | 1 |
| rebuildConcurrencyStateAfterRestart() |   | 96% |   | 80% | 7 | 19 | 3 | 61 | 0 | 1 |
| removeRestoringTables(RestoreJob) |   | 92% |   | 64% | 5 | 8 | 2 | 21 | 0 | 1 |
| addRestoringTables(RestoreJob) |   | 91% |   | 83% | 1 | 4 | 1 | 16 | 0 | 1 |
| getJobQueuePosition(AbstractJob) |   | 92% |   | 81% | 3 | 9 | 3 | 19 | 0 | 1 |
| lambda$getJobs$2(Predicate, AbstractJob) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| cleanupJobResources(AbstractJob) |  | 71% |   | 50% | 2 | 3 | 1 | 5 | 0 | 1 |
| setEnv(Env) | | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| lambda$addRestoringTables$10(Long) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$onJobActivated$7(Long) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getJobBlockReason(AbstractJob) |  | 98% |   | 80% | 7 | 19 | 1 | 31 | 0 | 1 |
| lambda$addActiveJob$4(AbstractJob, AbstractJob) |  | 80% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| getCurrentJob(long) |  | 98% |   | 75% | 2 | 5 | 0 | 9 | 0 | 1 |
| BackupHandler(Env) |  | 100% | | n/a | 0 | 1 | 0 | 19 | 0 | 1 |
| getAllJobs(long) |  | 100% |  | 100% | 0 | 3 | 0 | 12 | 0 | 1 |
| getAllRunningJobs() |  | 100% |  | 100% | 0 | 2 | 0 | 7 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| getAllCurrentJobs() |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| start() |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| canExecute(long) |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| moveToHistory(long, AbstractJob) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| addGlobalSnapshotTasks(int) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| lambda$getJobs$1(Predicate, AbstractJob) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getGlobalSnapshotTasks() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getJob(long) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$onJobCreated$9(Long) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$onJobCreated$8(Long) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$addToHistoryQueue$5(Long) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$addActiveJob$3(Long) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$rebuildConcurrencyStateAfterRestart$0(Long) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getRepoMgr() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$addRestoringTables$11(Long) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$addBackupOrRestoreJob$6(Long) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |