rpc.kstatd: Remote Kstat Access Service [PSARC/2008/502 FastTrack timeout 08/13/2008]

James Carlson james.d.carlson at sun.com
Thu Aug 7 11:48:18 PDT 2008


Erik O'Shaughnessy writes:
> > As long as there's no identification of the specific data needed,
> > there's no good way to enumerate what needs to be nailed down.  Either
> > the documentation for this new feature needs to point out the risks
> > inherent in relying on the data without specific documentation of the
> > stability of the kstats in use, or a different solution is needed.
> 
> I have no problem with documenting that "Here there be dragons" in the  
> man page for rpc.kstatd ( or where ever else it is deemed appropriate ).

I think you're headed down a blind alley, but as long as you can point
out these factors in the documentation, I'm happy:

  - Most kstats are intentionally undocumented implementation
    artifacts.  This means that they may change at any time, and
    without warning, including in bug fix patches.  (A few kstats
    *are* explicitly documented as having some stability.)

  - The protocol provides no means for versioning between the
    implementation that defines a given kstat and the client that may
    be consuming it.  Since different hosts on a network may be at
    different patch levels (or entirely different releases), and since
    there's no way to attribute a version to a kstat definition,
    there's no _reliable_ way to detect or handle incompatibilities.

  - Applications built on implementation artifacts without sufficient
    means in place to handle changes may break at any time, and such
    breakage would ordinarily not be considered a bug in the system
    supplying the kstats.

  - Some of the libkstat interfaces may now return new errors related
    to network failures (such as having the target system be
    unreachable) that don't exist with local kstats.  Some networking
    failures (such as a reboot between snapshots) may be undetectable
    by the underlying transport, which means that applications may see
    statistics that move backwards over time.

  - Obviously, all of this is highly Sun-specific and not portable in
    any sense.

Whether someone can convince the kstat suppliers to hold enough stable
to make this useful for some application is perhaps an issue for some
other project.

For what it's worth, the lack of "simplicity" in SNMP is due at least
in part to the sorts of issues above.  Putting raw kstats on the wire
is a nifty hack, but I don't think it's a sufficient way to build
reliable administrative applications.

-- 
James Carlson, Solaris Networking              <james.d.carlson at sun.com>
Sun Microsystems / 35 Network Drive        71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677



More information about the opensolaris-arc mailing list