Merge branch 'improve-locking' Fixes LUCY-323.
- Major rewrite of FilePurger, making it do less work. - Eliminate global deletion lock, making PolyReader and FilePurger never wait for a lock. - Redesign Lock API in preparation for native locks. - Remove LockFactory. - Fix locking bug with non-default merge lock timeout. - Fix locking bug with concurrent BackgroundMergers. - Port some tests to C. Project: http://git-wip-us.apache.org/repos/asf/lucy/repo Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/d7feb997 Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/d7feb997 Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/d7feb997 Branch: refs/heads/master Commit: d7feb997003ae1fc84a348e8584ea97b69b02d95 Parents: 7a64a28 a3cf33f Author: Nick Wellnhofer <wellnho...@aevum.de> Authored: Sun Apr 16 12:15:01 2017 +0200 Committer: Nick Wellnhofer <wellnho...@aevum.de> Committed: Sun Apr 16 12:15:01 2017 +0200 ---------------------------------------------------------------------- core/Lucy/Docs/Cookbook/FastUpdates.md | 2 +- core/Lucy/Docs/FileLocking.md | 5 +- core/Lucy/Index/BackgroundMerger.c | 34 +- core/Lucy/Index/FilePurger.c | 328 ++++++++----------- core/Lucy/Index/FilePurger.cfh | 19 +- core/Lucy/Index/IndexManager.c | 88 +---- core/Lucy/Index/IndexManager.cfh | 42 +-- core/Lucy/Index/IndexReader.c | 16 +- core/Lucy/Index/IndexReader.cfh | 3 +- core/Lucy/Index/Indexer.c | 61 ++-- core/Lucy/Index/PolyReader.c | 124 +++---- core/Lucy/Store/Lock.c | 258 ++------------- core/Lucy/Store/Lock.cfh | 117 ++----- core/Lucy/Store/LockFactory.c | 66 ---- core/Lucy/Store/LockFactory.cfh | 80 ----- core/Lucy/Store/LockFileLock.c | 363 +++++++++++++++++++++ core/Lucy/Store/LockFileLock.cfh | 49 +++ core/Lucy/Store/SharedLock.c | 173 ---------- core/Lucy/Store/SharedLock.cfh | 77 ----- go/build.go | 7 +- go/lucy/index_test.go | 32 +- go/lucy/store.go | 35 +- go/lucy/store_test.go | 77 ++--- perl/buildlib/Lucy/Build/Binding/Store.pm | 100 ------ perl/lib/Lucy/Store/Lock.pm | 25 -- perl/lib/Lucy/Store/LockFactory.pm | 25 -- perl/t/105-folder.t | 29 +- perl/t/106-locking.t | 89 ----- perl/t/109-read_locking.t | 53 ++- perl/t/110-shared_lock.t | 90 ----- perl/t/111-index_manager.t | 32 +- perl/t/core/106-lf_lock.t | 23 ++ perl/t/core/233-background_merger.t | 23 ++ test/Lucy/Test.c | 4 + test/Lucy/Test/Index/NoMergeManager.c | 42 +++ test/Lucy/Test/Index/NoMergeManager.cfh | 30 ++ test/Lucy/Test/Index/TestBackgroundMerger.c | 208 ++++++++++++ test/Lucy/Test/Index/TestBackgroundMerger.cfh | 29 ++ test/Lucy/Test/Index/TestIndexManager.c | 2 +- test/Lucy/Test/Index/TestSortWriter.c | 28 +- test/Lucy/Test/Index/TestSortWriter.cfh | 15 - test/Lucy/Test/Store/TestLock.c | 296 +++++++++++++++++ test/Lucy/Test/Store/TestLock.cfh | 29 ++ test/Lucy/Test/TestUtils.c | 17 +- 44 files changed, 1531 insertions(+), 1714 deletions(-) ----------------------------------------------------------------------