Return-Path: X-Original-To: apmail-cassandra-user-archive@www.apache.org Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 7FC9AEC06 for ; Tue, 27 Nov 2012 16:58:16 +0000 (UTC) Received: (qmail 43116 invoked by uid 500); 27 Nov 2012 16:58:14 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 43098 invoked by uid 500); 27 Nov 2012 16:58:13 -0000 Mailing-List: contact user-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@cassandra.apache.org Delivered-To: mailing list user@cassandra.apache.org Received: (qmail 43086 invoked by uid 99); 27 Nov 2012 16:58:13 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 27 Nov 2012 16:58:13 +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 edlinuxguru@gmail.com designates 209.85.223.172 as permitted sender) Received: from [209.85.223.172] (HELO mail-ie0-f172.google.com) (209.85.223.172) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 27 Nov 2012 16:58:08 +0000 Received: by mail-ie0-f172.google.com with SMTP id c13so12116726ieb.31 for ; Tue, 27 Nov 2012 08:57:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=+tusqK+2/rtzGPDPyWdgR9ytxrN7IixHwBks394M4vs=; b=me0nXiJSzzXFWonuWQmAljq0XE24CuT03YxOJIeSmltlDI4GQKognGzhqI1gIO8cF5 U7Sfy1TiPHpT6F+yOSCUiWUKh7VRnWCgMDPS4Lsgxpr97+WaX68vTYM+RL5htgBSgK7w urjFOqaYWL964CK6W1Mek6Ua3n0U6MqNpdb50Yz8CTQ0V5l2F4hmgTel3TJebgNkPP+A TaL3KKKt919M9GFecukLsBo8yNpQku41vGHMZ0sFYtwiVjx07xwO4rhPtdwhMtERRMyi L0zrQ79BjPNIwgC9yAOkghuwjAdejs3M+fs9l/CNY92P3Hjs2AO9hk9u/71eTJhLrojl 2VCA== MIME-Version: 1.0 Received: by 10.43.116.135 with SMTP id fi7mr14364064icc.3.1354035468440; Tue, 27 Nov 2012 08:57:48 -0800 (PST) Received: by 10.64.97.106 with HTTP; Tue, 27 Nov 2012 08:57:48 -0800 (PST) In-Reply-To: References: Date: Tue, 27 Nov 2012 11:57:48 -0500 Message-ID: Subject: Re: Java high-level client From: Edward Capriolo To: user@cassandra.apache.org Content-Type: multipart/alternative; boundary=bcaec5171eb31c15f504cf7cf35b X-Virus-Checked: Checked by ClamAV on apache.org --bcaec5171eb31c15f504cf7cf35b Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hector does not require an outdated version of thift, you are likely using an outdated version of hector. Here is the long and short of it: If the thrift thrift API changes then hector can have compatibility issues. This happens from time to time. The main methods like get() and insert() have remained the same, but the CFMetaData objects have changed. (this causes the incompatible class stuff you are seeing). CQLhas a different version of the same problem, the CQL syntax is version-ed. For example, if you try to execute a CQL3 query as a CQL2query it will likely fail. In the end your code still has to be version aware. With hector you get a compile time problem, with pure CQL you get a runtime problem. I have always had the opinion the project should have shipped hector with Cassandra, this would have made it obvious what version is likely to work. The new CQL transport client is not being shipped with Cassandra either, so you will still have to match up the versions. Although they should be largely compatible some time in the near or far future one of the clients probably wont work with one of the servers. Edward On Tue, Nov 27, 2012 at 11:10 AM, Michael Kjellman wrote: > Netflix has a great client > > https://github.com/Netflix/astyanax > > On 11/27/12 7:40 AM, "Peter Lin" wrote: > > >I use hector-client master, which is pretty stable right now. > > > >It uses the latest thrift, so you can use hector with thrift 0.9.0. > >That's assuming you don't mind using the active development branch. > > > > > > > >On Tue, Nov 27, 2012 at 10:36 AM, Carsten Schnober > > wrote: > >> Hi, > >> I'm aware that this has been a frequent question, but answers are stil= l > >> hard to find: what's an appropriate Java high-level client? > >> I actually believe that the lack of a single maintained Java API that = is > >> packaged with Cassandra is quite an issue. The way the situation is > >> right now, new users have to pick more or less randomly one of the > >> available options from the Cassandra Wiki and find a suitable solution > >> for their individual requirements through trial implementations. This > >> can cause and lot of wasted time (and frustration). > >> > >> Personally, I've played with Hector before figuring out that it seems = to > >> require an outdated Thrift version. Downgrading to Thrift 0.6 is not a= n > >> option for me though because I use Thrift 0.9.0 in other classes of th= e > >> same project. > >> So I've had a look at Kundera and at Easy-Cassandra. Both seem to lack= a > >> real documentation beyond the examples available in their Github > >> repositories, right? > >> > >> Can more experienced users recommend either one of the two or some of > >> the other options listed at the Cassandra Wiki? I know that this > >> strongly depends on individual requirements, but all I need are simple > >> requests for very basic queries. So I would like to emphasize the > >> importance a clear documentation and a stable and well-maintained API. > >> Any hints? > >> Thanks! > >> Carsten > >> > >> -- > >> Institut f=FCr Deutsche Sprache | http://www.ids-mannheim.de > >> Projekt KorAP | http://korap.ids-mannheim.de > >> Tel. +49-(0)621-43740789 | schnober@ids-mannheim.de > >> Korpusanalyseplattform der n=E4chsten Generation > >> Next Generation Corpus Analysis Platform > > > 'Like' us on Facebook for exclusive content and other resources on all > Barracuda Networks solutions. > > Visit http://barracudanetworks.com/facebook > > > > > --bcaec5171eb31c15f504cf7cf35b Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hector does not require an outdated version of thift, you are likely u= sing an outdated version of hector.

