From: Daniel.Thibault@drdc-rddc.gc.ca (Thibault, Daniel)
Subject: [lttng-dev] Integration of the state history system in LTTv
Date: Fri, 27 Jan 2012 10:01:54 -0500 [thread overview]
Message-ID: <3CA1A65C03C1A34C81BBC6272782E696808940@valcartierex01.valcartier.drdc-rddc.gc.ca> (raw)
In-Reply-To: <mailman.98.1327621654.1530.lttng-dev@lists.lttng.org>
> * 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/>
next parent reply other threads:[~2012-01-27 15:01 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <mailman.98.1327621654.1530.lttng-dev@lists.lttng.org>
2012-01-27 15:01 ` Thibault, Daniel [this message]
2012-01-27 17:50 ` Alexandre Montplaisir
2012-01-26 23:46 Simon Marchi
2012-01-27 1:14 ` Alexandre Montplaisir
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3CA1A65C03C1A34C81BBC6272782E696808940@valcartierex01.valcartier.drdc-rddc.gc.ca \
--to=daniel.thibault@drdc-rddc.gc.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox