DescriptionAdd filters for gae library.
Filters allow users to add their own wrappers around the underlying gae
implementation. They can do anything that an implementation could do, except
that their backend is another gae library interface, instead of the SDK or
memory implementations. Filters are also necessary (instead of just stacking
implementations with SetXXFactory functions), due to transactions, which change
the context object.
They will be used to implement (at least):
* caching (hitting memcache before datastore)
* transaction buffering (giving a self-consistent view of the datastore
within a transaction, buffering all writes to the end of the transaction
to make transaction sizes smaller, etc.)
* featureBreaker (for tests, breaking certain APIs with certain errors)
* counter (for tests, counting the number of times an API was hit)
It may also be used for:
* ACL enforcement (rejecting access to datastore items the user can't get,
filtering queries, etc.)
Thi CL also implements a counter filter as a demo (which will also be used for
testing other filter implementations to ensure that the filter being tested).
R=dnj@chromium.org, martiniss@chromium.org, vadimsh@chromium.org
BUG=
Committed: https://chromium.googlesource.com/infra/infra/+/ce7d584c71c3866963c8f12baa95032e092e2f3b
Patch Set 1 #Patch Set 2 : rename to rdscount #Patch Set 3 : implementations for all services #Patch Set 4 : don't need datastoreKey #Patch Set 5 : fix tests #Patch Set 6 : tq too #Patch Set 7 : add example #Patch Set 8 : golint #Patch Set 9 : fix some typobugs #Patch Set 10 : rebase #Patch Set 11 : rebase #Patch Set 12 : rebase #Patch Set 13 : update doc.go #Patch Set 14 : more doc fixes #Patch Set 15 : Remove filters/count to simplify CL #Patch Set 16 : move taskqueue simplification out #Patch Set 17 : rebase #Patch Set 18 : rebase #Patch Set 19 : add tests #Patch Set 20 : fix tabs #Patch Set 21 : remove memory diff #
Total comments: 2
Depends on Patchset: Messages
Total messages: 17 (3 generated)
|