Activity log for bug #402652

Date Who What changed Old value New value Message
2009-07-21 18:06:56 John A Meinel bug added bug
2009-07-21 18:08:11 John A Meinel summary smart fetch for --2a does not opportunistically pack smart fetch for --2a does not opportunistically combine groups
2009-07-21 18:08:39 John A Meinel tags 2a
2009-08-14 02:56:09 Robert Collins bzr: importance Medium High
2009-08-14 03:00:42 Robert Collins bzr: milestone 2.0
2009-08-27 01:03:47 Robert Collins bzr: importance High Critical
2009-08-31 01:06:39 Robert Collins bzr: assignee Robert Collins (lifeless)
2009-08-31 07:35:13 Martin Pool bzr: status Triaged In Progress
2009-09-01 06:47:37 Robert Collins bzr: status In Progress Fix Committed
2009-09-01 06:48:06 Robert Collins branch linked lp:~lifeless/bzr/bug-402652
2009-09-03 03:59:35 Robert Collins bzr: status Fix Committed In Progress
2009-09-03 21:07:14 Launchpad Janitor branch linked lp:~jameinel/bzr/2.1b1-pack-on-the-fly
2009-09-04 04:06:33 Robert Collins nominated for series bzr/2.0
2009-09-04 04:06:33 Robert Collins bug task added bzr/2.0
2009-09-04 04:07:32 Robert Collins bzr: status In Progress Fix Released
2009-09-04 04:07:44 Robert Collins bzr/2.0: status New Fix Committed
2009-09-04 04:07:48 Robert Collins bzr/2.0: importance Undecided Critical
2009-09-04 04:14:42 Robert Collins description somewhat related to bug #402114 The current --2a fetching code is smart enough to fragment on demand. (So if you have a group of length 2MB and you only request the middle 10kB, it will create a new group on the fly containing only those bytes.) However, it is not smart enough to combine on the fly. So if you commit 9 times the same file content, you will end up with 9 fulltexts in various pack files. If you then fetch this, it will stream those 9 fulltexts into a new pack file, but will *leave* them as 9 fulltexts. Until the point where an autopack/manual pack decides to update that pack file. This has fairly strong implications for 'mirror' branches (especially of PQM branches). As the PQM will be creating lots of commits and loosely packed .pack files. Normally these would be cleaned up every 10 revs. However, if someone fetches everything inbetween autopacks, they will fetch the loose packs into a single (but still not optimally compressed) pack. And the autopack on the new location will be deferred until much later, because the number of revisions present in the mirror location. One possibility is for the 'get_record_stream()' code to see that we are requesting several blocks that all seem like they would fit very well as a single larger block. This has the potential to reduce network I/O and improve disk layout, at the cost of more CPU on the server. Note that aside from bug #402645 which (injecting too much fragmentation from an optimally packed source) doing a 'bzr pack' on the effected repositories should help minimize the impact of this. Summary ======= Bzr versions 1.16/1.17/1.18/2.0rc1 will fragment 2a repositories as they fetch them. Symptoms ======== When fetching from a 2a repository, the target repository is much bigger than the source - a factor of three has been observed. Workarounds =========== None Rectification ============= Bzr 2.0rc2 and 2.1 and above will repack content as needed during fetches, which prevents this happening.
2009-09-04 07:24:41 Robert Collins bzr/2.0: status Fix Committed Fix Released
2009-10-14 20:21:11 John A Meinel bzr/2.0: milestone 2.0.0