Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(213)

Issue 1309803004: Add transaction buffer filter. (Closed)

Created:
5 years, 4 months ago by iannucci
Modified:
5 years, 2 months ago
CC:
chromium-reviews, infra-reviews+luci-gae_chromium.org
Base URL:
https://github.com/luci/gae.git@add_query_support
Target Ref:
refs/heads/master
Project:
luci-gae
Visibility:
Public.

Description

Add transaction buffer filter. This will be used for running multiple non-cooperative idempotent tasks inside of tumble, which require seeing the previous tasks' effects on the entity group. However, the effect of having transactions transparently buffer datastore interactions until the final transaction commit is a generally useful alteration of the current behavior. R=dnj@chromium.org, estaab@chromium.org, tandrii@chromium.org, vadimsh@chromium.org BUG= Committed: https://github.com/luci/gae/commit/ce4a45029c9c317224c7eb2182b5eddd91f1d5dc

Patch Set 1 #

Patch Set 2 : waybig refactor and rebase... includes some tests! get/put recursive transaction flow works #

Patch Set 3 : queries working, some misc bugs in impl/service #

Patch Set 4 : Merged queries work, key-ineq-ancestor queries actually work now, more error checking in FinalizeQu… #

Patch Set 5 : Fix builtin+ancestor+multi-eq+multiIterator bug, add more txnBuf test #

Total comments: 10

Patch Set 6 : faster Consistent(true) on impl/memory, more tests, better dedup #

Patch Set 7 : one more test #

Total comments: 20

Patch Set 8 : Allow txnBuf to work when appid isn't dev~app (e.g. in prod) #

Patch Set 9 : fix comments #

Total comments: 4

Patch Set 10 : make data flow clearer, implement Count #

Total comments: 13

Patch Set 11 : add comments #

Patch Set 12 : rebase #

Total comments: 21

Patch Set 13 : address comments #

Patch Set 14 : Make tests faster, no lock for queries #

Total comments: 1

Patch Set 15 : add test for fun #

Patch Set 16 : add err for too many roots #

Total comments: 37

Patch Set 17 : fix boogs and comments #

Patch Set 18 : move errcheck code #

