diff --git a/tests/milvus-java-test/pom.xml b/tests/milvus-java-test/pom.xml
index 79340bd051..98cf9d2d97 100644
--- a/tests/milvus-java-test/pom.xml
+++ b/tests/milvus-java-test/pom.xml
@@ -116,7 +116,7 @@
io.milvus
milvus-sdk-java
- 0.8.2
+ 0.8.6-SNAPSHOT
diff --git a/tests/milvus-java-test/src/main/java/com/MainClass.java b/tests/milvus-java-test/src/main/java/com/MainClass.java
index e157f2c515..4206654479 100644
--- a/tests/milvus-java-test/src/main/java/com/MainClass.java
+++ b/tests/milvus-java-test/src/main/java/com/MainClass.java
@@ -34,12 +34,11 @@ public class MainClass {
@DataProvider(name="ConnectInstance")
public Object[][] connectInstance() throws ConnectFailedException {
- MilvusClient client = new MilvusGrpcClient();
ConnectParam connectParam = new ConnectParam.Builder()
- .withHost(host)
- .withPort(port)
- .build();
- client.connect(connectParam);
+ .withHost(host)
+ .withPort(port)
+ .build();
+ MilvusClient client = new MilvusGrpcClient(connectParam);
String collectionName = RandomStringUtils.randomAlphabetic(10);
return new Object[][]{{client, collectionName}};
}
@@ -47,15 +46,15 @@ public class MainClass {
@DataProvider(name="DisConnectInstance")
public Object[][] disConnectInstance() throws ConnectFailedException {
// Generate connection instance
- MilvusClient client = new MilvusGrpcClient();
ConnectParam connectParam = new ConnectParam.Builder()
- .withHost(host)
- .withPort(port)
- .build();
- client.connect(connectParam);
+ .withHost(host)
+ .withPort(port)
+ .build();
+ MilvusClient client = new MilvusGrpcClient(connectParam);
+
try {
- client.disconnect();
- } catch (InterruptedException e) {
+ client.close();
+ } catch (Exception e) {
e.printStackTrace();
}
String collectionName = RandomStringUtils.randomAlphabetic(10);
@@ -69,12 +68,11 @@ public class MainClass {
for (int i = 0; i < metricTypes.length; ++i) {
String collectionName = metricTypes[i].toString()+"_"+RandomStringUtils.randomAlphabetic(10);
// Generate connection instance
- MilvusClient client = new MilvusGrpcClient();
ConnectParam connectParam = new ConnectParam.Builder()
- .withHost(host)
- .withPort(port)
- .build();
- client.connect(connectParam);
+ .withHost(host)
+ .withPort(port)
+ .build();
+ MilvusClient client = new MilvusGrpcClient(connectParam);
// List tableNames = client.listCollections().getCollectionNames();
// for (int j = 0; j < tableNames.size(); ++j
// ) {
@@ -82,9 +80,9 @@ public class MainClass {
// }
// Thread.currentThread().sleep(2000);
CollectionMapping cm = new CollectionMapping.Builder(collectionName, dimension)
- .withIndexFileSize(index_file_size)
- .withMetricType(metricTypes[i])
- .build();
+ .withIndexFileSize(index_file_size)
+ .withMetricType(metricTypes[i])
+ .build();
Response res = client.createCollection(cm);
if (!res.ok()) {
System.out.println(res.getMessage());
@@ -102,12 +100,11 @@ public class MainClass {
for (int i = 0; i < metricTypes.length; ++i) {
String collectionName = metricTypes[i].toString()+"_"+RandomStringUtils.randomAlphabetic(10);
// Generate connection instance
- MilvusClient client = new MilvusGrpcClient();
ConnectParam connectParam = new ConnectParam.Builder()
- .withHost(host)
- .withPort(port)
- .build();
- client.connect(connectParam);
+ .withHost(host)
+ .withPort(port)
+ .build();
+ MilvusClient client = new MilvusGrpcClient(connectParam);
// List tableNames = client.listCollections().getCollectionNames();
// for (int j = 0; j < tableNames.size(); ++j
// ) {
@@ -115,9 +112,9 @@ public class MainClass {
// }
// Thread.currentThread().sleep(2000);
CollectionMapping cm = new CollectionMapping.Builder(collectionName, dimension)
- .withIndexFileSize(index_file_size)
- .withMetricType(metricTypes[i])
- .build();
+ .withIndexFileSize(index_file_size)
+ .withMetricType(metricTypes[i])
+ .build();
Response res = client.createCollection(cm);
if (!res.ok()) {
System.out.println(res.getMessage());
@@ -182,4 +179,4 @@ public class MainClass {
}
-}
+}
\ No newline at end of file
diff --git a/tests/milvus-java-test/src/main/java/com/TestAddVectors.java b/tests/milvus-java-test/src/main/java/com/TestAddVectors.java
index eee8f9fc7a..f798cae5e2 100644
--- a/tests/milvus-java-test/src/main/java/com/TestAddVectors.java
+++ b/tests/milvus-java-test/src/main/java/com/TestAddVectors.java
@@ -173,4 +173,45 @@ public class TestAddVectors {
InsertResponse res = client.insert(insertParam);
assert(!res.getResponse().ok());
}
+
+ // test load collection
+ @Test(dataProvider = "Collection", dataProviderClass = MainClass.class)
+ public void test_load_partition(MilvusClient client, String collectionName) {
+ String tag = RandomStringUtils.randomAlphabetic(10);
+ client.createPartition(collectionName, tag);
+ InsertParam insertParam = new InsertParam.Builder(collectionName).withFloatVectors(vectors).withPartitionTag(tag).build();
+ client.insert(insertParam);
+ List tags = new ArrayList<>();
+ tags.add(tag);
+ Response load_res = client.loadCollection(collectionName, tags);
+ assert load_res.ok();
+ }
+
+ @Test(dataProvider = "Collection", dataProviderClass = MainClass.class)
+ public void test_load_not_existed_partition(MilvusClient client, String collectionName) {
+ String tag = RandomStringUtils.randomAlphabetic(10);
+ List tags = new ArrayList<>();
+ tags.add(tag);
+ Response load_res = client.loadCollection(collectionName, tags);
+ assert !load_res.ok();
+ }
+
+ @Test(dataProvider = "Collection", dataProviderClass = MainClass.class)
+ public void test_load_empty_partitions(MilvusClient client, String collectionName) {
+ List tags = new ArrayList<>();
+ Response load_res = client.loadCollection(collectionName, tags);
+ assert load_res.ok();
+ }
+
+ @Test(dataProvider = "Collection", dataProviderClass = MainClass.class)
+ public void test_load_partitions_after_insert(MilvusClient client, String collectionName) {
+ List tags = new ArrayList<>();
+ String tag = RandomStringUtils.randomAlphabetic(10);
+ tags.add(tag);
+ client.createPartition(collectionName, tag);
+ InsertParam insertParam = new InsertParam.Builder(collectionName).withFloatVectors(vectors).withPartitionTag(tag).build();
+ client.insert(insertParam);
+ Response load_res = client.loadCollection(collectionName, tags);
+ assert load_res.ok();
+ }
}
diff --git a/tests/milvus-java-test/src/main/java/com/TestConnect.java b/tests/milvus-java-test/src/main/java/com/TestConnect.java
index a89532b003..a6f0a732ed 100644
--- a/tests/milvus-java-test/src/main/java/com/TestConnect.java
+++ b/tests/milvus-java-test/src/main/java/com/TestConnect.java
@@ -1,7 +1,8 @@
package com;
import io.milvus.client.*;
-import org.testng.Assert;
+import io.milvus.client.exception.InitializationException;
+import java.util.concurrent.TimeUnit;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@@ -9,80 +10,55 @@ public class TestConnect {
@Test(dataProvider = "DefaultConnectArgs", dataProviderClass = MainClass.class)
public void test_connect(String host, int port) throws ConnectFailedException {
System.out.println("Host: "+host+", Port: "+port);
- MilvusClient client = new MilvusGrpcClient();
ConnectParam connectParam = new ConnectParam.Builder()
- .withHost(host)
- .withPort(port)
- .build();
- Response res = client.connect(connectParam);
- assert(res.ok());
- assert(client.isConnected());
+ .withHost(host)
+ .withPort(port)
+ .build();
+ new MilvusGrpcClient(connectParam);
}
@Test(dataProvider = "DefaultConnectArgs", dataProviderClass = MainClass.class)
public void test_connect_repeat(String host, int port) {
- MilvusGrpcClient client = new MilvusGrpcClient();
-
- Response res = null;
- try {
- ConnectParam connectParam = new ConnectParam.Builder()
- .withHost(host)
- .withPort(port)
- .build();
- res = client.connect(connectParam);
- res = client.connect(connectParam);
- } catch (ConnectFailedException e) {
- e.printStackTrace();
- }
- assert (res.ok());
- assert(client.isConnected());
+ ConnectParam connectParam = new ConnectParam.Builder()
+ .withHost(host)
+ .withPort(port)
+ .build();
+ new MilvusGrpcClient(connectParam);
+ new MilvusGrpcClient(connectParam);
}
- @Test(dataProvider="InvalidConnectArgs")
+ @Test(dataProvider="InvalidConnectArgs", expectedExceptions = {InitializationException.class, IllegalArgumentException.class})
public void test_connect_invalid_connect_args(String ip, int port) {
- MilvusClient client = new MilvusGrpcClient();
- Response res = null;
- try {
- ConnectParam connectParam = new ConnectParam.Builder()
- .withHost(ip)
- .withPort(port)
- .build();
- res = client.connect(connectParam);
- } catch (Exception e) {
- e.printStackTrace();
- }
- Assert.assertEquals(res, null);
- assert(!client.isConnected());
+ ConnectParam connectParam = new ConnectParam.Builder()
+ .withHost(ip)
+ .withPort(port)
+ .withIdleTimeout(30, TimeUnit.SECONDS)
+ .build();
+ new MilvusGrpcClient(connectParam);
}
@DataProvider(name="InvalidConnectArgs")
public Object[][] generate_invalid_connect_args() {
int port = 19530;
return new Object[][]{
- {"1.1.1.1", port},
- {"255.255.0.0", port},
- {"1.2.2", port},
- {"中文", port},
- {"www.baidu.com", 100000},
- {"127.0.0.1", 100000},
- {"www.baidu.com", 80},
+ {"1.1.1.1", port},
+ {"255.255.0.0", port},
+ {"1.2.2", port},
+ {"中文", port},
+ {"www.baidu.com", 100000},
+ {"127.0.0.1", 100000},
+ {"www.baidu.com", 80},
};
}
@Test(dataProvider = "DisConnectInstance", dataProviderClass = MainClass.class)
public void test_disconnect(MilvusClient client, String collectionName){
- assert(!client.isConnected());
+ client.close();
}
@Test(dataProvider = "DisConnectInstance", dataProviderClass = MainClass.class)
public void test_disconnect_repeatably(MilvusClient client, String collectionName){
- Response res = null;
- try {
- res = client.disconnect();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- assert(!res.ok());
- assert(!client.isConnected());
+ client.close();
+ client.close();
}
-}
+}
\ No newline at end of file
diff --git a/tests/milvus-java-test/src/main/java/com/TestMix.java b/tests/milvus-java-test/src/main/java/com/TestMix.java
index 0f39665e9a..dbde996c0f 100644
--- a/tests/milvus-java-test/src/main/java/com/TestMix.java
+++ b/tests/milvus-java-test/src/main/java/com/TestMix.java
@@ -60,22 +60,12 @@ public class TestMix {
for (int i = 0; i < thread_num; i++) {
executor.execute(
() -> {
- MilvusClient client = new MilvusGrpcClient();
ConnectParam connectParam = new ConnectParam.Builder()
.withHost(host)
.withPort(port)
.build();
- try {
- client.connect(connectParam);
- } catch (ConnectFailedException e) {
- e.printStackTrace();
- }
- assert(client.isConnected());
- try {
- client.disconnect();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
+ MilvusClient client = new MilvusGrpcClient(connectParam);
+ client.close();
});
}
executor.awaitQuiescence(100, TimeUnit.SECONDS);
@@ -193,17 +183,11 @@ public class TestMix {
for (int i = 0; i < thread_num; i++) {
executor.execute(
() -> {
- MilvusClient client = new MilvusGrpcClient();
ConnectParam connectParam = new ConnectParam.Builder()
.withHost(host)
.withPort(port)
.build();
- try {
- client.connect(connectParam);
- } catch (ConnectFailedException e) {
- e.printStackTrace();
- }
- assert(client.isConnected());
+ MilvusClient client = new MilvusGrpcClient(connectParam);
String collectionName = RandomStringUtils.randomAlphabetic(10);
CollectionMapping tableSchema = new CollectionMapping.Builder(collectionName, dimension)
.withIndexFileSize(index_file_size)
@@ -214,11 +198,7 @@ public class TestMix {
client.insert(insertParam);
Response response = client.dropCollection(collectionName);
Assert.assertTrue(response.ok());
- try {
- client.disconnect();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
+ client.close();
});
}
executor.awaitQuiescence(100, TimeUnit.SECONDS);
diff --git a/tests/milvus-java-test/src/main/java/com/TestPS.java b/tests/milvus-java-test/src/main/java/com/TestPS.java
index bc3c876ccb..c2c72f0b8f 100644
--- a/tests/milvus-java-test/src/main/java/com/TestPS.java
+++ b/tests/milvus-java-test/src/main/java/com/TestPS.java
@@ -1,133 +1,142 @@
-
package com;
import io.milvus.client.*;
import org.apache.commons.cli.*;
+import java.util.ArrayList;
import java.util.List;
-import java.util.concurrent.ForkJoinPool;
-import java.util.concurrent.TimeUnit;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
import java.util.stream.Collectors;
-import java.util.stream.IntStream;
import java.util.stream.Stream;
public class TestPS {
- private static int dimension = 512;
- private static String host = "192.168.1.112";
- private static String port = "19532";
+ private static int dimension = 512;
+ private static String host = "localhost";
+ private static String port = "19530";
- public static void setHost(String host) {
- TestPS.host = host;
+ public static void setHost(String host) {
+ TestPS.host = host;
+ }
+
+ public static void setPort(String port) {
+ TestPS.port = port;
+ }
+
+ public static void main(String[] args) {
+ int nb = 10000;
+ int nq = 1;
+ int top_k = 2;
+ int loops = 100000;
+ int index_file_size = 1024;
+ String collectionName = "random_1m_2048_512_ip_sq8";
+
+ List> vectors = Utils.genVectors(nb, dimension, true);
+
+ CommandLineParser parser = new DefaultParser();
+ Options options = new Options();
+ options.addOption("h", "host", true, "milvus-server hostname/ip");
+ options.addOption("p", "port", true, "milvus-server port");
+ try {
+ CommandLine cmd = parser.parse(options, args);
+ String host = cmd.getOptionValue("host");
+ if (host != null) {
+ setHost(host);
+ }
+ String port = cmd.getOptionValue("port");
+ if (port != null) {
+ setPort(port);
+ }
+ System.out.println("Host: " + host + ", Port: " + port);
+ } catch (ParseException exp) {
+ System.err.println("Parsing failed. Reason: " + exp.getMessage());
}
- public static void setPort(String port) {
- TestPS.port = port;
+ ConnectParam connectParam =
+ new ConnectParam.Builder().withHost(host).withPort(Integer.parseInt(port)).build();
+ MilvusClient client = new MilvusGrpcClient(connectParam);
+ if (client.hasCollection(collectionName).hasCollection()) {
+ client.dropCollection(collectionName);
}
-
-
-
- public static void main(String[] args) throws ConnectFailedException {
- int nb = 10000;
- int nq = 1;
- int nprobe = 1024;
- int top_k = 2;
- int loops = 100000000;
-// int index_file_size = 1024;
- String collectionName = "random_1m_2048_512_ip_sq8";
-
-
- List> vectors = Utils.genVectors(nb, dimension, true);
-
-
- CommandLineParser parser = new DefaultParser();
- Options options = new Options();
- options.addOption("h", "host", true, "milvus-server hostname/ip");
- options.addOption("p", "port", true, "milvus-server port");
- try {
- CommandLine cmd = parser.parse(options, args);
- String host = cmd.getOptionValue("host");
- if (host != null) {
- setHost(host);
- }
- String port = cmd.getOptionValue("port");
- if (port != null) {
- setPort(port);
- }
- System.out.println("Host: "+host+", Port: "+port);
- }
- catch(ParseException exp) {
- System.err.println("Parsing failed. Reason: " + exp.getMessage() );
- }
-
- MilvusClient client = new MilvusGrpcClient();
- ConnectParam connectParam = new ConnectParam.Builder()
- .withHost(host)
- .withPort(Integer.parseInt(port))
- .build();
- client.connect(connectParam);
-
-// String collectionName = RandomStringUtils.randomAlphabetic(10);
-// TableSchema tableSchema = new TableSchema.Builder(collectionName, dimension)
-// .withIndexFileSize(index_file_size)
-// .withMetricType(MetricType.IP)
-// .build();
-// Response res = client.createTable(tableSchema);
-// List vectorIds;
-// vectorIds = Stream.iterate(0L, n -> n)
-// .limit(nb)
-// .collect(Collectors.toList());
-// InsertParam insertParam = new InsertParam.Builder(collectionName).withFloatVectors(vectors).withVectorIds(vectorIds).build();
- System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "50");
- ForkJoinPool executor_search = new ForkJoinPool();
-// for (int i = 0; i < loops; i++) {
-// List> queryVectors = Utils.genVectors(nq, dimension, true);
-// executor_search.execute(
-// () -> {
-//// InsertResponse res_insert = client.insert(insertParam);
-//// assert (res_insert.getResponse().ok());
-//// System.out.println("In insert");
-// String params = "{\"nprobe\":1024}";
-// SearchParam searchParam = new SearchParam.Builder(collectionName)
-// .withFloatVectors(queryVectors)
-// .withParamsInJson(params)
-// .withTopK(top_k).build();
-// SearchResponse res_search = client.search(searchParam);
-// assert (res_search.getResponse().ok());
-// });
-// }
-
- IntStream.range(0, loops).parallel().forEach(index -> {
- List> queryVectors = Utils.genVectors(nq, dimension, true);
- String params = "{\"nprobe\":1024}";
- SearchParam searchParam = new SearchParam.Builder(collectionName)
- .withFloatVectors(queryVectors)
- .withParamsInJson(params)
- .withTopK(top_k).build();
- SearchResponse res_search = client.search(searchParam);
- assert (res_search.getResponse().ok());
- });
- executor_search.awaitQuiescence(300, TimeUnit.SECONDS);
- executor_search.shutdown();
- CountEntitiesResponse getTableRowCountResponse = client.countEntities(collectionName);
- System.out.println(getTableRowCountResponse.getCollectionEntityCount());
-
-// int thread_num = 50;
-// ForkJoinPool executor = new ForkJoinPool();
-// for (int i = 0; i < thread_num; i++) {
-// executor.execute(
-// () -> {
-// String params = "{\"nprobe\":\"1024\"}";
-// SearchParam searchParam = new SearchParam.Builder(collectionName)
-// .withFloatVectors(queryVectors)
-// .withParamsInJson(params)
-// .withTopK(top_k).build();
-// SearchResponse res_search = client.search(searchParam);
-// assert (res_search.getResponse().ok());
-// });
-// }
-// executor.awaitQuiescence(100, TimeUnit.SECONDS);
-// executor.shutdown();
-// CountEntitiesResponse getTableRowCountResponse = client.countEntities(collectionName);
-// System.out.println(getTableRowCountResponse.getCollectionEntityCount());
+ CollectionMapping tableSchema =
+ new CollectionMapping.Builder(collectionName, dimension)
+ .withIndexFileSize(index_file_size)
+ .withMetricType(MetricType.L2)
+ .build();
+ client.createCollection(tableSchema);
+ List vectorIds;
+ vectorIds = Stream.iterate(0L, n -> n).limit(nb).collect(Collectors.toList());
+ InsertParam insertParam =
+ new InsertParam.Builder(collectionName)
+ .withFloatVectors(vectors)
+ .withVectorIds(vectorIds)
+ .build();
+ for (int i = 0; i < 100; ++i) {
+ InsertResponse res_insert = client.insert(insertParam);
+ assert (res_insert.getResponse().ok());
}
-}
+ System.out.println(client.countEntities(collectionName).getCollectionEntityCount());
+
+ ExecutorService executors = Executors.newFixedThreadPool(50);
+ List resultList = new ArrayList();
+ for (int i = 0; i < loops; i++) {
+ List> queryVectors = Utils.genVectors(nq, dimension, true);
+ Future future =
+ executors.submit(
+ () -> {
+ String params = "{\"nprobe\":1024}";
+ SearchParam searchParam =
+ new SearchParam.Builder(collectionName)
+ .withFloatVectors(queryVectors)
+ .withParamsInJson(params)
+ .withTopK(top_k)
+ .build();
+ SearchResponse res_search = client.search(searchParam);
+ assert (res_search.getResponse().ok());
+ });
+ resultList.add(future);
+ }
+ // IntStream.range(0, loops).parallel().forEach(index -> {
+ // List> queryVectors = Utils.genVectors(nq, dimension,
+ // true);
+ // String params = "{\"nprobe\":1024}";
+ // SearchParam searchParam = new SearchParam.Builder(collectionName)
+ // .withFloatVectors(queryVectors)
+ // .withParamsInJson(params)
+ // .withTopK(top_k).build();
+ // SearchResponse res_search = client.search(searchParam);
+ // assert (res_search.getResponse().ok());
+ // });
+ // executor_search.awaitQuiescence(300, TimeUnit.SECONDS);
+ executors.shutdown();
+ CountEntitiesResponse getTableRowCountResponse = client.countEntities(collectionName);
+ System.out.println(getTableRowCountResponse.getCollectionEntityCount());
+ for (Future f : resultList) {
+ try {
+ System.out.println(f.get());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ // int thread_num = 50;
+ // ForkJoinPool executor = new ForkJoinPool();
+ // for (int i = 0; i < thread_num; i++) {
+ // executor.execute(
+ // () -> {
+ // String params = "{\"nprobe\":\"1024\"}";
+ // SearchParam searchParam = new SearchParam.Builder(collectionName)
+ // .withFloatVectors(queryVectors)
+ // .withParamsInJson(params)
+ // .withTopK(top_k).build();
+ // SearchResponse res_search = client.search(searchParam);
+ // assert (res_search.getResponse().ok());
+ // });
+ // }
+ // executor.awaitQuiescence(100, TimeUnit.SECONDS);
+ // executor.shutdown();
+ // CountEntitiesResponse getTableRowCountResponse =
+ // client.countEntities(collectionName);
+ // System.out.println(getTableRowCountResponse.getCollectionEntityCount());
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/milvus-java-test/src/main/java/com/TestPing.java b/tests/milvus-java-test/src/main/java/com/TestPing.java
index de5a75f419..bc93823c10 100644
--- a/tests/milvus-java-test/src/main/java/com/TestPing.java
+++ b/tests/milvus-java-test/src/main/java/com/TestPing.java
@@ -7,12 +7,11 @@ public class TestPing {
@Test(dataProvider = "DefaultConnectArgs", dataProviderClass = MainClass.class)
public void test_server_status(String host, int port) throws ConnectFailedException {
System.out.println("Host: "+host+", Port: "+port);
- MilvusClient client = new MilvusGrpcClient();
ConnectParam connectParam = new ConnectParam.Builder()
.withHost(host)
.withPort(port)
.build();
- client.connect(connectParam);
+ MilvusClient client = new MilvusGrpcClient(connectParam);
Response res = client.getServerStatus();
assert (res.ok());
}