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

Reply via email to