Patch Set 19 : change pcg timeout and codereview server to crcr.as.com #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1934 lines, -3 lines) Patch
M codereview.settings View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +1 line, -1 line 0 comments Download
A filter/txnBuf/context.go View 1 2 3 4 5 6 7 8 9 1 chunk +46 lines, -0 lines 0 comments Download
A filter/txnBuf/doc.go View 1 2 1 chunk +66 lines, -0 lines 0 comments Download
A filter/txnBuf/ds.go View 1 2 3 4 5 6 7 8 9 10 1 chunk +29 lines, -0 lines 0 comments Download
A filter/txnBuf/ds_txn.go View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +204 lines, -0 lines 0 comments Download
A filter/txnBuf/query_merger.go View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +298 lines, -0 lines 0 comments Download
A filter/txnBuf/state.go View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +409 lines, -0 lines 0 comments Download
A filter/txnBuf/txnbuf_test.go View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +878 lines, -0 lines 0 comments Download
M impl/memory/datastore_data.go View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +2 lines, -1 line 0 comments Download
M pre-commit-go.yml View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 29 (5 generated)
iannucci
5 years, 4 months ago (2015-08-25 03:45:50 UTC) #1
iannucci
On 2015/08/25 03:45:50, iannucci wrote: Tests will come soonly.
5 years, 4 months ago (2015-08-25 03:46:08 UTC) #2
iannucci
OK, have added some tests and this actually works now. I don't expect to change ...
5 years, 2 months ago (2015-09-25 18:17:35 UTC) #3
Vadim Sh.
haven't looked at query merging yet this all looks vey scary... https://codereview.chromium.org/1309803004/diff/80001/filter/txnBuf/context.go File filter/txnBuf/context.go (right): ...
5 years, 2 months ago (2015-09-28 18:52:56 UTC) #4
iannucci
PTAnL I'm going to go through and add authors notes as well. https://codereview.chromium.org/1309803004/diff/80001/filter/txnBuf/context.go File filter/txnBuf/context.go ...
5 years, 2 months ago (2015-09-29 03:21:38 UTC) #5
Vadim Sh.
https://codereview.chromium.org/1309803004/diff/120001/filter/txnBuf/ds_txn.go File filter/txnBuf/ds_txn.go (right): https://codereview.chromium.org/1309803004/diff/120001/filter/txnBuf/ds_txn.go#newcode118 filter/txnBuf/ds_txn.go:118: err := d.state.deleteMulti(keys) On 2015/09/29 03:21:38, iannucci wrote: > ...
5 years, 2 months ago (2015-09-29 03:27:26 UTC) #6
iannucci
https://codereview.chromium.org/1309803004/diff/160001/filter/txnBuf/doc.go File filter/txnBuf/doc.go (right): https://codereview.chromium.org/1309803004/diff/160001/filter/txnBuf/doc.go#newcode65 filter/txnBuf/doc.go:65: // mentioning. This doc is worth reading if you ...
5 years, 2 months ago (2015-09-29 03:32:23 UTC) #7
iannucci
added a bunch of comments (in code and in review). ptal https://codereview.chromium.org/1309803004/diff/180001/filter/txnBuf/context.go File filter/txnBuf/context.go (right): ...
5 years, 2 months ago (2015-09-29 04:43:28 UTC) #8
iannucci
OK, refactored all the unrelated stuff out into separate CLs.
5 years, 2 months ago (2015-09-29 20:08:43 UTC) #9
Vadim Sh.
can you add simulated retries to some transactions in tests to verify it work under ...
5 years, 2 months ago (2015-09-30 01:11:29 UTC) #10
iannucci
https://chromiumcodereview.appspot.com/1309803004/diff/220001/filter/txnBuf/ds_txn.go File filter/txnBuf/ds_txn.go (right): https://chromiumcodereview.appspot.com/1309803004/diff/220001/filter/txnBuf/ds_txn.go#newcode58 filter/txnBuf/ds_txn.go:58: data[i].key = keys[j] On 2015/09/30 at 01:11:28, Vadim Sh. ...
5 years, 2 months ago (2015-09-30 02:00:10 UTC) #11
Vadim Sh.
lgtm, but still waiting for the test with retries also I didn't really understood all ...
5 years, 2 months ago (2015-09-30 02:09:00 UTC) #12
iannucci
Ok, PTAL. I made all tests retry once except the huge ones. I also split ...
5 years, 2 months ago (2015-09-30 03:00:32 UTC) #13
iannucci
On 2015/09/30 at 03:00:32, iannucci wrote: > Ok, PTAL. I made all tests retry once ...
5 years, 2 months ago (2015-09-30 03:01:48 UTC) #14
iannucci
https://chromiumcodereview.appspot.com/1309803004/diff/260001/impl/memory/datastore_data.go File impl/memory/datastore_data.go (right): https://chromiumcodereview.appspot.com/1309803004/diff/260001/impl/memory/datastore_data.go#newcode130 impl/memory/datastore_data.go:130: return snap, snap This was really dumb on my ...
5 years, 2 months ago (2015-09-30 03:03:31 UTC) #15
iannucci
dnj@chromium.org, estaab@chromium.org, tandrii@chromium.org, anyone want to additionally review this? :)
5 years, 2 months ago (2015-09-30 03:27:03 UTC) #16
dnj
Sorry for the delay, few comments, mostly nits. https://chromiumcodereview.appspot.com/1309803004/diff/300001/filter/txnBuf/context.go File filter/txnBuf/context.go (right): https://chromiumcodereview.appspot.com/1309803004/diff/300001/filter/txnBuf/context.go#newcode23 filter/txnBuf/context.go:23: // ...
5 years, 2 months ago (2015-09-30 16:35:26 UTC) #17
iannucci
TY, PTAL :) https://chromiumcodereview.appspot.com/1309803004/diff/300001/filter/txnBuf/context.go File filter/txnBuf/context.go (right): https://chromiumcodereview.appspot.com/1309803004/diff/300001/filter/txnBuf/context.go#newcode23 filter/txnBuf/context.go:23: // transaction to, transitively. On 2015/09/30 ...
5 years, 2 months ago (2015-09-30 17:10:28 UTC) #18
iannucci
Oh, and I got rid of another mutex! woo!
5 years, 2 months ago (2015-09-30 17:10:41 UTC) #19
dnj
Nice, clean up some of the crazy parts. lgtm
5 years, 2 months ago (2015-09-30 17:27:30 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1309803004/300002 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1309803004/300002
5 years, 2 months ago (2015-09-30 17:39:37 UTC) #23
commit-bot: I haz the power
Try jobs failed on following builders: Luci-GAE Presubmit on master.tryserver.infra (JOB_FAILED, https://build.chromium.org/p/tryserver.infra/builders/Luci-GAE%20Presubmit/builds/28)
5 years, 2 months ago (2015-09-30 17:44:05 UTC) #25
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1309803004/350001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1309803004/350001
5 years, 2 months ago (2015-09-30 21:09:23 UTC) #28
commit-bot: I haz the power
5 years, 2 months ago (2015-09-30 21:11:15 UTC) #29
Message was sent while issue was closed.
Committed patchset #19 (id:350001) as
https://github.com/luci/gae/commit/ce4a45029c9c317224c7eb2182b5eddd91f1d5dc

Powered by Google App Engine
This is Rietveld 408576698