You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ha...@apache.org on 2023/01/05 02:31:53 UTC
[skywalking] branch banyandb updated: Mark serviceId as a no-indexing tag.
This is an automated email from the ASF dual-hosted git repository.
hanahmily pushed a commit to branch banyandb
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/banyandb by this push:
new 19628d3b2b Mark serviceId as a no-indexing tag.
19628d3b2b is described below
commit 19628d3b2b5892f5bdffc05456ebbecb89fe2c6e
Author: Gao Hongtao <ha...@gmail.com>
AuthorDate: Thu Jan 5 10:31:10 2023 +0800
Mark serviceId as a no-indexing tag.
Signed-off-by: Gao Hongtao <ha...@gmail.com>
---
.../org/apache/skywalking/oal/rt/OALRuntime.java | 4 ++++
.../skywalking/oal/rt/parser/SourceColumn.java | 14 +++++++------
.../oal/rt/parser/SourceColumnsFactory.java | 2 +-
.../analysis/meter/function/avg/AvgFunction.java | 1 +
.../meter/function/avg/AvgLabeledFunction.java | 1 +
.../meter/function/latest/LatestFunction.java | 1 +
.../analysis/meter/function/sum/SumFunction.java | 1 +
.../function/sumpermin/SumPerMinFunction.java | 1 +
.../sumpermin/SumPerMinLabeledFunction.java | 1 +
.../oap/server/core/source/DefaultScopeDefine.java | 4 ++--
.../oap/server/core/source/Endpoint.java | 2 +-
.../oap/server/core/source/MQEndpointAccess.java | 2 +-
.../oap/server/core/source/ScopeDefaultColumn.java | 14 +++++++++++--
.../oap/server/core/source/ServiceInstance.java | 2 +-
.../server/core/source/ServiceInstanceCLRCPU.java | 2 +-
.../server/core/source/ServiceInstanceCLRGC.java | 2 +-
.../core/source/ServiceInstanceCLRThread.java | 2 +-
.../server/core/source/ServiceInstanceJVMCPU.java | 2 +-
.../core/source/ServiceInstanceJVMClass.java | 2 +-
.../server/core/source/ServiceInstanceJVMGC.java | 2 +-
.../core/source/ServiceInstanceJVMMemory.java | 2 +-
.../core/source/ServiceInstanceJVMMemoryPool.java | 2 +-
.../core/source/ServiceInstanceJVMThread.java | 2 +-
.../oap/server/core/storage/model/ModelColumn.java | 3 +++
.../server/core/storage/model/StorageModels.java | 2 +-
.../storage/plugin/banyandb/MetadataRegistry.java | 24 +++++++++++++---------
26 files changed, 63 insertions(+), 34 deletions(-)
diff --git a/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/OALRuntime.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/OALRuntime.java
index 26c2a876ff..58605a01c9 100644
--- a/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/OALRuntime.java
+++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/OALRuntime.java
@@ -275,6 +275,10 @@ public class OALRuntime implements OALEngine {
banyanShardingKeyAnnotation.addMemberValue("index", new IntegerMemberValue(constPool, 0));
annotationsAttribute.addAnnotation(banyanShardingKeyAnnotation);
}
+ if (field.isBanyandbNoIndexing()) {
+ Annotation banyandbNoIndexingAnnotation = new Annotation(BanyanDB.NoIndexing.class.getName(), constPool);
+ annotationsAttribute.addAnnotation(banyandbNoIndexingAnnotation);
+ }
newField.getFieldInfo().addAttribute(annotationsAttribute);
} catch (CannotCompileException e) {
diff --git a/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/SourceColumn.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/SourceColumn.java
index b1d6618c09..844d138656 100644
--- a/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/SourceColumn.java
+++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/SourceColumn.java
@@ -34,14 +34,16 @@ public class SourceColumn {
private int length;
private String fieldSetter;
private String fieldGetter;
+ private boolean banyandbNoIndexing;
- public SourceColumn(String fieldName, String columnName, Class<?> type, boolean isID, int length) {
+ public SourceColumn(String fieldName, String columnName, Class<?> type, boolean isID, int length, boolean banyandbNoIndexing) {
this.fieldName = fieldName;
this.columnName = columnName;
this.type = type;
this.typeName = type.getName();
this.isID = isID;
this.length = length;
+ this.banyandbNoIndexing = banyandbNoIndexing;
this.fieldGetter = ClassMethodUtil.toGetMethod(fieldName);
this.fieldSetter = ClassMethodUtil.toSetMethod(fieldName);
@@ -79,7 +81,7 @@ public class SourceColumn {
@Override
public String toString() {
- return "SourceColumn{" + "fieldName='" + fieldName + '\'' + ", columnName='" + columnName + '\'' + ", type=" + type + ", isID=" + isID + '}';
+ return "SourceColumn{" + "fieldName='" + fieldName + '\'' + ", columnName='" + columnName + '\'' + ", type=" + type + ", isID=" + isID + ", banyandbNoIndexing=" + banyandbNoIndexing + "}";
}
@Override
@@ -89,13 +91,13 @@ public class SourceColumn {
if (o == null || getClass() != o.getClass())
return false;
SourceColumn column = (SourceColumn) o;
- return isID == column.isID && Objects.equals(fieldName, column.fieldName) && Objects.equals(columnName, column.columnName) && Objects
- .equals(type, column.type) && Objects.equals(typeName, column.typeName) && Objects.equals(fieldSetter, column.fieldSetter) && Objects
- .equals(fieldGetter, column.fieldGetter);
+ return isID == column.isID && banyandbNoIndexing == column.isBanyandbNoIndexing() && Objects.equals(fieldName, column.fieldName) && Objects
+ .equals(columnName, column.columnName) && Objects.equals(type, column.type) && Objects.equals(typeName, column.typeName) && Objects
+ .equals(fieldSetter, column.fieldSetter) && Objects.equals(fieldGetter, column.fieldGetter);
}
@Override
public int hashCode() {
- return Objects.hash(fieldName, columnName, type, typeName, isID, fieldSetter, fieldGetter);
+ return Objects.hash(fieldName, columnName, type, typeName, isID, fieldSetter, fieldGetter, banyandbNoIndexing);
}
}
diff --git a/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/SourceColumnsFactory.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/SourceColumnsFactory.java
index 2339513bf0..7932991c70 100644
--- a/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/SourceColumnsFactory.java
+++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/SourceColumnsFactory.java
@@ -31,7 +31,7 @@ public class SourceColumnsFactory {
for (ScopeDefaultColumn defaultColumn : columns) {
sourceColumns.add(
new SourceColumn(defaultColumn.getFieldName(), defaultColumn.getColumnName(), defaultColumn
- .getType(), defaultColumn.isID(), defaultColumn.getLength()));
+ .getType(), defaultColumn.isID(), defaultColumn.getLength(), defaultColumn.isBanyandbNoIndexing()));
}
return sourceColumns;
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgFunction.java
index d7aed9e3c4..c15c74f8d1 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgFunction.java
@@ -61,6 +61,7 @@ public abstract class AvgFunction extends Meter implements AcceptableValue<Long>
@Setter
@Getter
@Column(columnName = InstanceTraffic.SERVICE_ID)
+ @BanyanDB.NoIndexing
private String serviceId;
@Getter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgLabeledFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgLabeledFunction.java
index c7c46f4e6f..ebf37065e2 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgLabeledFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgLabeledFunction.java
@@ -60,6 +60,7 @@ public abstract class AvgLabeledFunction extends Meter implements AcceptableValu
@Setter
@Getter
@Column(columnName = InstanceTraffic.SERVICE_ID)
+ @BanyanDB.NoIndexing
private String serviceId;
@Getter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/latest/LatestFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/latest/LatestFunction.java
index c5145212b6..d5535519f8 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/latest/LatestFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/latest/LatestFunction.java
@@ -58,6 +58,7 @@ public abstract class LatestFunction extends Meter implements AcceptableValue<Lo
@Setter
@Getter
@Column(columnName = InstanceTraffic.SERVICE_ID)
+ @BanyanDB.NoIndexing
private String serviceId;
@Getter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumFunction.java
index e973b07313..37108c9523 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumFunction.java
@@ -55,6 +55,7 @@ public abstract class SumFunction extends Meter implements AcceptableValue<Long>
@Setter
@Getter
@Column(columnName = InstanceTraffic.SERVICE_ID)
+ @BanyanDB.NoIndexing
private String serviceId;
@Getter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinFunction.java
index 77b439476b..09be394473 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinFunction.java
@@ -56,6 +56,7 @@ public abstract class SumPerMinFunction extends Meter implements AcceptableValue
@Setter
@Getter
@Column(columnName = InstanceTraffic.SERVICE_ID)
+ @BanyanDB.NoIndexing
private String serviceId;
@Getter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinLabeledFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinLabeledFunction.java
index 7acfd06c66..a57d8ad18e 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinLabeledFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinLabeledFunction.java
@@ -55,6 +55,7 @@ public abstract class SumPerMinLabeledFunction extends Meter implements Acceptab
@Setter
@Getter
@Column(columnName = InstanceTraffic.SERVICE_ID)
+ @BanyanDB.NoIndexing
private String serviceId;
@Getter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DefaultScopeDefine.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DefaultScopeDefine.java
index 9b47583caa..9b62583f2b 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DefaultScopeDefine.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DefaultScopeDefine.java
@@ -203,7 +203,7 @@ public class DefaultScopeDefine {
if (virtualColumn != null) {
scopeDefaultColumns.add(
new ScopeDefaultColumn(virtualColumn.fieldName(), virtualColumn.columnName(), virtualColumn
- .type(), virtualColumn.isID(), virtualColumn.length()));
+ .type(), virtualColumn.isID(), virtualColumn.length(), false));
}
Field[] scopeClassField = originalClass.getDeclaredFields();
if (scopeClassField != null) {
@@ -215,7 +215,7 @@ public class DefaultScopeDefine {
scopeDefaultColumns.add(
new ScopeDefaultColumn(
field.getName(), definedByField.columnName(), field.getType(), false,
- definedByField.length()
+ definedByField.length(), definedByField.requiredNoIndexingForBanyanDB()
));
}
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Endpoint.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Endpoint.java
index ac42420571..6ef374cadd 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Endpoint.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Endpoint.java
@@ -54,7 +54,7 @@ public class Endpoint extends Source {
@ScopeDefaultColumn.DefinedByField(columnName = "name", requireDynamicActive = true)
private String name;
@Getter
- @ScopeDefaultColumn.DefinedByField(columnName = "service_id")
+ @ScopeDefaultColumn.DefinedByField(columnName = "service_id", requiredNoIndexingForBanyanDB = true)
private String serviceId;
@Getter
@Setter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/MQEndpointAccess.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/MQEndpointAccess.java
index 8e34d82e7a..940b25ad5f 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/MQEndpointAccess.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/MQEndpointAccess.java
@@ -43,7 +43,7 @@ public class MQEndpointAccess extends Source {
private String entityId;
@Getter
- @ScopeDefaultColumn.DefinedByField(columnName = "service_id")
+ @ScopeDefaultColumn.DefinedByField(columnName = "service_id", requiredNoIndexingForBanyanDB = true)
private String serviceId;
@Getter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ScopeDefaultColumn.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ScopeDefaultColumn.java
index c24706c98f..fe5ad1f07e 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ScopeDefaultColumn.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ScopeDefaultColumn.java
@@ -34,14 +34,16 @@ public class ScopeDefaultColumn {
private String columnName;
private Class<?> type;
private boolean isID;
+ private boolean banyandbNoIndexing;
private int length;
- public ScopeDefaultColumn(String fieldName, String columnName, Class<?> type, boolean isID, int length) {
+ public ScopeDefaultColumn(String fieldName, String columnName, Class<?> type, boolean isID, int length, boolean banyandbNoIndexing) {
this.fieldName = fieldName;
this.columnName = columnName;
this.type = type;
this.isID = isID;
this.length = length;
+ this.banyandbNoIndexing = banyandbNoIndexing;
}
@Target({ElementType.FIELD})
@@ -52,7 +54,7 @@ public class ScopeDefaultColumn {
/**
* Dynamic active means this column is only activated through core setting explicitly.
*
- * @return
+ * @return false: Inactive dynamic column. true: Active dynamic column.
*/
boolean requireDynamicActive() default false;
@@ -60,6 +62,14 @@ public class ScopeDefaultColumn {
* Define column length, only effective when the type is String.
*/
int length() default 256;
+
+
+ /**
+ * Active indexing for a column(tag) in BanyanDB.
+ *
+ * @return false: Indexing the column, true: No indexing the column.
+ */
+ boolean requiredNoIndexingForBanyanDB() default false;
}
@Target({ElementType.TYPE})
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstance.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstance.java
index 6382c80ba5..226ef94b95 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstance.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstance.java
@@ -47,7 +47,7 @@ public class ServiceInstance extends Source {
}
@Getter
- @ScopeDefaultColumn.DefinedByField(columnName = "service_id")
+ @ScopeDefaultColumn.DefinedByField(columnName = "service_id", requiredNoIndexingForBanyanDB = true)
private String serviceId;
@Getter
@Setter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRCPU.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRCPU.java
index 64cbc46bd1..b25c36b847 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRCPU.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRCPU.java
@@ -53,7 +53,7 @@ public class ServiceInstanceCLRCPU extends Source {
private String serviceName;
@Getter
@Setter
- @ScopeDefaultColumn.DefinedByField(columnName = "service_id")
+ @ScopeDefaultColumn.DefinedByField(columnName = "service_id", requiredNoIndexingForBanyanDB = true)
private String serviceId;
@Getter
@Setter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRGC.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRGC.java
index d90829be40..94e00dc1cc 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRGC.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRGC.java
@@ -53,7 +53,7 @@ public class ServiceInstanceCLRGC extends Source {
private String serviceName;
@Getter
@Setter
- @ScopeDefaultColumn.DefinedByField(columnName = "service_id")
+ @ScopeDefaultColumn.DefinedByField(columnName = "service_id", requiredNoIndexingForBanyanDB = true)
private String serviceId;
@Getter
@Setter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRThread.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRThread.java
index c9e02af25f..7754f193c2 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRThread.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRThread.java
@@ -53,7 +53,7 @@ public class ServiceInstanceCLRThread extends Source {
private String serviceName;
@Getter
@Setter
- @ScopeDefaultColumn.DefinedByField(columnName = "service_id")
+ @ScopeDefaultColumn.DefinedByField(columnName = "service_id", requiredNoIndexingForBanyanDB = true)
private String serviceId;
@Getter
@Setter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMCPU.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMCPU.java
index 58c99255d2..3e3a958c78 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMCPU.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMCPU.java
@@ -50,7 +50,7 @@ public class ServiceInstanceJVMCPU extends Source {
private String serviceName;
@Getter
@Setter
- @ScopeDefaultColumn.DefinedByField(columnName = "service_id")
+ @ScopeDefaultColumn.DefinedByField(columnName = "service_id", requiredNoIndexingForBanyanDB = true)
private String serviceId;
@Getter
@Setter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMClass.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMClass.java
index 451619864b..2630af141a 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMClass.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMClass.java
@@ -50,7 +50,7 @@ public class ServiceInstanceJVMClass extends Source {
private String serviceName;
@Getter
@Setter
- @ScopeDefaultColumn.DefinedByField(columnName = "service_id")
+ @ScopeDefaultColumn.DefinedByField(columnName = "service_id", requiredNoIndexingForBanyanDB = true)
private String serviceId;
@Getter
@Setter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMGC.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMGC.java
index 36868a45ed..46714088e4 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMGC.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMGC.java
@@ -50,7 +50,7 @@ public class ServiceInstanceJVMGC extends Source {
private String serviceName;
@Getter
@Setter
- @ScopeDefaultColumn.DefinedByField(columnName = "service_id")
+ @ScopeDefaultColumn.DefinedByField(columnName = "service_id", requiredNoIndexingForBanyanDB = true)
private String serviceId;
@Getter
@Setter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemory.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemory.java
index ea715012ff..e6c2328f13 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemory.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemory.java
@@ -50,7 +50,7 @@ public class ServiceInstanceJVMMemory extends Source {
private String serviceName;
@Getter
@Setter
- @ScopeDefaultColumn.DefinedByField(columnName = "service_id")
+ @ScopeDefaultColumn.DefinedByField(columnName = "service_id", requiredNoIndexingForBanyanDB = true)
private String serviceId;
@Getter
@Setter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemoryPool.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemoryPool.java
index 193fbc1a87..efa1ff62a3 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemoryPool.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemoryPool.java
@@ -50,7 +50,7 @@ public class ServiceInstanceJVMMemoryPool extends Source {
private String serviceName;
@Getter
@Setter
- @ScopeDefaultColumn.DefinedByField(columnName = "service_id")
+ @ScopeDefaultColumn.DefinedByField(columnName = "service_id", requiredNoIndexingForBanyanDB = true)
private String serviceId;
@Getter
@Setter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMThread.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMThread.java
index 741d2ac2ae..29cc159481 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMThread.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMThread.java
@@ -50,7 +50,7 @@ public class ServiceInstanceJVMThread extends Source {
private String serviceName;
@Getter
@Setter
- @ScopeDefaultColumn.DefinedByField(columnName = "service_id")
+ @ScopeDefaultColumn.DefinedByField(columnName = "service_id", requiredNoIndexingForBanyanDB = true)
private String serviceId;
@Getter
@Setter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/ModelColumn.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/ModelColumn.java
index 2683b9f93e..c84e65c372 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/ModelColumn.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/ModelColumn.java
@@ -104,6 +104,9 @@ public class ModelColumn {
* @return true means this column should be indexed, as it would be a query condition.
*/
public boolean shouldIndex() {
+ if (banyanDBExtension != null) {
+ return banyanDBExtension.shouldIndex();
+ }
return !storageOnly;
}
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/StorageModels.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/StorageModels.java
index e231fbbb10..66224c06c7 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/StorageModels.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/StorageModels.java
@@ -211,7 +211,7 @@ public class StorageModels implements IModelManager, ModelCreator, ModelManipula
BanyanDBExtension banyanDBExtension = new BanyanDBExtension(
banyanDBSeriesID == null ? -1 : banyanDBSeriesID.index(),
banyanDBGlobalIndex != null,
- banyanDBNoIndex == null && column.storageOnly(),
+ banyanDBNoIndex == null && !column.storageOnly(),
banyanDBIndexRule == null ? BanyanDB.IndexRule.IndexType.INVERTED : banyanDBIndexRule.indexType(),
banyanDBMeasureField != null
);
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java
index 11addacc60..4e00f29106 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java
@@ -89,11 +89,14 @@ public enum MetadataRegistry {
.collect(Collectors.toMap(modelColumn -> modelColumn.getColumnName().getStorageName(), Function.identity()));
// parse and set sharding keys
List<String> shardingColumns = parseEntityNames(modelColumnMap);
+ if (shardingColumns.isEmpty()) {
+ throw new IllegalStateException("sharding keys of model[stream." + model.getName() + "] must not be empty");
+ }
// parse tag metadata
// this can be used to build both
// 1) a list of TagFamilySpec,
// 2) a list of IndexRule,
- List<TagMetadata> tags = parseTagMetadata(model, schemaBuilder);
+ List<TagMetadata> tags = parseTagMetadata(model, schemaBuilder, shardingColumns);
List<TagFamilySpec> tagFamilySpecs = schemaMetadata.extractTagFamilySpec(tags, false);
// iterate over tagFamilySpecs to save tag names
for (final TagFamilySpec tagFamilySpec : tagFamilySpecs) {
@@ -113,9 +116,6 @@ public enum MetadataRegistry {
.collect(Collectors.toList());
final Stream.Builder builder = Stream.create(schemaMetadata.getGroup(), schemaMetadata.name());
- if (shardingColumns.isEmpty()) {
- throw new IllegalStateException("sharding keys of model[stream." + model.getName() + "] must not be empty");
- }
builder.setEntityRelativeTags(shardingColumns);
builder.addTagFamilies(tagFamilySpecs);
builder.addIndexes(indexRules);
@@ -137,7 +137,7 @@ public enum MetadataRegistry {
// this can be used to build both
// 1) a list of TagFamilySpec,
// 2) a list of IndexRule,
- MeasureMetadata tagsAndFields = parseTagAndFieldMetadata(model, schemaBuilder);
+ MeasureMetadata tagsAndFields = parseTagAndFieldMetadata(model, schemaBuilder, shardingColumns);
List<TagFamilySpec> tagFamilySpecs = schemaMetadata.extractTagFamilySpec(tagsAndFields.tags, model.getBanyanDBModelExtension().isShouldStoreIDTag());
// iterate over tagFamilySpecs to save tag names
for (final TagFamilySpec tagFamilySpec : tagFamilySpecs) {
@@ -158,7 +158,9 @@ public enum MetadataRegistry {
downSamplingDuration(model.getDownsampling()));
builder.setEntityRelativeTags(shardingColumns);
builder.addTagFamilies(tagFamilySpecs);
- builder.addIndexes(indexRules);
+ if (!indexRules.isEmpty()) {
+ builder.addIndexes(indexRules);
+ }
// parse and set field
for (Measure.FieldSpec field : tagsAndFields.fields) {
builder.addField(field);
@@ -297,7 +299,7 @@ public enum MetadataRegistry {
*
* @since 9.4.0 Skip {@link Record#TIME_BUCKET}
*/
- List<TagMetadata> parseTagMetadata(Model model, Schema.SchemaBuilder builder) {
+ List<TagMetadata> parseTagMetadata(Model model, Schema.SchemaBuilder builder, List<String> shardingColumns) {
List<TagMetadata> tagMetadataList = new ArrayList<>();
for (final ModelColumn col : model.getColumns()) {
final String columnStorageName = col.getColumnName().getStorageName();
@@ -306,7 +308,8 @@ public enum MetadataRegistry {
}
final TagFamilySpec.TagSpec tagSpec = parseTagSpec(col);
builder.spec(columnStorageName, new ColumnSpec(ColumnType.TAG, col.getType()));
- if (col.shouldIndex()) {
+ String colName = col.getColumnName().getStorageName();
+ if (!shardingColumns.contains(colName) && col.shouldIndex()) {
// build indexRule
IndexRule indexRule = parseIndexRule(tagSpec.getTagName(), col);
tagMetadataList.add(new TagMetadata(indexRule, tagSpec));
@@ -333,7 +336,7 @@ public enum MetadataRegistry {
*
* @since 9.4.0 Skip {@link Metrics#TIME_BUCKET}
*/
- MeasureMetadata parseTagAndFieldMetadata(Model model, Schema.SchemaBuilder builder) {
+ MeasureMetadata parseTagAndFieldMetadata(Model model, Schema.SchemaBuilder builder, List<String> shardingColumns) {
// skip metric
Optional<ValueColumnMetadata.ValueColumn> valueColumnOpt = ValueColumnMetadata.INSTANCE
.readValueColumnDefinition(model.getName());
@@ -350,7 +353,8 @@ public enum MetadataRegistry {
}
final TagFamilySpec.TagSpec tagSpec = parseTagSpec(col);
builder.spec(columnStorageName, new ColumnSpec(ColumnType.TAG, col.getType()));
- result.tag(new TagMetadata(col.shouldIndex() ? parseIndexRule(tagSpec.getTagName(), col) : null, tagSpec));
+ String colName = col.getColumnName().getStorageName();
+ result.tag(new TagMetadata(!shardingColumns.contains(colName) && col.shouldIndex() ? parseIndexRule(tagSpec.getTagName(), col) : null, tagSpec));
}
return result.build();