Here is the l= ong and short of it: If the thrift thrift API changes then hector can have = compatibility issues. This happens from time to time. The main methods like= get() and insert() have remained the same, but the CFMetaData objects have= changed. (this causes the incompatible class stuff you are seeing).

CQLhas a different version of the same problem, t= he CQL syntax is version-ed. For example, if you try to execute a CQL3 quer= y as a CQL2query it will likely fail.=A0

In the en= d your code still has to be version aware. With hector you get a compile ti= me problem, with pure CQL you get a runtime problem.

I have always had the opinion the project should have s= hipped hector with Cassandra, this would have made it obvious what version = is likely to work.=A0

The new CQL transport client= is not being shipped with Cassandra either, so you will still have to matc= h up the versions. Although they should be largely compatible some time in = the near or far future one of the clients probably wont work with one of th= e servers.

Edward


On Tue, Nov 27, 2012 at 11:10 AM, Michael Kjellman <= ;mkjellman@bar= racuda.com> wrote:
Netflix has a great client

https://g= ithub.com/Netflix/astyanax

On 11/27/12 7:40 AM, "Peter Lin" <woolfel@gmail.com> wrote:

>I use hector-client master, which is pretty stable right now.
>
>It uses the latest thrift, so you can use hector with thrift 0.9.0.
>That's assuming you don't mind using the active development bra= nch.
>
>
>
>On Tue, Nov 27, 2012 at 10:36 AM, Carsten Schnober
><schnober@ids-mannheim.d= e> wrote:
>> Hi,
>> I'm aware that this has been a frequent question, but answers = are still
>> hard to find: what's an appropriate Java high-level client? >> I actually believe that the lack of a single maintained Java API t= hat is
>> packaged with Cassandra is quite an issue. The way the situation i= s
>> right now, new users have to pick more or less randomly one of the=
>> available options from the Cassandra Wiki and find a suitable solu= tion
>> for their individual requirements through trial implementations. T= his
>> can cause and lot of wasted time (and frustration).
>>
>> Personally, I've played with Hector before figuring out that i= t seems to
>> require an outdated Thrift version. Downgrading to Thrift 0.6 is n= ot an
>> option for me though because I use Thrift 0.9.0 in other classes o= f the
>> same project.
>> So I've had a look at Kundera and at Easy-Cassandra. Both seem= to lack a
>> real documentation beyond the examples available in their Github >> repositories, right?
>>
>> Can more experienced users recommend either one of the two or some= of
>> the other options listed at the Cassandra Wiki? I know that this >> strongly depends on individual requirements, but all I need are si= mple
>> requests for very basic queries. So I would like to emphasize the<= br> >> importance a clear documentation and a stable and well-maintained = API.
>> Any hints?
>> Thanks!
>> Carsten
>>
>> --
>> Institut f=FCr Deutsche Sprache | http://www.ids-mannheim.de
>> Projekt KorAP =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 | http://korap.ids-mannheim.de >> Tel. +49-(0)621-43740789 =A0 =A0 =A0| schnober@ids-mannheim.de
>> Korpusanalyseplattform der n=E4chsten Generation
>> Next Generation Corpus Analysis Platform


'Like' us on Facebook for exclusive content and other resources on = all Barracuda Networks solutions.

Visit h= ttp://barracudanetworks.com/facebook





--bcaec5171eb31c15f504cf7cf35b--