Return-Path: Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: (qmail 37050 invoked from network); 22 Aug 2010 06:51:35 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 22 Aug 2010 06:51:35 -0000 Received: (qmail 14073 invoked by uid 500); 22 Aug 2010 06:51:34 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 13873 invoked by uid 500); 22 Aug 2010 06:51:30 -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 13864 invoked by uid 99); 22 Aug 2010 06:51:29 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 22 Aug 2010 06:51:29 +0000 X-ASF-Spam-Status: No, hits=2.2 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: local policy) Received: from [203.199.18.82] (HELO mail1.impetus.co.in) (203.199.18.82) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 22 Aug 2010 06:51:25 +0000 Received: from mail1.impetus.co.in ([192.168.100.28]) by mail1.impetus.co.in ([192.168.100.28]) with mapi; Sun, 22 Aug 2010 12:20:46 +0530 From: Animesh Kumar To: "user@cassandra.apache.org" Date: Sun, 22 Aug 2010 12:20:02 +0530 Subject: RE: kundera: Open source JPA 1.0 compliant ORM for Cassandra Thread-Topic: kundera: Open source JPA 1.0 compliant ORM for Cassandra Thread-Index: Acs/q3BmJYwUWaMhTJaioN8QYj8jMwCGi58A Message-ID: <5ABFF8850215714CAAFF1081F7E4315DC91AD94F28@mail1.impetus.co.in> References: <4C53FD4B.5020707@javageneration.com> <8419CE074608E24FB834DB9D270C78D6E56150D24B@mail1.impetus.co.in> <5ABFF8850215714CAAFF1081F7E4315DB67A8834DE@mail1.impetus.co.in> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: multipart/alternative; boundary="_000_5ABFF8850215714CAAFF1081F7E4315DC91AD94F28mail1impetusc_" MIME-Version: 1.0 --_000_5ABFF8850215714CAAFF1081F7E4315DC91AD94F28mail1impetusc_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Chen, Kundera uses Lucandra for reverse index processing. Lucandra is an extensio= n 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 i= n Cassandra, and then 2. Lucene processes over these indexes. Read more about Lucandra here: http://anismiles.wordpress.com/2010/05/27/lu= candra-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 comput= ed in cassandra , or using a client to get reversed index first and compute= d in client machine? 2010/8/19 Animesh Kumar > Hi Jonathan, Glad that you liked the effort. Kundera team is constantly watching Cassand= ra developments to pick features up as soon as they become available, for e= xample, 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 Cassan= dra client library, Hector, Pelops whatever, in simple adaptor design forma= t. 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 Cassandr= a itself. Support for Solr will be introduced very soon. 3. Kundera supports JPA defined relationships like, OneToOne, OneToMany, Ma= nyToOne and ManyToMany between concrete entity objects with full Cascade su= pport and Lazy/Eager loading strategies. This is achieved by storing foreig= n row-ids into holding entity's CF row. Kundera doesn't support entity embe= dding or entity inheritance yet, but they are in pipeline. 4. Kundera converts JPA queries to Lucene queries which run on Lucene index= es 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 > 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.co= m > > > > 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 hel= p > 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 =3D "Keyspace1", family =3D "SimpleComment") > > public class SimpleComment { > > @Id > > private String id; > > @Column(name =3D "userId") > > private String userId; > > @Column(name =3D "comment") > > private String commentText; > > > > ...... > > } > > JPA queries are as simple as- > > Query query =3D entityManager.createQuery("SELECT c from SimpleCo= mment > c where userId=3D'me'"); > > List list =3D query.getResultList(); > > > > There is already support for Spring based persistence integration like th= e > good old Spring+Hibernate integration and is as simple as this- > > class=3D"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBe= an"> > > > > > > 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 s= hed > 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-co= nference on July 31, 2010 at Impetus Office, Noida. The event will shed lig= ht 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.twitt= er.com/impetuscalling . NOTE: This message may contain information that is confidential, proprietar= y, privileged or otherwise protected by law. The message is intended solely= for the named addressee. If received in error, please destroy and notify t= he sender. Any use of this email is prohibited when received in error. Impe= tus does not represent, warrant and/or guarantee, that the integrity of thi= s communication has been maintained nor that the communication is free of e= rrors, virus, interception or interference. -- Best Regards, Chen Xinli ________________________________ Impetus is sponsoring 'Hadoop India User Group Meet Up'- a technology un-co= nference on July 31, 2010 at Impetus Office, Noida. The event will shed lig= ht 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.twitt= er.com/impetuscalling . NOTE: This message may contain information that is confidential, proprietar= y, privileged or otherwise protected by law. The message is intended solely= for the named addressee. If received in error, please destroy and notify t= he sender. Any use of this email is prohibited when received in error. Impe= tus does not represent, warrant and/or guarantee, that the integrity of thi= s communication has been maintained nor that the communication is free of e= rrors, virus, interception or interference. --_000_5ABFF8850215714CAAFF1081F7E4315DC91AD94F28mail1impetusc_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hi Chen,

 

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

 

