Enable Lucene to take advantage of low-level IO options (direct IO) and generalize it’s Directory implementation

Varun Thacker

Abstract

My project aims to generalize the current Lucene Directory implementation by making it a UnixDirectory. This would be done by adding IOContext to the lower level API. These are two existing Lucene tasks ( LUCENE-2793 and LUCENE-2795).

Additional Information

My project would consist of implementing two Apache Lucene tasks namely-Directory createOutput and openInput should take an IOContext (LUCENE-2793) and Generalize DirectIOLinuxDir to UnixDir (LUCENE-2795).

The first part of the project is aimed to add a IOContext  threaded throughout the low-level store API’s in Lucene so that the higher level API’s can send important details down to Directory.

Once completed I would move on to generalize the Directory implementation to make a UnixDirectory which is part of my second task. The goal to this is to have a single UnixDir that is usable across all UNIX platforms, and would use direct IO if the context is merging.

Code samples