synchronized void writeChecksums(Directory directory, Map<String, String> checksums, long lastVersion) throws IOException { // Make sure if clock goes backwards we still move version forwards: long nextVersion = Math.max(lastVersion+1, System.currentTimeMillis()); final String checksumName = CHECKSUMS_PREFIX + nextVersion; try (IndexOutput output = directory.createOutput(checksumName, IOContext.DEFAULT)) { output.writeInt(0); // version output.writeStringStringMap(checksums); } directory.sync(Collections.singleton(checksumName)); MetadataSnapshot.cleanLegacyChecksums(directory, nextVersion); }