You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2023/03/26 08:53:26 UTC
[skywalking] branch master updated: Fix additional table is not created for the next day (#10594)
This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new ffc8453332 Fix additional table is not created for the next day (#10594)
ffc8453332 is described below
commit ffc8453332bc991e97ad4c745e56437b5464e875
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Sun Mar 26 16:53:15 2023 +0800
Fix additional table is not created for the next day (#10594)
---
.../storage/plugin/jdbc/common/JDBCTableInstaller.java | 15 +++++++++------
.../plugin/jdbc/common/dao/JDBCHistoryDeleteDAO.java | 3 +--
.../plugin/jdbc/common/dao/JDBCHistoryDeleteDAOIT.java | 2 +-
3 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/JDBCTableInstaller.java b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/JDBCTableInstaller.java
index 956aec6585..c41eb58363 100644
--- a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/JDBCTableInstaller.java
+++ b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/JDBCTableInstaller.java
@@ -21,7 +21,9 @@ package org.apache.skywalking.oap.server.storage.plugin.jdbc.common;
import com.google.gson.JsonObject;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
+import org.apache.skywalking.oap.server.core.analysis.DownSampling;
import org.apache.skywalking.oap.server.core.analysis.Layer;
+import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.storage.model.ColumnName;
import org.apache.skywalking.oap.server.core.storage.model.Model;
@@ -86,15 +88,16 @@ public class JDBCTableInstaller extends ModelInstaller {
@Override
@SneakyThrows
public void createTable(Model model) {
- final var table = TableHelper.getLatestTableForWrite(model);
- createTable(model, table);
+ final var dayTimeBucket = TimeBucket.getTimeBucket(System.currentTimeMillis(), DownSampling.Day);
+ createTable(model, dayTimeBucket);
}
@SneakyThrows
- public void createTable(Model model, String table) {
+ public void createTable(Model model, long timeBucket) {
+ final var table = TableHelper.getTable(model, timeBucket);
createOrUpdateTable(table, model.getColumns(), false);
createOrUpdateTableIndexes(table, model.getColumns(), false);
- createAdditionalTable(model);
+ createAdditionalTable(model, timeBucket);
}
public String getColumnDefinition(ModelColumn column) {
@@ -214,10 +217,10 @@ public class JDBCTableInstaller extends ModelInstaller {
c.execute(sql.toString());
}
- public void createAdditionalTable(Model model) throws SQLException {
+ public void createAdditionalTable(Model model, long timeBucket) throws SQLException {
final var additionalTables = model.getSqlDBModelExtension().getAdditionalTables();
for (final var table : additionalTables.values()) {
- final var tableName = TableHelper.getLatestTableForWrite(table.getName());
+ final var tableName = TableHelper.getTable(table.getName(), timeBucket);
createOrUpdateTable(tableName, table.getColumns(), true);
createOrUpdateTableIndexes(tableName, table.getColumns(), true);
}
diff --git a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCHistoryDeleteDAO.java b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCHistoryDeleteDAO.java
index 9aa92dd464..8d716e7af3 100644
--- a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCHistoryDeleteDAO.java
+++ b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCHistoryDeleteDAO.java
@@ -103,8 +103,7 @@ public class JDBCHistoryDeleteDAO implements IHistoryDeleteDAO {
// Create tables for the next day.
final var nextTimeBucket = TimeBucket.getTimeBucket(clock.millis() + TimeUnit.DAYS.toMillis(1), DownSampling.Day);
- final var table = TableHelper.getTable(model, nextTimeBucket);
- modelInstaller.createTable(model, table);
+ modelInstaller.createTable(model, nextTimeBucket);
lastDeletedTimeBucket.put(model.getName(), deadline);
}
diff --git a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/test/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCHistoryDeleteDAOIT.java b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/test/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCHistoryDeleteDAOIT.java
index 0199c9acea..9783096b48 100644
--- a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/test/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCHistoryDeleteDAOIT.java
+++ b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/test/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCHistoryDeleteDAOIT.java
@@ -117,7 +117,7 @@ class JDBCHistoryDeleteDAOIT {
void test() throws SQLException {
// Table install should create the table.
var clock = Clock.fixed(Instant.parse("2023-03-17T10:00:00Z"), ZoneId.systemDefault());
- tableInstaller.createTable(model, "service_traffic_20230317");
+ tableInstaller.createTable(model, 20230317);
var jdbcHistoryDeleteDAO = new JDBCHistoryDeleteDAO(jdbcClient, tableHelper, tableInstaller, clock);
jdbcHistoryDeleteDAO.deleteHistory(model, "time_bucket", 3);