Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
New, Patch Available
Description
Today for merging we pass down a larger readBufferSize than for searching because we get better performance.
I think we should generalize this to a class (IOContext), which would hold the buffer size, but then could hold other flags like DIRECT (bypass OS's buffer cache), SEQUENTIAL, etc.
Then, we can make the DirectIOLinuxDirectory fully usable because we would only use DIRECT/SEQUENTIAL during merging.
This will require fixing how IW pools readers, so that a reader opened for merging is not then used for searching, and vice/versa. Really, it's only all the open file handles that need to be different – we could in theory share del docs, norms, etc, if that were somehow possible.
Attachments
Attachments
Issue Links
- blocks
-
LUCENE-3178 Native MMapDir
- Open
-
LUCENE-2795 Genericize DirectIOLinuxDir -> UnixDir
- Resolved
-
LUCENE-3203 Rate-limit IO used by merging
- Resolved
-
LUCENE-3092 NRTCachingDirectory, to buffer small segments in a RAMDir
- Closed
- is depended upon by
-
LUCENE-3292 IOContext should be part of the SegmentReader cache key
- Resolved
-
LUCENE-3293 Use IOContext.READONCE in VarGapTermsIndexReader to load FST
- Closed