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
Please register or sign in to comment