AGB  ·  Datenschutz  ·  Impressum  







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

Suche schnelle Speichermöglichkeit

Offene Frage von "KahPee"
Ein Thema von KahPee · begonnen am 4. Jan 2010 · letzter Beitrag vom 5. Jan 2010
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#1

Suche schnelle Speichermöglichkeit

  Alt 4. Jan 2010, 21:39
Hallo,
ich habe vor ein Programm zu schreiben wo ich mehrere Milliarden Einträge in einer Datenbank speichern muss. Ich möchte die Gewinnwahrscheinlichkeiten für alle möglichen Hände beim Pokern (Hold'em) errechnen lassen (ja ich weiß, dass das nen weilchen dauern wird ); und anschließend in eine Datenbank einspeichern, damit diese Wahrscheinlichkeiten am Ende möglichst schnell wieder ausgelesen werden können.

Ich bin lernfähiger Fortgeschrittener und nutze TurboDelphi (was aber Delphi sehr sehr sehr ähnlich ist). Was ich suche ist eine Datenbank oder irgendeine andere Speichermöglichkeit, die schnelles Schreiben und vorallem schnelles Auslesen ermöglicht!
Bisher habe ich nur in .ini-Dateien informationen abgespeichert, aber ich befürchte, dass das nicht gerade die schnellste Variante ist.

Gerade bei so großen Datenmengen wäre interessannt worauf ich außerdem noch achten muss um ein möglichst schnelles Ergebnis zu erzielen (wenn ich dann irgendwann die Wahl einer Datenbank getroffen habe).

Schon mal vielen Dank im vorraus!

KahPee
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#2

Re: Suche schnelle Speichermöglichkeit

  Alt 4. Jan 2010, 21:52
Zitat von KahPee:
TurboDelphi (was aber Delphi sehr sehr sehr ähnlich ist).
Süß.
Oder meinst du TurboPascal?

Als Datenbanken fallen mir Firebird, SQLite und MYSQL ein..
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#3

Re: Suche schnelle Speichermöglichkeit

  Alt 4. Jan 2010, 21:54
Warum du Datenbank nutzen *musst*: diese sind (meist) auf Schnelligkeit hin optimiert und haben gegenüber Dateibasieren Formaten (XML und INI) viele Vorteile: Schnelligkeit, einfache Suche (SQL), Austauschbarkeit etc.

PS: TurboDelphi ist Delphi, aber nur eine etwas abgespeckte Version
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Suche schnelle Speichermöglichkeit

  Alt 4. Jan 2010, 21:58
Okay.
Welche Datenbank ist für soetwas denn am besten geeignet? Welche Unterschiede (Vor- und Nachteile) gibt es bei den verschiedenen Datenbanken? Die Schnelligkeit ist bei so großen Mengen bei dem Projekt für mich von erster Bedeutung .
Ziemlich sicher werde ich das Programm am Anfang auf mehreren PC laufenlassen, sodass jeder PC teile des ganzen errechnet. Interessant wäre auch wie schnell man am ende diese Ergebnisse zusammenführen kann in einer einzigen Datei. Copy/Paste wäre natürlich perfekt, wobei ich auch bereit bin nen Programm zu programmieren, dass den Copy/Paste prozess dann übernimmt .

KahPee
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#5

Re: Suche schnelle Speichermöglichkeit

  Alt 4. Jan 2010, 22:06
Milliarden?

alle möglichen Kombinationen pro Spieler:
52*51*50*49*48 + 52*51*50*49 + 52*51*50 = 318.505.200 (Millionen)

alle möglichen Kombination über ein ganzes Blatt
3,4*10^62 ... ich befürchte da reicht deine Festplatte nicht aus


PS: TurboDelphi = eingeschränktes Delphi 2006
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#6

Re: Suche schnelle Speichermöglichkeit

  Alt 4. Jan 2010, 22:17
ob das wirklich klappen kann ? du sprichst von "einigen" Milliarden Einträgen... nehmen wir mal an, es seien 3 Milliarden Einträge: jeder Eintrag sprich Record in der DB wird wohl ca. 40 Bytes umfassen (Wahrscheinlichkeit -> Float, irgendwie müssen die "Hände" abgebildet werden, Meta-Daten, Index, etc...) -> das gibt dann bereits 120 GB Daten...
ob das ein oder auch drei oder fünf banale Heim-PCs bewältigen können ?!?
da ist dann nix mit kurz Copy'n'Paste...
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Suche schnelle Speichermöglichkeit

  Alt 4. Jan 2010, 22:46
So hab das ganze nochmal durchgerechnet, mir war schon klar, dass da größere Datenmengen anfallen. Nach verschiedenen Optimierungen müssen am Ende ca. 3*(10^9) Einträge abgebildet werden. Alle müssen eine Wahrscheinlichkeitsnummer die vier- fünfstellig ist haben (eine nachkommastelle, kann aber als byte oder ähnliches abgebildet werdern) und einen String (2-14 Zeichen) enthalten. Also max. ca. 20 byte pro datensatz. Teilweise weniger.

Das würde dann 56 GB an Daten machen (nen bissl mehr). Die Berechnungen sollen nicht nur auf HeimPCs laufen ^^ in der Hinsicht wird sowohl Masse als auch Klasse ins Rennen geworfen .

Bleibt natürlich die Frage wie schnell man bei der eingabe einer Hand den entsprechnenden Datensatz in der DB findet

mfg KahPee
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#8

Re: Suche schnelle Speichermöglichkeit

  Alt 4. Jan 2010, 23:21
Das ganze soll doch nicht etwa auch noch in Echtzeit (also die, über die man als Pokerspieler für seine Entscheidungen gewöhnlicherweise verfügt) reagieren und einem die Entscheidungen beeinflussen oder gar abnehmen?

Wenn ich diese Datenmengen lese, so garantiere ich, daß das für die derzeitig verfügbare, erschwingliche Heimelektronik auch unter dem Einsatz von 64 Bit, Terabyte an HDD-, etlichen Gigabyte an Hauptspeicherkapazität, einigen Megahertz an Prozessortakt und mehreren Prozessoren oder wenigstens Prozessorkernen dennoch eine solch gewaltige Herausforderung sein wird, daß diese nur äußerst zäh reagieren wird.
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#9

Re: Suche schnelle Speichermöglichkeit

  Alt 4. Jan 2010, 23:25
ich persönlich würde MySQL und nen 64Bit-System mit mehr als 4 GB Hauptspeicher nehmen. Je mehr Hauptspeicher die Kiste hat, desto schneller kann die auch die ganzen Einträge verarbeiten. Mal grob gerechnet wird das aber SEHR teuer. 56GB sind ein ganzes Stückchen. Da wirst du nicht alles im Hauptspeicher halten KÖNNEN. Und bei der Suche wirst du dir auch noch was einfallen lassen müssen. Ich hab keine Vorstellung wie das gehen soll. Höchstens 32 boolean-Werte in denen dann das Blatt drin steht. Die boolean-Werte lassen sich aber auch in einem 32-Bit Integer speichern, welcher genauso groß ist, aber die DB nicht so stark belastet.

Bernhard

PS: Ich lass dich ganz einfach mal machen.

EDIT: oups: Poker geht ja nicht mit 32 Karten. Das sind ein paar mehr.
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Suche schnelle Speichermöglichkeit

  Alt 4. Jan 2010, 23:28
Warum so großen Datenmengen vorhalten? Das Errechnen sollte nicht viel länger dauern als das Suchen in einer so großen Datenbank. Man sollte sich wohl eher Gedanken machen, wie man die Karten, die man auf der Hand hat möglichst effizient eingibt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 15:20 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