[ https://issues.apache.org/jira/browse/KAFKA-1050?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13761530#comment-13761530 ]
Jay Kreps commented on KAFKA-1050: ---------------------------------- Or actually, perhaps I am confused. The data loss case is (2) and it would definitely be good to implement a case where we wait on an in-sync replica rather than allowing an unsafe election. I don't think (1) actually helps though. Basically in a majority vote scenario (which I think you are calling quorum, though I think both approaches are quorums) this is the equivalent to throwing an exception if you can only get 3/5 to commit. In a sense this does increase the chance of durability since more servers wrote it, but it is also a bit odd to intentionally fail your own successful writes. > Support for "no data loss" mode > ------------------------------- > > Key: KAFKA-1050 > URL: https://issues.apache.org/jira/browse/KAFKA-1050 > Project: Kafka > Issue Type: Task > Reporter: Justin SB > > I'd love to use Apache Kafka, but for my application data loss is not > acceptable. Even at the expense of availability (i.e. I need C not A in CAP). > I think there are two things that I need to change to get a quorum model: > 1) Make sure I set request.required.acks to 2 (for a 3 node cluster) or 3 > (for a 5 node cluster) on every request, so that I can only write if a quorum > is active. > 2) Prevent the behaviour where a non-ISR can become the leader if all ISRs > die. I think this is as easy as tweaking > core/src/main/scala/kafka/controller/PartitionLeaderSelector.scala, > essentially to throw an exception around line 64 in the "data loss" case. > I haven't yet implemented / tested this. I'd love to get some input from the > Kafka-experts on whether my plan is: > (a) correct - will this work? > (b) complete - have I missed any cases? > (c) recommended - is this a terrible idea :-) > Thanks for any pointers! -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira