# Problem mit Gameserver / Datensynchronisation



## mavinatic (9. Nov 2011)

Hallo Community,

ich habe einen Gameserver programmiert, welcher Daten aus einer Datenbank läd, jedoch ist die Datenbank generell immer langsamer als der Speicher ;-)
Jedoch sind das verschiedene Daten und viele Daten, so dass ich sie nicht alle im RAM halten kann, gibt es da ein Pattern, wie ich mit Hibernate / JDBC am besten und am Performantesten die Daten aus der Datenbank holen kann? Caching-Verfahren / Pattern?


----------



## Noctarius (9. Nov 2011)

Welcher Gameserver?

Also wir betreiben selber einen relativ großen und haben auch verdammt viel im RAM (inkl Geodaten), aber dass das nicht passen soll? Klar auf 1GB RAM wird das eng.


----------



## Evil-Devil (9. Nov 2011)

Definiere Gameserver. Wenn du viele Daten vorhalten willst klingt das eher nach einem MMO-Gameserver und da musst du schon entsprechend Daten cachen. Gib mal mehr Info.


----------



## mavinatic (9. Nov 2011)

Gameserver = Spielerdaten verwalten, verteilen, updaten ;-) Gameserver mit Clusterfunktion == MMO Server ;-)

Ich habe eine Datenbank, wo ich alle Datenspeichere, aber wenn ich jedes mal einen Request an die DB schicke wird das spiel ziemlich langsam!
Ergo muss ich mir was überlegen, wie ich das gestalte, sodass ich nicht immer von der DB zugreifen muss....also entweder Cache ich es...oder ich habe eine sehr schnelles verfahren, was mir erlaubt darauf zuzugreifen ;-)


----------



## Noctarius (9. Nov 2011)

Ja man hält die Daten eben im Speicher, ich weiß ja nicht von was für Massen an Speicher du redest aber ein Gameserver (gerade MMO) darf gerne mal 4GB RAM fressen - auch mehr.


----------



## mavinatic (10. Nov 2011)

Ja soweit ist mir das bewusst, jedoch suche ich ein Pattern welches mir möglichst gute Performance bietet, desweiteren suche ich ein Pattern, welches mir erlaubt alle x sekunden von der Datenbank daten abzurufen. Gibt es ein Entwurfsmuster?

Oder learning by doing?


----------



## Noctarius (10. Nov 2011)

Schau dir andere Gameserver an wie die das gemacht haben. Ein generelles Pattern gibt es nicht. Meistens versucht man mehrere Implementierungen und schaut welche besser ist.
Generell gilt aber: Optimieren erst wenn es nötig wird und um den Speicherverbrauch würde ich mir nur bedingt Sorgen machen, ein Server ist eben ein Server und da interessiert der Speicherverbrauch noch nicht mal sekundär.

Kann dir gerne ein paar Tipps geben an gewissen Stellen wenn Interesse besteht.


----------



## Kr0e (10. Nov 2011)

Hm, vlt sind NoSQL Datenbanken eine Lösung ? Die skalieren quasi ohne Grenze und haben schnelleren Zugriff soweit ich weiß...


----------



## Noctarius (10. Nov 2011)

Du kannst aber Gameserverdaten besser auf feste Datenmodelle mappen ^^


----------



## mavinatic (10. Nov 2011)

Noctarius hat gesagt.:


> Kann dir gerne ein paar Tipps geben an gewissen Stellen wenn Interesse besteht.



Klar besteht Interesse, aber eher an der ganzen Modellierung und Aufbau eines Gameservers, ich bin momentan einfach am Programmieren mit einem Konzept, aber...ich denke einige Grundlagen schaden nicht ;-)

Auf welchen wege magst du mir die Tipps geben?

Gruß


----------



## Noctarius (10. Nov 2011)

Am Besten fragst du hier oder per PM oder vllt später auch per ICQ oder so ^^


----------

