use of com.ms.silverking.cloud.dht.TimeAndVersionRetentionPolicy 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);
}
}
use of com.ms.silverking.cloud.dht.TimeAndVersionRetentionPolicy in project SilverKing by Morgan-Stanley.
the class FileSegmentCompactor method main.
public static void main(String[] args) {
try {
if (args.length != 3) {
System.out.println("args: <nsDir> <segmentNumber> <timeSpanSeconds>");
} else {
File nsDir;
int segmentNumber;
NamespaceOptions nsOptions;
ValueRetentionPolicy valueRetentionPolicy;
int timeSpanSeconds;
nsDir = new File(args[0]);
segmentNumber = Integer.parseInt(args[1]);
timeSpanSeconds = Integer.parseInt(args[2]);
valueRetentionPolicy = new TimeAndVersionRetentionPolicy(TimeAndVersionRetentionPolicy.Mode.wallClock, 1, timeSpanSeconds);
nsOptions = DHTConstants.defaultNamespaceOptions.valueRetentionPolicy(valueRetentionPolicy);
compact(nsDir, segmentNumber, nsOptions, new TestRetentionCheck(32768));
}
} catch (Exception e) {
e.printStackTrace();
}
}
Aggregations