Return-Path: Delivered-To: apmail-incubator-cassandra-dev-archive@minotaur.apache.org Received: (qmail 62416 invoked from network); 25 Jun 2009 18:49:45 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 25 Jun 2009 18:49:45 -0000 Received: (qmail 85160 invoked by uid 500); 25 Jun 2009 18:49:56 -0000 Delivered-To: apmail-incubator-cassandra-dev-archive@incubator.apache.org Received: (qmail 85136 invoked by uid 500); 25 Jun 2009 18:49:55 -0000 Mailing-List: contact cassandra-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cassandra-dev@incubator.apache.org Delivered-To: mailing list cassandra-dev@incubator.apache.org Received: (qmail 85126 invoked by uid 99); 25 Jun 2009 18:49:55 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 25 Jun 2009 18:49:55 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of eweaver@gmail.com designates 209.85.217.216 as permitted sender) Received: from [209.85.217.216] (HELO mail-gx0-f216.google.com) (209.85.217.216) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 25 Jun 2009 18:49:45 +0000 Received: by gxk12 with SMTP id 12so1445774gxk.12 for ; Thu, 25 Jun 2009 11:49:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :from:date:message-id:subject:to:content-type :content-transfer-encoding; bh=EzDSo75Y2Hx6KSre8M92tofrXN5rDVke/yd6ztfGjbg=; b=WOnjH3JuseGkOJOxTIUiwIy1aagflXRc5zLXt6rw5SiwKxhR/8z4rM3Iz/AKkh4OVF fmINfjMXjeRpk1eYS/Iri4ozIw5NSXQMqI9SLbwLLDC8SoGaeeVrH2Y+jziHC/7lifOM ysn4ZlEGGa61j242XBbPU15Gg7SSvq6MDNCoM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type:content-transfer-encoding; b=AAXuw6jJO1zO9tC+D9K9wthjyJLee07hJmNFMC1gpnqH1WOnFT8RzwTJVV90D0HDSv 1RSyt0vu1hsh/S0XjQjgJaTTtHE4KC+KOxmkKOkTYDdjrfj6m+PBS6vs0qIljkxV6ANB UwFqY0XJQMlXT8e4qCKhCR4Xj1ktQWcSTtMAk= MIME-Version: 1.0 Received: by 10.151.130.1 with SMTP id h1mr4919855ybn.190.1245955764384; Thu, 25 Jun 2009 11:49:24 -0700 (PDT) In-Reply-To: References: From: Evan Weaver Date: Thu, 25 Jun 2009 11:49:04 -0700 Message-ID: Subject: Re: Alternative wire protocols To: cassandra-dev@incubator.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org Does the Thrift JSON stuff still require you to generate client bindings? Evan On Thu, Jun 25, 2009 at 11:35 AM, Michael Greene wrote: > A quick time-to-production could be achieved through distributing > re-packaged client libraries. =A0I like that idea. =A0I brought it up on > IRC at one time, and Jonathan convinced me I was wrong, but now I > can't remember why and I like the idea again. > > Also, as Jonathan notes, there *is* a Thrift HTTP transport and a JSON > Protocol. =A0It would be a nice configuration option to allow starting > both the binary socket handlers and the HTTP+JSON handlers at runtime. > > Michael > > On Thu, Jun 25, 2009 at 1:15 PM, Evan Weaver wrote: >> Also keep in mind that not all deployments of Cassandra are >> performance-critical. >> >> My current project is an integration/legacy MySQL replacement, so the >> database is used as a system of record but not of (significant) >> runtime. The read paths are fronted by caches with 97% hit rates. A >> JSON http API would be more than performant enough, and ease the >> integration path by not requiring a new component (Thrift) in the >> client stack. >> >> Having a quick time-to-production through easy integration is much >> more important to us. Then, if production experience suggests that we >> can remove some of the caches as a phase 2, we will worry about >> transport performance. >> >> Evan >> >> On Wed, Jun 24, 2009 at 9:09 PM, Brett Eisenberg wrote= : >>> +1 for Avro as something to watch and consider. I concur that performan= ce >>> and simplicity are the quintessential attributes to prioritize; for me = that >>> excludes code generation. >>> >>> +1 for something simple like HTTP+JSON or line-based as an interface of= last >>> resort/debug. >>> >>> b >>> >>> On Jun 24, 2009, at 14:03 , Jonathan Ellis wrote: >>> >>>> I'm interested in Avro as kind of a better Thrift, but that's still >>>> pretty alpha. >>>> >>>> I'm not really interested in stuff that's going to be Much Slower like >>>> anything over http (Jay from Voldemort said that's basically a waste >>>> of time and I believe him) or anything that requires hand-writing >>>> clients for each language (everything else?). >>>> >>>> -Jonathan >>>> >>>> On Wed, Jun 24, 2009 at 3:53 PM, Evan Weaver wrote: >>>>> >>>>> I wanted to start a small discussion to see if there is any interest >>>>> in supporting alternative wire protocols or perhaps junking Thrift to >>>>> some degree. >>>>> >>>>> Some options: >>>>> =A0* Use JSON over HTTP >>>>> =A0* Use BSON over...something (http://www.mongodb.org/display/DOCS/B= SON) >>>>> =A0* Use ASN.1 over...something >>>>> =A0* Use Protocol Buffers over...something >>>>> =A0* Use Thrift, but package Cassandra-specific clients for each lang= uage >>>>> >>>>> I have not thought too coherently about this but generic Thrift seems >>>>> to be a pain point for everybody. >>>>> >>>>> Evan >>>>> >>>>> -- >>>>> Evan Weaver >>>>> >>>> >>>> !DSPAM:1000,4a42938f192413113311398! >>>> >>> >>> >> >> >> >> -- >> Evan Weaver >> > --=20 Evan Weaver