Return-Path: X-Original-To: apmail-cassandra-dev-archive@www.apache.org Delivered-To: apmail-cassandra-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id EA6909979 for ; Thu, 29 Mar 2012 18:07:42 +0000 (UTC) Received: (qmail 79097 invoked by uid 500); 29 Mar 2012 18:07:41 -0000 Delivered-To: apmail-cassandra-dev-archive@cassandra.apache.org Received: (qmail 79079 invoked by uid 500); 29 Mar 2012 18:07:41 -0000 Mailing-List: contact dev-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list dev@cassandra.apache.org Received: (qmail 79065 invoked by uid 99); 29 Mar 2012 18:07:41 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 29 Mar 2012 18:07:41 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) Received: from [63.146.121.108] (HELO mail.venarc.com) (63.146.121.108) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 29 Mar 2012 18:07:35 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.venarc.com (Postfix) with ESMTP id B5DCD6F00002 for ; Thu, 29 Mar 2012 11:07:13 -0700 (PDT) X-Virus-Scanned: amavisd-new at venarc.com Received: from mail.venarc.com ([127.0.0.1]) by localhost (mail.venarc.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id e0Q9cviSJdqT for ; Thu, 29 Mar 2012 11:07:13 -0700 (PDT) Received: from venarc-drew.venarc.pvt (97-93-43-186.static.mtpk.ca.charter.com [97.93.43.186]) by mail.venarc.com (Postfix) with ESMTPSA id 3497B6F00001 for ; Thu, 29 Mar 2012 11:07:13 -0700 (PDT) Content-Type: text/plain; charset=iso-8859-1 Mime-Version: 1.0 (Apple Message framework v1257) Subject: Re: Document storage From: Drew Kutcharian In-Reply-To: Date: Thu, 29 Mar 2012 11:07:12 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <6BC34026-E891-4689-AB1E-A579C047C3BB@venarc.com> References: To: dev@cassandra.apache.org X-Mailer: Apple Mail (2.1257) I agree with Edward here, the simpler we keep the core the better. I = think all the ser/deser and conversions should happen on the client = side. -- Drew On Mar 29, 2012, at 8:36 AM, Edward Capriolo wrote: > The issue with these super complex types is to do anything useful with > them you would either need scanners or co processors. As its stands > right now complex data like json is fairly opaque to Cassandra. > Getting cassandra to natively speak protobuffs or whatever flavor of > the week serialization framework is hip right now we make the codebase > very large. How is that field sorted? How is it indexed? This is > starting to go very far against the schema-less nosql grain. Where > does this end up users wanting to store binary XML index it and feed > cassandra XPath queries? >=20 >=20 > On Thu, Mar 29, 2012 at 11:23 AM, Ben McCann = wrote: >> Creating materialized paths may well be a possible solution. If that = were >> the solution the community were to agree upon then I would like it to = be a >> standardized and well-documented best practice. I asked how to store = a >> list of values on the user >> = list >> and >> no one suggested ["fieldName", ]: "fieldValue". It would = be a >> huge pain right now to create materialized paths like this for each = of my >> objects, so client library support would definitely be needed. And = the >> client libraries should agree. If Astyanax and lazyboy both add = support >> for materialized path and I write an object to Cassandra with = Astyanax, >> then I should be able to read it back with lazyboy. The benefit of = using >> JSON/SMILE is that it's very clear that there's exactly one way to >> serialize and deserialize the data and it's very easy. It's not = clear to >> me that this is true using materialized paths. >>=20 >>=20 >> On Thu, Mar 29, 2012 at 8:21 AM, Tyler Patterson = wrote: >>=20 >>>>=20 >>>>=20 >>>> Would there be interest in adding a JsonType? >>>=20 >>>=20 >>> What about checking that data inserted into a JsonType is valid = JSON? How >>> would you do it, and would the overhead be something we are = concerned >>> about, especially if the JSON string is large? >>>=20