Hey folks. Here's an update to my Super Duper Ferret Single Index Rebuild that we were discussing back in June.
On Jun 8, 2007, at 7:54 AM, Jens Kraemer wrote: > On May 31, 2007, at 2:30 PM, John Bachir wrote: > >> I am using AAF trunk, and I want a way to rebuild an index on a >> production site with little or no interruption to service. The Drb >> Server documentation* states that when an index is rebuilt, it is >> done in a separate location and then swapped into place when >> finished, and so to do a complete rebuild on a live site, one must >> take into consideration objects which have been created or modified >> in the meantime. To achieve this, I have come up with the following >> solution: >> >> http://pastie.textmate.org/66602 >> >> [1] Does this look like a complete solution? I suppose it relies on >> timestamp consistency between system components... it is possible >> that between setting "start = ..." and performing the rebuild, >> another thread in the system will have create an earlier timestamp >> for an object that did not get committed until after the rebuild >> began. Is it possible to do a perfect rebuild, or would that require >> building a layer of concurrency logic into AAF? > > The scenario you describe might happen and cause a record not to be > indexed, but I'd implement it just like you did. > > To be safe you can subtract a minute or so from your recorded start > time ;-) I've come up with this rake task: http://pastie.textmate.org/private/4xyk2o0obibzi2tmpbog Jens, what do you think? Anyone have any improvements to offer? Cheers, John _______________________________________________ Ferret-talk mailing list [email protected] http://rubyforge.org/mailman/listinfo/ferret-talk

