Good morning Richard,

Thank you for the tip. 
I assume (I will test it later), that by killing the process you mean simply 
shutting it down (regularly) without ever calling sqlite3_close, am I right ? 
If so, that is quite feasible in our case I think.

Regards,
Albert

________________________________________
Od: sqlite-users-bounces at mailinglists.sqlite.org <sqlite-users-bounces at 
mailinglists.sqlite.org> w imieniu u?ytkownika Richard Hipp <drh at sqlite.org>
Wys?ane: 27 kwietnia 2016 15:23
Do: SQLite mailing list
Temat: Re: [sqlite] Controlling of check-pointing of WAL Dbs

On 4/27/16, Albert Banaszkiewicz <Albert.Banaszkiewicz at tomtom.com> wrote:
> Hello.
>
> I am new here, thus I would like to apologize in advance if the question I
> am going to rise was already asked in the past.
>
> I am using SQLite 3.11.1 (actually it is a NDS consortium customized version
> based on it).
>
> According to documentation, in case of WAL mode enabled databases, final
> check-pointing is being done when the last connection to DB is about to be
> closed.
>
> We are running into the scenario, where we would like to have a complete
> control over the moment when check-pointing happens. This is easy in case of
> auto-check-pointing, where it can be completely disabled or customized (via
> hooks).
> However, it is possible that during the component life-time there is going
> to be no 'appropriate' moment to schedule it and if the user powers device
> down, we still want to avoid it since modern OSes typically expect running
> applications to terminate within the specified (several seconds usually)
> time intervals. Of course, we don't want to loose any data contained in the
> WAL journal as well and ideally, we would like to be still able to schedule
> check-pointing in the 'appropriate' time after reboot.
>
> So finally, the questions:
>
> 1. Is there a way to control (i.e. disable) check-pointing happening at DB
> closure ? (personally, I could not find anything like this in the code but
> perhaps I missed something)
> 2. If not, are there any plans to introduce it ? Or is it not feasible at
> all ?

There is no documented and supported way of preventing a checkpoint
when the last DB connection closes.  But you can work around that
simply by killing the process without ever calling sqlite3_close().

When you do that, it leaves the -wal and -shm files on disk.  The next
time any process connects to the database, it will read the entire
-wal file from beginning to end in order to reconstruct the -shm file.

--
D. Richard Hipp
drh at sqlite.org
_______________________________________________
sqlite-users mailing list
sqlite-users at mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to