I'm suggesting that we remove all the asynchronous PMAPI extensions from
libpcp as part of a PCP 4.0 goal.
This mail is intended to trigger discussion on that suggestion.
The motivation is ...
1. the routines are not used by any PMAPI client in the open source
version of PCP
2. the routines are not used by pmchart
3. the implementation is incomplete ... man pages exist for at least the
following but there is no code in libpcp to implement these functions:
pmRequestStore, pmRequestNamesOfChildren (oddly,
pmReceiveNamesOfChildren is in the library!), pmRequestNameAll,
pmReceiveStore and pmReceiveNameAll.
4. the last time I raised this question, the only justification for
these routines was suggest by Max to be ... "when collecting metrics
from multiple hosts I cannot afford for TCP to pick its nose when one of
the hosts go down". But I can find no evidence of any application that
actually uses these routines to deal with the "one of many hosts may be
down" scenario, and indeed the cluster PMDA which might be a candidate
does not use the pmRequest*/pmReceive* family of routines.
5. there is zero QA coverage for the asynchronous routines (I was
recently doing some gcov analysis in pmns.c which brings this issue into
stark relief and triggered this mail).
So unless someone can come up with a real use case and someone steps up
to help with the QA coverage of these routines I am strongly suggesting
that they be expunged at the next really major release, i.e. 4.0