On Wed, Jun 24, 2009 at 11:03 PM, Jonathan Ellis<[email protected]> 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.
