I think I know what is the problem now. With ack=1 the server will respond
to the producer once the messages are appended to the log, BUT appending to
the log does not guarantee the log is flushed to disk, it may still be in
the page cache of the broker. Now if broker fails and recovers, messages
not flushed yet will be lost although the producer has got the ACK from the

With ack=-1 the server will not respond to the producer until all of the
replicas have gotten this message in their logs, again not necessarily
flushed to disk. So with all brokers down there is still a chance to lose
data, but smaller compared with ack=1.

On Sat, Jun 7, 2014 at 6:57 PM, Libo Yu <[EMAIL PROTECTED]> wrote:

NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB