Christoph Schnauß: Cache problem lösung gesucht

Beitrag lesen

hallo,

ein Cache ist ja eine optimale Lösung um langsame Festplatten ein wenig flotter zu machen.

Nö, überhaupt nicht. Wenn sich eine HD nun einmal "langsam" dreht, tut sie das auf ziemlich unbeeinflußbare Art. Ob sie auch noch irgendwelche "Caches" enthält, ist der Platte selber absolut egal.

Aber ein Geschwindigkeitsvorteil wird selbstverständlich bei korrekter implementierung erzielt. Genau das ist mein Problem.

Dein Problem ist weit eher, daß du nicht deutlich machen kannst, was du möchtest. Auf deiner Platte kannst du nix "implementieren", nicht einmal ein Staubkorn (falls dir das doch gelingen sollte, wirst du dir danach eine staubkornfreie neue Platte zulegen müssen). Und ein "Geschwindigkeitsvorteil" ist nur so lange ein Vorteil, wie man vergleichen kann, wem gegenüber denn die Geschwindigkeit (übrigens wessen Geschwindigket?) vorteilhafter ist.

Ich habe eine Anwendung, arbeitet sehr intensiv mit Dateien auf Festplatten (leider keine SSDs)

Es gibt so gut wie kein Programm, das nicht mit Dateien arbeiten würde. Und was, bitteschön, ist SSDs?

Die einzelnen Threads kommunizieren über Shared Memory und mit Signalen.

Achso, Threads. Und Kommunikation  mit shared memory. Alles klar. Es kann ja zwischen "shared memory" und deinem "Cache" keinerlei Zusammenhang geben - oder?

Also ihr seht es wird natürlich mit GNU/Linux gearbeitet (aus dem Hause RedHat)

Tut mir leid, das ist nicht zu sehen.

Momentan ist gar kein Cache implementiert.

Wie - wohin denn jetzt? Wenn du keinen Cache hast, aber deine Programme viel shared memory verlangen, klappts nicht? Warum "implementierst" du dann keinen Cache in dein Programm - sehr viele Software hat ja sowas, angefangen bei den Browsern...

Leider klappte es aber nicht so ganz die Threads so zu steuern das das Programm nicht zerschossen wird.

Schade. Du hättest es doch wenigstens einmal zerschießen lassen sollen, um vernünftige logs zu erhalten. Logs sind was Feines ;-)

Eine Methode der Klasse wurde von einem Thread aufgerufen die den Cache aktualisierte

Wie konnte sie das tun, wenn gar kein Cache "implementiert" war?

Lag es an der falschen Implementierung dieser Idee?

Gewiß nicht. Ideen hat man, oder man hat sie nicht; man entwickelt sie, oder entwickelt eben keine; manche Ideen können verfolgt oder unter Strafe gestellt werden. Bisher ist aber noch keinerlei chirurgische Methode bekannt, mit der sich eine Idee auch implementieren ließe. Dem Hörensagen nach gabs mal den Nürnberger Trichter, aber der scheint dir auch irgendwie falsch implementiert worden zu sein.

Oder ist diese Idee von vornherein als schlecht abzustempeln?

Ähm ... welche Idee eigentlich?

Welche Möglichkeiten gibt es eine Cachefunktionalität zu implementieren, auch Threadsicher?

Alle Möglichkeiten, die dein Programm zuläßt. "Funktionalitäten" sind tatsächlich implementierbar. Dazu muß man natürlich wissen, worum es sich konkret handelt, warum und wieviel Cache eventuell benötigt wird, und vor allem muß man wissen, wohin du etwas implementieren möchtest.

Grüße aus Berlin

Christoph S.

--
Visitenkarte
ss:| zu:) ls:& fo:) va:) sh:| rl:|