cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Animesh Kumar <animesh.ku...@impetus.co.in>
Subject RE: kundera: Open source JPA 1.0 compliant ORM for Cassandra
Date Sun, 22 Aug 2010 06:50:02 GMT
Hi Chen,

Kundera uses Lucandra for reverse index processing. Lucandra is an extension of Lucene with
custom IndexWriter and InderReader implementation.

When you submit a document,

1.       Lucene processes it and prepares the reverse-indexes, and then

2.       Lucandra take over from here and stores these indexes to Cassandra.

When you query,

1.       Lucandra's IndexReader class is used to look for reverse indexes in Cassandra, and
then

2.       Lucene processes over these indexes.

Read more about Lucandra here: http://anismiles.wordpress.com/2010/05/27/lucandra-an-inside-story/

-Animesh
iLabs, Impetus


From: Chen Xinli [mailto:chen.daqi@gmail.com]
Sent: Thursday, August 19, 2010 8:02 PM
To: user@cassandra.apache.org
Subject: Re: kundera: Open source JPA 1.0 compliant ORM for Cassandra

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<mailto: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<mailto:jbellis@gmail.com>]
Sent: Sunday, August 01, 2010 11:01 PM
To: user@cassandra.apache.org<mailto: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<mailto: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<http://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<http://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

________________________________
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.

Mime
View raw message