Skip to content

Instantly share code, notes, and snippets.

@viveknarang
Last active June 19, 2017 23:34
Show Gist options
  • Save viveknarang/8bd22a57d414aced36aa121f9c73e9f4 to your computer and use it in GitHub Desktop.
Save viveknarang/8bd22a57d414aced36aa121f9c73e9f4 to your computer and use it in GitHub Desktop.
/* SolrNode node = new SolrNode(commitID, "", "", false);
node.doAction(SolrNodeAction.NODE_START);
node.createCollection("Core-" + UUID.randomUUID(), "Collection-" + UUID.randomUUID());
SolrIndexingClient client = new SolrIndexingClient("localhost", node.port, commitID);
String collectionName1 = "" + UUID.randomUUID();
node.createCollection("Core-" + UUID.randomUUID(), collectionName1);
BenchmarkReportData.metricMapStandaloneConcurrent1 = client.indexData(numDocuments, collectionName1, 1,
true, TestType.STANDALONE_INDEXING_THROUGHPUT_CONCURRENT_1, node.getBaseUrl());
node.deleteCollection(collectionName1);
String collectionName2 = "" + UUID.randomUUID();
node.createCollection("Core-" + UUID.randomUUID(), collectionName2);
BenchmarkReportData.metricMapStandaloneConcurrent2 = client.indexData(numDocuments, collectionName2, 2,
true, TestType.STANDALONE_INDEXING_THROUGHPUT_CONCURRENT_2, node.getBaseUrl());
node.deleteCollection(collectionName2);
String collectionName3 = "" + UUID.randomUUID();
node.createCollection("Core-" + UUID.randomUUID(), collectionName3);
BenchmarkReportData.metricMapStandaloneConcurrent3 = client.indexData(numDocuments, collectionName3, 3,
true, TestType.STANDALONE_INDEXING_THROUGHPUT_CONCURRENT_3, node.getBaseUrl());
node.deleteCollection(collectionName3);
*/
/*
* String collectionName1 = "" + UUID.randomUUID();
* cloud.createCollection(collectionName1, null, shards,
* replicas);
* BenchmarkReportData.metricMapCloudConcurrent1_2N1S2R =
* cloudClient.indexData(numDocuments, cloud.getuRL(),
* collectionName1, numDocuments, 1,
* TestType.CLOUD_INDEXING_THROUGHPUT_CONCURRENT_2N1S2R_1T,
* true, true); cloud.deleteCollection(collectionName1);
*/
/*
* String collectionName2 = "" + UUID.randomUUID();
* cloud.createCollection(collectionName2, null, shards,
* replicas);
* BenchmarkReportData.metricMapCloudConcurrent2_2N1S2R =
* cloudClient.indexData(numDocuments, cloud.getuRL(),
* collectionName2, numDocuments, 2,
* TestType.CLOUD_INDEXING_THROUGHPUT_CONCURRENT_2N1S2R_2T,
* true, true); cloud.deleteCollection(collectionName2);
*/
/*
* String collectionName3 = "" + UUID.randomUUID();
* cloud.createCollection(collectionName3, null, shards,
* replicas);
* BenchmarkReportData.metricMapCloudConcurrent3_2N1S2R =
* cloudClient.indexData(numDocuments, cloud.getuRL(),
* collectionName3, numDocuments, 3,
* TestType.CLOUD_INDEXING_THROUGHPUT_CONCURRENT_2N1S2R_3T,
* true, true); cloud.deleteCollection(collectionName3);
*/
String collectionName1 = "" + UUID.randomUUID();
cloud.createCollection(collectionName1, null, shards, replicas);
BenchmarkReportData.metricMapCloudConcurrent1_2N1S2R = cloudClient.indexData(numDocuments,
cloud.zookeeperIp, cloud.zookeeperPort, collectionName1, 1, true,
TestType.CLOUD_INDEXING_THROUGHPUT_CONCURRENT_2N1S2R_1T);
cloud.deleteCollection(collectionName1);
String collectionName2 = "" + UUID.randomUUID();
cloud.createCollection(collectionName2, null, shards, replicas);
BenchmarkReportData.metricMapCloudConcurrent2_2N1S2R = cloudClient.indexData(numDocuments,
cloud.zookeeperIp, cloud.zookeeperPort, collectionName2, 2, true,
TestType.CLOUD_INDEXING_THROUGHPUT_CONCURRENT_2N1S2R_2T);
cloud.deleteCollection(collectionName2);
String collectionName3 = "" + UUID.randomUUID();
cloud.createCollection(collectionName3, null, shards, replicas);
BenchmarkReportData.metricMapCloudConcurrent3_2N1S2R = cloudClient.indexData(numDocuments,
cloud.zookeeperIp, cloud.zookeeperPort, collectionName3, 3, true,
TestType.CLOUD_INDEXING_THROUGHPUT_CONCURRENT_2N1S2R_3T);
cloud.deleteCollection(collectionName3);
String collectionName1 = "" + UUID.randomUUID();
cloud.createCollection(collectionName1, null, shards, replicas);
BenchmarkReportData.metricMapCloudConcurrent1_2N2S1R = cloudClient.indexData(numDocuments,
cloud.zookeeperIp, cloud.zookeeperPort, collectionName1, 1, true,
TestType.CLOUD_INDEXING_THROUGHPUT_CONCURRENT_2N2S1R_1T);
cloud.deleteCollection(collectionName1);
String collectionName2 = "" + UUID.randomUUID();
cloud.createCollection(collectionName2, null, shards, replicas);
BenchmarkReportData.metricMapCloudConcurrent2_2N2S1R = cloudClient.indexData(numDocuments,
cloud.zookeeperIp, cloud.zookeeperPort, collectionName2, 2, true,
TestType.CLOUD_INDEXING_THROUGHPUT_CONCURRENT_2N2S1R_2T);
cloud.deleteCollection(collectionName2);
String collectionName3 = "" + UUID.randomUUID();
cloud.createCollection(collectionName3, null, shards, replicas);
BenchmarkReportData.metricMapCloudConcurrent3_2N2S1R = cloudClient.indexData(numDocuments,
cloud.zookeeperIp, cloud.zookeeperPort, collectionName3, 3, true,
TestType.CLOUD_INDEXING_THROUGHPUT_CONCURRENT_2N2S1R_3T);
cloud.deleteCollection(collectionName3);
String collectionName1 = "" + UUID.randomUUID();
cloud.createCollection(collectionName1, null, shards, replicas);
BenchmarkReportData.metricMapCloudConcurrent1_3N1S3R = cloudClient.indexData(numDocuments,
cloud.zookeeperIp, cloud.zookeeperPort, collectionName1, 1, true,
TestType.CLOUD_INDEXING_THROUGHPUT_CONCURRENT_3N1S3R_1T);
cloud.deleteCollection(collectionName1);
String collectionName2 = "" + UUID.randomUUID();
cloud.createCollection(collectionName2, null, shards, replicas);
BenchmarkReportData.metricMapCloudConcurrent2_3N1S3R = cloudClient.indexData(numDocuments,
cloud.zookeeperIp, cloud.zookeeperPort, collectionName2, 2, true,
TestType.CLOUD_INDEXING_THROUGHPUT_CONCURRENT_3N1S3R_2T);
cloud.deleteCollection(collectionName2);
String collectionName3 = "" + UUID.randomUUID();
cloud.createCollection(collectionName3, null, shards, replicas);
BenchmarkReportData.metricMapCloudConcurrent3_3N1S3R = cloudClient.indexData(numDocuments,
cloud.zookeeperIp, cloud.zookeeperPort, collectionName3, 3, true,
TestType.CLOUD_INDEXING_THROUGHPUT_CONCURRENT_3N1S3R_3T);
cloud.deleteCollection(collectionName3);
String collectionName1 = "" + UUID.randomUUID();
cloud.createCollection(collectionName1, null, shards, replicas);
BenchmarkReportData.metricMapCloudConcurrent1_4N2S2R = cloudClient.indexData(numDocuments,
cloud.zookeeperIp, cloud.zookeeperPort, collectionName1, 1, true,
TestType.CLOUD_INDEXING_THROUGHPUT_CONCURRENT_4N2S2R_1T);
cloud.deleteCollection(collectionName1);
String collectionName2 = "" + UUID.randomUUID();
cloud.createCollection(collectionName2, null, shards, replicas);
BenchmarkReportData.metricMapCloudConcurrent2_4N2S2R = cloudClient.indexData(numDocuments,
cloud.zookeeperIp, cloud.zookeeperPort, collectionName2, 2, true,
TestType.CLOUD_INDEXING_THROUGHPUT_CONCURRENT_4N2S2R_2T);
cloud.deleteCollection(collectionName2);
String collectionName3 = "" + UUID.randomUUID();
cloud.createCollection(collectionName3, null, shards, replicas);
BenchmarkReportData.metricMapCloudConcurrent3_4N2S2R = cloudClient.indexData(numDocuments,
cloud.zookeeperIp, cloud.zookeeperPort, collectionName3, 3, true,
TestType.CLOUD_INDEXING_THROUGHPUT_CONCURRENT_4N2S2R_3T);
cloud.deleteCollection(collectionName3);
@SuppressWarnings("deprecation")
public Map<String, String> indexData(int numDocuments, String zookeeperIp,
String zookeeperPort, String collectionName, int numberOfThreads, boolean captureMetrics,TestType type) throws InterruptedException {
// Parked method, not used as of now ...
Util.postMessage("** Indexing documents through cloud concurrent client ..." + collectionName , MessageType.CYAN_TEXT, false);
CloudConcurrentIndexClient.prepare(numDocuments);
CloudConcurrentIndexClient.running = false;
CloudConcurrentIndexClient.zookeeperIp = zookeeperIp;
CloudConcurrentIndexClient.zookeeperPort = zookeeperPort;
ExecutorService executorService = Executors.newFixedThreadPool(numberOfThreads);
LinkedList<CloudConcurrentIndexClient> list = new LinkedList<CloudConcurrentIndexClient>();
for (int i = 0; i < numberOfThreads; i++) {
CloudConcurrentIndexClient client = new CloudConcurrentIndexClient(collectionName, zookeeperIp, zookeeperPort);
list.add(client);
}
Thread thread = null;
if (captureMetrics) {
thread = new Thread(new MetricCollector(this.commitId, type, this.port));
thread.start();
}
CloudConcurrentIndexClient.running = true;
for (int i = 0; i < numberOfThreads; i++) {
executorService.execute(list.get(i));
}
Thread.sleep(60000);
CloudConcurrentIndexClient.running = false;
for (int i = 0; i < numberOfThreads; i++) {
list.get(i).commit();
list.get(i).close();
}
if (captureMetrics) {
thread.stop();
}
Thread.sleep(10000);
executorService.shutdownNow();
Map<String, String> returnMetricMap = new HashMap<String, String>();
Date dNow = new Date();
SimpleDateFormat ft = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
returnMetricMap.put("TimeStamp", ft.format(dNow));
returnMetricMap.put("TimeFormat", "yyyy/MM/dd HH:mm:ss");
returnMetricMap.put("IndexingTime", "" + CloudConcurrentIndexClient.indexingTime);
returnMetricMap.put("IndexingThroughput","" + CloudConcurrentIndexClient.indexThroughput);
returnMetricMap.put("ThroughputUnit", "doc/sec");
returnMetricMap.put("CommitID", this.commitId);
Util.postMessage(returnMetricMap.toString(), MessageType.RED_TEXT, false);
CloudConcurrentIndexClient.reset();
Util.postMessage("** Indexing documents COMPLETE ...", MessageType.GREEN_TEXT, false);
return returnMetricMap;
}
@SuppressWarnings("deprecation")
public Map<String, String> indexData(int numDocuments, String collectionName, int numberOfThreads, boolean captureMetrics,TestType type, String baseSolrURL) throws InterruptedException {
// Parked method, not used as of now ...
Util.postMessage("** Indexing documents through HTTP concurrent client ..." + collectionName , MessageType.CYAN_TEXT, false);
StandaloneConcurrentIndexClient.prepare(numDocuments);
StandaloneConcurrentIndexClient.running = false;
ExecutorService executorService = Executors.newFixedThreadPool(numberOfThreads);
LinkedList<StandaloneConcurrentIndexClient> list = new LinkedList<StandaloneConcurrentIndexClient>();
for (int i = 0; i < numberOfThreads; i++) {
StandaloneConcurrentIndexClient client = new StandaloneConcurrentIndexClient(collectionName, baseSolrURL);
list.add(client);
}
Thread thread = null;
if (captureMetrics) {
thread = new Thread(new MetricCollector(this.commitId, type, this.port));
thread.start();
}
StandaloneConcurrentIndexClient.running = true;
for (int i = 0; i < numberOfThreads; i++) {
executorService.execute(list.get(i));
}
Thread.sleep(60000);
StandaloneConcurrentIndexClient.running = false;
for (int i = 0; i < numberOfThreads; i++) {
list.get(i).commit();
list.get(i).close();
}
if (captureMetrics) {
thread.stop();
}
Thread.sleep(10000);
executorService.shutdownNow();
Map<String, String> returnMetricMap = new HashMap<String, String>();
Date dNow = new Date();
SimpleDateFormat ft = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
returnMetricMap.put("TimeStamp", ft.format(dNow));
returnMetricMap.put("TimeFormat", "yyyy/MM/dd HH:mm:ss");
returnMetricMap.put("IndexingTime", "" + StandaloneConcurrentIndexClient.indexingTime);
returnMetricMap.put("IndexingThroughput","" + StandaloneConcurrentIndexClient.indexThroughput);
returnMetricMap.put("ThroughputUnit", "doc/sec");
returnMetricMap.put("CommitID", this.commitId);
Util.postMessage(returnMetricMap.toString(), MessageType.RED_TEXT, false);
StandaloneConcurrentIndexClient.reset();
Util.postMessage("** Indexing documents COMPLETE ...", MessageType.GREEN_TEXT, false);
return returnMetricMap;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment