-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33049/
-----------------------------------------------------------
(Updated June 3, 2015, 12:02 a.m.)
Review request for kafka, Joel Koshy and Jun Rao.
Bugs: KAFKA-2084
https://issues.apache.org/jira/browse/KAFKA-2084
Repository: kafka
Description (updated)
-------
KAFKA-2186; Follow-up to KAFKA-1650 - add selective offset commit to consumer
connector API; reviewed by Joel Koshy
KAFKA-2091; Expose a partitioner interface in the new producer
(https://cwiki.apache.org/confluence/display/KAFKA/KIP-+22+-+Expose+a+Partitioner+interface+in+the+new+producer);
reviewed by Joel Koshy and Jay Kreps
kafka-2185; Update to Gradle 2.4; patched by Ismael Juma; reviewed by Jun Rao
KAFKA-2199 Make signing artifacts optional and disabled by default for
SNAPSHOTs and allow remote Maven repository configuration from the command
line.
kafka-2226; NullPointerException in TestPurgatoryPerformance; patched by
Yasuhiro Matsuda; reviewed by Onur Karaman, Guozhang Wang and Jun Rao
WIP: First patch for quotas. Changes are 1. Adding per-client throttle time and
quota metrics in ClientQuotaMetrics.scala 2. Making changes in
QuotaViolationException and Sensor to return delay time changes. 3. Added
configuration needed so far for quotas in KafkaConfig. 4. Unit tests
This is currently not being used anywhere in the code because I haven't yet
figured out how to enforce delays i.e. purgatory vs delay queue. I'll have a
better idea once I look at the new purgatory implementation. Hopefully, this
smaller patch is easier to review.
Added more testcases
Some locking changes for reading/creating the sensors
WIP patch
Sample usage in ReplicaManager
Updated patch for quotas. This patch does the following: 1. Add per-client
metrics for both producer and consumers 2. Add configuration for quotas 3.
Compute delay times in the metrics package and return the delay times in
QuotaViolationException 4. Add a DelayQueue in KafkaApi's that can be used to
throttle any type of request. Implemented request throttling for produce and
fetch requests. 5. Added unit and integration test cases. I've not yet added
integration testcases testing the consumer delays.. will update the patch once
those are ready
Incorporated Jun's comments
Adding javadoc
KAFKA-2084 - Moved the callbacks to ClientQuotaMetrics
Adding more configs
Don't quota replica traffic
KAFKA-2084
Fixing test failures
Diffs (updated)
-----
README.md 946ec62cc71df93c905c5f35caf5cdb9c78e5c10
build.gradle cd2aa838fd53e8124f308979b1d70efe0c5725a6
clients/src/main/java/org/apache/kafka/clients/producer/KafkaProducer.java
8e336a3aa96c73f52beaeb56b931baf4b026cf21
clients/src/main/java/org/apache/kafka/clients/producer/MockProducer.java
3c34610dbc8a68e4561e7264e0b545de3d93cef2
clients/src/main/java/org/apache/kafka/clients/producer/Partitioner.java
PRE-CREATION
clients/src/main/java/org/apache/kafka/clients/producer/ProducerConfig.java
187d0004c8c46b6664ddaffecc6166d4b47351e5
clients/src/main/java/org/apache/kafka/clients/producer/internals/Partitioner.java
93e799105fb6cc5c49a129c0db099a3a973b2ab3
clients/src/main/java/org/apache/kafka/common/metrics/Quota.java
d82bb0c055e631425bc1ebbc7d387baac76aeeaa
clients/src/main/java/org/apache/kafka/common/metrics/QuotaViolationException.java
a451e5385c9eca76b38b425e8ac856b2715fcffe
clients/src/main/java/org/apache/kafka/common/metrics/Sensor.java
ca823fd4639523018311b814fde69b6177e73b97
clients/src/main/java/org/apache/kafka/common/metrics/stats/Rate.java
98429da34418f7f1deba1b5e44e2e6025212edb3
clients/src/test/java/org/apache/kafka/clients/producer/internals/PartitionerTest.java
5dadd0e3554577ad6be28a18ff5ab08f8b31050f
clients/src/test/java/org/apache/kafka/common/metrics/MetricsTest.java
544e120594de78c43581a980b1e4087b4fb98ccb
clients/src/test/java/org/apache/kafka/common/utils/MockTime.java
core/src/main/scala/kafka/javaapi/consumer/ConsumerConnector.java
cc3400ff81fc0db69b5129ad7b440f20a211a79d
core/src/main/scala/kafka/server/ClientQuotaMetrics.scala PRE-CREATION
core/src/main/scala/kafka/server/KafkaApis.scala
387e387998fc3a6c9cb585dab02b5f77b0381fbf
core/src/main/scala/kafka/server/KafkaConfig.scala
9efa15ca5567b295ab412ee9eea7c03eb4cdc18b
core/src/main/scala/kafka/server/KafkaServer.scala
e66710d2368334ece66f70d55f57b3f888262620
core/src/main/scala/kafka/server/ReplicaManager.scala
59c9bc3ac3a8afc07a6f8c88c5871304db588d17
core/src/main/scala/kafka/server/ThrottledRequest.scala PRE-CREATION
core/src/main/scala/kafka/utils/ShutdownableThread.scala
fc226c863095b7761290292cd8755cd7ad0f155c
core/src/main/scala/kafka/utils/timer/Timer.scala
b8cde820a770a4e894804f1c268b24b529940650
core/src/main/scala/kafka/utils/timer/TimerTask.scala
3407138115d579339ffb6b00e32e38c984ac5d6e
core/src/main/scala/kafka/utils/timer/TimerTaskList.scala
e7a96570ddc2367583d6d5590628db7e7f6ba39b
core/src/main/scala/kafka/utils/timer/TimingWheel.scala
e92aba3844dbf3372182e14536a5d98cf3366d73
core/src/test/scala/integration/kafka/api/QuotasTest.scala PRE-CREATION
core/src/test/scala/unit/kafka/server/ClientQuotaMetricsTest.scala
PRE-CREATION
core/src/test/scala/unit/kafka/server/KafkaConfigConfigDefTest.scala
8014a5a6c362785539f24eb03d77278434614fe6
core/src/test/scala/unit/kafka/server/ThrottledRequestExpirationTest.scala
PRE-CREATION
gradle.properties 90b1945372e767b9c2d0a50df9eb7063e0629952
Diff: https://reviews.apache.org/r/33049/diff/
Testing
-------
Thanks,
Aditya Auradkar