Re: [WebSQLDatabase] Adding a vacuum() call

2010-03-16 Thread Dumitru Daniliuc
shane, i was hoping you could clarify a few things about AUTO_VACUUM: However, the B-Tree balancing algorithm used by SQLite will attempt to merge pages with neighbors when there space utilization drops below certain thresholds. Minimum average fill for intkey leaves is 50%. For other pages I

Re: [WebSQLDatabase] Adding a vacuum() call

2010-03-16 Thread João Eiras
On Wed, 17 Mar 2010 01:50:00 +0100, Dumitru Daniliuc d...@chromium.org wrote: shane, i was hoping you could clarify a few things about AUTO_VACUUM: Perhaps this is a bit out of scope of this mailing list ?

Re: [WebSQLDatabase] Adding a vacuum() call

2010-03-12 Thread Shane Harrelson
Some things to consider: (1) VACUUM is never necessary, though can sometimes reduce the size of the database file and provide a performance improvement if the database is large and fragmented. (2) Use PRAGMA freelist_count to estimate how much VACUUM will shrink a database. (3) VACUUM requires

Re: [WebSQLDatabase] Adding a vacuum() call

2010-03-12 Thread Charles McCathieNevile
On Fri, 12 Mar 2010 22:31:15 +0100, Dirk Pranke dpra...@chromium.org wrote: I admit to not being super familiar with the spec as it currently stands, but I find the idea that we would add something like this fairly unappealing. I'm not familiar with any other database API that asks the

Re: [WebSQLDatabase] Adding a vacuum() call

2010-03-11 Thread Dumitru Daniliuc
joao, it looks like we mostly agree on this feature, so i was wondering if we could formally agree on a spec. here's what i propose: 1. name: vacuum. to the best of my knowledge, all current WebSQLDatabases implementations use SQLite, and in SQLite the command is called VACUUM. so it seems to me

Re: [WebSQLDatabase] Adding a vacuum() call

2010-03-11 Thread João Eiras
On Fri, 12 Mar 2010 01:08:41 +0100, Dumitru Daniliuc d...@chromium.org wrote: joao, it looks like we mostly agree on this feature, so i was wondering if we could formally agree on a spec. here's what i propose: 1. name: vacuum. to the best of my knowledge, all current WebSQLDatabases

Re: [WebSQLDatabase] Adding a vacuum() call

2010-03-11 Thread Michael Nordman
Instead of calling back on success only, maybe call back on completion regardless of success or failure. This way the caller would know when the potentially lengthy operation was done, regardless of the outcome. 2010/3/11 Dumitru Daniliuc d...@chromium.org joao, it looks like we mostly agree

Re: [WebSQLDatabase] Adding a vacuum() call

2010-03-11 Thread Dumitru Daniliuc
sounds good to me: interface Database { // the methods and properties currently in the spec void vacuum(in optional SQLVoidCallback completionCallback); }; ... upon completion, queue up a task to invoke the completionCallback, if one was provided. dumi On Thu, Mar 11, 2010 at 4:20 PM,

Re: [WebSQLDatabase] Adding a vacuum() call

2010-03-11 Thread Dumitru Daniliuc
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

Re: [WebSQLDatabase] Adding a vacuum() call

2010-03-11 Thread João Eiras
On Fri, 12 Mar 2010 04:07:21 +0100, Dumitru Daniliuc d...@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()

Re: [WebSQLDatabase] Adding a vacuum() call

2010-03-11 Thread João Eiras
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. Oh and btw, read only transactions should disallow vacuum, I think/hope :)

Re: [WebSQLDatabase] Adding a vacuum() call

2010-03-11 Thread Dumitru Daniliuc
On Thu, Mar 11, 2010 at 7:17 PM, João Eiras jo...@opera.com wrote: On Fri, 12 Mar 2010 04:07:21 +0100, Dumitru Daniliuc d...@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

Re: [WebSQLDatabase] Adding a vacuum() call

2010-03-09 Thread Jeremy Orlow
On Mon, Mar 8, 2010 at 8:47 PM, Dumitru Daniliuc d...@google.com wrote: On Mon, Mar 8, 2010 at 3:39 AM, João Eiras jo...@opera.com wrote: I don't see how the callbacks are useful though. Vacuum works transparently, its effects are not visible, and what should the page do in case of

Re: [WebSQLDatabase] Adding a vacuum() call

2010-03-05 Thread Jeremy Orlow
On Fri, Mar 5, 2010 at 2:32 AM, João Eiras jo...@opera.com wrote: On Fri, 05 Mar 2010 03:22:00 +0100, Dumitru Daniliuc d...@chromium.org wrote: Hi, We (Chromium) would like to add a vacuum() call on the Database object. [...] I would argue about having something a bit more generic for

Re: [WebSQLDatabase] Adding a vacuum() call

2010-03-05 Thread Dumitru Daniliuc
hi joao, thanks for your comments! I would argue about having something a bit more generic for naming like defragment(). that's totally fine with me. I don't see how the callbacks are useful though. Vacuum works transparently, its effects are not visible, and what should the page do in