Return-Path: X-Original-To: apmail-kafka-dev-archive@www.apache.org Delivered-To: apmail-kafka-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 8953FEE96 for ; Fri, 25 Jan 2013 17:42:30 +0000 (UTC) Received: (qmail 12519 invoked by uid 500); 25 Jan 2013 17:42:30 -0000 Delivered-To: apmail-kafka-dev-archive@kafka.apache.org Received: (qmail 12463 invoked by uid 500); 25 Jan 2013 17:42:30 -0000 Mailing-List: contact dev-help@kafka.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@kafka.apache.org Delivered-To: mailing list dev@kafka.apache.org Received: (qmail 12453 invoked by uid 99); 25 Jan 2013 17:42:30 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 25 Jan 2013 17:42:30 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of jay.kreps@gmail.com designates 209.85.220.44 as permitted sender) Received: from [209.85.220.44] (HELO mail-pa0-f44.google.com) (209.85.220.44) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 25 Jan 2013 17:42:25 +0000 Received: by mail-pa0-f44.google.com with SMTP id hz11so387387pad.17 for ; Fri, 25 Jan 2013 09:42:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:content-type; bh=vU9fpDlUikBu7YrSb48v6hqcuUFLEIXvYEdhQ7g6By0=; b=WWMyzNjTBqx0thEY+bWDk6TUcaiAlqsM+r4+bV4507xPavFBbEuVIGm3RoaHjyV6sm urZR8fICsrI7J8B2d64CBy8HeQ96mo96FbwZn8CXj+9G+j6/lujTNX5a+nqPaWE27HWg wStXzUZ3MYqlcWsydM7JO4jNwXtXHCJJJWZbZN5SBZLGsaHbLylctrj45VvrleFUJGcw p+vLCV/3iwK5cb8Pb7AjNkhqsL0HPSwOKO0nvoA5qjvE6y859iNrDqQSbtOoU+Hp7csl Xo+YCElR8P8Vs7eyCstQxaM6DM4gOKkHlvTQBQ+g5FSwryFqPwCek3ddBg9HYDDOiVP4 BNKg== MIME-Version: 1.0 X-Received: by 10.68.216.201 with SMTP id os9mr16097479pbc.36.1359135724648; Fri, 25 Jan 2013 09:42:04 -0800 (PST) Received: by 10.66.122.67 with HTTP; Fri, 25 Jan 2013 09:42:04 -0800 (PST) In-Reply-To: References: Date: Fri, 25 Jan 2013 09:42:04 -0800 Message-ID: Subject: Re: kafka 0.8 producer throughput From: Jay Kreps To: "dev@kafka.apache.org" Content-Type: multipart/alternative; boundary=e89a8ff2450d11b9d904d420729e X-Virus-Checked: Checked by ClamAV on apache.org --e89a8ff2450d11b9d904d420729e Content-Type: text/plain; charset=ISO-8859-1 Some folks came up with a cool hack in 0.8 that makes acks=0 send no response. This changes the performance for small message sends to be equivalent to 0.7. This is proposed for inclusion in 0.8. It would obviously be less useful for the java/scala client in 0.9 if we are able to properly pipeline requests, but it would still be a valid option for non-java clients who don't want to deal with the complexity of request pipelining. JIRA is here for discussion: https://issues.apache.org/jira/browse/KAFKA-736 -Jay On Wed, Jan 9, 2013 at 8:31 AM, Jay Kreps wrote: > We haven't done a ton of performance work on 0.8 yet. > > Regardless, requiring the ack will certainly reduce per-producer > throughput, but it is too early to say by how much. Obviously this won't > impact broker throughput (so if you have many producers you may not notice). > > The plan to fix this is just to make the produce request non-blocking. > This will allow the same kind of throughput we had before but still allow > us to give you back and error response if you want it. The hope would be to > make this change in 0.9 > > -Jay > > > On Wed, Jan 9, 2013 at 8:24 AM, Jun Rao wrote: > >> In 0.8, ack is always required. The ack returns an errorcode that >> indicates >> the reason if a produce request fails (e.g., the request is sent to a >> broker that's not a leader). It also returns the offset of the produced >> messages. However, the producer can choose when to receive the acks (e.g., >> when data reaches 1 replica or all replicas). If the ack indicates an >> error, the client can choose to retry. The retry logic is built into our >> high level producer. >> >> Thanks, >> >> Jun >> >> On Wed, Jan 9, 2013 at 6:20 AM, S Ahmed wrote: >> >> > What's the ack for? If it fails, it will try another broker? Can this >> be >> > disabled or it's a major design change? >> > >> > >> > On Wed, Jan 9, 2013 at 12:40 AM, Jun Rao wrote: >> > >> > > The 50MB/s number is for 0.7. We haven't carefully measured the >> > performance >> > > in 0.8 yet. We do expect the throughput that a single producer can >> drive >> > in >> > > 0.8 to be less. This is because the 0.8 producer needs to wait for an >> RPC >> > > response from the broker while in 0.7, there is no ack for the >> producer. >> > > Nevertheless, 2MB/s seems low. Could you try increasing flush >> interval to >> > > sth bigger, like 20000? >> > > >> > > Thanks, >> > > >> > > Jun >> > > >> > > On Tue, Jan 8, 2013 at 8:32 PM, Jun Guo -X (jungu - CIIC at Cisco) < >> > > jungu@cisco.com> wrote: >> > > >> > > > According to Kafka official document, the producer throughput is >> about >> > > > 50MB/S. But I do some test, the producer throughout is only about >> > 2MB/S. >> > > > The test environment is the same with document says. One producer, >> One >> > > > broker, One Zookeeper are in independent machine. Message size is >> 100 >> > > > bytes, batch size is 200, flush interval is 600 messages. The test >> > > > environment is the same, the configuration is the same. The why >> there >> > is >> > > > such big gap the my test result and the document says? >> > > > >> > > >> > >> > > --e89a8ff2450d11b9d904d420729e--