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());
           }