Ich habe hier folgende Informationen gefunden .
Das Modul snmp_index implementiert einen Abstract Data Type (ADT) für eine SNMP-Indexstruktur für SNMP-Tabellen. Sie ist als ets-Tabelle des Datentyps 'order_set' implementiert, dh alle Operationen sind O (log n). In der Tabelle ist der Schlüssel ein ASN.1 OBJECT IDENTIFIER.
Dieser Index wird verwendet, um die Implementierung der SNMP-Reihenfolge von der tatsächlichen Implementierung der Tabelle zu trennen. Die SNMP-Reihenfolge, dh die Implementierung von GET NEXT, ist in diesem Modul implementiert.
Angenommen, es gibt eine SNMP-Tabelle, die am besten in Erlang als ein Prozess pro SNMP-Tabellenzeile implementiert wird. Angenommen, der INDEX in der SNMP-Tabelle ist ein OCTET STRING. Die Indexstruktur würde wie folgt erstellt:
snmp_index:new(string)
Für jeden neuen Prozess, den wir erstellen, fügen wir ein Element in eine snmp_index-Struktur ein:
new_process(Name, SnmpIndex) -> Pid = start_process(), NewSnmpIndex = snmp_index:insert(SnmpIndex, Name, Pid), <...>
Mit dieser Struktur können wir nun einen OBJECT IDENTIFIER in zB einer GET NEXT-Anfrage dem richtigen Prozess zuordnen:
get_next_pid(Oid, SnmpIndex) -> } = snmp_index:get_next(SnmpIndex, Oid), Pid.
Zusammen mit den Informationen, die ich kenne, und den Informationen, die ich im vorherigen Zitat erhalten habe, bin ich der Meinung, dass die SNMP-Indizes nicht geändert werden sollten, da dadurch der Zweck eines Index zerstört würde (korrigieren Sie mich, wenn ich falsch liege).
UPDATE: So wie ich es sehe, ist ein SNMP-Index einem Datenbankindex ähnlich, er indiziert jedoch Netzwerkgeräte als Referenz. Der Index sollte sich nur dann ändern, wenn Hardware entfernt oder hinzugefügt wird. Sie möchten nicht, dass sich Datenbankindizes für einen vorhandenen Datensatz ändern, da dies zu Duplikaten oder anderen Problemen führen kann. Vielleicht könnte jemand diese Frage mit einer anderen Antwort oder einem Kommentar beleuchten. Ich weiß viel über das Networking, aber ich habe noch nie etwas von SNMP-Eigenheiten gehört. Ich habe dies etwa eine Stunde lang gegoogelt und nichts anderes als die bereits erwähnte Webseite und die Wiki-Seite gefunden .