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 0404711982 for ; Mon, 9 Jun 2014 04:01:14 +0000 (UTC) Received: (qmail 48251 invoked by uid 500); 9 Jun 2014 04:01:11 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 48208 invoked by uid 500); 9 Jun 2014 04:01:11 -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 48196 invoked by uid 99); 9 Jun 2014 04:01:11 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 Jun 2014 04:01:11 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of colpclark@gmail.com designates 209.85.213.169 as permitted sender) Received: from [209.85.213.169] (HELO mail-ig0-f169.google.com) (209.85.213.169) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 Jun 2014 04:01:06 +0000 Received: by mail-ig0-f169.google.com with SMTP id a13so3391665igq.4 for ; Sun, 08 Jun 2014 21:00:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=references:mime-version:in-reply-to:content-type :content-transfer-encoding:message-id:cc:from:subject:date:to; bh=PLPZnr3+/4mfNRDojPnNe8Oe954vWi7goNkMTFU9N7I=; b=0havvgNIuJlzbHuLOHPSQxviMbFok4RACUHT8fnDXAGV7MG8PFyEyfcKgUjQaNQtDi 8neSw7rFCppzhB2UH92wkRVz+Et0VxP79tDIodILZO7TvLQJPDAIhTekDHm1HMQ96FEK IPRBwZtHS9J7SCnxZe1WA3PU+7N1aqRIDL273peKjLIzkipy/K+a8Eg08jCnweBfcDfb 5OwKtA+vyGTPuLKDgAhmQc1SX24c2BRLAAvA4bPPw79WgkgGk4sZO3sVZGstUptfk+AZ NQp1EQH/G2QRvVEnzgiiws1d0NemCbQ29w5Hx9lDwJfRxZGBCRd9jTK8Fi6eO9boLkkd R4JQ== X-Received: by 10.42.83.6 with SMTP id f6mr27041516icl.11.1402286446427; Sun, 08 Jun 2014 21:00:46 -0700 (PDT) Received: from [10.182.156.88] (98.sub-70-197-225.myvzw.com. [70.197.225.98]) by mx.google.com with ESMTPSA id g2sm87821674igc.12.2014.06.08.21.00.38 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 08 Jun 2014 21:00:44 -0700 (PDT) References: <3D39A5C4-436A-4ACC-8485-9996253C6059@gmail.com> <2324D0AC-C63D-46D0-AE84-AB5F358BF985@gmail.com> Mime-Version: 1.0 (1.0) In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Message-Id: <6C18A735-0F30-419C-B6B1-2457960DAE54@gmail.com> Cc: Jeff Genender X-Mailer: iPhone Mail (11D201) From: Colin Subject: Re: Object mapper for CQL Date: Sun, 8 Jun 2014 23:00:36 -0500 To: "user@cassandra.apache.org" X-Virus-Checked: Checked by ClamAV on apache.org Sounds like you've done some great work. But I still think it's a good idea= for people new to Cassandra establish a base line so that they have somethi= ng to compare other approaches against. It sounds like we potentially have different views in this regard, but are s= till interested in the same thing-helping people be successful using Casaand= ra. -- Colin 320-221-9531 > On Jun 8, 2014, at 10:24 PM, Johan Edstrom wrote: >=20 > On a second reply I'll provide some docs. >=20 > We looked at Astynax (Yeah I didn't like the refactor) > We looked at spring - "Are you fucking kidding me?" > We have done quite a bit of work in the ORM arena. >=20 > * I passionately hate the idea of CQL. * >=20 > So - I told myself, I need to make this work so I never ever > have to work with that. See, I liked Big Table, I loved the idea of modeli= ng without=20 > constrained and contrived relations. I was even more of a fan=20 > combining analytics and adjoining vertices. >=20 > That said, - Hecate-CQL3 does address all of the above, as well as=20 > a Pojo / DAO cache, a Table Cache, a what was changed store. >=20 > If you actually think you'll be writing enterprise code at speed using=20 > a Rowset, sorry, you need a foam helmet. >=20 > /je >=20 >=20 >=20 >> On Jun 8, 2014, at 9:05 PM, Colin wrote: >>=20 >> I wasn't responding as a Datastax employee. >>=20 >> I have used hector, Achilles and a few others as well. The .net drivers u= sed to have an edge, but that is evaporating as well. >>=20 >> I have also built my own mapping layers. >>=20 >> But all if that was when the drivers from Datastax weren't there yet. >>=20 >> Yes, I work for Datastax. I also speak at meetups, and contribute to the= community. =20 >>=20 >> Datastax doesn't charge for the drivers by the way. >>=20 >> I have seen folks use third party drivers and end up paying for it down t= he road.=20 >>=20 >> If you're going to consider using a community driver, then I would recomm= end something that wraps the Datastax drivers, like netflix does. >>=20 >> All I am saying is that sometimes, people make using Casaandra more compl= ex than it needs to be and end up introducing a lot of new tech in their ini= tial adoption-this increases the risk of the project. >>=20 >> Also, I wouldn't use anything built on thrift. Datastax has a growing dr= iver team, a growing focus on testing and certification, and if you end up w= anting support for your project and are using an unsupported driver, it can m= ake your life more difficult. >>=20 >> In response to how quickly responded, I often try to provide assistance o= ut here-I don't get paid for it, and it's not part of my job. Having close t= o 5 years of production experience with Cassandra means that I have made all= the mistakes out there and probably invented a few of my own. >>=20 >> I have watched a lot if the questions Kevin has asked-his project is ambi= tious for a first dip into Cassandra, I want to see him succeed, and have gi= ven him the same advice I give our customers. >> -- >> Colin >> 320-221-9531 >>=20 >>=20 >>> On Jun 8, 2014, at 9:43 PM, Jeff Genender wrote: >>>=20 >>> Comments in line... >>>=20 >>>> On Jun 8, 2014, at 8:05 PM, Colin wrote: >>>>=20 >>>> I would check out spring Cassandra-most of the java drivers out there f= or Cassandra offer very little over the new 2. driver from Datastax. Or jus= t use the java driver 2. as is. >>>=20 >>> Interesting=E2=80=A6 answer came within 7 minutes=E2=80=A6 from a vendor= (Datastax employee)=E2=80=A6 and terribly opinionated without data to back u= p=E2=80=A6 I=E2=80=99m just sayin=E2=80=A6 ;-) >>>=20 >>> Colin=E2=80=A6 did you even look at the driver referenced by Johan? If s= o, thats certainly is the fastest code review and driver test I have ever se= en. ;-) >>>=20 >>> Perhaps a bit more kindness may be more appropriate? Not a great way to= build contributions from the community... >>>=20 >>> >>>=20 >>>> Whatever you do, make sure the driver you use supports CQL 3 and the na= tive protocol. Thrift, like BOP, will most likely go away at some point in t= he future. >>>=20 >>> Read what Johan stated=E2=80=A6 =E2=80=9Checate-cql3=E2=80=9D <=E2=80=94= CQL 3 >>>=20 >>> I think a nice look at what was produced may be a good thing for the com= munity and maybe even Datastax may think its kinda cool? >>>=20 >>> Jeff Genender >>> Apache Member >>> http://www.apache.org >>>=20 >>>=20 >>>> -- >>>> Colin >>>> 320-221-9531 >>>>=20 >>>>=20 >>>>> On Jun 8, 2014, at 8:58 PM, Johan Edstrom wrote: >>>>>=20 >>>>> Kevin,=20 >>>>>=20 >>>>> We are about to release 2.0 of https://github.com/savoirtech/hecate >>>>> It is an ASL licensed library that started with Jeff Genender writing a= Pojo >>>>> library in Hector for a project we did for Ecuador (Essentially all of= Ecuador uses this). >>>>> I extended this with Pojo Graph stuff like Collections and Composite k= ey indexing. >>>>>=20 >>>>> James Carman then took this a bit further in Cassidy with some new con= cepts. >>>>> I then a while back decided to bite the bullet and my hatred of CQL an= d just write=20 >>>>> the same thing, it started out with a very reflection and somewhat clu= nky interface,=20 >>>>> James decided to re-write this and incorporate the learnings from Cass= idy. >>>>>=20 >>>>> - Jeff, James and I all work together. This library is already in use a= nd has been=20 >>>>> in use under 30 mil account circumstances as well as quite decent load= s. >>>>>=20 >>>>> What you see in trunk now under hecate-cql3 is what'll go out as 2.0, i= t is a new API,=20 >>>>> we support "single" pojo and Object graph, column modifiers, indexer a= nd everything >>>>> else we could think of in a library that isn't ORM but maps data to C*= . >>>>>=20 >>>>> What will be out in I think 2.0.2 is an external indexer very much lik= e Titan and=20 >>>>> possibly some more real graph (vertices) stuff. We are also looking at= an SchemaIdentifier >>>>> so that we can get back to working with dynamic columns at a decent co= nceptual speed :) >>>>>=20 >>>>> /je >>>>>=20 >>>>>> On Jun 8, 2014, at 2:46 AM, DuyHai Doan wrote:= >>>>>>=20 >>>>>> You can have a look at Achilles, it's using the Java Driver underneat= h : https://github.com/doanduyhai/Achilles >>>>>>=20 >>>>>> Le 8 juin 2014 04:24, "Kevin Burton" a =C3=A9cri= t : >>>>>> Looks like the java-driver is working on an object mapper: >>>>>>=20 >>>>>> "More modules including a simple object mapper will come shortly." >>>>>> But of course I need one now =E2=80=A6=20 >>>>>> I'm curious what others are doing here. =20 >>>>>>=20 >>>>>> I don't want to pass around Row objects in my code if I can avoid it.= . Ideally I would just run a query and get back a POJO. =20 >>>>>>=20 >>>>>> Another issue is how are these POJOs generated. Are they generated f= rom the schema? is the schema generated from the POJOs ? =46rom a side fil= e? =20 >>>>>>=20 >>>>>> And granted, there are existing ORMs out there but I don't think any s= upport CQL. >>>>>>=20 >>>>>> --=20 >>>>>>=20 >>>>>> Founder/CEO Spinn3r.com >>>>>> Location: San Francisco, CA >>>>>> Skype: burtonator >>>>>> blog: http://burtonator.wordpress.com >>>>>> =E2=80=A6 or check out my Google+ profile >>>>>>=20 >>>>>> War is peace. Freedom is slavery. Ignorance is strength. Corporations= are people. >=20