[jira] [Updated] (KAFKA-2171) System Test for Quotas
[ https://issues.apache.org/jira/browse/KAFKA-2171?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Dong Lin updated KAFKA-2171: Resolution: Duplicate Status: Resolved (was: Patch Available) Discard this patch in favor of quota system test in Ducktape (KAFKA-2527) > 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 > Labels: quotas > Attachments: KAFKA-2171.patch, KAFKA-2171.patch > > Original Estimate: 336h > Remaining Estimate: 336h > > Initial setup and configuration: > In all scenarios, we create the following entities and topic: > - 1 kafka brokers > - 1 topic with replication factor = 1, ackNum = -1, and parition = 6 > - 1 producer performance > - 2 console consumers > - 3 jmx tools, one for each of the producer and consumers > - we consider two rates are approximately the same if they differ by at most > 10%. > Scenario 1: validate the effectiveness of default producer and consumer quota > 1) Let default_producer_quota = default_consumer_quota = 2 Bytes/sec > 2) Produce 2000 messages of 2 bytes each (with clientId = > producer_performance) > 3) Wait until producer stops > 4) Two consumers consume from the topic (with clientId = group1 and group2 > respectively ) > 5) verify that actual rate is within 10% of expected rate (quota) > Scenario 2: validate the effectiveness of producer and consumer quota override > 1) Let default_producer_quota = default_consumer_quota = 2 Bytes/sec > Override quota of producer_performance and group1 to be 15000 Bytes/sec > 2) Produce 2000 messages of 2 bytes each (with clientId = > producer_performance) > 3) Wait until producer stops > 4) Two consumers consume from the topic (with clientId = group1 and group2 > respectively ) > 5) verify that actual rate is within 10% of expected rate (quota) > Scenario 3: validate the effectiveness of quota sharing > 1) Let default_producer_quota = default_consumer_quota = 2 Bytes/sec > Override quota of producer_performance and group1 to be 15000 Bytes/sec > 2) Produce 2000 messages of 2 bytes each (with clientId = > producer_performance) > 3) Wait until producer stops > 4) Two consumers consume from the topic (with clientId = group1 for both > consumers) > 5) verify that actual rate is within 10% of expected rate (quota) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (KAFKA-2171) System Test for Quotas
[ https://issues.apache.org/jira/browse/KAFKA-2171?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aditya Auradkar updated KAFKA-2171: --- Labels: quotas (was: ) 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 Labels: quotas Attachments: KAFKA-2171.patch, KAFKA-2171.patch Original Estimate: 336h Remaining Estimate: 336h Initial setup and configuration: In all scenarios, we create the following entities and topic: - 1 kafka brokers - 1 topic with replication factor = 1, ackNum = -1, and parition = 6 - 1 producer performance - 2 console consumers - 3 jmx tools, one for each of the producer and consumers - we consider two rates are approximately the same if they differ by at most 10%. Scenario 1: validate the effectiveness of default producer and consumer quota 1) Let default_producer_quota = default_consumer_quota = 2 Bytes/sec 2) Produce 2000 messages of 2 bytes each (with clientId = producer_performance) 3) Wait until producer stops 4) Two consumers consume from the topic (with clientId = group1 and group2 respectively ) 5) verify that actual rate is within 10% of expected rate (quota) Scenario 2: validate the effectiveness of producer and consumer quota override 1) Let default_producer_quota = default_consumer_quota = 2 Bytes/sec Override quota of producer_performance and group1 to be 15000 Bytes/sec 2) Produce 2000 messages of 2 bytes each (with clientId = producer_performance) 3) Wait until producer stops 4) Two consumers consume from the topic (with clientId = group1 and group2 respectively ) 5) verify that actual rate is within 10% of expected rate (quota) Scenario 3: validate the effectiveness of quota sharing 1) Let default_producer_quota = default_consumer_quota = 2 Bytes/sec Override quota of producer_performance and group1 to be 15000 Bytes/sec 2) Produce 2000 messages of 2 bytes each (with clientId = producer_performance) 3) Wait until producer stops 4) Two consumers consume from the topic (with clientId = group1 for both consumers) 5) verify that actual rate is within 10% of expected rate (quota) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (KAFKA-2171) System Test for Quotas
[ https://issues.apache.org/jira/browse/KAFKA-2171?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Dong Lin updated KAFKA-2171: Description: Initial setup and configuration: In all scenarios, we create the following entities and topic: - 1 kafka brokers - 1 topic with replication factor = 1, ackNum = -1, and parition = 6 - 1 producer performance - 2 console consumers - 3 jmx tools, one for each of the producer and consumers - we consider two rates are approximately the same if they differ by at most 10%. Scenario 1: validate the effectiveness of default producer and consumer quota 1) Let default_producer_quota = default_consumer_quota = 2 Bytes/sec 2) Produce 2000 messages of 2 bytes each (with clientId = producer_performance) 3) Wait until producer stops 4) Two consumers consume from the topic (with clientId = group1 and group2 respectively ) 5) verify that actual rate is within 10% of expected rate (quota) Scenario 2: validate the effectiveness of producer and consumer quota override 1) Let default_producer_quota = default_consumer_quota = 2 Bytes/sec Override quota of producer_performance and group1 to be 15000 Bytes/sec 2) Produce 2000 messages of 2 bytes each (with clientId = producer_performance) 3) Wait until producer stops 4) Two consumers consume from the topic (with clientId = group1 and group2 respectively ) 5) verify that actual rate is within 10% of expected rate (quota) Scenario 3: validate the effectiveness of quota sharing 1) Let default_producer_quota = default_consumer_quota = 2 Bytes/sec Override quota of producer_performance and group1 to be 15000 Bytes/sec 2) Produce 2000 messages of 2 bytes each (with clientId = producer_performance) 3) Wait until producer stops 4) Two consumers consume from the topic (with clientId = group1 for both consumers) 5) verify that actual rate is within 10% of expected rate (quota) was: Initial setup and configuration: In all scenarios, we create the following entities and topic: - 4 kafka brokers - 1 topic with replication factor = 2, ackNum = -1, and parition = 6 - 1 producer performance - 2 console consumers - 3 jmx tools, one for each of the producer and consumers - we consider two rates are approximately the same if they differ by at most 10%. Scenario 1: validate the effectiveness of default producer and consumer quota 1) Let default_producer_quota = default_consumer_quota = 2 Bytes/sec 2) Produce 2000 messages of 2 bytes each (with clientId = producer_performance) 3) Wait until producer stops 4) Two consumers consume from the topic (with clientId = group1 and group2 respectively ) 5) verify that the data consumed is identical to the data produced 6) verify that actual rate is within 10% of expected rate (quota) Scenario 2: validate the effectiveness of producer and consumer quota override 1) Let default_producer_quota = default_consumer_quota = 2 Bytes/sec Override quota of producer_performance and group1 to be 15000 Bytes/sec 2) Produce 2000 messages of 2 bytes each (with clientId = producer_performance) 3) Wait until producer stops 4) Two consumers consume from the topic (with clientId = group1 and group2 respectively ) 5) verify that the data consumed is identical to the data produced 6) verify that actual rate is within 10% of expected rate (quota) 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 Attachments: KAFKA-2171.patch Original Estimate: 336h Remaining Estimate: 336h Initial setup and configuration: In all scenarios, we create the following entities and topic: - 1 kafka brokers - 1 topic with replication factor = 1, ackNum = -1, and parition = 6 - 1 producer performance - 2 console consumers - 3 jmx tools, one for each of the producer and consumers - we consider two rates are approximately the same if they differ by at most 10%. Scenario 1: validate the effectiveness of default producer and consumer quota 1) Let default_producer_quota = default_consumer_quota = 2 Bytes/sec 2) Produce 2000 messages of 2 bytes each (with clientId = producer_performance) 3) Wait until producer stops 4) Two consumers consume from the topic (with clientId = group1 and group2 respectively ) 5) verify that actual rate is within 10% of expected rate (quota) Scenario 2: validate the effectiveness of producer and consumer quota override 1) Let default_producer_quota = default_consumer_quota = 2 Bytes/sec Override quota of producer_performance and group1 to be 15000 Bytes/sec 2) Produce 2000 messages of 2 bytes each (with clientId = producer_performance) 3) Wait until producer stops 4) Two consumers consume from the topic (with clientId =
[jira] [Updated] (KAFKA-2171) System Test for Quotas
[ https://issues.apache.org/jira/browse/KAFKA-2171?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Dong Lin updated KAFKA-2171: Attachment: KAFKA-2171.patch 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 Attachments: KAFKA-2171.patch, KAFKA-2171.patch Original Estimate: 336h Remaining Estimate: 336h Initial setup and configuration: In all scenarios, we create the following entities and topic: - 1 kafka brokers - 1 topic with replication factor = 1, ackNum = -1, and parition = 6 - 1 producer performance - 2 console consumers - 3 jmx tools, one for each of the producer and consumers - we consider two rates are approximately the same if they differ by at most 10%. Scenario 1: validate the effectiveness of default producer and consumer quota 1) Let default_producer_quota = default_consumer_quota = 2 Bytes/sec 2) Produce 2000 messages of 2 bytes each (with clientId = producer_performance) 3) Wait until producer stops 4) Two consumers consume from the topic (with clientId = group1 and group2 respectively ) 5) verify that actual rate is within 10% of expected rate (quota) Scenario 2: validate the effectiveness of producer and consumer quota override 1) Let default_producer_quota = default_consumer_quota = 2 Bytes/sec Override quota of producer_performance and group1 to be 15000 Bytes/sec 2) Produce 2000 messages of 2 bytes each (with clientId = producer_performance) 3) Wait until producer stops 4) Two consumers consume from the topic (with clientId = group1 and group2 respectively ) 5) verify that actual rate is within 10% of expected rate (quota) Scenario 3: validate the effectiveness of quota sharing 1) Let default_producer_quota = default_consumer_quota = 2 Bytes/sec Override quota of producer_performance and group1 to be 15000 Bytes/sec 2) Produce 2000 messages of 2 bytes each (with clientId = producer_performance) 3) Wait until producer stops 4) Two consumers consume from the topic (with clientId = group1 for both consumers) 5) verify that actual rate is within 10% of expected rate (quota) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (KAFKA-2171) System Test for Quotas
[ https://issues.apache.org/jira/browse/KAFKA-2171?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Dong Lin updated KAFKA-2171: Status: Patch Available (was: Open) 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 Attachments: KAFKA-2171.patch Original Estimate: 336h Remaining Estimate: 336h 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)
[jira] [Updated] (KAFKA-2171) System Test for Quotas
[ https://issues.apache.org/jira/browse/KAFKA-2171?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Dong Lin updated KAFKA-2171: Description: Initial setup and configuration: In all scenarios, we create the following entities and topic: - 4 kafka brokers - 1 topic with replication factor = 2, ackNum = -1, and parition = 6 - 1 producer performance - 2 console consumers - 3 jmx tools, one for each of the producer and consumers - we consider two rates are approximately the same if they differ by at most 10%. Scenario 1: validate the effectiveness of default producer and consumer quota 1) Let default_producer_quota = default_consumer_quota = 2 Bytes/sec 2) Produce 2000 messages of 2 bytes each (with clientId = producer_performance) 3) Wait until producer stops 4) Two consumers consume from the topic (with clientId = group1 and group2 respectively ) 5) verify that the data consumed is identical to the data produced 6) verify that actual rate is within 10% of expected rate (quota) Scenario 2: validate the effectiveness of producer and consumer quota override 1) Let default_producer_quota = default_consumer_quota = 2 Bytes/sec Override quota of producer_performance and group1 to be 15000 Bytes/sec 2) Produce 2000 messages of 2 bytes each (with clientId = producer_performance) 3) Wait until producer stops 4) Two consumers consume from the topic (with clientId = group1 and group2 respectively ) 5) verify that the data consumed is identical to the data produced 6) verify that actual rate is within 10% of expected rate (quota) was: 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. System Test for Quotas