: I have an index that is updated fairly frequently (every few seconds), and
: I'm replicating to several slave servers.

how often do you replicate?

: I was wondering if it make sense to replicate to a slave instance, optimize
: it there, and then distribute the optimized index from the first level
: slave?

I think that could work assuming you run snappuller from the "master" to
the intermediate "slave" infrequently enough ... but you'd have to really
be careful that optimize never runs longer then your snappuller
interval or you could get a nasty collision ... when you tell Solr to
update/optimize an index, it assumes it's hte only thing writing to that
directory (which makes sense on a master) and when you run snapinstaller
it assumes it's the only thing modifying that directory (which makes sense
on a slave) ... i don't imagine those two will play very nicely with
eachother if they collide.

My advice: don't worry about having optimized indexes if you're really
updateing continously every few seconds (if there is downtime once a day
or week when you get no updates for a little while, optimize then)

If you find the performance of an unoptimized index is really bad in some
use cases, it's likely a code path in Lucene that no one has ever bothered
trying to optimize, and the time you spend getting your system to optimize
continuously might be better spent helping to improve the slow code path
in lucene :)


-Hoss

Reply via email to