Skip to main content

Module history_cache

Module history_cache 

Source
Expand description

HistoryCache — geordnete Sample-Ablage fuer Reliable Writer/Reader.

DDSI-RTPS 2.5 §8.4.8. Beide Seiten (Writer + Reader) halten je eine eigene Cache-Instanz:

  • Writer-Cache: per write() abgelegte CacheChanges, aus denen auf AckNack-Request hin re-gesendet wird. Entfernt Samples erst, wenn alle matched Reader sie via AckNack bestaetigt haben.
  • Reader-Cache: empfangene CacheChanges in SN-Reihenfolge, fuer in-order Delivery an die Applikations-Schicht. Kann via remove_up_to nach Delivery geleert werden.

History-QoS (WP 1.4 T3-Follow-up): der Cache wird ueber HistoryKind konfiguriert — KeepAll (hart-begrenzt, Error bei Overflow) vs. KeepLast(depth) (Ring-Buffer, aeltestes Sample faellt bei Overflow heraus). KeepLast ist Spec-gerecht (§8.7.4) und entkoppelt Writer-Cache-GC von Reader-ACKNACK-Progress — ein stalled Reader verhindert damit nicht mehr, dass andere Reader weitere Samples bekommen (“per-destination queue”-Modell).

Structs§

CacheChange
Einzelner Cache-Eintrag.
HistoryCache
Geordnete Sample-Ablage.
HistoryCacheSnapshot
Plain-Old-Data-Snapshot der HistoryCache-Statistiken zu einem einzelnen Zeitpunkt. Wird von HistoryCacheStats::snapshot erzeugt; jede Komponente ist mit Acquire-Ordering geladen.
HistoryCacheStats
Atomar-aktualisierte Snapshot-Statistik eines HistoryCache.
LockFreeInner
Innerer Zustand des LockFreeReadHistoryCache. Wird von LockFreeReadHistoryCache::snapshot als Arc<LockFreeInner> nach aussen gegeben — Reader iterieren ueber changes direkt.
LockFreeReadHistoryCache
HistoryCache-Variante mit lock-free Lese-Pfad via RCU/Copy-on-Write.

Enums§

CacheError
Fehler-Varianten fuer Cache-Operationen.
ChangeKind
Art eines Cache-Eintrags (DDSI-RTPS §8.2.1.2 / §8.7.2.2.2).
HistoryKind
History-QoS (DDSI-RTPS §8.7.4, Spec Table 17).