управлять кешем информации о домене экземпляра для 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.