mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-03 02:25:34 +00:00
064ed56076
* In the first stage, we fetch changed records, newest first, up to the download limit. We keep track of the oldest record modified time we see. * Once we've fetched all records, we reconcile, noting records that fail to decrypt or reconcile for the next sync. We then ask the store to apply all remaining records. Previously, `applyIncomingBatchSize` specified how many records to apply at a time. I removed this because it added an extra layer of indirection that's no longer necessary, now that download batching buffers all records in memory, and all stores are async. * In the second stage, we fetch IDs for all remaining records changed between the last sync and the oldest modified time we saw in the first stage. We *don't* set the download limit here, to ensure we add *all* changed records to our backlog, and we use the `"oldest"` sort order instead of `"index"`. * In the third stage, we backfill as before. We don't want large deltas to delay other engines from syncing, so we still only take IDs up to the download limit from the backlog, and include failed IDs from the previous sync. On subsequent syncs, we'll keep fetching from the backlog until it's empty. Other changes to note in this patch: * `Collection::_rebuildURL` now allows callers to specify both `older` and `newer`. According to :rfkelly, this is explicitly and intentionally supported. * Tests that exercise `applyIncomingBatchSize` are gone, since that's no longer a thing. * The test server now shuffles records if the sort order is unspecified. MozReview-Commit-ID: 4EXvNOa8mIo --HG-- extra : rebase_source : f382f0a883c5aa1f6a4466fefe22ad1a88ab6d20 |
||
---|---|---|
.. | ||
tests | ||
ajv-4.1.1.js | ||
AppData.jsm | ||
AppInfo.jsm | ||
Assert.jsm | ||
CoverageUtils.jsm | ||
FileTestUtils.jsm | ||
MockRegistrar.jsm | ||
MockRegistry.jsm | ||
moz.build | ||
sinon-2.3.2.js | ||
StructuredLog.jsm | ||
TestUtils.jsm |