better handling of files inside/outside CFS by codec ----------------------------------------------------
Key: LUCENE-3728 URL: https://issues.apache.org/jira/browse/LUCENE-3728 Project: Lucene - Java Issue Type: Improvement Reporter: Robert Muir Since norms and deletes were moved under Codec (LUCENE-3606, LUCENE-3661), we never really properly addressed the issue of how Codec.files() should work, considering these files are always stored outside of CFS. LUCENE-3606 added a hack, LUCENE-3661 cleaned up the hack a little bit more, but its still a hack. Currently the logic in SegmentInfo.files() is: {code} clearCache() if (compoundFile) { // don't call Codec.files(), hardcoded CFS extensions, etc } else { Codec.files() } // always add files stored outside CFS regardless of CFS setting Codec.separateFiles() if (sharedDocStores) { // hardcoded shared doc store extensions, etc } {code} Also various codec methods take a Directory parameter, but its inconsistent what this Directory is in the case of CFS: for some parts of the index its the CFS directory, for others (deletes, separate norms) its not. I wonder if instead we could restructure this so that SegmentInfo.files() logic is: {code} clearCache() Codec.files() {code} and so that Codec is instead responsible. instead Codec.files logic by default would do the if (compoundFile) thing, and Lucene3x codec itself would only have the if (sharedDocStores) thing, and any part of the codec that wants to put stuff always outside of CFS (e.g. Lucene3x separate norms, deletes) could just use SegmentInfo.dir. Directory parameters in the case of CFS would always consistently be the CFSDirectory. I haven't totally tested if this will work but there is definitely some cleanups we can do either way, and I think it would be a good step to try to clean this up and simplify it. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org