You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by Jay Kreps <bo...@gmail.com> on 2014/02/18 00:25:17 UTC
Review Request 18199: Patch for KAFKA-1252
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18199/
-----------------------------------------------------------
Review request for kafka.
Bugs: KAFKA-1252
https://issues.apache.org/jira/browse/KAFKA-1252
Repository: kafka
Description
-------
KAFKA-1252 Implement retries in new producer.
Diffs
-----
clients/src/main/java/org/apache/kafka/clients/producer/KafkaProducer.java 3d180e885a25fa6b138f544ac320ec9e0d2a1e7f
clients/src/main/java/org/apache/kafka/clients/producer/ProducerConfig.java dca9802c8d0918cf5e284ff5b5ea2ccdf788602b
clients/src/main/java/org/apache/kafka/clients/producer/internals/Metadata.java 52d30a86d04393ec06e8b362e91f31492a278680
clients/src/main/java/org/apache/kafka/clients/producer/internals/RecordAccumulator.java be8a4a399b8b43beabe2c34f8f4f728cb63a29bf
clients/src/main/java/org/apache/kafka/clients/producer/internals/RecordBatch.java 7a440a3dd29c704dac9087fdac28c35d3e33e345
clients/src/main/java/org/apache/kafka/clients/producer/internals/Sender.java d93a455827a6747e02fdb388e34320f648877c34
clients/src/main/java/org/apache/kafka/common/Cluster.java c17a8f8162db9386a36d4204b9036676344a3451
clients/src/main/java/org/apache/kafka/common/errors/CorruptRecordException.java 673f61d6271c55fe7f3422e49a3f1f8f7d3d2206
clients/src/main/java/org/apache/kafka/common/errors/LeaderNotAvailableException.java 0bde6b5a351fc2475181b927effdd5ee8c7ff85c
clients/src/main/java/org/apache/kafka/common/errors/NetworkException.java 3a041593d76cfb52471c49ca5a37ebf6129d8131
clients/src/main/java/org/apache/kafka/common/errors/NotLeaderForPartitionException.java 5adc72ccf2d0cf4c0503df8d19c945a2adb2df90
clients/src/main/java/org/apache/kafka/common/errors/OffsetOutOfRangeException.java d01698a3efca7d4a9ee9b20f6f56abe2f299de06
clients/src/main/java/org/apache/kafka/common/errors/RetriableException.java PRE-CREATION
clients/src/main/java/org/apache/kafka/common/errors/RetryableException.java c7f2f222f712a8b6659599c25fffc4fd55772d40
clients/src/main/java/org/apache/kafka/common/errors/TimeoutException.java dffd64d19c35aa1f0378d220dedf619a9c115b6d
clients/src/main/java/org/apache/kafka/common/errors/UnknownTopicOrPartitionException.java 73d1953cbe045d7f67e423ff2f0f4d27465db41d
clients/src/main/java/org/apache/kafka/common/network/Selector.java 8ed4c73146b2e7d8bb0bb1779dd6f942b231a627
clients/src/test/java/org/apache/kafka/clients/producer/RecordAccumulatorTest.java 1bbe83c1bfd7599dbba12424deee302e62c7a2b5
clients/src/test/java/org/apache/kafka/clients/producer/SenderTest.java 41c028bffbda1c418d827a1f6a8d2a63cdf3e373
Diff: https://reviews.apache.org/r/18199/diff/
Testing
-------
Thanks,
Jay Kreps
Re: Review Request 18199: Patch for KAFKA-1252
Posted by Guozhang Wang <gu...@linkedin.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18199/#review34795
-----------------------------------------------------------
Ship it!
Minor comments below
clients/src/main/java/org/apache/kafka/clients/producer/ProducerConfig.java
<https://reviews.apache.org/r/18199/#comment65112>
MAX_NUM_RETRIES_CONFIG?
clients/src/main/java/org/apache/kafka/clients/producer/internals/Sender.java
<https://reviews.apache.org/r/18199/#comment65125>
This comment is not accurate, we will only return the error to user if cannot retry.
clients/src/main/java/org/apache/kafka/clients/producer/internals/Sender.java
<https://reviews.apache.org/r/18199/#comment65130>
Can we also use class hierarchy here like canRetry does instead of checking individual exception code? By doing so we move the checking definitions to the exceptions themselves instead of putting them here.
clients/src/main/java/org/apache/kafka/common/errors/RetriableException.java
<https://reviews.apache.org/r/18199/#comment65131>
Just thought about RecordTooLargeException, for now it may be inherited from some FatalException?
- Guozhang Wang
On Feb. 17, 2014, 11:25 p.m., Jay Kreps wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/18199/
> -----------------------------------------------------------
>
> (Updated Feb. 17, 2014, 11:25 p.m.)
>
>
> Review request for kafka.
>
>
> Bugs: KAFKA-1252
> https://issues.apache.org/jira/browse/KAFKA-1252
>
>
> Repository: kafka
>
>
> Description
> -------
>
> KAFKA-1252 Implement retries in new producer.
>
>
> Diffs
> -----
>
> clients/src/main/java/org/apache/kafka/clients/producer/KafkaProducer.java 3d180e885a25fa6b138f544ac320ec9e0d2a1e7f
> clients/src/main/java/org/apache/kafka/clients/producer/ProducerConfig.java dca9802c8d0918cf5e284ff5b5ea2ccdf788602b
> clients/src/main/java/org/apache/kafka/clients/producer/internals/Metadata.java 52d30a86d04393ec06e8b362e91f31492a278680
> clients/src/main/java/org/apache/kafka/clients/producer/internals/RecordAccumulator.java be8a4a399b8b43beabe2c34f8f4f728cb63a29bf
> clients/src/main/java/org/apache/kafka/clients/producer/internals/RecordBatch.java 7a440a3dd29c704dac9087fdac28c35d3e33e345
> clients/src/main/java/org/apache/kafka/clients/producer/internals/Sender.java d93a455827a6747e02fdb388e34320f648877c34
> clients/src/main/java/org/apache/kafka/common/Cluster.java c17a8f8162db9386a36d4204b9036676344a3451
> clients/src/main/java/org/apache/kafka/common/errors/CorruptRecordException.java 673f61d6271c55fe7f3422e49a3f1f8f7d3d2206
> clients/src/main/java/org/apache/kafka/common/errors/LeaderNotAvailableException.java 0bde6b5a351fc2475181b927effdd5ee8c7ff85c
> clients/src/main/java/org/apache/kafka/common/errors/NetworkException.java 3a041593d76cfb52471c49ca5a37ebf6129d8131
> clients/src/main/java/org/apache/kafka/common/errors/NotLeaderForPartitionException.java 5adc72ccf2d0cf4c0503df8d19c945a2adb2df90
> clients/src/main/java/org/apache/kafka/common/errors/OffsetOutOfRangeException.java d01698a3efca7d4a9ee9b20f6f56abe2f299de06
> clients/src/main/java/org/apache/kafka/common/errors/RetriableException.java PRE-CREATION
> clients/src/main/java/org/apache/kafka/common/errors/RetryableException.java c7f2f222f712a8b6659599c25fffc4fd55772d40
> clients/src/main/java/org/apache/kafka/common/errors/TimeoutException.java dffd64d19c35aa1f0378d220dedf619a9c115b6d
> clients/src/main/java/org/apache/kafka/common/errors/UnknownTopicOrPartitionException.java 73d1953cbe045d7f67e423ff2f0f4d27465db41d
> clients/src/main/java/org/apache/kafka/common/network/Selector.java 8ed4c73146b2e7d8bb0bb1779dd6f942b231a627
> clients/src/test/java/org/apache/kafka/clients/producer/RecordAccumulatorTest.java 1bbe83c1bfd7599dbba12424deee302e62c7a2b5
> clients/src/test/java/org/apache/kafka/clients/producer/SenderTest.java 41c028bffbda1c418d827a1f6a8d2a63cdf3e373
>
> Diff: https://reviews.apache.org/r/18199/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Jay Kreps
>
>
Re: Review Request 18199: Patch for KAFKA-1252
Posted by Jun Rao <ju...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18199/#review34981
-----------------------------------------------------------
clients/src/main/java/org/apache/kafka/clients/producer/internals/Sender.java
<https://reviews.apache.org/r/18199/#comment65375>
Should we just pass in 1, instead i + 1 to metadataNodeIndex()?
clients/src/main/java/org/apache/kafka/clients/producer/internals/Sender.java
<https://reviews.apache.org/r/18199/#comment65374>
Should we just pass in 1, instead i + 1 to metadataNodeIndex()?
- Jun Rao
On Feb. 19, 2014, 1:15 a.m., Jay Kreps wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/18199/
> -----------------------------------------------------------
>
> (Updated Feb. 19, 2014, 1:15 a.m.)
>
>
> Review request for kafka.
>
>
> Bugs: KAFKA-1252
> https://issues.apache.org/jira/browse/KAFKA-1252
>
>
> Repository: kafka
>
>
> Description
> -------
>
> KAFKA-1252 Implement retries in new producer.
>
>
> Diffs
> -----
>
> clients/src/main/java/org/apache/kafka/clients/producer/KafkaProducer.java 3d180e885a25fa6b138f544ac320ec9e0d2a1e7f
> clients/src/main/java/org/apache/kafka/clients/producer/ProducerConfig.java dca9802c8d0918cf5e284ff5b5ea2ccdf788602b
> clients/src/main/java/org/apache/kafka/clients/producer/internals/Metadata.java 52d30a86d04393ec06e8b362e91f31492a278680
> clients/src/main/java/org/apache/kafka/clients/producer/internals/RecordAccumulator.java be8a4a399b8b43beabe2c34f8f4f728cb63a29bf
> clients/src/main/java/org/apache/kafka/clients/producer/internals/RecordBatch.java 7a440a3dd29c704dac9087fdac28c35d3e33e345
> clients/src/main/java/org/apache/kafka/clients/producer/internals/Sender.java d93a455827a6747e02fdb388e34320f648877c34
> clients/src/main/java/org/apache/kafka/common/Cluster.java c17a8f8162db9386a36d4204b9036676344a3451
> clients/src/main/java/org/apache/kafka/common/errors/CorruptRecordException.java 673f61d6271c55fe7f3422e49a3f1f8f7d3d2206
> clients/src/main/java/org/apache/kafka/common/errors/InvalidMetadataException.java PRE-CREATION
> clients/src/main/java/org/apache/kafka/common/errors/LeaderNotAvailableException.java 0bde6b5a351fc2475181b927effdd5ee8c7ff85c
> clients/src/main/java/org/apache/kafka/common/errors/NetworkException.java 3a041593d76cfb52471c49ca5a37ebf6129d8131
> clients/src/main/java/org/apache/kafka/common/errors/NotLeaderForPartitionException.java 5adc72ccf2d0cf4c0503df8d19c945a2adb2df90
> clients/src/main/java/org/apache/kafka/common/errors/OffsetMetadataTooLarge.java a3159bb1034e784b5902d4b9f0e6fc863908899d
> clients/src/main/java/org/apache/kafka/common/errors/OffsetOutOfRangeException.java d01698a3efca7d4a9ee9b20f6f56abe2f299de06
> clients/src/main/java/org/apache/kafka/common/errors/RecordTooLargeException.java ce95ca04aa842078ad20ea3ae2c764b51ac76f7a
> clients/src/main/java/org/apache/kafka/common/errors/RetriableException.java PRE-CREATION
> clients/src/main/java/org/apache/kafka/common/errors/RetryableException.java c7f2f222f712a8b6659599c25fffc4fd55772d40
> clients/src/main/java/org/apache/kafka/common/errors/TimeoutException.java dffd64d19c35aa1f0378d220dedf619a9c115b6d
> clients/src/main/java/org/apache/kafka/common/errors/UnknownServerException.java a0690fe2870bff25cfc478ff0f3314a05a8af991
> clients/src/main/java/org/apache/kafka/common/errors/UnknownTopicOrPartitionException.java 73d1953cbe045d7f67e423ff2f0f4d27465db41d
> clients/src/main/java/org/apache/kafka/common/network/Selector.java 8ed4c73146b2e7d8bb0bb1779dd6f942b231a627
> clients/src/test/java/org/apache/kafka/clients/producer/RecordAccumulatorTest.java 1bbe83c1bfd7599dbba12424deee302e62c7a2b5
> clients/src/test/java/org/apache/kafka/clients/producer/SenderTest.java 41c028bffbda1c418d827a1f6a8d2a63cdf3e373
>
> Diff: https://reviews.apache.org/r/18199/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Jay Kreps
>
>
Re: Review Request 18199: Patch for KAFKA-1252
Posted by Jay Kreps <bo...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18199/
-----------------------------------------------------------
(Updated Feb. 19, 2014, 1:15 a.m.)
Review request for kafka.
Bugs: KAFKA-1252
https://issues.apache.org/jira/browse/KAFKA-1252
Repository: kafka
Description
-------
KAFKA-1252 Implement retries in new producer.
Diffs (updated)
-----
clients/src/main/java/org/apache/kafka/clients/producer/KafkaProducer.java 3d180e885a25fa6b138f544ac320ec9e0d2a1e7f
clients/src/main/java/org/apache/kafka/clients/producer/ProducerConfig.java dca9802c8d0918cf5e284ff5b5ea2ccdf788602b
clients/src/main/java/org/apache/kafka/clients/producer/internals/Metadata.java 52d30a86d04393ec06e8b362e91f31492a278680
clients/src/main/java/org/apache/kafka/clients/producer/internals/RecordAccumulator.java be8a4a399b8b43beabe2c34f8f4f728cb63a29bf
clients/src/main/java/org/apache/kafka/clients/producer/internals/RecordBatch.java 7a440a3dd29c704dac9087fdac28c35d3e33e345
clients/src/main/java/org/apache/kafka/clients/producer/internals/Sender.java d93a455827a6747e02fdb388e34320f648877c34
clients/src/main/java/org/apache/kafka/common/Cluster.java c17a8f8162db9386a36d4204b9036676344a3451
clients/src/main/java/org/apache/kafka/common/errors/CorruptRecordException.java 673f61d6271c55fe7f3422e49a3f1f8f7d3d2206
clients/src/main/java/org/apache/kafka/common/errors/InvalidMetadataException.java PRE-CREATION
clients/src/main/java/org/apache/kafka/common/errors/LeaderNotAvailableException.java 0bde6b5a351fc2475181b927effdd5ee8c7ff85c
clients/src/main/java/org/apache/kafka/common/errors/NetworkException.java 3a041593d76cfb52471c49ca5a37ebf6129d8131
clients/src/main/java/org/apache/kafka/common/errors/NotLeaderForPartitionException.java 5adc72ccf2d0cf4c0503df8d19c945a2adb2df90
clients/src/main/java/org/apache/kafka/common/errors/OffsetMetadataTooLarge.java a3159bb1034e784b5902d4b9f0e6fc863908899d
clients/src/main/java/org/apache/kafka/common/errors/OffsetOutOfRangeException.java d01698a3efca7d4a9ee9b20f6f56abe2f299de06
clients/src/main/java/org/apache/kafka/common/errors/RecordTooLargeException.java ce95ca04aa842078ad20ea3ae2c764b51ac76f7a
clients/src/main/java/org/apache/kafka/common/errors/RetriableException.java PRE-CREATION
clients/src/main/java/org/apache/kafka/common/errors/RetryableException.java c7f2f222f712a8b6659599c25fffc4fd55772d40
clients/src/main/java/org/apache/kafka/common/errors/TimeoutException.java dffd64d19c35aa1f0378d220dedf619a9c115b6d
clients/src/main/java/org/apache/kafka/common/errors/UnknownServerException.java a0690fe2870bff25cfc478ff0f3314a05a8af991
clients/src/main/java/org/apache/kafka/common/errors/UnknownTopicOrPartitionException.java 73d1953cbe045d7f67e423ff2f0f4d27465db41d
clients/src/main/java/org/apache/kafka/common/network/Selector.java 8ed4c73146b2e7d8bb0bb1779dd6f942b231a627
clients/src/test/java/org/apache/kafka/clients/producer/RecordAccumulatorTest.java 1bbe83c1bfd7599dbba12424deee302e62c7a2b5
clients/src/test/java/org/apache/kafka/clients/producer/SenderTest.java 41c028bffbda1c418d827a1f6a8d2a63cdf3e373
Diff: https://reviews.apache.org/r/18199/diff/
Testing
-------
Thanks,
Jay Kreps
Re: Review Request 18199: Patch for KAFKA-1252
Posted by Jun Rao <ju...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18199/#review34705
-----------------------------------------------------------
Ship it!
+1. Just some minor comments below.
clients/src/main/java/org/apache/kafka/clients/producer/KafkaProducer.java
<https://reviews.apache.org/r/18199/#comment64917>
Should we call them sendBufferSize and receiveBufferSize?
clients/src/main/java/org/apache/kafka/clients/producer/internals/RecordBatch.java
<https://reviews.apache.org/r/18199/#comment65056>
lastAttempt doesn't seem to be used.
clients/src/main/java/org/apache/kafka/clients/producer/internals/Sender.java
<https://reviews.apache.org/r/18199/#comment64925>
If we want to be truly round robin, shouldn't nodeIndex to set to i+1?
clients/src/main/java/org/apache/kafka/clients/producer/internals/Sender.java
<https://reviews.apache.org/r/18199/#comment65058>
Ditto as the above.
clients/src/test/java/org/apache/kafka/clients/producer/SenderTest.java
<https://reviews.apache.org/r/18199/#comment65061>
Could we specify the parameter names here to make it clear?
clients/src/test/java/org/apache/kafka/clients/producer/SenderTest.java
<https://reviews.apache.org/r/18199/#comment65062>
Could we specify the parameter names here to make it clear?
- Jun Rao
On Feb. 17, 2014, 11:25 p.m., Jay Kreps wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/18199/
> -----------------------------------------------------------
>
> (Updated Feb. 17, 2014, 11:25 p.m.)
>
>
> Review request for kafka.
>
>
> Bugs: KAFKA-1252
> https://issues.apache.org/jira/browse/KAFKA-1252
>
>
> Repository: kafka
>
>
> Description
> -------
>
> KAFKA-1252 Implement retries in new producer.
>
>
> Diffs
> -----
>
> clients/src/main/java/org/apache/kafka/clients/producer/KafkaProducer.java 3d180e885a25fa6b138f544ac320ec9e0d2a1e7f
> clients/src/main/java/org/apache/kafka/clients/producer/ProducerConfig.java dca9802c8d0918cf5e284ff5b5ea2ccdf788602b
> clients/src/main/java/org/apache/kafka/clients/producer/internals/Metadata.java 52d30a86d04393ec06e8b362e91f31492a278680
> clients/src/main/java/org/apache/kafka/clients/producer/internals/RecordAccumulator.java be8a4a399b8b43beabe2c34f8f4f728cb63a29bf
> clients/src/main/java/org/apache/kafka/clients/producer/internals/RecordBatch.java 7a440a3dd29c704dac9087fdac28c35d3e33e345
> clients/src/main/java/org/apache/kafka/clients/producer/internals/Sender.java d93a455827a6747e02fdb388e34320f648877c34
> clients/src/main/java/org/apache/kafka/common/Cluster.java c17a8f8162db9386a36d4204b9036676344a3451
> clients/src/main/java/org/apache/kafka/common/errors/CorruptRecordException.java 673f61d6271c55fe7f3422e49a3f1f8f7d3d2206
> clients/src/main/java/org/apache/kafka/common/errors/LeaderNotAvailableException.java 0bde6b5a351fc2475181b927effdd5ee8c7ff85c
> clients/src/main/java/org/apache/kafka/common/errors/NetworkException.java 3a041593d76cfb52471c49ca5a37ebf6129d8131
> clients/src/main/java/org/apache/kafka/common/errors/NotLeaderForPartitionException.java 5adc72ccf2d0cf4c0503df8d19c945a2adb2df90
> clients/src/main/java/org/apache/kafka/common/errors/OffsetOutOfRangeException.java d01698a3efca7d4a9ee9b20f6f56abe2f299de06
> clients/src/main/java/org/apache/kafka/common/errors/RetriableException.java PRE-CREATION
> clients/src/main/java/org/apache/kafka/common/errors/RetryableException.java c7f2f222f712a8b6659599c25fffc4fd55772d40
> clients/src/main/java/org/apache/kafka/common/errors/TimeoutException.java dffd64d19c35aa1f0378d220dedf619a9c115b6d
> clients/src/main/java/org/apache/kafka/common/errors/UnknownTopicOrPartitionException.java 73d1953cbe045d7f67e423ff2f0f4d27465db41d
> clients/src/main/java/org/apache/kafka/common/network/Selector.java 8ed4c73146b2e7d8bb0bb1779dd6f942b231a627
> clients/src/test/java/org/apache/kafka/clients/producer/RecordAccumulatorTest.java 1bbe83c1bfd7599dbba12424deee302e62c7a2b5
> clients/src/test/java/org/apache/kafka/clients/producer/SenderTest.java 41c028bffbda1c418d827a1f6a8d2a63cdf3e373
>
> Diff: https://reviews.apache.org/r/18199/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Jay Kreps
>
>