AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datei > 500mb vollständig in RAM laden

Ein Thema von Harry M. · begonnen am 2. Jul 2007 · letzter Beitrag vom 3. Jul 2007
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#11

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

  Alt 2. Jul 2007, 12:15
Jo stimmt. Ich hab mich nicht lange genug mit den verschienden DBMS System auseinander gesetzt.
Wieviele davon gibt es? Und wieviel zeit bräucht ich um mich mit gründlich einzuarbeiten? Um dann auch noch das Beste für mich herraus zussuchen. Ich werde Deine Hinweise berücksichtigen und schaue ob ich mit Firebird besseres Ergebnisse erziele.

Die potenzierung erfogt natürlich geteilt. zB auf 1 GB pro Datei.

[AM_RANDE]
Bei 1 TB local zu Verfügung könnte ich auch einiges aufnehmen. Desweiten habe 2 Gb drinne, noch eine Bank frei, und noch aufrüstbar dank 64MB Grafik (muss aber erst warten wegen dem neuen DualChanel fähigen Bord) Falls das jemand wissen mag.
[/AM_RANDE]

Sicherlich wird es nur ein kläglicher Versuch bleiben wenn ich es gegen ein "ordentliches" DBMS vergleiche. Ist auch ehr nur der als Station auf dem Weg zu der Erfahrung gedacht, von der Du sprichst.
Harry
Gruß Harry
www.H-Soft.info
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#12

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

  Alt 2. Jul 2007, 12:33
Selbst wenn man auf ein DBMS verzichten will, würde ich nie auf die Idee kommen, die komplette "Datenbank" im Speicher zu halten. in diesem Fall würde ich nur den Index (als Binärbaum o.ä.) im Speicher halten, welcher dann auf die Recordnummern in der Datei verweist. Diese würden sequentiell geschrieben und ein Ordnung nur per Index erreicht, welcher zusätzlich zum Speicher spätestens beim beenden des Programmes auf Platte gesichert werden sollte.
Aber ich sehe es wie Elvis: Ein solche Lösung würde viel mehr Arbeit als die Einarbeitung in ein DBMS bedeuten und wohl nicht ansatzweise an die Performance herankommen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#13

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

  Alt 2. Jul 2007, 12:41
Ist meine Idee im Hinterkopf.
nur ist mir noch nicht ganz klar wie ich so einen Index machen könnte. Muss ja am Ende auf eine mathematische Formel beruhen.... und wenn die dann halbwegs funzen sollte. werde ich die Dateien sicher nicht mehr im Ram halten. Wo sie ohne hin nur geladen werden wenn Sie gebraucht würden.
Harry
Gruß Harry
www.H-Soft.info
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#14

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

  Alt 2. Jul 2007, 12:48
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)
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#15

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

  Alt 2. Jul 2007, 12:52
Dann sollte sich da ja was finden lassen (läuft ja auch grad noch ein Thread zu dem Thema)
Harry
Gruß Harry
www.H-Soft.info
  Mit Zitat antworten Zitat
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, 12: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
Benutzerbild von Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#17

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

  Alt 2. Jul 2007, 13:03
Ich geb Dir durchweg Recht, Du angeblich Unwissender
Harry
Gruß Harry
www.H-Soft.info
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#18

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

  Alt 2. Jul 2007, 13:09
Zitat:
Nimm lieber gleich einen B+/B*-Baum, die können nicht entarten!
Ich hätte wohl hervorheben sollen, daß ich Binärbaum als allgemeinen Oberbegriff ansehe, ob der nun ausbalanziert, gepackt oder wie auch immer implementiert wird.
Markus Kinzler
  Mit Zitat antworten Zitat
Der_Unwissende

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

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

  Alt 2. Jul 2007, 13:15
Zitat von mkinzler:
Ich hätte wohl hervorheben sollen, daß ich Binärbaum als allgemeinen Oberbegriff ansehe, ob der nun ausbalanziert, gepackt oder wie auch immer implementiert wird.
Nicht falsch verstehen, mir ist schon klar, dass Du nicht unbedingt den normalen Binären-Baum ohne weitere Eigenschaften meinen wirst, wollte nur noch mal explizit darauf hinweisen, welche Bäume üblicherweise sogar verwendet werden. Wie gesagt, die Idee, die Du geäußert hast ist ja auch völlig korrekt und absolut richtig! Das Problem ist doch aber, warum kein DBS einsetzen wollen und sich dann selbst um die Organisation der Datensätze, des Caching (um den Speicher wirklich sinnvoll zu nutzen) und natürlich der Indexierung annehmen?
Klar, ein DBS lädt eben nicht nur den Index in den Speicher, sondern hält auch einzelne Seiten vor, aber das ist ja nicht gerade ein Nachteil. Anders gesagt, wenn man die Funktionalität eines DBS benötigt/nutzen will (und so habe ich Harry M. verstanden), dann ist es manchmal das klügste zu einem DBS zu greifen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#20

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

  Alt 2. Jul 2007, 13:21
Zitat:
Anders gesagt, wenn man die Funktionalität eines DBS benötigt/nutzen will (und so habe ich Harry M. verstanden), dann ist es manchmal das klügste zu einem DBS zu greifen Wink
Klar wurde ihm ja schon von Elvis und mir so gesagt:
Zitat von mkinzler:
Aber ich sehe es wie Elvis: Ein solche Lösung würde viel mehr Arbeit als die Einarbeitung in ein DBMS bedeuten und wohl nicht ansatzweise an die Performance herankommen.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz