use of com.ms.silverking.cloud.dht.TimeAndVersionRetentionState in project SilverKing by Morgan-Stanley.
the class DirectoryInMemorySS method reap.
private void reap() {
if (serializedVersions.size() > reapMinVersions) {
ValueRetentionPolicy vrp;
Set<Long> versionsToRemove;
Log.warningf("Reap DirectoryInMemorySS %s", KeyUtil.keyToString(dirKey));
versionsToRemove = new HashSet<>();
vrp = nsOptions.getValueRetentionPolicy();
if (vrp instanceof TimeAndVersionRetentionPolicy) {
TimeAndVersionRetentionState rs;
long curTimeNanos;
rs = new TimeAndVersionRetentionState();
curTimeNanos = SystemTimeSource.instance.absTimeNanos();
for (long version : serializedVersions.descendingKeySet()) {
if (!vrp.retains(dirKey, version, curTimeNanos, false, rs, curTimeNanos)) {
versionsToRemove.add(version);
}
}
} else {
Log.warning("Unexpected retention policy: " + vrp);
}
remove(versionsToRemove);
}
}
Aggregations