Hi Christian,
Das heisst, dass *nicht* der komplette Index im Speicher
gehalten wird, sondern nur teilweise im Speicher behalten
werden braucht.das macht Perl mit seinem Hash vielleicht auch, aber
Nein, Perl haelt alle Hashes komplett im Speicher. Wenn etwas
auf die HD ausgelagert wird, dann wird das vom OS gemacht
(Swapping), aber nicht von Perl.Du mußt die Daten bei der Perl-Lösung
wenigstens einmal komplett "durch den Speicher
schießen", bevor sie in der paging area landen.
Was meinst du mit dem oberen Satz, Michael?
Wenn ich (in meiner Inkarnation als Perl-Laufzeitsystem) eine Datenstruktur wie z. B. einen Hash in den Hauptspeicher laden will, welche dort nicht hinein paßt, dies aber dadurch tun muß, daß ich deren Speicherabbild von der Festplatte lese, dann habe ich alle Teile des Hash (nacheinander) mindestens einmal im Hauptspeicher, bevor diese Operation fertig ist. Für den Platz, welcher von den letzten gelesenen Teilen belegt wird, müssen dann früher gelesene Teile des Hashes ausgelagert werden ... und ich habe am Ende wahrscheinlich sogar nur die Blätter im RAM und die inneren Knoten raus geswappt, also genau das Gegenteil dessen, was ich eigentlich will.
Navigiere ich (in meiner Inkarnation als Datenbanktreiber) aber innerhalb eines Indexbaums, dann lese ich tatsächlich nur die benötigten Speicherseiten ein - und ich bin mir 'bewußt', daß innere und äußere Baumknoten unterschiedliche Qualitäten haben, also nicht 'gegeneinander' swappen sollten. Ich kann dann verschiedene Teile desselben Indexbaums unterschiedlich priorisieren bezüglich ihrer Verfügbarkeit im Hauptspeicher.
Viele Grüße
Michael
T'Pol: I meant no insult.
V'Lar: Of course not. You're simply speaking your mind ... as you always have.