Hello. We have an embedded system out in the wild with a DB in WALL mode that we set a max_pages value on to keep its size constrained. The system is more or less a data logger. We run a "purger" thread at intervals to DELETE records when it discovers free space is running below a threshold.
The purger starts a transaction, does a query to figure out the time range to delete, and then does a delete with that time range. (I realize now I could combine the DELETE and SELECT into one statement) and then ends the transaction. Thing is, the delete sometimes (very rarely) fails with a 13 "disk or database full" error. I assume because the purger is late to the party and it needs pages in the WAL to be able to rollback if necessary. I figure I can run the purger more often, or raise my "must keep free" threshold, but it is hard to know the rate at which data will be generated and it can be really "bursty" -- so such fixes are a bit hand-wavy and unsatisfying. So, I thought I'd check with you folks and see if: 1. The operational assumption (delete need pages) I've asserted here is correct, and 2. There is some trick I can use to force a delete of records when the DB pages are already maxed out -- esp. if I don't need to roll this back. This is sqlite 3.10.1. Thanks -- Ward _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users