> 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

Reply via email to