DirState could use apply-delta to compute merge-parent-trees

Bug #784071 reported by John A Meinel
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bazaar
Confirmed
Wishlist
Unassigned

Bug Description

For many operations, bzr is now scaling at O(changes) which is a good place to be. One of the few obvious places where we are failing is when caching parent trees in the dirstate-file for non-basis trees. (get_parent_ids()[1:]).

At the moment, we call "set_parent_trees([basis_tree, new_merge_parent_tree])". The merge code has already been told to determine what needs changing in O(changes), so "new_merge_parent_tree" has not yet loaded its whole inventory.

For "dirstate2" we actually were thinking to stop caching those parents entirely. Which is certainly one method to get the performance we want.

Another option is that instead of walking the whole inventory to compute the dirstate, we can assume that entries in the new-parent column are identical to the basis column, except for the "delta" that gets supplied.

The main downside to implementing this, is that it is a fair amount of logic that needs to be worked out, with all of the potential for adding new bugs, etc. And if our plan is to just get rid of that column, then it doesn't continue to help. (The main benefit is we get the performance improvements without having to wait for a disk-format bump.)

Jelmer Vernooij (jelmer)
tags: added: check-for-breezy
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.