When you submit a document,

1. = ;      Lucene processes it and prepares the reverse-indexes, and th= en

2. = ;      Lucandra take over from here and stores these indexes to Cas= sandra.

 

When you query,

1. = ;      Lucandra’s IndexReader class is used to look for rever= se 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-st= ory/   

 

-Animesh

iLabs, Impetus

 

 

From: Chen Xin= li [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 Cassandr= a

 

I have a question abo= ut 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?<= o:p>

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

Hi Jonathan,

Glad that you liked the effort. Kundera team is constantly watching Cassand= ra developments to pick features up as soon as they become available, for e= xample, 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 Cassan= dra client library, Hector, Pelops whatever, in simple adaptor design forma= t. 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 Cassandr= a itself. Support for Solr will be introduced very soon.

3. Kundera supports JPA defined relationships like, OneToOne, OneToMany, Ma= nyToOne and ManyToMany between concrete entity objects with full Cascade su= pport and Lazy/Eager loading strategies. This is achieved by storing foreig= n 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 index= es 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@g= mail.com]
Sent: Sunday, August 01, 2010 11:01 PM
To: user@cassandra.apache.org<= /a>
Subject: Re: kundera: Open source JPA 1.0 compliant ORM for Cassandra<= /o:p>

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 effo= rt 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<= br> >
> 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 Luce= ne
> queries along with JPA-QL queries.
>
>
>
> As per the main author of kundera - Animesh -" The idea behind Ku= ndera is to
> make working with Cassandra drop-dead simple and fun. Kundera does not=
> reinvent the wheel by making another client library; rather it leverag= es 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<= br> > neater-and-cleaner code that reduces code-complexity and improves qual= ity.
> And above all, improves productivity."
>
>
>
> The current implementation uses the versatile "Pelops" libra= ry as the
> underlying client API and plans are to add support for Hector and Thri= ft
> clients as well.
>
>
>
> Here is a sample kundera Entity bean -
>
> @Entity
>
> @ColumnFamily(keyspace =3D "Keyspace1", family =3D "Sim= pleComment")
>
> public class SimpleComment {
>
>     @Id
>
>     private String id;
>
>     @Column(name =3D "userId")
>
>     private String userId;
>
>     @Column(name =3D "comment")
>
>     private String commentText;
>
>
>
>     ......
>
> }
>
> JPA queries are as simple as-
>
>         Query query =3D entityManager.createQuery(= "SELECT c from SimpleComment
> c where userId=3D'me'");
>
>         List<SimpleComment> list =3D query.g= etResultList();
>
>
>
> There is already support for Spring based persistence integration like= the
> good old Spring+Hibernate integration and is as simple as this- >
>     <bean id=3D"entityManagerFactory"
> class=3D"org.springframework.orm.jpa.LocalContainerEntityManagerF= actoryBean">
>
>         <property name=3D"persistenceUnitN= ame" value=3D"myPersistenceUnit"/>
>
>                 </bean><= br> >
> 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<= br> > un-conference on July 31, 2010 at Impetus Office, Noida. The event wil= l shed
> light on Hadoop technology and channelized efforts to develop an activ= e
> Hadoop community.
>
> Click http://www= .impetus.com/ to know more. Follow our updates on
> ww= w.twitter.com/impetuscalling .
>
>
> NOTE: This message may contain information that is confidential,
> proprietary, privileged or otherwise protected by law. The message is<= br> > intended solely for the named addressee. If received in error, please<= br> > destroy and notify the sender. Any use of this email is prohibited whe= n
> received in error. Impetus does not represent, warrant and/or guarante= e,
> that the integrity of this communication has been maintained nor that = the
> communication is free of errors, virus, interception or interference.<= br> >



--
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-co= nference on July 31, 2010 at Impetus Office, Noida. The event will shed lig= ht on Hadoop technology and channelized efforts to develop an active Hadoop= community.

Click http://www.impe= tus.com/ to know more. Follow our updates on www.twi= tter.com/impetuscalling .


NOTE: This message may contain information that is confidential, proprietar= y, privileged or otherwise protected by law. The message is intended solely= for the named addressee. If received in error, please destroy and notify t= he 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 maintai= ned nor that the communication is free of errors, virus, interception or in= terference.




--
Best Regards,
Chen Xinli



Impetus is sponsoring 'Had= oop 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 an= d channelized efforts to develop an active Hadoop community.

Click http://www.impetus.com/ to know more. Follow our updates on www.twitt= er.com/impetuscalling .


NOTE: This message may contain information that is confidential, proprietar= y, privileged or otherwise protected by law. The message is intended solely= for the named addressee. If received in error, please destroy and notify t= he 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 maintai= ned nor that the communication is free of errors, virus, interception or in= terference.
--_000_5ABFF8850215714CAAFF1081F7E4315DC91AD94F28mail1impetusc_--