~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/performance.dot

  • Committer: John Arbash Meinel
  • Date: 2005-09-15 21:35:53 UTC
  • mfrom: (907.1.57)
  • mto: (1393.2.1)
  • mto: This revision was merged to the branch mainline in revision 1396.
  • Revision ID: john@arbash-meinel.com-20050915213552-a6c83a5ef1e20897
(broken) Transport work is merged in. Tests do not pass yet.

Show diffs side-by-side

added added

removed removed

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