Unverified Commit 75e1e8d7 authored by Dimitri Fontaine's avatar Dimitri Fontaine Committed by GitHub
Browse files

Remove summary files, use our SQLite database instead. (#590)

* Remove summary files, use our SQLite database instead.

* Get rid of summary files for the indexing and constraints too.

This allows also to entirely remove the need for semaphores to handle
concurrency between worker processes, using SQLite insert-or-ignore for
concurrency control instead.

Also the idea of TablePaths and IndexPaths elements are gone, with the lock
files and the done files mechanisms.

* Protect SQLite concurrent write access with a semaphore.

SQLite has not been designed for write-write concurrency, so implement a
critical section in our code so that SQLite only sees a single writer at all
times. It may still see multiple readers though.

Because we have re-entrant queries (an SQLite iterator function may then
choose to run another SQLite query), this commit also adds support for
re-entrant semaphore in a way that doesn't call into semop(2) again when we
already are in the critical section.

* Assorted fixes.
parent 156fb5cd
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment