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 <hanahmily@gmail.com>
This commit is contained in:
parent
ccb65ff27f
commit
12703fa54e
|
|
@ -54,19 +54,21 @@ public class HistoryDeleteEsDAO extends EsDAO implements IHistoryDeleteDAO {
|
||||||
List<String> indexes = client.retrievalIndexByAliases(model.getName());
|
List<String> indexes = client.retrievalIndexByAliases(model.getName());
|
||||||
|
|
||||||
List<String> prepareDeleteIndexes = new ArrayList<>();
|
List<String> prepareDeleteIndexes = new ArrayList<>();
|
||||||
|
List<String> leftIndices = new ArrayList<>();
|
||||||
for (String index : indexes) {
|
for (String index : indexes) {
|
||||||
long timeSeries = TimeSeriesUtils.isolateTimeFromIndexName(index);
|
long timeSeries = TimeSeriesUtils.isolateTimeFromIndexName(index);
|
||||||
if (deadline >= timeSeries) {
|
if (deadline >= timeSeries) {
|
||||||
prepareDeleteIndexes.add(index);
|
prepareDeleteIndexes.add(index);
|
||||||
|
} else {
|
||||||
|
leftIndices.add(index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (indexes.size() == prepareDeleteIndexes.size()) {
|
|
||||||
client.createIndex(TimeSeriesUtils.latestWriteIndexName(model));
|
|
||||||
}
|
|
||||||
|
|
||||||
for (String prepareDeleteIndex : prepareDeleteIndexes) {
|
for (String prepareDeleteIndex : prepareDeleteIndexes) {
|
||||||
client.deleteByIndexName(prepareDeleteIndex);
|
client.deleteByIndexName(prepareDeleteIndex);
|
||||||
}
|
}
|
||||||
|
String latestIndex = TimeSeriesUtils.latestWriteIndexName(model);
|
||||||
|
if (!leftIndices.contains(latestIndex)) {
|
||||||
|
client.createIndex(latestIndex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue