> You said that only references are changed, right? That means, during appends > the page content is still valid even if B-trees structure is changed because > of references.
If B-tree is implemented with concurrency in mind then yes, but SQLite wasn't implemented this way. First of all when page splits and some keys of B-tree are left in the same page and another part goes to newly created one some specific actions should be made to be sure that reader looking for key that is gone was able to find newly created page somehow. And another problem is that SQLite makes all changes in the cache first and only then writes all changed pages to disk in "random" order. So in the middle of this process you can get references to non-existent pages or some other inconsistencies. Pavel On Tue, Mar 9, 2010 at 9:53 AM, Gabriel Corneanu <gabrielcorne...@gmail.com> wrote: > Sure I could have some kind of intermediate storage, but that would mean > unnecessary data moving / copying. > I really hope that I'll find some time and try to study the source and > eventually implement my ideas (maybe others find it interesting and/or > useful too). > > You said that only references are changed, right? That means, during appends > the page content is still valid even if B-trees structure is changed because > of references. > > PS: what should I add to make the messages as reply (I'm using the web > interface for email)? > > Regards, > Gabriel > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users