Dong Lin created KAFKA-2171:
-------------------------------

             Summary: System Test for Quotas
                 Key: KAFKA-2171
                 URL: https://issues.apache.org/jira/browse/KAFKA-2171
             Project: Kafka
          Issue Type: Sub-task
            Reporter: Dong Lin
            Assignee: Dong Lin


Motivation and goal:
We want to make sure that following features are working properly for both 
consumer and producer: default quota, client-specific quota, and quota sharing 
per clientId.

The tests and configuration described aims to cover most of the scenarios. More 
test cases with varying configurations (e.g. ackNum) can be added if there is 
good reason to do so.

Initial setup and configuration:
In all scenarios, we first create kafka brokers and topic as follows:
- create two kafka broker processes (by default local)
- create a topic with replication factor = 2 and ackNum = -1
- let max_read = max_write = 5MB. The test machine is expected to provide read 
(write) throughput at least max_read (max_write).
- we consider two rates are approximately the same if they differ by at most 5%.

Scenario 1: Validate that max_read and max_write are provided by the test 
machine(s) using 1 producer and 1 consumer
1) produce data to the topic without rate limit for 30 seconds
2) record the rate of producer
3) then, consume data from the topic without rate limit until he finishes
4) record the rate of consumer
5) verify that the data consumed is identical to the data produced
6) verify that producer rate >= max_write and consumer rate >= max_read

Scenario 2: validate the effectiveness of default write and read quota using 1 
producer and 1 consumer
1) configure brokers to use max_write/2 as default write quota and max_read/2 
as default read quota
2) produce data to the topic for 30 seconds
3) record the rate of producer
4) then, consume data from the topic until he finishes
5) record the rate of consumer
6) verify that the data consumed is identical to the data produced
7) verify that recorded write (read) rate is within 5% of max_write/2 
(max_read/2).

Scenario 3: validate the effectiveness of client-specific write and read quota 
using 2 producers and 2 consumers
1) configure brokers to use max_write/2 as default write quota and max_read/2 
as default read quota; configure brokers to use max_write/4 for producer_2 and 
max_read/4 for consumer_2
2) both producers produce data to the topic for 30 seconds. They use different 
clientId.
3) record the rate of producer
4) both consumers consume data from the topic until they finish. They use 
different clientId and groupId.
5) record the rate of consumer
6) verify that the data consumed is identical to the data produced
7) verify that producer_1 and producer_2 rates are approximately max_write/2 
and max_write/4; verify that consumer_1 and consumer_2 rates are approximately 
max_read/2 and max_read/4.

Scenario 4: validate the effectiveness of write and read quota sharing among 
clients of same clientId using 2 producers and 2 consumers.
1) configure brokers to use max_write/2 as default write quota and max_read/2 
as default read quota
2) both producers produce data to the topic for 30 seconds. They use same 
clientId.
3) record the rate of producer
4) both consumers consume data from the topic until they finish. They use same 
clientId but different groupId.
5) record the rate of consumer
6) verify that the data consumed is identical to the data produced
7) verify that total rate of producer_1 and producer_2 is approximately 
max_write/2; verify that total rate of consumer_1 and consumer_2 is 
approximately max_read/2.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to