/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: John Arbash Meinel
  • Date: 2009-06-18 18:18:36 UTC
  • mto: This revision was merged to the branch mainline in revision 4461.
  • Revision ID: john@arbash-meinel.com-20090618181836-biodfkat9a8eyzjz
The new add_inventory_by_delta is returning a CHKInventory when mapping from NULL
Which is completely valid, but 'broke' one of the tests.
So to fix it, changed the test to use CHKInventories on both sides, and add an __eq__
member. The nice thing is that CHKInventory.__eq__ is fairly cheap, since it only
has to check the root keys.

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
}