On Sep 2, 2011, at 12:59 PM, Barry Hunter wrote: > On Fri, Sep 2, 2011 at 5:46 PM, Joshua Smith wrote: >> Switching to HR is going to be a huge PITA, because my use case is exactly >> the one that "eventual consistency" screws up (user posts a meeting, then >> expects to see it in the list of meetings; silly users). > > Can't Entity groups be used to ensure consistency? > http://code.google.com/appengine/docs/java/datastore/hr/overview.html > > Put all a users meeting in a single group (based of the User Entity). > Then all the meetings will be shown
Not possible. Meetings are associated with boards, so they could be parented to the board, but they'd still not necessarily show up on the views that span boards (upcoming meetings for the town, on the home page, for example). And boards can span towns (regional agencies), so parenting everything to the town doesn't work either. I could just parent everything to a dummy root, but that would throw transaction collision errors if two users are doing updates on the system at the same time. Also, changing to a new ancestor scheme will make the migration of the data just that much more complex. I'm already going to have to deal with the fact that google has search results that include keys, and therefore I'm going to have to fixup every key in every handler to make sure it's got the right app-id in it. > > Alternativly > A trick I used a long time ago, to deal with replication lag between > mysql servers. When someone added a new item, store it in the session > (as well as writing to master). then when run the query against the > slave (which might be stale) can just tack the saved item on the end. > Within appengine would use memcache. Not sure if its an appropriate > fix for this issue on appengine, but it worked just fine for me then. > (and is very little code) > Yeah, that's what the GAE docs recommend, and is exactly the "huge PITA" I was referring to. (It's a huge PITA because I'm going to have to go look at every query and figure out what weird things the user might see, and how to fix it.) Or another option that I'm seriously considering is to simply warn the user whenever they update or post a meeting that this change may not appear in lists for a while. As was pointed out on another thread: GAE is encouraging us to ruin the user experience in many subtle ways these days… It's like John Sculley is back there pulling the strings or something... -Joshua -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.