I have a question about lucandra: the row-ids from reversed-index is computed in cassandra , or using a client to get reversed index first and computed in client machine?

2010/8/19 Animesh Kumar <animesh.kumar@impetus.co.in>
Hi Jonathan,

Glad that you liked the effort. Kundera team is constantly watching Cassandra developments to pick features up as soon as they become available, for example, secondary indexes, schema generator support etc.

I would like to highlight few important stuffs about Kundera:

1. Kundera has been architected so as to be able to use any existing Cassandra client library, Hector, Pelops whatever, in simple adaptor design format. Kundera though supports Pelops only, however should anyone want to write a custom adaptor for any of his favorite client libraries he can easily do it.

2. Kundera - for now - uses Lucandra to store reverse-indexes into Cassandra itself. Support for Solr will be introduced very soon.

3. Kundera supports JPA defined relationships like, OneToOne, OneToMany, ManyToOne and ManyToMany between concrete entity objects with full Cascade support and Lazy/Eager loading strategies. This is achieved by storing foreign row-ids into holding entity's CF row. Kundera doesn't support entity embedding or entity inheritance yet, but they are in pipeline.

4. Kundera converts JPA queries to Lucene queries which run on Lucene indexes to fetch row-ids which are used to look-up data from Cassandra CFs. You can also directly execute Lucene queries.

This might have given you a better picture of Kundera, should you need more information you can visit: http://kundera.googlecode.com

Thanks,
Animesh
iLabs, Impetus



-----Original Message-----
From: Jonathan Ellis [mailto:jbellis@gmail.com]
Sent: Sunday, August 01, 2010 11:01 PM
To: user@cassandra.apache.org
Subject: Re: kundera: Open source JPA 1.0 compliant ORM for Cassandra

Glad to see this, and I hope you'll be able to take advantage of the
secondary index features coming in 0.7.

Supporting different lower-level "drivers" seems like wasted effort to me, fwiw.

On Sat, Jul 31, 2010 at 8:54 AM, Sanjay Sharma
<sanjay.sharma@impetus.co.in> wrote:
> Hi All,
>
> We are happy to announce and share a new ORM over Cassandra - kundera
>
> The project is Apache licensed and hosted at http://kundera.googlecode.com
>
>
>
> The project uses custom Cassandra Annotations and is fully JPA 1.0
> compliant. @ColumnFamily and @SuperColumnFamily are the main Cassandra
> specific annotations.
>
>
>
> Search/Indexing is automatically included by using "Lucandra" and drives the
> JPA-QL query support. Use of Lucandra also enables users to write Lucene
> queries along with JPA-QL queries.
>
>
>
> As per the main author of kundera - Animesh -" The idea behind Kundera is to
> make working with Cassandra drop-dead simple and fun. Kundera does not
> reinvent the wheel by making another client library; rather it leverages the
> existing libraries and builds - on top of them - a wrap-around API to help
> developers do away with unnecessary boiler plate codes, and program a
> neater-and-cleaner code that reduces code-complexity and improves quality.
> And above all, improves productivity."
>
>
>
> The current implementation uses the versatile "Pelops" library as the
> underlying client API and plans are to add support for Hector and Thrift
> clients as well.
>
>
>
> Here is a sample kundera Entity bean -
>
> @Entity
>
> @ColumnFamily(keyspace = "Keyspace1", family = "SimpleComment")
>
> public class SimpleComment {
>
>     @Id
>
>     private String id;
>
>     @Column(name = "userId")
>
>     private String userId;
>
>     @Column(name = "comment")
>
>     private String commentText;
>
>
>
>     ......
>
> }
>
> JPA queries are as simple as-
>
>         Query query = entityManager.createQuery("SELECT c from SimpleComment
> c where userId='me'");
>
>         List<SimpleComment> list = query.getResultList();
>
>
>
> There is already support for Spring based persistence integration like the
> good old Spring+Hibernate integration and is as simple as this-
>
>     <bean id="entityManagerFactory"
> class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
>
>         <property name="persistenceUnitName" value="myPersistenceUnit"/>
>
>                 </bean>
>
> More examples are available in kundera's wiki and Animesh's blogs. The
> spring integration example is here
>
>
>
> Regards,
>
> Sanjay Sharma
>
> iLabs, Impetus
>
> ________________________________
> Impetus is sponsoring 'Hadoop India User Group Meet Up'- a technology
> un-conference on July 31, 2010 at Impetus Office, Noida. The event will shed
> light on Hadoop technology and channelized efforts to develop an active
> Hadoop community.
>
> Click http://www.impetus.com/ to know more. Follow our updates 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.
>



--
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of Riptano, the source for professional Cassandra support
http://riptano.com

Impetus is sponsoring 'Hadoop India User Group Meet Up'- a technology un-conference on July 31, 2010 at Impetus Office, Noida. The event will shed light on Hadoop technology and channelized efforts to develop an active Hadoop community.

Click http://www.impetus.com/ to know more. Follow our updates 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.



--
Best Regards,
Chen Xinli