Versioning may be utilized in a knowledge base decision tree in order to
provide several useful features. To accomplish this, when a decision tree
is traversed, the decision tree representing a knowledge base and having
non-leaf nodes with one or more branches representing possible symptoms,
and leaf nodes with no branches, branches may be followed corresponding
to symptoms experience by the application until a leaf node is reached.
This traversal may be recorded as a version, with subsequent traversals
having a different version. This allows a user to rerun performance
tuning either from the beginning or from an earlier node without having
to re-enter information already provided. It also allows a user to resume
the performance tuning should he be interrupted in the middle, such as by
a crash or by having to halt a long traversal.