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

Issue 10911084: Implement Invalidator::Acknowledge (Closed)

Created:
8 years, 3 months ago by dcheng
Modified:
7 years, 9 months ago
CC:
chromium-reviews, Pete Williamson, Dmitry Titov
Visibility:
Public.

Description

Implement Invalidator::Acknowledge. We implement this by creating a local queue of entries we've received invalidations for and then immediately acknowledging to Tango. When InvalidationHandlers acknowledge that they've finished processing for an id, we erase their entry from the queue; otherwise, we send reminder invalidations on an exponentially increasing delay. BUG=124149 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=186079

Patch Set 1 #

Patch Set 2 : Whee #

Patch Set 3 : snapshot #

Patch Set 4 : . #

Total comments: 1

Patch Set 5 : . #

Patch Set 6 : . #

Total comments: 24

Patch Set 7 : Feedback from petewil #

Total comments: 19

Patch Set 8 : . #

Patch Set 9 : Update tests (but with some checkdeps violations and one failure) #

Patch Set 10 : Fixes + test fixes #

Patch Set 11 : Restart test + more cleanup #

Total comments: 45

Patch Set 12 : . #

Patch Set 13 : Merge to HEAD #

Patch Set 14 : Use AckTracker in SyncInvalidationListener #

Patch Set 15 : Add more tests for InvalidatorStorage #

Patch Set 16 : Merge to HEAD #

Patch Set 17 : Fix bad merge? #

Patch Set 18 : More fixes #

Patch Set 19 : . #

Patch Set 20 : . #

Patch Set 21 : . #

Patch Set 22 : . #

Patch Set 23 : . #

Total comments: 4

Patch Set 24 : . #

Total comments: 14

Patch Set 25 : Final form #

Patch Set 26 : Adapt patch to new TickClock interface #

Unified diffs Side-by-side diffs Delta from patch set Stats (+606 lines, -105 lines) Patch
M chrome/browser/chrome_to_mobile_service.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 chunk +10 lines, -0 lines 0 comments Download
M chrome/browser/extensions/api/push_messaging/DEPS View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M chrome/browser/extensions/api/push_messaging/push_messaging_invalidation_handler.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 chunk +1 line, -0 lines 0 comments Download
M chrome/browser/extensions/api/push_messaging/push_messaging_invalidation_handler_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 4 chunks +14 lines, -0 lines 0 comments Download
M chrome/browser/sync/glue/android_invalidator_bridge.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +2 lines, -0 lines 0 comments Download
M chrome/browser/sync/glue/android_invalidator_bridge.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 chunk +5 lines, -0 lines 0 comments Download
M chrome/browser/sync/glue/android_invalidator_bridge_proxy.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +2 lines, -0 lines 0 comments Download
M chrome/browser/sync/glue/android_invalidator_bridge_proxy.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +6 lines, -0 lines 0 comments Download
M chrome/browser/sync/glue/sync_backend_host.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +4 lines, -0 lines 0 comments Download
M chrome/browser/sync/glue/sync_backend_host.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 3 chunks +26 lines, -0 lines 0 comments Download
M chrome/browser/sync/invalidation_frontend.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +5 lines, -0 lines 0 comments Download
M chrome/browser/sync/profile_sync_service.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 4 chunks +10 lines, -0 lines 0 comments Download
M chrome/browser/sync/profile_sync_service.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 chunks +17 lines, -0 lines 0 comments Download
M chrome/browser/sync/profile_sync_service_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 chunk +5 lines, -0 lines 0 comments Download
M sync/internal_api/public/sync_manager.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 chunk +5 lines, -0 lines 0 comments Download
M sync/internal_api/public/test/fake_sync_manager.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +3 lines, -0 lines 0 comments Download
M sync/internal_api/sync_manager_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 chunk +3 lines, -0 lines 0 comments Download
M sync/internal_api/sync_manager_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 chunks +17 lines, -0 lines 0 comments Download
M sync/internal_api/test/fake_sync_manager.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +5 lines, -0 lines 0 comments Download
M sync/notifier/ack_tracker.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 chunk +1 line, -0 lines 0 comments Download
M sync/notifier/fake_invalidator.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +2 lines, -0 lines 0 comments Download
M sync/notifier/fake_invalidator.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 chunks +6 lines, -1 line 0 comments Download
M sync/notifier/invalidation_notifier.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 4 chunks +8 lines, -1 line 0 comments Download
M sync/notifier/invalidation_notifier.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 chunks +7 lines, -1 line 0 comments Download
M sync/notifier/invalidator.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +4 lines, -0 lines 0 comments Download
M sync/notifier/invalidator_registrar_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +5 lines, -0 lines 0 comments Download
M sync/notifier/non_blocking_invalidator.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +2 lines, -0 lines 0 comments Download
M sync/notifier/non_blocking_invalidator.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 5 chunks +24 lines, -2 lines 0 comments Download
M sync/notifier/p2p_invalidator.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +2 lines, -0 lines 0 comments Download
M sync/notifier/p2p_invalidator.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +6 lines, -0 lines 0 comments Download
M sync/notifier/sync_invalidation_listener.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 6 chunks +27 lines, -2 lines 0 comments Download
M sync/notifier/sync_invalidation_listener.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 9 chunks +103 lines, -21 lines 0 comments Download
M sync/notifier/sync_invalidation_listener_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 37 chunks +268 lines, -77 lines 0 comments Download

