[TR-306] Locking index structures during writes Created: 11/Apr/14  Updated: 16/Jun/14  Resolved: 20/May/14

Status: Resolved
Project: Terrier Core
Component/s: None
Affects Version/s: 3.6
Fix Version/s: 4.0

Type: Improvement Priority: Major
Reporter: Richard McCreadie Assignee: Richard McCreadie
Resolution: Fixed  
Labels: None

For terrier, we need to have locking: if an index is open for writing, no-one else can write it also. Writing and reading needs to be considered also: it might not be permitted in the 4.x.

Comment by Richard McCreadie [ 15/Apr/14 ]

Added unit test for multi-threaded indexing and retrieval.

Added synchronized blocks for indexDocument() for classes that extend UpdatableIndex (MemoryIndex and IncrementalIndex)

Comment by Richard McCreadie [ 15/Apr/14 ]

Identified synchronization issue in FSOrderedMapFile when retrieving from multiple threads.

Synchronizing dataFile fixes this issue

Comment by Richard McCreadie [ 15/Apr/14 ]

Finished adding unit tests for concurrent indexing and retrieval. Exceptions are checked for indexing, retrieval and for Lexicon/MetaIndex look-ups.

Tagged for resolution.

Generated at Tue Mar 19 06:12:48 GMT 2019 using JIRA 7.1.1#71004-sha1:d6b2c0d9b7051e9fb5e4eb8ce177ca56d91d7bd8.