- From: João Eiras <joaoe@opera.com>
- Date: Fri, 12 Mar 2010 04:17:36 +0100
- To: "Dumitru Daniliuc" <dumi@chromium.org>
- Cc: "Jeremy Orlow" <jorlow@google.com>, public-webapps <public-webapps@w3.org>
On Fri, 12 Mar 2010 04:07:21 +0100, Dumitru Daniliuc <dumi@chromium.org> wrote: > joao, > > if i understand correctly, you basically want to have an automated system > implemented in the browser that decides when to vacuum databases (or at > least make sure it doesn't happen too often). and the vacuum() calls > would > be just one of the parameters that the system takes into account. i think > having such a system is fine, but doesn't need to be spec'ed. at the same > time, i think it's worth having a spec'ed vacuum() call that gives the > app > some guarantees. in particular, i would like the completionCallback to > be a > signal that the database is in a good shape and ready for more work. so > how > about this: > > > 1. if the UA doesn't support the vacuum() call, go to step 3. > 2. queue up a task to vacuum the database. if the UA decides that > vacuuming is not needed at this time, the vacuuming task scheduled in > this > step could be a no-op. > 3. when the vacuuming task completes, queue up a task to invoke the > completion callback, if one was specified. > > i think this spec should allow you to treat the vacuum() call as a hint, > while also guaranteeing that: > 1. the UA believes the database is in a good shape when the completion > callback is called. > 2. the completion callback is called as soon as UA believes the DB is in > a > good shape. > > what do you think? Looks better, and more flexible. I wonder if sqlite has a way to query the number of pages in the freelist ? Probably something like 10% of pages in the freelist would be a good threshold to allow a vacuum. > > thanks, > dumi
Received on Friday, 12 March 2010 03:18:26 UTC