incubator-cassandra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexander Staubo <madevilgen...@gmail.com>
Subject Re: Alternative wire protocols
Date Wed, 24 Jun 2009 22:17:45 GMT
On Wed, Jun 24, 2009 at 11:03 PM, Jonathan Ellis<jbellis@gmail.com> wrote:
> 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)

Not sure I believe that. There's nothing *inherently* slow about HTTP
as a protocol, despite its stateless nature. The current Thrift
implementation is not known to be a speed demon, though; neither is
Protocol Buffers, for all its binary compactness.

Personally I prefer JSON + HTTP. Anything that lets me debug an API
using Curl makes me a lot more excited than a bloated library that has
to be bundled with every client and application. (Why doesn't Thrift
generate complete, dependency-free stubs? It seems like such a missed
opportunity.)

Could be worth investigating whether some moderately fast HTTP layer
such as Jetty could beat Thrift. This blog post claims (and backs up
with some hard numbers) that JSON can beat both in performance as well
as bandwidth:

  http://www.bouncybouncy.net/ramblings/posts/json_vs_thrift_and_protocol_buffers_round_2/

It should also be noted that Cassandra's API is particularly suited to
the simplicity of a pure HTTP API.

> anything that requires hand-writing clients for each language

Doesn't that depend on the complexity of the protocol? The hugely
popular Memcached server uses a *very* simple line-based protocol [2],
and while you would still want a client library for most apps, writing
one is usually so trivial you could do it from scratch as part of your
app and it still wouldn't feel like a complete waste of time.

A.

Mime
View raw message