Oh and check out the last pattern "Scalable equals only index" which can allow 
you to still have normalized data though the pattern does denormalization just 
enough that you can

 1.  Update just two pieces of info (the users email for instance and the Xref 
table email as well).
 2.  Allow everyone else to have foreign references into that piece. (everyone 
references the guid not the email….while the xref table has an email to guid 
for your use…this can be quite a common pattern actually when you may be having 
issues denormalizing)

Dean

From: Adam Venturella <aventure...@gmail.com<mailto:aventure...@gmail.com>>
Reply-To: "user@cassandra.apache.org<mailto:user@cassandra.apache.org>" 
<user@cassandra.apache.org<mailto:user@cassandra.apache.org>>
Date: Sunday, January 27, 2013 3:44 PM
To: "user@cassandra.apache.org<mailto:user@cassandra.apache.org>" 
<user@cassandra.apache.org<mailto:user@cassandra.apache.org>>
Subject: Re: Denormalization

In my experience, if you foresee needing to do a lot of updates where a 
"master" record would need to propagate its changes to other records, then in 
general a non-sql based data store may be the wrong fit for your data.

If you have a lot of data that doesn't really change or is not linked in some 
way to other rows (in Cassandra's case). Then a non-sql based data store could 
be a great fit.

Yes, you can do some fancy stuff to force things like Cassandra to behave like 
an RDBMS, but it's at the cost of application complexity; more code, more bugs.

I often end up mixing the data stores sql/non-sql to play to their respective 
strengths.

If I start seeing a lot of "related" data, relational databases are really good 
at solving that problem.


On Sunday, January 27, 2013, Fredrik Stigbäck wrote:
I don't have a current use-case. I was just curious how applications
handle and how to think when modelling, since I guess denormalization
might increase the complexity of the application.

Fredrik

2013/1/27 Hiller, Dean <dean.hil...@nrel.gov<javascript:;>>:
> There is a really a mix of denormalization and normalization.  It really
> depends on specific use-cases.  To get better help on the email list, a
> more specific use case may be appropriate.
>
> Dean
>
> On 1/27/13 2:03 PM, "Fredrik Stigbäck" 
> <fredrik.l.stigb...@sitevision.se<javascript:;>>
> wrote:
>
>>Hi.
>>Since denormalized data is first-class citizen in Cassandra, how to
>>handle updating denormalized data.
>>E.g. If we have  a USER cf with name, email etc. and denormalize user
>>data into many other CF:s and then
>>update the information about a user (name, email...). What is the best
>>way to handle updating those user data properties
>>which might be spread out over many cf:s and many rows?
>>
>>Regards
>>/Fredrik
>



--
Fredrik Larsson Stigbäck
SiteVision AB Vasagatan 10, 107 10 Örebro
019-17 30 30

Reply via email to