wu-sheng commented on code in PR #10544:
URL: https://github.com/apache/skywalking/pull/10544#discussion_r1138591933
##########
oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCHistoryDeleteDAO.java:
##########
@@ -18,66 +18,100 @@
package org.apache.skywalking.oap.server.storage.plugin.jdbc.common.dao;
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.SQLException;
+import lombok.RequiredArgsConstructor;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.tuple.Pair;
+import org.apache.skywalking.oap.server.core.analysis.DownSampling;
+import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
import org.apache.skywalking.oap.server.core.storage.IHistoryDeleteDAO;
import org.apache.skywalking.oap.server.core.storage.model.Model;
-import
org.apache.skywalking.oap.server.core.storage.model.SQLDatabaseModelExtension;
-import
org.apache.skywalking.oap.server.library.client.jdbc.JDBCClientException;
-import
org.apache.skywalking.oap.server.library.client.jdbc.hikaricp.JDBCHikariCPClient;
+import
org.apache.skywalking.oap.server.library.client.jdbc.hikaricp.JDBCClient;
import org.apache.skywalking.oap.server.storage.plugin.jdbc.SQLBuilder;
+import
org.apache.skywalking.oap.server.storage.plugin.jdbc.common.JDBCTableInstaller;
+import org.apache.skywalking.oap.server.storage.plugin.jdbc.common.TableHelper;
import org.joda.time.DateTime;
-import lombok.RequiredArgsConstructor;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.TimeUnit;
+
+@Slf4j
@RequiredArgsConstructor
public class JDBCHistoryDeleteDAO implements IHistoryDeleteDAO {
- private final JDBCHikariCPClient jdbcClient;
+ private final JDBCClient jdbcClient;
+ private final TableHelper tableHelper;
+ private final JDBCTableInstaller modelInstaller;
+
+ private final Map<Pair<Model, String>, Boolean> tableExistenceCache = new
ConcurrentHashMap<>();
@Override
- public void deleteHistory(Model model, String timeBucketColumnName, int
ttl) throws IOException {
- SQLBuilder dataDeleteSQL = new SQLBuilder("delete from " +
model.getName() + " where ")
- .append(timeBucketColumnName).append("<= ? ")
- .append(" and ")
- .append(timeBucketColumnName).append(">= ? ");
+ @SneakyThrows
+ public void deleteHistory(Model model, String timeBucketColumnName, int
ttl) {
+ final var endTimeBucket =
TimeBucket.getTimeBucket(System.currentTimeMillis(), DownSampling.Day);
Review Comment:
`IHistoryDeleteDAO` is driven by DataTTLKeeperTimer for a period of 5 mins.
I think we don't need to check the sync at such a high frequency.
Ref `HistoryDeleteEsDAO#indexLatestSuccess`, reduced the load. JDBC was
about deleting from tables, so, can't follow this.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]