On 8/17/07, Eric Gillespie <epg@pretzelnet.org> wrote:
> "David Glasser" <glasser@davidglasser.net> writes:
> > Is this a common Pythonism? "if skipped == 0: os.rmdir(tmp)" certainly
> > makes me think less. Also, the log message implies that parallel
> > reshardings are reasonable, but it doesn't seem to me that this will
> > work (it definitely will be strange if the parallel reshardings would
> > affect the same shard, but even if they are building distinct shards,
> > this loop doesn't make sure that the shard it is installing is in the
> > range that it processed, so it might install an incomplete shard from
> > another process).
>
> It works if your parallel jobs are using the correct ranges, as
> mine do. We should add a check to ensure this.
Hmm, are you sure? Here's how I read it. Assume we're moving from
linear to sharded size 1000; we run one copy on 0-1999 and one on
2000-4999, so that the first one is making shards 0 and 1, and the
second is making shards 2 3 and 4. Let's say the first one completes
while the second is still filling up db/revs.reshard/4.shard. The
first process will happily move all five *.shard directories into
db/revs and delete db/revs.reshard even while the second process is
still filling 4.shard.
I haven't tested this, but that's what the code looks like to me... if
you don't see it, I'll try to reproduce it.
--dave
--
David Glasser | glasser_at_davidglasser.net | http://www.davidglasser.net/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Aug 18 05:08:32 2007