Hi Daniel,
Just saw your email regarding kundera download.

Kundera snapshot jar is available at:

http://kundera.googlecode.com/svn/maven2/maven-missing-resources/com/impetus/kundera/1.1.1-SNAPSHOT/

In addition,
If you want to download source code then it is at:

https://github.com/impetus-opensource/Kundera

You could also refer to Kundera-examples for reference at:

https://github.com/impetus-opensource/Kundera-Examples

I hope it helps.


From: Daniel Colchete [mailto:d...@cloud3.tc]
Sent: Monday, June 20, 2011 8:23 PM
To: user@cassandra.apache.org
Subject: Re: Cassandra Clients for Java

Thank you all for your answers! It hard to tell the good projects from the not 
so good projects and it seems that the choice is really between Hector and 
Pelops. On average, most of the people are using Hector or Pelops and most of 
the names starts with Da (sorry, couldn't help :)).

Dan Washusen asked to comment more regarding Hector's e Pelops' APIs. Lets 
start with what cassandra gives us: get, insert, remove for simple operations; 
get_slice to read an entire row (or something like that); multiget_slice and 
batch_mutate for reading or writing multiple data with a single call. So we 
could start from this and we would be speaking Cassandra-nease. One 
CassandraClient class exporting all those methods, with the necessary model 
classes on the package.

All of those methods have small details we don't want to have to work out every 
time, like timestamp (now is a perfect default value), consistency level (the 
client could have default values) and string encoding (UTF8 could be a default, 
but the CassandraClient and the model classes should handle it themselves). So, 
at this point we would have an API similar to Thrift's but a little less boring 
to use.

With this API we could do failover, load balancing, auto node discovery, and 
still be speaking Cassandra-nease.

But them writing methods to read from Cassandra to create models and to persist 
models would be a pretty time wasting task. So them we would move to an JPA 
implementation doing this automagically, like Hector did (thanks for showing 
this up). The JPA implementation (I have no idea how to write something like 
this, although I would like to learn), would use our simplified thrift-like 
interface.

In the end: no third semantics, still have direct access to Cassandra to deal 
with special cases and for most of the cases you have JPA, still have failover 
and load balancing. How many dependencies do we need besides what Cassandra 
already requires: zero. Simple, powerful. I agree that I'm not showing a 
proof-of-concept or anything but it is a good starting vision for a client. Of 
course there are corner cases and details to work out but, what do you think?

With Hector, from their Getting Started page, first you initialize a Cluster, 
them you create a Keyspace from that cluster, them, wait, you have to create a 
template for your column family. With that template you can create an updater 
to do an insert (in Cassandra-nease), or you can query columns to do an 
get_slice (in Cassandra-nease), or delete column to do a remove (in 
Cassandra-nease). You can clearly see a third semantics here.

With Pelops their documentation on their main website (at GitHub) seems very 
lacking and I couldn't understand if you have to create a mutator to every 
write or not and why they assigned strings and not objects to organize 
connections. They have this pool thing related to the fact that they use 
strings to organize connections.

In the end I think Hector should be a better choice because of their JPA 
implementation and because Pelops doesn't seem to have documentation. Thanks 
again for showing the JPA thing up, I really couldn't find anything linking to 
it. Not even their User guide.

Thank you very much for all for the answers.

Best,
Dani

On Sat, Jun 18, 2011 at 4:04 PM, Rajesh Koilpillai 
<rajesh.koilpil...@gmail.com<mailto:rajesh.koilpil...@gmail.com>> wrote:
+1 to Hector (especially with the changes made in the latest version of their 
API)

On Sun, Jun 19, 2011 at 12:01 AM, Steve Willcox 
<swill...@rallydev.com<mailto:swill...@rallydev.com>> wrote:
I'm using Hector.

The main contributor Nate McCall is very active and responsive to any issues. 
The Hector community is very active.

 I've been using Java for a long time and I disagree that the client is more 
complex than the underlying Thrift client. The latest version of Hector has 
made large gains in simplifying the API. It has connection caching, load 
balancing and failover build into its client.

I found it easy to use and stable. My code has been in production since April 
2011 and we've not had one Hector issue yet.

Hope that helps

Steve W.
On Fri, Jun 17, 2011 at 4:02 PM, Daniel Colchete 
<d...@cloud3.tc<mailto:d...@cloud3.tc>> wrote:
Good day everyone!

I'm getting started with a new project and I'm thinking about using Cassandra 
because of its distributed quality and because of its performance.

I'm using Java on the back-end. There are many many things being said about the 
Java high level clients for Cassandra on the web. To be frank, I see problems 
with all of the java clients. For example, Hector and Scale7-pelops have new 
semantics on them that are neither Java's or Cassandra's, and I don't see much 
gain from it apart from the fact that it is more complex. Also, I was hoping to 
go with something that was annotation based so that it wouldn't be necessary to 
write boilerplate code (again, no gain).

Demoiselle Cassandra seems to be one option but I couldn't find a download for 
it. I'm new to Java in the back-end and I find that maven is too much to learn 
just because of a client library. Also it seems to be hard to integrate with 
the other things I use on my project (GWT, GWT-platform, Google Eclipse Plugin).

Kundera looks great but besides not having a download link (Google site link to 
Github, that links to Google site, but no download) its information is 
partitioned on many blog posts, some of them saying things I couldn't find on 
its website. One says it uses Lucandra for indexes but that is the only place 
talking about it, no documentation about using it. It doesn't seem to support 
Cassandra 0.8 also. Does it?

I would like to hear from the users here what worked for you guys. Some real 
world project in production that was good to write in Java, where the client 
was stable and is maintained. What are the success stories of using Cassandra 
with Java. What would you recommend?

Thank you very much!

Best,
--
Dani
Cloud3 Tech - http://cloud3.tc/
Twitter: @DaniCloud3 @Cloud3Tech



--
Thanks,
- Rajesh Koilpillai



--
Dani
Cloud3 Tech - http://cloud3.tc/
Twitter: @DaniCloud3 @Cloud3Tech


________________________________

Register for Impetus Webinar on 'Leveraging the Cloud for your Product Testing 
Needs' on June 22 (10:00am PT). Meet Impetus as a sponsor for Hadoop Summit 
2011 in Santa Clara, CA on June 29.

Click http://www.impetus.com to know more. Follow us on 
www.twitter.com/impetuscalling


NOTE: This message may contain information that is confidential, proprietary, 
privileged or otherwise protected by law. The message is intended solely for 
the named addressee. If received in error, please destroy and notify the 
sender. Any use of this email is prohibited when received in error. Impetus 
does not represent, warrant and/or guarantee, that the integrity of this 
communication has been maintained nor that the communication is free of errors, 
virus, interception or interference.

Reply via email to