[lttng-dev] Integration of the state history system in LTTv
Thibault, Daniel
Daniel.Thibault at drdc-rddc.gc.ca
Fri Jan 27 10:01:54 EST 2012
> * libState (or something like that)
>
> The libState library can be used to represent the current state of a
> system in the form of an attribute tree. An attribute is a mapping
> between a key (a string) and a value (generally a string, an integer
> or a null value). The attribute tree is analoguous to the structure of
> a filesystem, since an attribute can contain children attributes in
> addition to its own value. When the path of an attribute is specified,
> it can be either absolute or relative to another attribute.
>
> The possible operations on the attribute tree are:
> - Add a new attribute, specifying its value.
> - Change the value of an existing attribute.
> - Delete an attribute and all its descendants.
> - Get the parent attribute of an attribute.
> - Get the children attributes of an attribute, or their number.
> - Get the total number of attributes in the tree.
>
> libState is independent from LTTv, is not domain-specific, and could
> be packaged separately.
I suspect provision must be made for attributes that are arrays. For instance, any of the attributes of processors in a multi-processor system. Or is it expected to handle this by introducing a layer of index attributes? (e.g. /processor/0/attribute, processor/1/attribute, etc.)
> * libInterval (or something like that)
>
> The libInterval library can be used to represent and save an interval
> tree in memory or on disk. Each interval is characterized by begin and
> end timestamps, a value and a key.
>
> The possible operations on the interval tree are:
> - Add an interval, specifying its key, value and begin/end timestamp.
> - Lookup intervals that intersect a punctual time value.
> - Lookup an interval that intersects a punctual time value and that
> matches a given key.
>
> Due to the nature of the storage of the interval tree on disk,
> deletion of intervals probably won't be possible.
>
> Like libState, libInterface is indenpendent from LTTv, is not
> domain-specific, and could be packaged separately.
A distinction may need to be made between inclusive and exclusive bounds: e.g. the intervals [t1..t2], [t1..t2[, ]t1..t2] and ]t1..t2[ are all different from each other.
> * LTTv State module
>
> The State module's job is to receive attribute value changes and to
> store them to constantly maintain the current state of all attributes
> in the system. It also keeps the timestamp associated to the last
> state change of every attribute, so that when the state of an
> attribute changes, it is possible to create an interval for the
> previous value. It defines a hook (using the LTTv hook system) that is
> called every time the value of an attribute changes. The old and new
> values and the associated timestamps are passed as parameters to the
> callbacks. It offers a public API to other modules to send state
> changes and query current state values.
>
> The State module built around the libState library.
> * LTTv StateHistory module
>
> The StateHistory module's job is to record the state of the system for
> any moment of the time lapse of the trace. The state is represented by
> the combination of the values of all the attributes of the system. To
> do so, it hooks on State module's hook and creates an interval in the
> interval tree every time an attribute changes value. It offers a
> public API to other modules to get the value of any attribute or all
> available attributes at a given time.
>
> The StateHistory module is built around the libInterval library.
Daniel U. Thibault
R & D pour la défense Canada - Valcartier (RDDC Valcartier) / Defence R&D Canada - Valcartier (DRDC Valcartier)
Système de systèmes (SdS) / System of Systems (SoS)
Solutions informatiques et expérimentations (SIE) / Computing Solutions and Experimentations (CSE)
2459 Boul. Pie XI Nord
Québec, QC G3J 1X5
CANADA
Vox : (418) 844-4000 x4245
Fax : (418) 844-4538
NAC: 918V QSDJ
Gouvernement du Canada / Government of Canada
<http://www.valcartier.drdc-rddc.gc.ca/>
More information about the lttng-dev
mailing list