You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ha...@apache.org on 2020/04/15 04:36:42 UTC

[skywalking] 01/01: Keep today's index always present. * Avoid TTL timer to remove today's index * Create a today's index even without any data.

This is an automated email from the ASF dual-hosted git repository.

hanahmily pushed a commit to branch es/ttl
in repository https://gitbox.apache.org/repos/asf/skywalking.git

commit d33d7d0b489f62151754bc93c2db70d36f8ec8a9
Author: Gao Hongtao <ha...@gmail.com>
AuthorDate: Wed Apr 15 12:31:40 2020 +0800

    Keep today's index always present.
      * Avoid TTL timer to remove today's index
      * Create a today's index even without any data.
    
    Signed-off-by: Gao Hongtao <ha...@gmail.com>
---
 .../plugin/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 c62dbe2..c85eea0 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
@@ -78,20 +78,22 @@ public class HistoryDeleteEsDAO extends EsDAO implements IHistoryDeleteDAO {
             List<String> indexes = client.retrievalIndexByAliases(model.getName());
 
             List<String> prepareDeleteIndexes = new ArrayList<>();
+            List<String> leftIndices = new ArrayList<>();
             for (String index : indexes) {
                 long timeSeries = TimeSeriesUtils.indexTimeSeries(index);
                 if (timeBefore >= timeSeries) {
                     prepareDeleteIndexes.add(index);
+                } else {
+                    leftIndices.add(index);
                 }
             }
-
-            if (indexes.size() == prepareDeleteIndexes.size()) {
-                client.createIndex(TimeSeriesUtils.timeSeries(model));
-            }
-
             for (String prepareDeleteIndex : prepareDeleteIndexes) {
                 client.deleteByIndexName(prepareDeleteIndex);
             }
+            String todayIndex = TimeSeriesUtils.timeSeries(model);
+            if (!leftIndices.contains(todayIndex)) {
+                client.createIndex(TimeSeriesUtils.timeSeries(model));
+            }
         } else {
             int statusCode = client.delete(model.getName(), timeBucketColumnName, timeBefore);
             if (logger.isDebugEnabled()) {