Re: Question on Iterator model without having to setup a linked list

Dave Shield <[email protected]>
Newsgroups gmane.network.net-snmp.user
Message-ID <[email protected]>
2009/7/1 May The Dog <[email protected]>:
> You system supports multiple network management protocols such as SNMP, TL1,
> Q3. CORBA, and has multiple element managers.

That's normal - even if it's only SNMP + cli tools.

>                       Then the container has to
> be refreshed for any GET and SET request

Not quite.

Looking at this from an SNMP viewpoint, the "container" is simply an internal
cache of information about some underlying subsystem.  (Be this the network
routing table, list of installed software, crispiness of slices of
toast, etc, etc)

GET-style requests can be served from this cache, as long as the data is
regarded as sufficiently accurate - i.e. unlikely to have changed significantly
since the cache was last loaded.   There's an obvious trade-off here - the
longer the cache timeout, then the more likely there's be some inconsistencies
between this data and the underlying subsystem.
  The shorter the timeout, then the higher the overheads in reloading the cache.


A SET request would typically invalidate the cache, so the next GET* request
would trigger a re-load automatically.


Extending this to handle multiple management routes, doesn't really change
the fundamental model.   In terms of monitoring requests, it doesn't actually
matter where these come from - the local cache (or equivalent) would still be
valid.
   The problems really only arise with respect to active management requests
(i.e. SET-equivalent).   Again, you have to make the trade-off between accuracy
and efficiency.

One possible other approach would be some form of signalling mechanism,
so that an SNMP SET request would also be reported to your other management
services (so that they can also invalidate their local caches).   And
vice versa.
   But this would requires cross-configuration between the individual management
systems, so that they know about each other, and how to pass this information.


Another alternative would be a "semi-cache" approach, where the underlying
subsystem has some indication of when the basic row data was last changed
(via *any* management route).  An incoming request would trigger a check of
this timestamp, to see whether the internal cache was valid or not.

  This might require some instrumentation of each of the management protocol
modules for this subsystem, but wouldn't require any form of
cross-communication.

There's also a slight overhead in checking the "external cache flag"
(rather than
an internal one),  but that would presumably be quicker than
re-loading the full data.

Dave

------------------------------------------------------------------------------
_______________________________________________
Net-snmp-users mailing list
[email protected]
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.