From 12703fa54edeb55a6f92d123f767461ea62d1df0 Mon Sep 17 00:00:00 2001 From: Gao Hongtao Date: Wed, 15 Apr 2020 15:08:38 +0800 Subject: [PATCH] Keep latest index always present. (#4655) * Keep latest index always present. * Avoid TTL timer to remove latest index * Create a latest index even without any data. Signed-off-by: Gao Hongtao --- .../elasticsearch/base/HistoryDeleteEsDAO.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/HistoryDeleteEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/HistoryDeleteEsDAO.java index d86bb434a..88ec7f886 100644 --- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/HistoryDeleteEsDAO.java +++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/HistoryDeleteEsDAO.java @@ -54,19 +54,21 @@ public class HistoryDeleteEsDAO extends EsDAO implements IHistoryDeleteDAO { List indexes = client.retrievalIndexByAliases(model.getName()); List prepareDeleteIndexes = new ArrayList<>(); + List leftIndices = new ArrayList<>(); for (String index : indexes) { long timeSeries = TimeSeriesUtils.isolateTimeFromIndexName(index); if (deadline >= timeSeries) { prepareDeleteIndexes.add(index); + } else { + leftIndices.add(index); } } - - if (indexes.size() == prepareDeleteIndexes.size()) { - client.createIndex(TimeSeriesUtils.latestWriteIndexName(model)); - } - for (String prepareDeleteIndex : prepareDeleteIndexes) { client.deleteByIndexName(prepareDeleteIndex); } + String latestIndex = TimeSeriesUtils.latestWriteIndexName(model); + if (!leftIndices.contains(latestIndex)) { + client.createIndex(latestIndex); + } } }