A generalized methodology for building work units or generating reports based on hierarchical structures. (SelectiveTree reporting algorithm)
Original Publication Date: 2004-Jun-03
Included in the Prior Art Database: 2004-Jun-03
In many cases, including performance analysis, the intrinsic structure of collected data is in the form of a tree. Generating reports of this data involves traversal of the tree or selected subsets of the tree. There are times when it is useful to gather information from a tree by selecting the levels of a tree in a specified order. Disclosed is a method for identifying the levels and collecting the information in a generic manner. We also describe a flexible approach of select only the reports desired rather than hard coding a large more comprehensive set. Thus a user can tailor her output to exactly what she wants rather than selecting out from a larger more general output set. This approach can be applied as one step in a pipeline of steps which use this information.
A generalized methodology for building work units or generating reports based on hierarchical structures. (SelectiveTree reporting algorithm )
As an example of this approach consider our "Tprof" tool which is available in the open source Performance Inspector(*) project available on DeveloperWorks ( http://www-124.ibm.com/developerworks/oss/pi/index.html). Tprof data is collected in a tree data base with the following hierarchy:
1) PID(P) for Process ID.
2) TID(T) for ThreadID
3) MOD(M) for Module or Executable
4) SYM(S) for Symbol/Function/Method in the executable
5) Count(C): Count of occurrence of this unique path.
Previous approaches have determined which views of the data were desired and hard coded those reports. Here we describe a generic, data driven approach that can provide as few or as many reports as desired, each with a different ordering of the data.
We refer to a report by a list of characters. For example for the report of PID, TID, MOD with appropriate counts is the PTM report. We provide a file as input where one report is defined per line. The following file create five reports.
P PT PTM MS MP
The tree database stores tprof ticks in a 5 tuple.
<P, T, M, S, C>;
For each report specification, the original database is traversed
completely. At each original leaf a corresponding traversal of the report
tree is executed. The original tick count is accumulated at the
leaves of the new tree.
DataBase tree of 5 leaves