I didn't mean to suggest that.

Yes, a fanout is potentially bad, but the problem with the normalized
approach is that you equally optimize for reads and writes. In the address
book example, I update my address book about 1 time every 3 years. I read my
address book 20 times a day. I think it's fair to pay the cost of a fan out
on change because a change is so infrequent.

Normalization has its benefits: it's harder for things to get out of sync,
which is ALWAYS a risk with denormalization. A denormalized solution tends
to favor eventually consistency approaches over strongly consistent
approaches.

My point is that every app can be built in a denormalized approach, and in
the majority of cases, you actually *want* to build your app in this
approach, not the other way around.

--
Ikai Lan
Developer Programs Engineer, Google App Engine
plus.ikailan.com | twitter.com/ikai



On Fri, Aug 5, 2011 at 12:00 PM, JT <jem...@gmail.com> wrote:

> William,
>
>
> You might want to go over this 
> http://static.googleusercontent.com/external_content/untrusted_dlcp/labs.google.com/en/us/papers/mapreduce-osdi04.pdf,
>  and come back again with any questions. Ikai and possibly others were trying 
> to convey to you that bigtable approach is more scalable than relational 
> approach.
>
>
> If it works for Google, why woudn't it work for you? Do you have a larger 
> data than Google?
>
>
> On Fri, Aug 5, 2011 at 2:45 PM, William Levesque 
> <billleves...@gmail.com>wrote:
>
>> I was trying to explain that with...
>>
>>
>> If someones address is denormalized into 1000 contact records, then when
>> the user updates their address the system has to go out to all of the
>> contact records and update them as well.  And this gets multiplied by every
>> complex relationship that exists in the data.  And redundant fields can
>> increase data size exponentially.
>>
>> But is Google's position that all data should be denormalized?
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine for Java" group.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msg/google-appengine-java/-/W4INlksPkb0J.
>>
>> To post to this group, send email to
>> google-appengine-java@googlegroups.com.
>> To unsubscribe from this group, send email to
>> google-appengine-java+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine-java?hl=en.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine for Java" group.
> To post to this group, send email to
> google-appengine-java@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine-java+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to