I wonder if you didn't make a mistake in your timing of IDS.
In my timing of IDS versus InventoryDelta for bzrtools, it was more:
15.8s time wbzr push -d bzrtools bzr://localhost/test-2a/bzrt
19.1s time wbzr push -d bzrtools test-2a/bzrt
Which shows that IDS was actually *slower* than pushing using InventoryDelta over the local loopback.
Given the numbers you quote, 1m is *much* closer to just the simple:
bzr init-repo --1.9 test-19
bzr branch ../bzr/bzr.dev test-19/bzr
Which would be the simple non-converting time.
I'll be running a couple more tests to see if the new refactoring of IDS that you've done has made anything slower, but at least at a first glance the only thing I could find that would be better with IDS is that it doesn't have a second pass over all inventories in order to generate the root texts keys. And that certainly wouldn't explain 9.5m => 1.0m.
I suggest you run your timing test again, and make sure you've set everything up correctly.
I at least thought my laptop was faster than yours, though I'm on Windows and you may have upgraded your laptop since then.
$ time wbzr push -d ../bzr/bzr.dev -r 2000 bzr://localhost/test-2a/bzr -DIDS:never
real 4m32.578s
This is 4m32s down from 11m12s for IDS (file:// to file://). Maybe something did get broken. I'll be running some more tests.
> John A Meinel wrote:
> [...]
> > So do I understand correctly that:
> >
> > IDS => bzr:// ~30min
> > InventoryDelta => bzr:// 9.5min
> > IDS => file:// < 1min
>
> Also:
>
> InventoryDelta => file:// ~9.5min
>
> (Timings are intentionally a bit approximate, I haven't kept my laptop
> perfectly
> idle while running these tests, etc.)
>
> -Andrew.
So something isn't quite right with my timings as:
wbzr init-repo --2a test-2a
time wbzr push -d ../bzr/bzr.dev -r 2000 test-2a/bzr -DIDS:always
11m12.889s
I wonder if you didn't make a mistake in your timing of IDS.
In my timing of IDS versus InventoryDelta for bzrtools, it was more:
15.8s time wbzr push -d bzrtools bzr://localhost /test-2a/ bzrt
19.1s time wbzr push -d bzrtools test-2a/bzrt
Which shows that IDS was actually *slower* than pushing using InventoryDelta over the local loopback.
Given the numbers you quote, 1m is *much* closer to just the simple:
bzr init-repo --1.9 test-19
bzr branch ../bzr/bzr.dev test-19/bzr
Which would be the simple non-converting time.
I'll be running a couple more tests to see if the new refactoring of IDS that you've done has made anything slower, but at least at a first glance the only thing I could find that would be better with IDS is that it doesn't have a second pass over all inventories in order to generate the root texts keys. And that certainly wouldn't explain 9.5m => 1.0m.
I suggest you run your timing test again, and make sure you've set everything up correctly.
I at least thought my laptop was faster than yours, though I'm on Windows and you may have upgraded your laptop since then.
$ time wbzr push -d ../bzr/bzr.dev -r 2000 bzr://localhost /test-2a/ bzr -DIDS:never
real 4m32.578s
This is 4m32s down from 11m12s for IDS (file:// to file://). Maybe something did get broken. I'll be running some more tests.