[appengine-java] Joins Concept in GQL Using Java

2011-11-13 Thread srikanth chakrala
Does any body know how to implement joins in GQL -- 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/-/qDWjp365DSUJ. To post to this group,

Re: [appengine-java] Joins!

2011-08-08 Thread William Levesque
Thanks all. This is a lot of great information. I've learned a ton. -- 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/-/49KEIocr7IcJ. To

Re: [appengine-java] Joins!

2011-08-05 Thread Ikai Lan (Google)
Why isn't denormalization a real option? A lot of companies denormalize with great success, including Google. The thing about joins is this: they have to happen at some point in memory. Datastore or local instance. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com |

Re: [appengine-java] Joins!

2011-08-05 Thread William Levesque
Because if you have denormalized data, then record updates can become enormous. 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

Re: [appengine-java] Joins!

2011-08-05 Thread JT
William, Could you explain how the update can be enormous with demoralized table? My understanding is a flat table is easier to update that normalized one. Thanks. On Aug 5, 2011 1:36 PM, Ikai Lan (Google) ika...@google.com wrote: Why isn't denormalization a real option? A lot of companies

Re: [appengine-java] Joins!

2011-08-05 Thread William Levesque
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

Re: [appengine-java] Joins!

2011-08-05 Thread JT
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

Re: [appengine-java] Joins!

2011-08-05 Thread Ikai Lan (Google)
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

Re: [appengine-java] Joins!

2011-08-05 Thread Ikai Lan (Google)
As far as managing complex data relationships, I don't think such a set of practices exists. What I can and should do (once I get some time) is publish some case studies about how we have persisted data in some cases. True, denormalizing data often requires you to think a little bit, but that's

Re: [appengine-java] Joins!

2011-08-05 Thread jem...@gmail.com
Date: Fri, Aug 5, 2011 3:13 pm Subject: [appengine-java] Joins! To: google-appengine-java@googlegroups.com -- 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

Re: [appengine-java] Joins!

2011-08-05 Thread Jeff Schnitzer
On Fri, Aug 5, 2011 at 11:45 AM, William Levesque billleves...@gmail.com wrote: But is Google's position that all data should be denormalized? I don't think anyone would say that. I wrote up my thoughts around this subject here:

[appengine-java] Joins and Persistence - How?

2009-12-22 Thread Søren Kyndi-Wiuff
Greetings I am trying to figure out a best-practice for avoiding the use of joins. So far, it isn't going too well so here I am asking if anyone is up for sharing their experience or linking to the reference I failed to find. :) An example of my requirement is this: We have two classes: Person