Libelektra: mmap: Umgebung im Wandel

Erstellt am 6. Apr. 2019  ·  4Kommentare  ·  Quelle: ElektraInitiative/libelektra

Als Fortsetzung von #1433 gehe ich davon aus, dass auch das mmap-Plugin betroffen ist. Angenommen, $HOME ändert sich und die neue Konfigurationsdatei ist auch älter als die mmap-Cache-Datei. Dann würde die Cache-Datei genommen, obwohl sie tatsächlich veraltet ist.

Ich erwarte nicht, dass wir das leicht beheben können, aber es wäre gut, wenn Sie die Anforderungen beschreiben könnten, die wir haben, damit solche Probleme nicht auftreten.

question

Alle 4 Kommentare

Du hast Recht, der Cache prüft derzeit nur die ENV in den Plugins kdbOpen. Es kann leicht dynamisch überprüft werden, aber dies ruft den Resolver auf und ich vermute, dass dies einige Auswirkungen auf die Leistung hat.

Bearbeiten: Nebenbei bemerkt: Die Konfiguration wird auf den genauen Zeitstempel überprüft (Nanosec-Granularität), aber das Problem besteht weiterhin und gilt auch für den Standardresolver .

Ein Workaround für genau diesen Fehler wäre, dass wir die aufgelösten Dateinamen auch im mmap-Cache speichern. Aber im Allgemeinen würde es nicht helfen, wir müssten irgendwie alle Variablen erfassen, die Einfluss haben könnten (oder die Verwendung von Umgebungsvariablen in unseren Plugins vermeiden, was sowieso die elegantere Lösung wäre).

An dieses Szenario habe ich nicht gedacht, aber tatsächlich speichern wir den aufgelösten Dateinamen im mmap-Cache. Wenn sich der Pfad ändert, würde dies einen Cache-Miss erzeugen.

Wenn sich $HOME jedoch ändert, während ein KDB-Handle geöffnet ist, würde es den Cache nicht in das neue Home verlagern.

An dieses Szenario habe ich nicht gedacht, aber tatsächlich speichern wir den aufgelösten Dateinamen im mmap-Cache. Wenn sich der Pfad ändert, würde dies einen Cache-Miss erzeugen.

Perfekt! Dies ist sowieso der wichtigste Fall. Afaik haben wir derzeit keine Umgebungsvariablen außer den Resolvern. (Allerdings haben nicht alle Umgebungsvariablen tatsächlich einen Einfluss auf den Dateinamen. ZB verwendet curlresolver HTTP_PROXY.)

Wenn sich $HOME jedoch ändert, während ein KDB-Handle geöffnet ist, würde es den Cache nicht in das neue Home verlagern.

Ok, aber das ist ein alter Fehler (#1433). Daher werde ich diesen Fehler schließen, da mmap die Situation nicht verschlimmert.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

dominicjaeger picture dominicjaeger  ·  3Kommentare

markus2330 picture markus2330  ·  4Kommentare

e1528532 picture e1528532  ·  4Kommentare

mpranj picture mpranj  ·  3Kommentare

dmoisej picture dmoisej  ·  3Kommentare