apache / lucene

Apache Lucene open-source search software
https://lucene.apache.org/
Apache License 2.0
2.61k stars 1.02k forks source link

Make CFS appendable [LUCENE-3218] #4291

Closed asfimport closed 12 years ago

asfimport commented 13 years ago

Currently CFS is created once all files are written during a flush / merge. Once on disk the files are copied into the CFS format which is basically a unnecessary for some of the files. We can at any time write at least one file directly into the CFS which can save a reasonable amount of IO. For instance stored fields could be written directly during indexing and during a Codec Flush one of the written files can be appended directly. This optimization is a nice sideeffect for lucene indexing itself but more important for DocValues and #4289 we could transparently pack per field files into a single file only for docvalues without changing any code once #4289 is resolved.


Migrated from LUCENE-3218 by Simon Willnauer (@s1monw), resolved Nov 04 2011 Attachments: LUCENE-3218_3x.patch, LUCENE-3218_test_fix.patch, LUCENE-3218_tests.patch, LUCENE-3218.patch (versions: 7) Linked issues:

asfimport commented 13 years ago

Mark Miller (@markrmiller) (migrated from JIRA)

this seems close, the question is if we want to backport this to 3.x too?

Why don't we get it committed to trunk and let it chill for a while, let it hit random testing for a while, get used by adventurous users, and then make the decision?

asfimport commented 13 years ago

Simon Willnauer (@s1monw) (migrated from JIRA)

Why don't we get it committed to trunk and let it chill for a while, let it hit random testing for a while, get used by adventurous users, and then make the decision?

+1

asfimport commented 13 years ago

Simon Willnauer (@s1monw) (migrated from JIRA)

I don't really like the name IndexInputHandle what about

more ideas?

asfimport commented 13 years ago

Uwe Schindler (@uschindler) (migrated from JIRA)

I would also rename CFIndexInput to SliceIndexInput, it's private so does not matter, but wozuld be nice to have.

Otherwise I agree with committing to trunk. As far as I see, the format did not change in trunk, so once we get this back into 3.x we are at the state pre-revert?

asfimport commented 13 years ago

Simon Willnauer (@s1monw) (migrated from JIRA)

new patch, I renamed IndexInputHandle to IndexInputSlicer and made the createSlicer method public otherwise Directory impls outside of o.a.l.store can not delegate to it.

bq.I would also rename CFIndexInput to SliceIndexInput, it's private so does not matter, but wozuld be nice to have.

done

Otherwise I agree with committing to trunk. As far as I see, the format did not change in trunk, so once we get this back into 3.x we are at the state pre-revert?

yes that's true.

I think is ready to commit, if nobody objects I am going to commit this later today.

asfimport commented 13 years ago

Simon Willnauer (@s1monw) (migrated from JIRA)

I committed this to trunk. I will leave this issue open until we decide to backport to 3.x.

simon

asfimport commented 12 years ago

Robert Muir (@rmuir) (migrated from JIRA)

not a blocker, it was pulled from 3.x (and fixed in trunk)

asfimport commented 12 years ago

Simon Willnauer (@s1monw) (migrated from JIRA)

I am closing this - we are not backporting this to 3.x and its committed & stable on trunk