pcp
[Top] [All Lists]

Re: [pcp] Culling code from libpcp

To: kenj@xxxxxxxxxxxxxxxx
Subject: Re: [pcp] Culling code from libpcp
From: Max Matveev <makc@xxxxxxxxx>
Date: Wed, 5 May 2010 20:09:49 +1000
Cc: pcp@xxxxxxxxxxx
In-reply-to: <1273009170.22330.53.camel@xxxxxxxxxxxxxxxx>
References: <1273009170.22330.53.camel@xxxxxxxxxxxxxxxx>
On Wed, 05 May 2010 07:39:30 +1000, Ken McDonell wrote:

 kenj> I'm suggesting that we remove all the asynchronous PMAPI extensions from
 kenj> libpcp as part of a PCP 4.0 goal.
This is a provocation, nay, this is a casus belli, or maybe just a
Wednesday with its bugs.

 kenj> 2. the routines are not used by pmchart
Which is probably a fault of pmchart, neh?

 kenj> 3. the implementation is incomplete ... man pages exist for at least the
 kenj> following but there is no code in libpcp to implement these functions:
 kenj> pmRequestStore, pmRequestNamesOfChildren (oddly,
 kenj> pmReceiveNamesOfChildren is in the library!), pmRequestNameAll,
 kenj> pmReceiveStore and pmReceiveNameAll.
pmRequestNamesOfChildren is in the library too but misspelt slightly.

 kenj> 4. the last time I raised this question, the only justification for
 kenj> these routines was suggest by Max to be ... "when collecting metrics
 kenj> from multiple hosts I cannot afford for TCP to pick its nose when one of
 kenj> the hosts go down".  But I can find no evidence of any application that
 kenj> actually uses these routines to deal with the "one of many hosts may be
 kenj> down" scenario, and indeed the cluster PMDA which might be a candidate
 kenj> does not use the pmRequest*/pmReceive* family of routines.
Once again, maybe it says something about cluster pmda and how naive
its implementation is, although if we're talking about pmclusterd,
IIRC it was written using push model.

 kenj> 5. there is zero QA coverage for the asynchronous routines (I was
 kenj> recently doing some gcov analysis in pmns.c which brings this issue into
 kenj> stark relief and triggered this mail).
pmns side was the most troublesome (worse then connection
establishment) to split into request/response parts, every other
synchronous API routine was re-written to use two parts of async
routines and as such should be well covered by PCP QA.

 kenj> So unless someone can come up with a real use case and someone steps up
 kenj> to help with the QA coverage of these routines I am strongly suggesting
 kenj> that they be expunged at the next really major release, i.e. 4.0
As gnb said, we do have a process which uses async API in real life.

And mort should check withing SGI is nasmgr is still alive - it used
to use this API.

So, what's the real issue? Lack of QA coverage or code bloat?

max

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