protected boolean checkTabletReportCacheUp(long timeMs) {
        for (Backend backend : GlobalStateMgr.getCurrentState().getNodeMgr().getClusterInfo().getBackends()) {
            if (TimeUtils.timeStringToLong(backend.getBackendStatus().lastSuccessReportTabletsTime)
                    < timeMs) {
                LOG.warn("last tablet report time of backend {}:{} is {}, should wait it to report tablets",
                        backend.getHost(), backend.getHeartbeatPort(), backend.getBackendStatus().lastSuccessReportTabletsTime);
                return false;
            }
        }
        return true;
    }
@Test
    public void testCheckTabletReportCacheUp() {
        long timeMs = System.currentTimeMillis();
        MetaRecoveryDaemon metaRecoveryDaemon = new MetaRecoveryDaemon();
        for (Backend backend : GlobalStateMgr.getCurrentState().getNodeMgr().getClusterInfo().getBackends()) {
            backend.getBackendStatus().lastSuccessReportTabletsTime = TimeUtils
                    .longToTimeString(timeMs);
        }
        Assert.assertFalse(metaRecoveryDaemon.checkTabletReportCacheUp(timeMs + 1000L));
        Assert.assertTrue(metaRecoveryDaemon.checkTabletReportCacheUp(timeMs - 1000L));
    }