Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#16

Re: Datei > 500mb vollständig in RAM laden

  Alt 2. Jul 2007, 13:57
Zitat von mkinzler:
Als Index würde sich ein Binärbaum eigenen (dieses Problem hat wohl fast jeder hier in der Schule/Uni usw schon mal Lösen dürfen)
Nimm lieber gleich einen B+/B*-Baum, die können nicht entarten! Das ganze ist aber nur der erste Schritt in Richtung DBS. Da werden Datensätze auch nur in Seiten gespeichert/verwaltet. Man speichert immer nur die Referenz auf eine bestimmte Seite und auf der Seite auf den Eintrag. Reicht nach einer Veränderung der Platz nicht mehr aus, wird hier noch eine zusätzliche Indirektion (auf den tatsächlichen aktuellen Speicherort) gespeichert (weniger aufwendig als die Indexierung/alle Verweise zu aktualisieren).
Ein DBS macht aber eine ganze Menge mehr, da gibt es gleich einen Cache mit Datensätzen, auf die (vermutlich) demnächst zugegriffen wird. Das heißt, dass nicht die ganze Datei, aber relevante Teile schon im RAM landen. Die benötigte Verdrängungsstrategie, die Datensicherheit, Transaktionen uvm. bringen die meisten (zumindestens die bekannten) dann auch gleich mit. Da kann auf DB2, Oracle, PostgreSql, MySql, MsSql und natürlich Firebird verwiesen werden. Die dürften alle besser skalieren, schneller/effizienter arbeiten, mehr Konsistenz und Sicherheit garantieren als es eine eigene Lösung tut! Da arbeiten einfach viele Leute seit einem Weilchen dran, allein die Nebenläufigkeit dürfte schon ein hartes Stück Arbeit für eine Person sein! Es macht einfach keinen Sinn auf diese (guten!) Lösungen zu gunsten einer eigenen zu verzichten (und sorry, schon gar nicht wenn man dazu einfach versucht alles im Speicher zu halten!).
  Mit Zitat antworten Zitat