On 05/27/2015 11:59 PM, Wade, William wrote:

>> 3) The writing thread prefers to delete any existing file. If it can't do 
>> that (some readers currently have the file open) it gains an exclusive 
>> read/write lock (consistent with no reader has a transaction in progress) 
>> and truncates the file to zero length, writes its new header (including his 
>> own uuid, indicating that this is logically a new file). When existing 
>> readers get around to reading again, they will check that uuid, and handle 
>> the change in writers "gracefully."
>>
>
>But instead of using a regular SQL transaction to drop all the old
>tables, use the backup API to clobber the existing database with the new
>one.
>
>   https://www.sqlite.org/c3ref/backup_finish.html
>
>Using the backup API, the clobber operation is still done as a regular
>SQLite transaction - so all the locking and notifying of other clients
>gets done right. The amount of IO (and CPU) required should depend on
>the size of the new db only, not the existing db size. And it won't
>matter if the existing db is corrupt or not - as the backup API never
>actually examines the contents of the existing database.
>
>Dan

Interesting idea. Could this also a solution to my problem described in the 
thread "emptying tables"?


Rene

Kernkraftwerk Goesgen-Daeniken AG
CH-4658 Daeniken, Switzerland

Diese Nachricht (inkl. Anhaenge) beinhaltet moeglicherweise vertrauliche oder 
gesetzlich geschuetzte Daten oder Informationen. Zum Empfang derselben ist 
(sind) ausschliesslich die genannte(n) Person(en) bestimmt. Falls Sie diese 
Nachricht irrtuemlicherweise erreicht hat, sind Sie hoeflich gebeten, diese 
unter Ausschluss jeder Reproduktion zu vernichten und den Absender umgehend zu 
benachrichtigen. Besten Dank.

Reply via email to