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 34b63ae Make persistent period configurable. (#3070)
34b63ae is described below
commit 34b63ae1358d3176c7b87f067d06d7b1a58f0902
Author: 吴晟 Wu Sheng <[email protected]>
AuthorDate: Sun Jul 14 16:13:32 2019 +0800
Make persistent period configurable. (#3070)
---
.../org/apache/skywalking/oap/server/core/CoreModuleConfig.java | 5 +++++
.../org/apache/skywalking/oap/server/core/CoreModuleProvider.java | 2 +-
.../skywalking/oap/server/core/storage/PersistenceTimer.java | 8 +++-----
3 files changed, 9 insertions(+), 6 deletions(-)
diff --git
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleConfig.java
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleConfig.java
index 908b22d..7d4c3ab 100644
---
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleConfig.java
+++
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleConfig.java
@@ -38,6 +38,11 @@ public class CoreModuleConfig extends ModuleConfig {
@Setter private int maxConcurrentCallsPerConnection;
@Setter private int maxMessageSize;
private final List<String> downsampling;
+ /**
+ * The period of doing data persistence.
+ * Unit is second.
+ */
+ @Setter private long persistentPeriod = 3;
@Setter private boolean enableDataKeeperExecutor = true;
@Setter private int recordDataTTL;
@Setter private int minuteMetricsDataTTL;
diff --git
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java
index 01ddd9f..5c60cd3 100644
---
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java
+++
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java
@@ -179,7 +179,7 @@ public class CoreModuleProvider extends ModuleProvider {
this.getManager().find(ClusterModule.NAME).provider().getService(ClusterRegister.class).registerRemote(gRPCServerInstance);
}
- PersistenceTimer.INSTANCE.start(getManager());
+ PersistenceTimer.INSTANCE.start(getManager(), moduleConfig);
if (moduleConfig.isEnableDataKeeperExecutor()) {
DataTTLKeeperTimer.INSTANCE.start(getManager());
diff --git
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/PersistenceTimer.java
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/PersistenceTimer.java
index 4aa3929..c26e11b 100644
---
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/PersistenceTimer.java
+++
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/PersistenceTimer.java
@@ -21,6 +21,7 @@ package org.apache.skywalking.oap.server.core.storage;
import java.util.*;
import java.util.concurrent.*;
import org.apache.skywalking.apm.util.RunnableWithExceptionProtection;
+import org.apache.skywalking.oap.server.core.CoreModuleConfig;
import org.apache.skywalking.oap.server.core.analysis.worker.*;
import org.apache.skywalking.oap.server.library.module.ModuleManager;
import org.apache.skywalking.oap.server.telemetry.TelemetryModule;
@@ -45,11 +46,8 @@ public enum PersistenceTimer {
this.debug = System.getProperty("debug") != null;
}
- public void start(ModuleManager moduleManager) {
+ public void start(ModuleManager moduleManager, CoreModuleConfig
moduleConfig) {
logger.info("persistence timer start");
- //TODO timer value config
-// final long timeInterval = EsConfig.Es.Persistence.Timer.VALUE * 1000;
- final long timeInterval = 3;
IBatchDAO batchDAO =
moduleManager.find(StorageModule.NAME).provider().getService(IBatchDAO.class);
MetricsCreator metricsCreator =
moduleManager.find(TelemetryModule.NAME).provider().getService(MetricsCreator.class);
@@ -63,7 +61,7 @@ public enum PersistenceTimer {
if (!isStarted) {
Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(
new RunnableWithExceptionProtection(() ->
extractDataAndSave(batchDAO),
- t -> logger.error("Extract data and save failure.", t)),
1, timeInterval, TimeUnit.SECONDS);
+ t -> logger.error("Extract data and save failure.", t)),
1, moduleConfig.getPersistentPeriod(), TimeUnit.SECONDS);
this.isStarted = true;
}