Browse Source

Create collection support set consistency level (#490)

Signed-off-by: kl <chenkailing@xd.com>
kl 2 years ago
parent
commit
3364f47fa9

+ 1 - 0
src/main/java/io/milvus/client/AbstractMilvusGrpcClient.java

@@ -409,6 +409,7 @@ public abstract class AbstractMilvusGrpcClient implements MilvusClient {
             CreateCollectionRequest createCollectionRequest = CreateCollectionRequest.newBuilder()
                     .setCollectionName(requestParam.getCollectionName())
                     .setShardsNum(requestParam.getShardsNum())
+                    .setConsistencyLevelValue(requestParam.getConsistencyLevel().getCode())
                     .setSchema(collectionSchemaBuilder.build().toByteString())
                     .build();
 

+ 1 - 1
src/main/java/io/milvus/common/clientenum/ConsistencyLevelEnum.java

@@ -5,7 +5,7 @@ import lombok.Getter;
 public enum ConsistencyLevelEnum {
 
     STRONG("Strong", 0),
-//    SESSION("Session", 1),
+    SESSION("Session", 1),
     BOUNDED("Bounded", 2),
     EVENTUALLY("Eventually",3),
     ;

+ 18 - 1
src/main/java/io/milvus/param/collection/CreateCollectionParam.java

@@ -19,6 +19,7 @@
 
 package io.milvus.param.collection;
 
+import io.milvus.common.clientenum.ConsistencyLevelEnum;
 import io.milvus.exception.ParamException;
 import io.milvus.param.ParamUtils;
 import lombok.Getter;
@@ -36,12 +37,14 @@ public class CreateCollectionParam {
     private final int shardsNum;
     private final String description;
     private final List<FieldType> fieldTypes;
+    private final ConsistencyLevelEnum consistencyLevel;
 
     private CreateCollectionParam(@NonNull Builder builder) {
         this.collectionName = builder.collectionName;
         this.shardsNum = builder.shardsNum;
         this.description = builder.description;
         this.fieldTypes = builder.fieldTypes;
+        this.consistencyLevel = builder.consistencyLevel;
     }
 
     public static Builder newBuilder() {
@@ -56,6 +59,7 @@ public class CreateCollectionParam {
         private int shardsNum = 2;
         private String description = "";
         private final List<FieldType> fieldTypes = new ArrayList<>();
+        private ConsistencyLevelEnum consistencyLevel = ConsistencyLevelEnum.SESSION;
 
         private Builder() {
         }
@@ -117,6 +121,18 @@ public class CreateCollectionParam {
             return this;
         }
 
+        /**
+         * Sets the consistency level. The default value is {@link ConsistencyLevelEnum#SESSION}.
+         * @see ConsistencyLevelEnum
+         *
+         * @param consistencyLevel consistency level
+         * @return <code>Builder</code>
+         */
+        public Builder withConsistencyLevel(@NonNull ConsistencyLevelEnum consistencyLevel) {
+            this.consistencyLevel = consistencyLevel;
+            return this;
+        }
+
         /**
          * Verifies parameters and creates a new {@link CreateCollectionParam} instance.
          *
@@ -154,7 +170,8 @@ public class CreateCollectionParam {
                 "collectionName='" + collectionName + '\'' +
                 ", shardsNum=" + shardsNum +
                 ", description='" + description + '\'' +
-                ", fields=" + fieldTypes.toString() +
+                ", fields=" + fieldTypes.toString() + '\'' +
+                ", consistencyLevel=" + consistencyLevel +
                 '}';
     }
 }