управлять кешем информации о домене экземпляра для PMDA (manage a cache of instance domain information for a PMDA)
Другие соображения (Other considerations)
When the pmdaCache
routines are used for particular instance
domain, pmdaInstance(3) and the instance domain enumeration
behind pmdaFetch(3) will attempt to extract instance domain
information from the cache, thereby avoiding reference to the
pmdaIndom
data structures that have historically been used to
define instance domains and service instance requests. A PMDA
can adopt a hybrid approach and choose to implement some instance
domains via the traditional pmdaIndom
method, and others via the
pmdaCache
approach, however attempts to manage the same instance
domain by both methods will result in the pmdaCache
method
silently prevailing.
If all
instances in a PMDA are to be serviced from a pmdaCache
then a pmdaIndom
is not required, and the pmdaInit(3) call
becomes
pmdaInit(dp, NULL, 0, metrictab, nmetrics);
However, the PMDA will need to explicitly initialize the indom
field of the pmDesc
in the metrictab entries, as this cannot be
done by pmdaInit(3) if indomtab is missing entries for the
instance domains maintained in the cache.
Independent of how the instance domain is being maintained, to
refresh an instance domain prior to a fetch or an instance domain
operation, the standard methods of a ``wrapper'' to the
pmdaInstance(3) and pmdaFetch(3) methods should be used.
Refer to the simple
PMDA source code for an example use of the
pmdaCache
routines.
When using pmdaCacheStoreKey
, if there is a desire to ensure the
given ``hint'' generates the same initial instance identifier
across all platforms, then the caller should ensure the endian
and word-size issues are considered, e.g. if the natural data
structure used for the key is an array of 32-bit integers, then
htonl(3) should be used on each element of the array before
calling pmdaCacheStoreKey
or pmdaCacheLookupKey
.