void ensureReadMeter()
{
if (readMeter != null)
return;
if (Keyspace.SYSTEM_KS.equals(desc.ksname) || Config.isClientMode())
{
readMeter = null;
readMeterSyncFuture = null;
return;
}
readMeter = SystemKeyspace.getSSTableReadMeter(desc.ksname, desc.cfname, desc.generation);
readMeterSyncFuture = syncExecutor.scheduleAtFixedRate(new Runnable()
{
public void run()
{
if (!isCompacted.get())
{
meterSyncThrottle.acquire();
SystemKeyspace.persistSSTableReadMeter(desc.ksname, desc.cfname, desc.generation, readMeter);
}
}
}, 1, 5, TimeUnit.MINUTES);
}