GitHub user apurvam opened a pull request:
https://github.com/apache/kafka/pull/2809
CPKAFKA-465 : Exactly once transactional producer -- initial implementation
The basic flow works: find coordinator, get pid, add partitions to
transaction, commit/abort.
Still to add:
1. 'sendOffsets' implementation.
2. error handling.
3. failure test cases.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/apurvam/kafka
exactly-once-transactional-producer
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/kafka/pull/2809.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #2809
----
commit 40fa5f01866da411f1631c520ac6400a6ea9b6ba
Author: Guozhang Wang <[email protected]>
Date: 2017-03-02T01:42:49Z
Transaction log message format (#134)
* add transaction log message format
* add transaction timeout to initPid request
* collapse to one message type
commit 1b2df91b19dacf2cd8a5548c86b227104e8bbc67
Author: hachikuji <[email protected]>
Date: 2017-03-07T00:40:53Z
Implement FindCoordinatorRequest for transaction coordinator (#140)
commit 7a681649ec14e4b00df734fe584bd9dbb955e379
Author: hachikuji <[email protected]>
Date: 2017-03-08T07:00:19Z
Exactly once transactions request types (#141)
commit a9c32758592112750569f7fd41b538e7500dc959
Author: Apurva Mehta <[email protected]>
Date: 2017-03-15T20:47:25Z
Fix build and test errors due to reabse onto idempotent-producer branch
commit 20701f17c20e8121d125bdc11008fb9407f54d11
Author: Guozhang Wang <[email protected]>
Date: 2017-03-17T05:40:49Z
Transaction log partition Immigration and Emigration (#142)
* sub-package transaction and group classes within coordinator
* add loading and cleaning up logic
* add transaction configs
commit 711657e3b3dead9c7612965def930d01daea6592
Author: Guozhang Wang <[email protected]>
Date: 2017-03-21T04:38:35Z
Add transactions broker configs (#146)
* add all broker-side configs
* check for transaction timeout value
* added one more exception type
commit bb5c14fd2473abc1b340fcd6d3c5d0dbd787f4a4
Author: Apurva Mehta <[email protected]>
Date: 2017-03-30T22:13:11Z
CPKAFKA-465 : Implement READ_COMMITTED mode in the KafkaConsumer (#145)
commit 109ee0e4e7605f92885f6f1994c4efddb42bcc50
Author: Guozhang Wang <[email protected]>
Date: 2017-03-31T22:20:05Z
Handle addPartitions and addOffsets on TC (#147)
* handling add offsets to txn
* add a pending state with prepareTransition / completeTransaction /
abortTransition of state
* refactor handling logic for multiple in-flight requests
commit 846ea79a109e3cb9912832c2a9ed77700b066ef7
Author: Apurva Mehta <[email protected]>
Date: 2017-04-03T21:17:25Z
Fix test errors after rebase:
1. Notable conflicts are with the small API changes to
DelayedOperation and the newly introduced purgeDataBefore PR.
2. Jason's update to support streaming decompression required a bit of
an overhaul to the way we handle aborted transactions on the consumer.
commit b02ae405118cae0385c12ba0abb7e935043752c1
Author: Apurva Mehta <[email protected]>
Date: 2017-03-17T19:04:15Z
Initial plumbing for transactional producer.
commit e6b8be80415b525a2b006171bebc8c10ecbe3d9e
Author: Apurva Mehta <[email protected]>
Date: 2017-04-05T04:46:00Z
Initial implementation of the transactional producer
commit 413696955bda029019f914e6f8bc758912a59f2d
Author: Apurva Mehta <[email protected]>
Date: 2017-04-05T06:35:07Z
Initial commit of transactional producer
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---