cf3015b13f989acc8dd401d057b2458fe25067f9: Bug 1286798 - Part 47: Add AboutToClearOrigins() method to the quota client interface; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:10 +0200 - rev 481725
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +0000
Bug 1286798 - Part 47: Add AboutToClearOrigins() method to the quota client interface; r=asuth
93b458d08f0881bf310e7b063e6c8bdc9ccd2e2a: Bug 1286798 - Part 46: Add a pref for database shadowing; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:09 +0200 - rev 481724
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +0000
Bug 1286798 - Part 46: Add a pref for database shadowing; r=asuth
2d1ec32bf081c00c73f70dd7741338eeb2c9e5ef: Bug 1286798 - Part 45: Delay flushing to disk using a timer; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:09 +0200 - rev 481723
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +0000
Bug 1286798 - Part 45: Delay flushing to disk using a timer; r=asuth This improves performance even more by grouping database operations from multiple checkpoints and possibly from multiple processes.
7fe2c3512187460b4deed2618f56553e717bd4bd: Bug 1286798 - Part 44: Switch Connection to use WriteOptimizer too; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:09 +0200 - rev 481722
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +0000
Bug 1286798 - Part 44: Switch Connection to use WriteOptimizer too; r=asuth This eliminates some code duplication.
413cee18d1f90f3d668495e7bae4c36a72540cf3: Bug 1286798 - Part 43: Coalesce database operations before they are applied to disk; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:08 +0200 - rev 481721
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +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.
564e6a8da37f657c000ee3ab771874d1d7766b8e: Bug 1286798 - Part 42: Implement snapshot reusing; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:08 +0200 - rev 481720
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +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.
fb2a73c881f8990d814f5bba57f3c70423050dd4: Bug 1286798 - Part 41: Implement QuotaClient::AbortOperationsForProcess; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:08 +0200 - rev 481719
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +0000
Bug 1286798 - Part 41: Implement QuotaClient::AbortOperationsForProcess; r=asuth Needed for snapshot reusing.
0492574cd8ea95cf0022c71ed64469b96534fa52: Bug 1286798 - Part 40: Increase initial snapshot prefill to 16KB; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:08 +0200 - rev 481718
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +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.
e6484c48d5ae8152fbb7b183c9f6e6a349c19b3a: Bug 1286798 - Part 39: Reduce number of hash lookups; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:07 +0200 - rev 481717
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +0000
Bug 1286798 - Part 39: Reduce number of hash lookups; r=asuth
91604e07a92350fdb5898fcabbcafa15bf97a5f5: Bug 1286798 - Part 38: Cache items in an array; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:07 +0200 - rev 481716
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +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.
88337fbca5231155430229d21838990be3718ea5: Bug 1286798 - Part 37: Always preallocate quota when initializing a snapshot; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:07 +0200 - rev 481715
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +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.
1385b34dc1677bce59a8c409ea1d3e53471d9e16: Bug 1286798 - Part 36: Allow snapshot initialization to a specific load state; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:06 +0200 - rev 481714
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +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.
45c8ea6bfb20c9927b72aa49345c606758873016: Bug 1286798 - Part 35: Implement database shadowing; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:06 +0200 - rev 481713
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +0000
Bug 1286798 - Part 35: Implement database shadowing; r=asuth This adds synchronization to the global database used by previous local storage implementation.
c7ada95b06e03aa7db9a4fd4094560d87dbbc05c: Bug 1286798 - Part 34: Queue database operations until update batch ends; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:06 +0200 - rev 481712
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +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.
799ad1be5831839831c6f6d32984312e959fa8ab: Bug 1286798 - Part 33: Restrict localStorage from being available on some pages; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:06 +0200 - rev 481711
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +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.
9cf3caa326f1838e44c30ba8a2a157682c50b242: Bug 1286798 - Part 32: Add a test for snapshotting verification in multi-e10s setup; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:05 +0200 - rev 481710
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +0000
Bug 1286798 - Part 32: Add a test for snapshotting verification in multi-e10s setup; r=asuth
43686ee468e4bf6bfa64daa87d22d38cd9e4696e: Bug 1286798 - Part 31: Support for lazy loading of items; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:05 +0200 - rev 481709
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +0000
Bug 1286798 - Part 31: Support for lazy loading of items; r=asuth 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.
b926d2c0a25ee157a547d020354b35e631797344: Bug 1286798 - Part 30: Preserve key order when sending items to a content process; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:04 +0200 - rev 481708
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +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.
b6aaf93a1eaeb819930d37b907850cfb5c7d3848: Bug 1286798 - Part 29: Implement implicit snapshotting of databases; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:03 +0200 - rev 481707
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +0000
Bug 1286798 - Part 29: Implement implicit snapshotting of databases; r=asuth 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.
229fe85d909b5e49d135fc8ecd714d33f2081631: Bug 1286798 - Part 28: Add more QuotaClient::IsShuttingDownOnBackgroundThread() and MayProceed() checks; r=asuth draft
Jan Varga <jan.varga@gmail.com> - Wed, 24 Oct 2018 06:59:03 +0200 - rev 481706
Push 10 by bugmail@asutherland.org at Sun, 18 Nov 2018 18:57:42 +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.
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 tip