Return-Path: Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: (qmail 91100 invoked from network); 22 May 2010 01:08:21 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 22 May 2010 01:08:21 -0000 Received: (qmail 68235 invoked by uid 500); 22 May 2010 01:08:20 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 68210 invoked by uid 500); 22 May 2010 01:08:20 -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 68202 invoked by uid 99); 22 May 2010 01:08:20 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 22 May 2010 01:08:20 +0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of jbellis@gmail.com designates 74.125.82.44 as permitted sender) Received: from [74.125.82.44] (HELO mail-ww0-f44.google.com) (74.125.82.44) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 22 May 2010 01:08:14 +0000 Received: by wwb24 with SMTP id 24so1141669wwb.31 for ; Fri, 21 May 2010 18:07:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:received:in-reply-to :references:from:date:message-id:subject:to:content-type :content-transfer-encoding; bh=IrsfT1DBKc9PRDoXKcJrRLsob9haj8/kyGwYiUUpPjw=; b=CELjf1FGPOCQNpd+zvhEGTkHzTSQZnxgQkR0amZOxae0ZvfrJEHOBtOy9oVPSz8So2 TD6xMSEQm1uz5hpNyfTg+TTrAtlWVWbk/rHZBUMMQ84eMu0R3M6u0EzB5AvEvstwqcFU YXxDEyOs0QMI3a0tQv2blFqA6NQ9eL2da/QrU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type:content-transfer-encoding; b=T8nCZ2aJNwObjAClQ7g7SlVjevtvskOjt2lpt7FXcIlnBaI0gTygwRbz+JN/G8+HMY KNQNwaxaZE1CkT1LCvu+l0Lplq2u33nNR2TMlxOdXJqKNkXPbQ28GxaH6UO5DstAaePH NbUE7/qoF9XBvim1gyiz6+K7olwSxip2keAG8= Received: by 10.216.93.21 with SMTP id k21mr1313735wef.68.1274490474131; Fri, 21 May 2010 18:07:54 -0700 (PDT) MIME-Version: 1.0 Received: by 10.216.17.197 with HTTP; Fri, 21 May 2010 18:07:34 -0700 (PDT) In-Reply-To: <9559D72B-207A-4D54-912F-7040D35EFB18@lsd.di.uminho.pt> References: <9559D72B-207A-4D54-912F-7040D35EFB18@lsd.di.uminho.pt> From: Jonathan Ellis Date: Fri, 21 May 2010 18:07:34 -0700 Message-ID: Subject: Re: An ORM like plugin for Cassandra under Datanucleus To: user@cassandra.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org Thanks! You should probably add it to http://wiki.apache.org/cassandra/ClientOption= s. On Fri, May 21, 2010 at 12:22 PM, Pedro Gomes wrote: > Hi all > In the following weeks I have developed a plugin to the java persistence > platform=A0Datanucleus,=A0similar to the one presented by Google for App = Engine > and a Hbase already present in the platform . > Datanucleus:=A0http://www.datanucleus.org/project/download.html > For now it allows the persistence of simples fields and one-one, one-many= , > and many-many relations, supporting collections and maps, arrays are next > through the Java Data Objects (JDO) API. > The platform allows a query language JDOQL, but I didn't add the support = for > it. > You can access the project under : > http://github.com/PedroGomes/datanucleus-cassandra > Any feedback or doubts are welcome. > I still have, though, some doubts on the implementation. To store many-ma= ny, > and one to many relations in Cassandra, i.e., one collection/map of point= ers > to other objects=A0I see two options: > -The column, in the Column family class, correspondent to the relation > contains a collection or map that codes the relation, i.e. it stores the = ids > to the objects,. This can be dangerous if the collection/map grows large. > -You have a column family that codes relations, one simple Column family = per > relation, or a Super Column family that codes all relations . This approa= ch > however, =A0makes each fetch from the collection takes 3 read steps, but = each > object id is stored=A0separately. > Other option that I'm thinking is a hybrid solution where the user choose= s > the pretended option. > If someone can give some advice on this, I would be thankful. > Grateful > Pedro Gomes > > > > > > --=20 Jonathan Ellis Project Chair, Apache Cassandra co-founder of Riptano, the source for professional Cassandra support http://riptano.com