/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to doc/developers/performance.dot

  • Committer: Robert Collins
  • Date: 2007-09-19 05:14:14 UTC
  • mto: (2835.1.1 ianc-integration)
  • mto: This revision was merged to the branch mainline in revision 2836.
  • Revision ID: robertc@robertcollins.net-20070919051414-2tgjqteg7k3ps4h0
* ``pull``, ``merge`` and ``push`` will no longer silently correct some
  repository index errors that occured as a result of the Weave disk format.
  Instead the ``reconcile`` command needs to be run to correct those
  problems if they exist (and it has been able to fix most such problems
  since bzr 0.8). Some new problems have been identified during this release
  and you should run ``bzr check`` once on every repository to see if you
  need to reconcile. If you cannot ``pull`` or ``merge`` from a remote
  repository due to mismatched parent errors - a symptom of index errors -
  you should simply take a full copy of that remote repository to a clean
  directory outside any local repositories, then run reconcile on it, and
  finally pull from it locally. (And naturally email the repositories owner
  to ask them to upgrade and run reconcile).
  (Robert Collins)

* ``VersionedFile.fix_parents`` has been removed as a harmful API.
  ``VersionedFile.join`` will no longer accept different parents on either
  side of a join - it will either ignore them, or error, depending on the
  implementation. See notes when upgrading for more information.
  (Robert Collins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* ESTIMATES ARE VERY ROUGH APPROXIMATIONS */
 
2
strict digraph performance {
 
3
  rankdir=LR
 
4
  /* completed node list */
 
5
  node[color="green"];
 
6
  add_analysis[label="Work required analysis for add"];
 
7
  annotate_analysis[label="Work required analysis for annotate"];
 
8
  branch_analysis[label="Work required analysis for branch"];
 
9
  bundle_analysis[label="Work required analysis for creating a bundle"];
 
10
  commit_analysis[label="Work required analysis for commit"];
 
11
  fetch_analysis[label="Work required analysis for push/pull"];
 
12
  gc_analysis[label="Work required analysis for gc"];
 
13
  missing_analysis[label="Work required analysis for missing"];
 
14
  revert_analysis[label="Work required analysis for revert"];
 
15
  revert_path_analysis[label="Work required analysis for revert of selected paths"];
 
16
  status_analysis[label="Work required analysis for status"];
 
17
  uncommit_analysis[label="Work required analysis for uncommit"];
 
18
  wt_disk_order[label="Working Tree disk ordering\n6-8 weeks"];
 
19
  iter_merge[label="iter_changes based merge\n2 days"];
 
20
  diff_analysis[label="Work required analysis for diff"];
 
21
 
 
22
  /* uncompleted node list - add new tasks here */
 
23
  node[color="blue"];
 
24
  log_analysis[label="Work required analysis for log"];
 
25
  log_path_analysis[label="Work required analysis for log of selected paths."];
 
26
  diff_path_analysis[label="Work required analysis for diff of selected paths"];
 
27
  merge_analysis[label="Work required analysis for merge"];
 
28
  update_analysis[label="Work required analysis for update"];
 
29
  cbranch_analysis[label="Work required analysis for cbranch"];
 
30
 
 
31
  add_api_stack[label="Targeted API stack for add"];
 
32
  branch_api_stack[label="Targeted API stack for branch"];
 
33
  bundle_api_stack[label="Targeted API stack for creating a bundle"];
 
34
  annotate_api_stack[label="Targeted API stack for annotate"];
 
35
  status_api_stack[label="Targeted API stack for status"];
 
36
  commit_api_stack[label="Targeted API stack for commit"];
 
37
  fetch_api_stack[label="Targeted API stack for push/pull"];
 
38
  log_api_stack[label="Targeted API stack for log"];
 
39
  log_path_api_stack[label="Targeted API stack for log of selected paths."];
 
40
  diff_api_stack[label="Targeted API stack for diff"];
 
41
  gc_api_stack[label="Targeted API stack for gc"];
 
42
  revert_api_stack[label="Targeted API stack for revert"];
 
43
  revert_path_api_stack[label="Targeted API stack for revert of selected paths"];
 
44
  merge_api_stack[label="Targeted API stack for merge"];
 
45
  uncommit_api_stack[label="Targeted API stack for uncommit"];
 
46
  missing_api_stack[label="Targeted API stack for missing"];
 
47
  update_api_stack[label="Targeted API stack for update"];
 
48
  cbranch_api_stack[label="Targeted API stack for cbranch"];
 
49
 
 
50
  data_collation[label="Stream API for inserting/obtaining revision data.\n1 month"];
 
51
  repository_stacking[label="Repository stacking API\n2 months"];
 
52
  new_container[label="New container format\n2 weeks"]
 
53
  xdelta[label="Xdelta sanity/learning\n2 weeks"];
 
54
  xdelta_imp[label="Xdelta implementation\n1 week"];
 
55
  q_splitting[label="Question radix directory splitting\n2 weeks"];
 
56
  i_splitting[label="Inventory storage changed to answer what-changed quickly\n6-8 weeks"]
 
57
  per_file_graph[label="Provide an API for per-file\n graph data rather than\n physical storage coupled knits api.\n1 days"];
 
58
  deprecate_versionedfile_api[label="Deprecate the public API for access to physical knit storage."];
 
59
  anno_cache[label="Annotations become a cache:\n logically separate data\n2 weeks"]
 
60
  anno_regen[label="Annotation regeneration\n"];
 
61
  anno_kinds[label="Different styles of annotation"];
 
62
  memory_copies[label="Stop requiring full memory copies of files"];
 
63
  repo_disk_order[label="Repository disk ordering\n1 month"];
 
64
  pack_repository[label="Pack based repository format"];
 
65
  graph_api[label="Network-efficient revision-graph API\n3 week"];
 
66
  validators[label="Build new validators for revisions and trees."];
 
67
 
 
68
  /* under discussion/optional */
 
69
  node[color="yellow"];
 
70
  hash_names[label="Use hashes as names for some objects\n(to reduce tracking metadata and ease interoperability."];
 
71
  gdfo_api[label="GDFO API\n1 day"];
 
72
  gdfo_cache[label="GDFO Cache\n1 week"];
 
73
  gdfo_usage[label="GDFO Usage\n3 days"];
 
74
 
 
75
  /* dependencies */
 
76
  gc_analysis -> gc_api_stack;
 
77
  gdfo_api -> gdfo_cache;
 
78
  gdfo_api -> gdfo_usage;
 
79
  xdelta -> xdelta_imp;
 
80
  q_splitting -> i_splitting;
 
81
  per_file_graph -> deprecate_versionedfile_api;
 
82
  anno_regen -> anno_kinds;
 
83
  anno_cache -> anno_regen;
 
84
  add_analysis -> add_api_stack;
 
85
  annotate_analysis -> annotate_api_stack -> anno_cache;
 
86
  annotate_api_stack -> per_file_graph -> graph_api;
 
87
  annotate_api_stack -> memory_copies;
 
88
  annotate_api_stack -> hash_names;
 
89
  branch_analysis -> branch_api_stack -> repository_stacking;
 
90
  branch_api_stack -> memory_copies;
 
91
  bundle_analysis -> bundle_api_stack -> data_collation;
 
92
  bundle_api_stack -> repository_stacking;
 
93
  bundle_api_stack -> validators;
 
94
  bundle_api_stack -> graph_api;
 
95
  bundle_api_stack -> memory_copies;
 
96
  bundle_api_stack -> new_container;
 
97
  bundle_analysis -> hash_names;
 
98
  cbranch_analysis -> cbranch_api_stack;
 
99
  commit_analysis -> commit_api_stack -> data_collation;
 
100
  commit_api_stack -> per_file_graph;
 
101
  commit_api_stack -> validators;
 
102
  commit_api_stack -> memory_copies;
 
103
  commit_api_stack -> hash_names;
 
104
  diff_analysis -> diff_api_stack;
 
105
  diff_api_stack -> memory_copies;
 
106
  diff_path_analysis -> diff_api_stack -> i_splitting;
 
107
  diff_api_stack -> hash_names;
 
108
  fetch_analysis -> fetch_api_stack -> data_collation;
 
109
  fetch_api_stack -> repository_stacking;
 
110
  fetch_api_stack -> graph_api;
 
111
  fetch_api_stack -> memory_copies;
 
112
  fetch_api_stack -> hash_names;
 
113
  repository_stacking -> graph_api;
 
114
  hash_names -> i_splitting;
 
115
  log_analysis -> log_api_stack -> i_splitting;
 
116
  log_path_analysis -> log_path_api_stack;
 
117
  log_path_api_stack -> per_file_graph;
 
118
  merge_analysis -> merge_api_stack -> iter_merge -> i_splitting;
 
119
  merge_api_stack -> memory_copies;
 
120
  missing_analysis -> missing_api_stack -> repository_stacking;
 
121
 missing_api_stack -> graph_api;
 
122
  new_container -> pack_repository;
 
123
  pack_repository -> xdelta_imp;
 
124
  pack_repository -> repo_disk_order;
 
125
  per_file_graph -> hash_names;
 
126
  repository_stacking -> pack_repository;
 
127
  repository_stacking -> new_container;
 
128
  revert_analysis -> revert_api_stack -> data_collation;
 
129
  revert_path_analysis -> revert_path_api_stack;
 
130
  revert_api_stack -> memory_copies;
 
131
  status_analysis -> status_api_stack;
 
132
  status_api_stack -> memory_copies;
 
133
  uncommit_analysis -> uncommit_api_stack -> data_collation;
 
134
  uncommit_api_stack -> graph_api;
 
135
  update_analysis -> update_api_stack;
 
136
  update_api_stack -> memory_copies;
 
137
}