Thanks for making this! Any plans to make it drop-in compatible with the datastore api (like cachestore) , so we can do, for example, goonstore.Put()? That would make it a lot easier to give it a try.
--
No: making it a drop-in replacement is specifically not a goal. One of the features of goon is that the API is simplified a bit compared to the datastore API. I've listed some examples:
Jeff--
You received this message because you are subscribed to the Google Groups "google-appengine-go" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengin...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
> email to google-appengine-go+unsub...@googlegroups.com.
Forgot to reply to the wider list. So forgive the double send :).
...
On my phone so I can't type up a more in depth reply. But racing puts are part and parcel of the appengine datastore.
This is what transactions are for.
The caching layer does nothing but invalidate (not mutate, but invalidate) on put. As such, it is not the job of NDB to deal with racing puts. NDB ensures the read side cache gets populated when reading from the datastore
Stale reads are bad because... Well ... If you only invalidate on put. If you are read heavy without writes then you will always kick back stale data. Memcaches whole purpose is to make reads faster. A caching layer that returns stale data is IMHO broken.
NDB deals with making reads fast while keeping them correct.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengin...@googlegroups.com.
I really don't have any familiarity with Goon other than poking through the source to check for the consistency enforcement mechanisms, and briefly looking at the usage via the doc. I had assumed incorrectly that it would be persisted with the struct in the datastore. It wasn't obvious from the brief glance I took :).
That being said, our persistence layer does a lot of stuff for us outside of just acting like a memory cache. Porting to Goon is probably not in the cards any time soon since the actual semantics of the caching layer intersects with our hook points for ensuring safe schema migrations. Which is another thing our persistence layer handles for us.
> For more options, visit https://groups.google.com/d/optout.