You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by pe...@apache.org on 2018/12/21 14:32:13 UTC
[incubator-skywalking] branch master updated: Refactor register API
for making integration easier. (#2075)
This is an automated email from the ASF dual-hosted git repository.
pengys pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new c592aea Refactor register API for making integration easier. (#2075)
c592aea is described below
commit c592aea8db02293861e45a0e9e34de17d5883a99
Author: 吴晟 Wu Sheng <wu...@foxmail.com>
AuthorDate: Fri Dec 21 22:32:06 2018 +0800
Refactor register API for making integration easier. (#2075)
* Refactor register API for making integration easier.
* Fix wrong refactor.
---
.../server/core/register/worker/RegisterPersistentWorker.java | 4 ++--
.../apache/skywalking/oap/server/core/storage/IRegisterDAO.java | 9 ++++++++-
.../server/storage/plugin/elasticsearch/base/RegisterEsDAO.java | 7 ++++---
.../oap/server/storage/plugin/jdbc/h2/dao/H2RegisterDAO.java | 7 ++++---
4 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterPersistentWorker.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterPersistentWorker.java
index b315074..61b287c 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterPersistentWorker.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterPersistentWorker.java
@@ -78,8 +78,8 @@ public class RegisterPersistentWorker extends AbstractWorker<RegisterSource> {
dbSource.combine(source);
registerDAO.forceUpdate(modelName, dbSource);
} else {
- int sequence = registerDAO.max(modelName);
- source.setSequence(sequence + 1);
+ int sequence = registerDAO.registerId(modelName, source);
+ source.setSequence(sequence);
registerDAO.forceInsert(modelName, source);
}
} catch (Throwable t) {
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/IRegisterDAO.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/IRegisterDAO.java
index 18350a9..d42e920 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/IRegisterDAO.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/IRegisterDAO.java
@@ -26,7 +26,14 @@ import org.apache.skywalking.oap.server.core.register.RegisterSource;
*/
public interface IRegisterDAO extends DAO {
- int max(String modelName) throws IOException;
+ /**
+ * According modelName and register source, try to get the unique ID for this particular model.
+ * @param modelName
+ * @param registerSource
+ * @return the unique id. This ID for each model should start with 2. 1 has been reserved.
+ * @throws IOException
+ */
+ int registerId(String modelName, RegisterSource registerSource) throws IOException;
RegisterSource get(String modelName, String id) throws IOException;
diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RegisterEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RegisterEsDAO.java
index 1790854..11d423a 100644
--- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RegisterEsDAO.java
+++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RegisterEsDAO.java
@@ -78,7 +78,8 @@ public class RegisterEsDAO extends EsDAO implements IRegisterDAO {
getClient().forceUpdate(modelName, source.id(), builder);
}
- @Override public int max(String modelName) throws IOException {
+ @Override public int registerId(String modelName,
+ RegisterSource registerSource) throws IOException {
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.aggregation(AggregationBuilders.max(RegisterSource.SEQUENCE).field(RegisterSource.SEQUENCE));
searchSourceBuilder.size(0);
@@ -91,9 +92,9 @@ public class RegisterEsDAO extends EsDAO implements IRegisterDAO {
int id = (int)agg.getValue();
if (id == Integer.MAX_VALUE || id == Integer.MIN_VALUE) {
- return 1;
+ return 2;
} else {
- return id;
+ return id + 1;
}
}
}
diff --git a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2RegisterDAO.java b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2RegisterDAO.java
index c6b2e6b..3403fe6 100644
--- a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2RegisterDAO.java
+++ b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2RegisterDAO.java
@@ -46,15 +46,16 @@ public class H2RegisterDAO extends H2SQLExecutor implements IRegisterDAO {
this.storageBuilder = storageBuilder;
}
- @Override public int max(String modelName) throws IOException {
+ @Override public int registerId(String modelName,
+ RegisterSource registerSource) throws IOException {
try (Connection connection = h2Client.getConnection()) {
try (ResultSet rs = h2Client.executeQuery(connection, "SELECT max(sequence) max_id FROM " + modelName)) {
while (rs.next()) {
int maxId = rs.getInt("max_id");
if (maxId == 0) {
- return 1;
+ return 2;
} else {
- return maxId;
+ return maxId + 1;
}
}
}