summaryrefslogtreecommitdiffstats
path: root/node-repository/src
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2020-11-09 13:36:05 +0100
committerJon Bratseth <bratseth@gmail.com>2020-11-09 13:36:05 +0100
commit860a24bb85a474e88264bf84082339f677fa12f1 (patch)
tree394ea8c195e7abf42ed11a596b31e0562c2f4042 /node-repository/src
parent0c68b00b2d3a9ddc191ed1733ba2f8699d1c3dc1 (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.java7
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);