On 08/03/2009 08:21 AM, Earwin Burrfoot wrote:
The biggest win for NRT was switching to per-segment Collector because
that meant we could re-use FieldCache entries for all segments that
hadn't changed.
In my opinion, this switch was enough to get as NRT-ey, as you want.
Fusing IR/IW together makes Lucene a great deal more complicated and
just a milli-tad closer to RT.

I'm curious as to how it obviates the need for a RAM dir?
In my use case I use them to create indexes and perform searches.
In the latter it avoids OS file indexing and virus scanner contention (40 min reduced to less than 2 min).
Isn't indexing your indexes (omg), checking them for viruses and
striving for performance is ..err.. a little bit self-contradictary?
Our app is a desktop app, where we don't have control over the user's environment. Using a RAM dir is a good way to side-step the OS over-zealousness.

To be specific, MS Windows with virus scanning and fast file indexing turned off, dropped Lucene indexing from 40 to 4minutes. I can't recommend to end users to turn off virus scanning while building an index. In this case the VS was Norton. Using McAfee was not as bad. And some of the free scanners were not as bad either. But still in the unacceptably long range.

Using a RAM dir the indexing performance is independent of the user's setup.