-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33049/
-----------------------------------------------------------
(Updated May 26, 2015, 6:50 p.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)
-------
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
Diffs (updated)
-----
clients/src/main/java/org/apache/kafka/common/metrics/MetricConfig.java
dfa1b0a11042ad9d127226f0e0cec8b1d42b8441
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/test/java/org/apache/kafka/common/utils/MockTime.java
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/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
Diff: https://reviews.apache.org/r/33049/diff/
Testing
-------
Thanks,
Aditya Auradkar