Messages

Total messages: 42 (0 generated)
dcheng
Please take a first pass at this CL. Several known issues that you may or ...
8 years, 3 months ago (2012-09-12 20:39:08 UTC) #1
dcheng
FWIW, I've gone ahead and implemented the strategy described in (3) and just acknowledge on ...
8 years, 3 months ago (2012-09-12 21:19:00 UTC) #2
Pete Williamson
http://codereview.chromium.org/10911084/diff/8024/chrome/browser/sync/invalidations/invalidator_storage.cc File chrome/browser/sync/invalidations/invalidator_storage.cc (right): http://codereview.chromium.org/10911084/diff/8024/chrome/browser/sync/invalidations/invalidator_storage.cc#newcode285 chrome/browser/sync/invalidations/invalidator_storage.cc:285: pref_service_->Set(prefs::kInvalidatorMaxInvalidationVersions, Is the preference service the right place for ...
8 years, 3 months ago (2012-09-14 18:28:22 UTC) #3
dcheng
http://codereview.chromium.org/10911084/diff/8024/chrome/browser/sync/invalidations/invalidator_storage.cc File chrome/browser/sync/invalidations/invalidator_storage.cc (right): http://codereview.chromium.org/10911084/diff/8024/chrome/browser/sync/invalidations/invalidator_storage.cc#newcode285 chrome/browser/sync/invalidations/invalidator_storage.cc:285: pref_service_->Set(prefs::kInvalidatorMaxInvalidationVersions, On 2012/09/14 18:28:22, Pete Williamson wrote: > Is ...
8 years, 3 months ago (2012-09-14 19:08:49 UTC) #4
akalin
overall looks pretty good. initial comments. http://codereview.chromium.org/10911084/diff/12001/sync/internal_api/public/base/invalidation_state.cc File sync/internal_api/public/base/invalidation_state.cc (right): http://codereview.chromium.org/10911084/diff/12001/sync/internal_api/public/base/invalidation_state.cc#newcode14 sync/internal_api/public/base/invalidation_state.cc:14: const size_t kBytesInHandle ...
8 years, 3 months ago (2012-09-17 23:59:54 UTC) #5
akalin
On 2012/09/12 21:19:00, dcheng wrote: > FWIW, I've gone ahead and implemented the strategy described ...
8 years, 3 months ago (2012-09-18 00:00:18 UTC) #6
dcheng
I'm still in the process of updating the tests. http://codereview.chromium.org/10911084/diff/12001/sync/internal_api/public/base/invalidation_state.cc File sync/internal_api/public/base/invalidation_state.cc (right): http://codereview.chromium.org/10911084/diff/12001/sync/internal_api/public/base/invalidation_state.cc#newcode14 sync/internal_api/public/base/invalidation_state.cc:14: ...
8 years, 2 months ago (2012-09-25 22:35:06 UTC) #7
akalin
few more http://codereview.chromium.org/10911084/diff/12001/sync/internal_api/public/base/invalidation_state.cc File sync/internal_api/public/base/invalidation_state.cc (right): http://codereview.chromium.org/10911084/diff/12001/sync/internal_api/public/base/invalidation_state.cc#newcode23 sync/internal_api/public/base/invalidation_state.cc:23: // TODO(dcheng): Do we want to base64 ...
8 years, 2 months ago (2012-10-01 23:23:08 UTC) #8
dcheng
The CL has been updated. The reminder feature is now (mostly) tested, test non-determinism has ...
8 years, 2 months ago (2012-10-18 23:42:14 UTC) #9
akalin
Moar comments. Suggested a couple places to pull out in separate CLs. I think that ...
8 years, 2 months ago (2012-10-19 13:27:16 UTC) #10
Jói
http://codereview.chromium.org/10911084/diff/34001/sync/notifier/sync_invalidation_listener.cc File sync/notifier/sync_invalidation_listener.cc (right): http://codereview.chromium.org/10911084/diff/34001/sync/notifier/sync_invalidation_listener.cc#newcode27 sync/notifier/sync_invalidation_listener.cc:27: base::TimeDelta CalculateBackoffDelay(int retry_count) { On 2012/10/19 13:27:16, akalin wrote: ...
8 years, 2 months ago (2012-10-19 13:29:49 UTC) #11
dcheng
http://codereview.chromium.org/10911084/diff/34001/chrome/browser/chrome_to_mobile_service.cc File chrome/browser/chrome_to_mobile_service.cc (right): http://codereview.chromium.org/10911084/diff/34001/chrome/browser/chrome_to_mobile_service.cc#newcode434 chrome/browser/chrome_to_mobile_service.cc:434: // TODO(msw): Unit tests do not provide profiles; see ...
8 years, 2 months ago (2012-10-19 19:38:11 UTC) #12
akalin
Is this ready for review? (If not, let me know when it is!)
8 years, 1 month ago (2012-11-19 19:37:12 UTC) #13
dcheng
On 2012/11/19 19:37:12, akalin wrote: > Is this ready for review? (If not, let me ...
8 years, 1 month ago (2012-11-20 00:07:09 UTC) #14
akalin
On 2012/11/20 00:07:09, dcheng wrote: what do you think of the proposed split? looks reasonable!
8 years, 1 month ago (2012-11-20 18:41:38 UTC) #15
akalin
On 2012/11/20 18:41:38, akalin wrote: > On 2012/11/20 00:07:09, dcheng wrote: > what do you ...
7 years, 12 months ago (2012-12-29 09:41:18 UTC) #16
dcheng
Mind taking another look now? This is the last part of the change. rlarocque@ has ...
7 years, 10 months ago (2013-02-08 20:58:45 UTC) #17
dcheng
On 2013/02/08 20:58:45, dcheng wrote: > Mind taking another look now? This is the last ...
7 years, 10 months ago (2013-02-12 20:18:37 UTC) #18
rlarocque
LGTM, but I'm not sure I have enough context to properly review this patch. You ...
7 years, 10 months ago (2013-02-12 21:48:04 UTC) #19
Jói
Removing myself as a reviewer as I think I only got added due to a ...
7 years, 10 months ago (2013-02-12 22:10:23 UTC) #20
dcheng
https://codereview.chromium.org/10911084/diff/84034/chrome/browser/sync/profile_sync_service.cc File chrome/browser/sync/profile_sync_service.cc (right): https://codereview.chromium.org/10911084/diff/84034/chrome/browser/sync/profile_sync_service.cc#newcode501 chrome/browser/sync/profile_sync_service.cc:501: for (AckHandleReplayQueue::const_iterator it = ack_replay_queue_.begin(); On 2013/02/12 21:48:04, rlarocque ...
7 years, 10 months ago (2013-02-12 22:39:28 UTC) #21
akalin
LGTM, modulo rclaroque's comments https://codereview.chromium.org/10911084/diff/86006/chrome/browser/extensions/api/push_messaging/push_messaging_invalidation_handler_unittest.cc File chrome/browser/extensions/api/push_messaging/push_messaging_invalidation_handler_unittest.cc (right): https://codereview.chromium.org/10911084/diff/86006/chrome/browser/extensions/api/push_messaging/push_messaging_invalidation_handler_unittest.cc#newcode153 chrome/browser/extensions/api/push_messaging/push_messaging_invalidation_handler_unittest.cc:153: // Invalid object IDs should ...
7 years, 10 months ago (2013-02-15 22:32:12 UTC) #22
akalin
probably can update the CL description (since AckTracker was in a previous patch already)
7 years, 10 months ago (2013-02-15 22:32:36 UTC) #23
Pete Williamson
ACK - The changes look good to me. I have a few suggestions https://codereview.chromium.org/10911084/diff/86006/chrome/browser/sync/glue/android_invalidator_bridge_proxy.cc File ...
7 years, 10 months ago (2013-02-16 01:41:06 UTC) #24
dcheng
https://codereview.chromium.org/10911084/diff/86006/chrome/browser/extensions/api/push_messaging/push_messaging_invalidation_handler_unittest.cc File chrome/browser/extensions/api/push_messaging/push_messaging_invalidation_handler_unittest.cc (right): https://codereview.chromium.org/10911084/diff/86006/chrome/browser/extensions/api/push_messaging/push_messaging_invalidation_handler_unittest.cc#newcode153 chrome/browser/extensions/api/push_messaging/push_messaging_invalidation_handler_unittest.cc:153: // Invalid object IDs should still be acknowledged though. ...
7 years, 10 months ago (2013-02-22 02:51:30 UTC) #25
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/dcheng@chromium.org/10911084/109001
7 years, 10 months ago (2013-02-22 02:51:59 UTC) #26
commit-bot: I haz the power
Presubmit check for 10911084-109001 failed and returned exit status 1. INFO:root:Found 33 file(s). Running presubmit ...
7 years, 10 months ago (2013-02-22 02:52:14 UTC) #27
dcheng
+sky for chrome OWNERS rubberstamp. I believe the only file not covered by another OWNERS ...
7 years, 10 months ago (2013-02-22 20:57:22 UTC) #28
sky
sky->msw
7 years, 10 months ago (2013-02-22 21:21:00 UTC) #29
dcheng
On 2013/02/22 21:21:00, sky wrote: > sky->msw Ping!
7 years, 10 months ago (2013-02-26 18:24:31 UTC) #30
msw
chrome_to_mobile_service.cc LGTM! Sorry for the delayed response; I was on vacation.
7 years, 10 months ago (2013-02-26 23:17:25 UTC) #31
dcheng
On 2013/02/26 23:17:25, msw wrote: > chrome_to_mobile_service.cc LGTM! > Sorry for the delayed response; I ...
7 years, 9 months ago (2013-02-28 19:22:08 UTC) #32
sky
LGTM
7 years, 9 months ago (2013-02-28 21:53:21 UTC) #33
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/dcheng@chromium.org/10911084/109001
7 years, 9 months ago (2013-02-28 22:00:17 UTC) #34
commit-bot: I haz the power
Sorry for I got bad news for ya. Compile failed with a clobber build on ...
7 years, 9 months ago (2013-02-28 22:40:52 UTC) #35
dcheng
Fred, mind taking one more look? I've updated the patch to use the new TickClock ...
7 years, 9 months ago (2013-02-28 23:34:41 UTC) #36
dcheng
On 2013/02/28 23:34:41, dcheng wrote: > Fred, mind taking one more look? I've updated the ...
7 years, 9 months ago (2013-03-04 22:12:20 UTC) #37
akalin
still lgtm
7 years, 9 months ago (2013-03-04 22:39:22 UTC) #38
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/dcheng@chromium.org/10911084/129003
7 years, 9 months ago (2013-03-04 22:39:50 UTC) #39
commit-bot: I haz the power
Retried try job too often on mac_rel for step(s) interactive_ui_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=mac_rel&number=105052
7 years, 9 months ago (2013-03-05 02:30:28 UTC) #40
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/dcheng@chromium.org/10911084/129003
7 years, 9 months ago (2013-03-05 02:32:33 UTC) #41
commit-bot: I haz the power
7 years, 9 months ago (2013-03-05 03:51:46 UTC) #42
Message was sent while issue was closed.
Change committed as 186079

Powered by Google App Engine
This is Rietveld 408576698