I think database will go corrupt if the power goes off during the process of 
checkpoint. Database will remain intact even if wal file is lost due to power 
failure.
For embedded devices its a balance between flash life, db performance and ram 
memory usage.


Sent from BlackBerry® on Airtel

-----Original Message-----
From: Richard Hipp <d...@sqlite.org>
Sender: drhsql...@gmail.com
Date: Mon, 1 Aug 2011 08:47:09 
To: <sreekumar...@gmail.com>; General Discussion of SQLite 
Database<sqlite-users@sqlite.org>
Subject: Re: [sqlite] Sqlite-Wal file location

On Mon, Aug 1, 2011 at 8:45 AM, <sreekumar...@gmail.com> wrote:

> Hi,
>
> Thanks for the detailed explanation.
> My original question was more in relation to the .db-wal file. I guess the
> same discussion is applicable to the db-wal file also?. In my project, in
> all probability one writer and multiple readers. Hence the chances of
> corruption is greatly reduced.
> One problem I have noticed is that I have to create (an empty) a file with
> the same name as the database file in the tmpfs for correct working .
>

If the WAL file is in volatile storage and you lose power or reset, your
database will likely go corrupt.


>
>
> Sent from BlackBerry® on Airtel
>
> -----Original Message-----
> From: Richard Hipp <d...@sqlite.org>
> Sender: sqlite-users-boun...@sqlite.org
> Date: Mon, 1 Aug 2011 07:07:52
> To: General Discussion of SQLite Database<sqlite-users@sqlite.org>
> Reply-To: General Discussion of SQLite Database <sqlite-users@sqlite.org>
> Subject: Re: [sqlite] Sqlite-Wal file location
>
> On Sun, Jul 31, 2011 at 11:51 PM, Sreekumar TP <sreekumar...@gmail.com
> >wrote:
>
> > Hello,
> >
> > Inorder to suit the needs of my embedded device, I have changed the
> > location
> > of the .db-wal file from the location of the db file to tmpfs. Does
> sqlite
> > make assumptions(persistence etc)  based on the location of the file ?
> >
>
> An early prototype of WAL did exactly what you describe.  But we then
> encountered database corruption during testing when two separate processes
> tried to access the same database file where one of the processes was in a
> chroot jail and the other was not.  Both processes used the same name for
> the -shm file, but because of the chroot jail, they in fact used two
> separate -shm files.  Fossil uses SQLite in WAL mode and it often runs in a
> chroot jail, so this is not an uncommon scenario.
>
> The only way we have found to ensure that all processes use the same -shm
> file is to put the -shm file in the same directory as the database file.
>
> For an embedded project, you can put the -shm file wherever you want as
> long
> as all processes agree to use the same file.  If you mess up, and two or
> more processes use different -shm files for the same database, database
> corruption will result.  You have been warned.
>
> Note that -shm does not have to be a file.  We just need an area of shared
> memory common to all processes accessing the database.  On unix and
> windows,
> we found this most convenient to implement as a file using mmap().  But if
> you have some other mechanism on your embedded device that would work
> better, you are welcomed to use that.
>
>
>
>
> >_______________________________________________
> > sqlite-users mailing list
> > sqlite-users@sqlite.org
> > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
> >
>
>
>
> --
> D. Richard Hipp
> d...@sqlite.org
>_______________________________________________
> 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
>



-- 
D. Richard Hipp
d...@sqlite.org

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to