I am trying to implement an in-memory version of the Directory, IndexInput and IndexOutput classes, similar to RAMDirectory.
Can someone please point out if there are any concurrency and thread safety requirements from these classes? Do the users of these classes implement client side locking or use thread confinement? Are there any other OS level file system guarantees which the Lucene's Directory implementations make use of and which I should ensure from my in-memory implementation? I am using Lucene 3.0.3 and I have looked at RAMDirectory's and RAMIndexInputStream and RAMIndexOutputStream code but it does not explicitly mention any concurrency requirements. Any help in this regard will be appreciated. Thank you, -Dhruv