5dbbe4015d16797f33ae37207b526dc81b89d50b: Bug 1286798 - Part 43: Coalesce database operations before they are applied to disk; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:49:34 +0100 - rev 505261
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 43: Coalesce database operations before they are applied to disk; r=asuth This avoids persistence to disk in many cases since sites aften do setItem/removeItem for the same key in one JS function.
398f80b485a969faead8677260975d1b6e2f4606: Bug 1286798 - Part 42: Implement snapshot reusing; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:49:31 +0100 - rev 505260
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 42: Implement snapshot reusing; r=asuth This improves performance by keeping snapshots around for some time if there are no changes done by other processes. If a snapshot is not destroyed immediately after getting into the stable state then there's a chance that it won't have to be synchronously created again when a new opeartion is requested.
270fc081f01f49ebc32dfc9cad99e937e2fba4a2: Bug 1286798 - Part 41: Implement QuotaClient::AbortOperationsForProcess; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:49:27 +0100 - rev 505259
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 41: Implement QuotaClient::AbortOperationsForProcess; r=asuth Needed for snapshot reusing.
f2cdc8e4ef39643e4d3930544ecde4b690c3e326: Bug 1286798 - Part 40: Increase initial snapshot prefill to 16KB; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:49:24 +0100 - rev 505258
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 40: Increase initial snapshot prefill to 16KB; r=asuth The number has been set by running tp6 tests on all platforms.
4f699604c96059b4f198c2b2b8e12f3b3196d3cc: Bug 1286798 - Part 39: Reduce number of hash lookups; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:49:20 +0100 - rev 505257
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 39: Reduce number of hash lookups; r=asuth
ef64949fc1aa9e951bcbd0facbd8309ef7ccabf9: Bug 1286798 - Part 38: Cache items in an array; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:49:17 +0100 - rev 505256
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 38: Cache items in an array; r=asuth Items are now cached also in an array (besides a hashtable). This gives us very fast snapshot initizilization for datastores that fit into the prefill limit. String buffers are reference counted, so memory footprint is only affected by the size of nsString. This patch also introduces a WriteOptimizer which is an abstraction for collecting, coalescing and applying write operations.
52e5be69837d8effb5f58181ac0e9166bd440fd7: Bug 1286798 - Part 37: Always preallocate quota when initializing a snapshot; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:49:14 +0100 - rev 505255
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 37: Always preallocate quota when initializing a snapshot; r=asuth Besides always preallocating quota we now also preallocate more. This mitigates number of additional sync calls.
d5f866efde44d0e6d375dc7bcb24b86f21023103: Bug 1286798 - Part 36: Allow snapshot initialization to a specific load state; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:49:10 +0100 - rev 505254
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 36: Allow snapshot initialization to a specific load state; r=asuth Before this patch, it was only possible to initialize a snapshot to the Partial state or AllOrderedItems state. Now there's a third state AllOrderedKeys. This improves performance by eliminating sync calls to parent process when we know nothing about a key in content process (in that case we have to use a sync call to the parent process to see if there's a value for it). With this patch we always try to send all keys to content when a snapshot is being initialized. For this to work efficiently, we cache the size of all keys. Having cached size of all keys also allows us to just iterate the mValues hashtable when the size of keys is bigger than snapshot prefill threshold (instead of iterating over the mKeys array and joining with mValues for each particular key). There's some additional cleanup in snapshot info construction and Datastore::SetItem/RemoveItem/Clear methods.
6214aafc061f09377c40eca490cc12621169c892: Bug 1286798 - Part 35: Implement database shadowing; r=asuth,janv
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:49:07 +0100 - rev 505253
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 35: Implement database shadowing; r=asuth,janv This adds synchronization to the global database used by previous local storage implementation. This patch was enhanced by asuth to bind attached database path. Places has shown that argument binding is necessary. (Profiles may include usernames in their path which can have cool emoji and such.)
3adfef6668aae569ca9086120be540308c005a70: Bug 1286798 - Part 34: Queue database operations until update batch ends; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:49:04 +0100 - rev 505252
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 34: Queue database operations until update batch ends; r=asuth This avoids dispatching to the connection thread for every database operation and paves a way for database shadowing.
eba8447d393532c4f429c84a14c9a3a3acb5c447: Bug 1286798 - Part 33: Restrict localStorage from being available on some pages; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:49:01 +0100 - rev 505251
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 33: Restrict localStorage from being available on some pages; r=asuth This matches the old implementation. localStorage shouldn't be available on some pages, for example about:home.
1309fe77cfaa7237aeb193db5b3544f7c2a0f6f0: Bug 1286798 - Part 32: Add a test for snapshotting verification in multi-e10s setup; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:48:57 +0100 - rev 505250
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 32: Add a test for snapshotting verification in multi-e10s setup; r=asuth
bc288ab2655c2cf6d2404fd204b7afa1d67262d2: Bug 1286798 - Part 31: Support for lazy loading of items; r=asuth,mrbkap,mccr8
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:48:54 +0100 - rev 505249
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 31: Support for lazy loading of items; r=asuth,mrbkap,mccr8 There's now an upper limit for snapshot prefilling. The value is configurable and is currently set to 4096 bytes. Snapshots can operate in multiple modes depending on if all items have been loaded or all keys have been received. This should provide the best performance for each specific state. This patch also adds support for creating explicit snapshots which can be used for testing.
e2b5bee9812c4b8f0f2344eb848d85696886151d: Bug 1286798 - Part 30: Preserve key order when sending items to a content process; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:48:51 +0100 - rev 505248
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 30: Preserve key order when sending items to a content process; r=asuth Keys needs to be redundantly stored in an array, so we can construct identical hashtable of values in a content process.
70ba8b2410f833ec27655fb3cb6f69f7bb01fbcb: Bug 1286798 - Part 29: Implement implicit snapshotting of databases; r=asuth,mccr8
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:48:47 +0100 - rev 505247
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 29: Implement implicit snapshotting of databases; r=asuth,mccr8 This improves performance a lot in cases when multiple operations are invoked by a single JS function (number of sync IPC calls is reduced to a minimum). It also improves correctness since changes are not visible to other content processes until a JS function finishes. The patch implements core infrastructure, all items are sent to content when a snapshot is initialized and everything is fully working. However, sending of all items at once is not optimal for bigger databases. Support for lazy loading of items is implemented in a following patch.
17a4f3ac425a1c687b5d238452a4a2740f301907: Bug 1286798 - Part 28: Add more QuotaClient::IsShuttingDownOnBackgroundThread() and MayProceed() checks; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:48:44 +0100 - rev 505246
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 28: Add more QuotaClient::IsShuttingDownOnBackgroundThread() and MayProceed() checks; r=asuth The shutdown and actor destroyed flag is now checked after each dispatch.
e75a175ddf880c7d3f0434cda155a0d57876f85b: Bug 1286798 - Part 27: Share database actors; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:48:41 +0100 - rev 505245
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 27: Share database actors; r=asuth If a database actor already exists for given origin, reuse it instead of creating a new one. This improves memory footprint a bit and also eliminates some round trips to the parent process.
2620df4a91da32a75123274b2f603e45e78ca3df: Bug 1286798 - Part 26: Implement a lazy data migration from old webappsstore.sqlite; r=asuth,janv
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:48:38 +0100 - rev 505244
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 26: Implement a lazy data migration from old webappsstore.sqlite; r=asuth,janv This patch was enhanced by asuth to bind attached database path. Places has shown that argument binding is necessary. (Profiles may include usernames in their path which can have cool emoji and such.)
8c37e877e231ee830f377b2945291b1b747293d3: Bug 1286798 - Part 25: Add checks for the group and global limit; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:48:34 +0100 - rev 505243
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 25: Add checks for the group and global limit; r=asuth
c0d40572c29bc3be2611f6e40bb554a55fcc54a3: Bug 1286798 - Part 24: A new exclusive directory lock shouldn't invalidate existing internal directory locks; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:48:31 +0100 - rev 505242
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1286798 - Part 24: A new exclusive directory lock shouldn't invalidate existing internal directory locks; r=asuth This fixes an intermittent failure when multiple clearStoragesForPrincipal() are called at the same time.
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 tip