[metrics-db/master] Keep microdescriptors in recent/ for up to 30 days.

commit 7f0b062bcd0dee7658092784706cec7b860a1b66 Author: Karsten Loesing <karsten.loesing@gmx.net> Date: Fri Feb 12 11:06:04 2016 +0100 Keep microdescriptors in recent/ for up to 30 days. We'll need to keep microdescriptors around longer than three days, because they change less frequently and are referenced much longer than, for example, server descriptors. --- src/org/torproject/ernie/db/relaydescs/ArchiveWriter.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/org/torproject/ernie/db/relaydescs/ArchiveWriter.java b/src/org/torproject/ernie/db/relaydescs/ArchiveWriter.java index 01b4d06..a85408c 100644 --- a/src/org/torproject/ernie/db/relaydescs/ArchiveWriter.java +++ b/src/org/torproject/ernie/db/relaydescs/ArchiveWriter.java @@ -802,17 +802,23 @@ public class ArchiveWriter extends Thread { } /* Delete all files from the rsync directory that have not been modified - * in the last three days, and remove the .tmp extension from newly + * in the last three days (except for microdescriptors which are kept + * for up to thirty days), and remove the .tmp extension from newly * written files. */ public void cleanUpRsyncDirectory() { long cutOffMillis = System.currentTimeMillis() - 3L * 24L * 60L * 60L * 1000L; + long cutOffMicroMillis = cutOffMillis - 27L * 24L * 60L * 60L * 1000L; Stack<File> allFiles = new Stack<File>(); allFiles.add(new File("recent/relay-descriptors")); while (!allFiles.isEmpty()) { File file = allFiles.pop(); if (file.isDirectory()) { allFiles.addAll(Arrays.asList(file.listFiles())); + } else if (file.getName().endsWith("-micro")) { + if (file.lastModified() < cutOffMicroMillis) { + file.delete(); + } } else if (file.lastModified() < cutOffMillis) { file.delete(); } else if (file.getName().endsWith(".tmp")) {
participants (1)
-
karsten@torproject.org