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.

Reply via email to