~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/performance-use-case-analysis.txt

  • Committer: Martin Pool
  • Date: 2007-06-15 07:01:24 UTC
  • mfrom: (2528 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2530.
  • Revision ID: mbp@sourcefrog.net-20070615070124-clpwqh5gxc4wbf9l
Merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
Analysing a specific use case
2
 
-----------------------------
 
2
=============================
3
3
 
4
4
The analysis of a use case needs to provide as outputs:
5
5
 * The functional requirements that the use case has to satisfy.
15
15
   should also be mentioned.
16
16
 
17
17
Performing the analysis
18
 
-----------------------
 
18
=======================
19
19
 
20
20
The analysis needs to be able to define the characteristics of the
21
21
involved disk storage and APIs. That means we need to examine the data
38
38
fine to post-process the annotated text to obtain dotted-revnos.'
39
39
 
40
40
What factors should be considered?
41
 
----------------------------------
 
41
==================================
42
42
 
43
43
Obviously, those that will make for an extremely fast system :). There
44
44
are many possible factors, but the ones I think are most interesting to
49
49
   - The time to get bzr ready to begin the use case.
50
50
 
51
51
- scaling: how does performance change when any of the follow aspects
52
 
   of the system are ratched massively up or down:
 
52
  of the system are ratched massively up or down:
53
53
 
54
54
   - number of files/dirs/symlinks/subtrees in a tree (both working and 
55
55
     revision trees)
71
71
   - bandwidth to the disk storage
72
72
   - latency to perform semantic operations (hpss specific)
73
73
   - bandwidth when performing semantic operations.
 
74
 
74
75
- locality of reference: If an operation requires data that is located
75
 
   within a small region at any point, we often get better performance 
76
 
   than with an implementation of the same operation that requires the
77
 
   same amount of data but with a lower locality of reference. Its 
78
 
   fairly tricky to add locality of reference after the fact, so I think
79
 
   its worth considering up front.
 
76
  within a small region at any point, we often get better performance 
 
77
  than with an implementation of the same operation that requires the
 
78
  same amount of data but with a lower locality of reference. Its 
 
79
  fairly tricky to add locality of reference after the fact, so I think
 
80
  its worth considering up front.
80
81
 
81
82
Using these factors, to the annotate example we can add that its
82
83
reasonable to do two 'semantic' round trips to the local tree, one to