On Fri, Jun 08, 2007 at 06:13:51AM -0400, John Bachir wrote: > <shameless thread bump/>
yeah, that's ok, I still didn't catch up with the list ;-) > Jens, any thoughts on this? see below. > > > 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 ;-) If it is really critical for you to have all records indexed and relying on the timestamps is a no-go you'll have to implement your own synchronisation mechanism, maybe with checking for a running rebuild on each index update, and recording the corresponding records somewhere for later indexing. > > [2] Is the behavior described in the Drb Server documentation > > different from AAF when not using the Drb Server? Without the DRb server aaf won't use index versions but will re-build the index in place. I didn't introduce the versioning there because the usual non-DRb-scenarios (test cases and development system) don't require it. With non-DRb-Multi-Process-Scenarios it would be hard to implement anyway. Jens -- Jens Krämer webit! Gesellschaft für neue Medien mbH Schnorrstraße 76 | 01069 Dresden Telefon +49 351 46766-0 | Telefax +49 351 46766-66 [EMAIL PROTECTED] | www.webit.de Amtsgericht Dresden | HRB 15422 GF Sven Haubold, Hagen Malessa _______________________________________________ Ferret-talk mailing list [email protected] http://rubyforge.org/mailman/listinfo/ferret-talk

