| ExternalSPSContext(SPSService, NameNodeConnector) |  | 0% | | n/a | 1 | 1 | 10 | 10 | 1 | 1 |
| removeSPSHint(long) |  | 0% |  | 0% | 2 | 2 | 11 | 11 | 1 | 1 |
| getNetworkTopology(StoragePolicySatisfier.DatanodeMap) |  | 0% |  | 0% | 2 | 2 | 6 | 6 | 1 | 1 |
| getFileInfo(long) |  | 0% | | n/a | 1 | 1 | 8 | 8 | 1 | 1 |
| isInSafeMode() |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| isFileExist(long) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| getNumLiveDataNodes() |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| getNextSPSPath() |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| notifyMovementTriedBlocks(Block[]) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| initMetrics(StoragePolicySatisfier) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getStoragePolicy(byte) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| scanAndCollectFiles(long) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| submitMoveTask(BlockStorageMovementCommand.BlockMovingInfo) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| isRunning() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getLiveDatanodeStorageReport() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| closeMetrics() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| static {...} |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getSpsBeanMetrics() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |