Last active
June 19, 2017 23:34
-
-
Save viveknarang/8bd22a57d414aced36aa121f9c73e9f4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* 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