diff options
author | Jon Bratseth <bratseth@gmail.com> | 2020-11-09 13:36:05 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2020-11-09 13:36:05 +0100 |
commit | 860a24bb85a474e88264bf84082339f677fa12f1 (patch) | |
tree | 394ea8c195e7abf42ed11a596b31e0562c2f4042 /node-repository/src | |
parent | 0c68b00b2d3a9ddc191ed1733ba2f8699d1c3dc1 (diff) |
Don't remove all partitions: Not currently supported
Diffstat (limited to 'node-repository/src')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDb.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDb.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDb.java index 070bf98bf87..2cb80a04e33 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDb.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDb.java @@ -114,18 +114,23 @@ public class QuestMetricsDb implements MetricsDb { // Since we remove full days at once we need to keep at least the scaling window + 1 day Instant oldestToKeep = clock.instant().minus(Autoscaler.maxScalingWindow().plus(Duration.ofDays(1))); SqlExecutionContext context = newContext(); + int partitionsFound = 0; try (SqlCompiler compiler = new SqlCompiler(engine)) { File tableRoot = new File(dataDir, tableName); List<String> removeList = new ArrayList<>(); for (String dirEntry : tableRoot.list()) { File partitionDir = new File(tableRoot, dirEntry); if ( ! partitionDir.isDirectory()) continue; + + partitionsFound++; DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneId.of("UTC")); Instant partitionDay = Instant.from(formatter.parse(dirEntry + "T00:00:00")); if (partitionDay.isBefore(oldestToKeep)) removeList.add(dirEntry); + } - if ( ! removeList.isEmpty()) + // Remove unless all partitions are old: Removing all partitions "will be supported in the future" + if ( removeList.size() < partitionsFound && ! removeList.isEmpty()) compiler.compile("alter table " + tableName + " drop partition " + removeList.stream().map(dir -> "'" + dir + "'").collect(Collectors.joining(",")), context); |