You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by at...@apache.org on 2020/08/11 17:13:05 UTC
[lucene-solr] branch master updated: Harden RequestRateLimiter
Tests (#1736)
This is an automated email from the ASF dual-hosted git repository.
atri pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/master by this push:
new 1d27492 Harden RequestRateLimiter Tests (#1736)
1d27492 is described below
commit 1d2749295b5378db9f54d603b581d1d9a1e3cc93
Author: Atri Sharma <at...@gmail.com>
AuthorDate: Tue Aug 11 22:42:53 2020 +0530
Harden RequestRateLimiter Tests (#1736)
* Harden RequestRateLimiter Tests
This commit adds higher data size and load in the test path. Also improves
the asserts that are performed.
---
.../solr/servlet/TestRequestRateLimiter.java | 26 +++++++++++++---------
1 file changed, 15 insertions(+), 11 deletions(-)
diff --git a/solr/core/src/test/org/apache/solr/servlet/TestRequestRateLimiter.java b/solr/core/src/test/org/apache/solr/servlet/TestRequestRateLimiter.java
index f7a1fbbc..2ca5477 100644
--- a/solr/core/src/test/org/apache/solr/servlet/TestRequestRateLimiter.java
+++ b/solr/core/src/test/org/apache/solr/servlet/TestRequestRateLimiter.java
@@ -66,15 +66,17 @@ public class TestRequestRateLimiter extends SolrCloudTestCase {
solrDispatchFilter.replaceRateLimitManager(rateLimitManager);
- processTest(client);
+ int numDocs = TEST_NIGHTLY ? 10000 : 100;
+
+ processTest(client, numDocs, 350 /* number of queries */);
MockRequestRateLimiter mockQueryRateLimiter = (MockRequestRateLimiter) rateLimitManager.getRequestRateLimiter(SolrRequest.SolrRequestType.QUERY);
- assertEquals(25, mockQueryRateLimiter.incomingRequestCount.get());
- assertTrue("Incoming accepted new request count did not match. Expected 5 incoming " + mockQueryRateLimiter.acceptedNewRequestCount.get(),
- mockQueryRateLimiter.acceptedNewRequestCount.get() < 25);
- assertTrue("Incoming rejected new request count did not match. Expected 20 incoming " + mockQueryRateLimiter.rejectedRequestCount.get(),
- mockQueryRateLimiter.rejectedRequestCount.get() > 0);
+ assertEquals(350, mockQueryRateLimiter.incomingRequestCount.get());
+
+ assertTrue(mockQueryRateLimiter.acceptedNewRequestCount.get() > 0);
+ assertTrue((mockQueryRateLimiter.acceptedNewRequestCount.get() == mockQueryRateLimiter.incomingRequestCount.get()
+ || mockQueryRateLimiter.rejectedRequestCount.get() > 0));
assertEquals(mockQueryRateLimiter.incomingRequestCount.get(),
mockQueryRateLimiter.acceptedNewRequestCount.get() + mockQueryRateLimiter.rejectedRequestCount.get());
}
@@ -99,7 +101,9 @@ public class TestRequestRateLimiter extends SolrCloudTestCase {
solrDispatchFilter.replaceRateLimitManager(rateLimitManager);
- processTest(client);
+ int numDocs = TEST_NIGHTLY ? 10000 : 100;
+
+ processTest(client, numDocs, 400 /* Number of queries */);
MockRequestRateLimiter mockIndexRateLimiter = (MockRequestRateLimiter) rateLimitManager.getRequestRateLimiter(SolrRequest.SolrRequestType.UPDATE);
@@ -107,9 +111,9 @@ public class TestRequestRateLimiter extends SolrCloudTestCase {
mockIndexRateLimiter.borrowedSlotCount.get() > 0);
}
- private void processTest(CloudSolrClient client) throws Exception {
+ private void processTest(CloudSolrClient client, int numDocuments, int numQueries) throws Exception {
- for (int i = 0; i < 100; i++) {
+ for (int i = 0; i < numDocuments; i++) {
SolrInputDocument doc = new SolrInputDocument();
doc.setField("id", i);
@@ -124,12 +128,12 @@ public class TestRequestRateLimiter extends SolrCloudTestCase {
List<Future<Boolean>> futures;
try {
- for (int i = 0; i < 25; i++) {
+ for (int i = 0; i < numQueries; i++) {
callableList.add(() -> {
try {
QueryResponse response = client.query(new SolrQuery("*:*"));
- assertEquals(100, response.getResults().getNumFound());
+ assertEquals(numDocuments, response.getResults().getNumFound());
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}