pcp
[Top] [All Lists]

Re: [RFC] dynamic container switching

To: Nathan Scott <nathans@xxxxxxxxxx>
Subject: Re: [RFC] dynamic container switching
From: fche@xxxxxxxxxx (Frank Ch. Eigler)
Date: Thu, 15 Oct 2015 11:48:15 -0400
Cc: PCP <pcp@xxxxxxxxxxx>
Delivered-to: pcp@xxxxxxxxxxx
In-reply-to: <1539031958.54854689.1444886520071.JavaMail.zimbra@xxxxxxxxxx> (Nathan Scott's message of "Thu, 15 Oct 2015 01:22:00 -0400 (EDT)")
References: <1313883527.54143616.1444783810135.JavaMail.zimbra@xxxxxxxxxx> <1539031958.54854689.1444886520071.JavaMail.zimbra@xxxxxxxxxx>
User-agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux)
nathans wrote:

> [...]  One relatively straight forward approach to improving things
> would be to allow clients to (optionally) change the container
> associated with a given context at any time after context creation.

For highly asynchronous continuation-based systems like
vector/javascript, this newly stateful pmwebapi context# would be a
complication.  It means that operations on a shared context would have
to be precluded or carefully sequentialized, since the (new)
change-context and (old) normal-fetch operations must now be
atomically paired.

At the moment, the same context# can be reused concurrently (ignoring
indom profiles).  This change may require vector to use numerous
pmwebapi contexts (for concurrency control), in which case we would
not really save anything.


> [...] I've looked into extending that idea so that it becomes a
> pmStore(3)-able metric.  [...]

While pmStore exists, its current access control mechanism
(/etc/pcp/pmcd.conf) is such a blunt instrument that IMHO we
need to revisit that before relying on it further.  It's not
that the pure context self-modification is risky - it's that
this mechanism would encourage us to open (allow "*": all)
up pmcd.conf, which would open up all the other pmdas.

Have you considered extending PMAPI formally, maybe adding
an attribute-string spec to pmFetch (which could include the
container=XXXX stuff)?


- FChE

<Prev in Thread] Current Thread [Next in Thread>