Datenbank an einem anderen Standort

04/26/2015 18:55 const*#1
Hallo Elitepvpers,

ich habe eine Frage an wissende User. Ihr kennt sicherlich Spiele wie WarRock, Crossfire EU/NA, etc.

Diese haben verschiedene Server, die an verschiedenen Orten rund um die ganze Welt verteilt stehen, jedoch müssen diese Server ja alle auf eine Datenbank zugreifen, damit jeder Nutzer, der auf Server A die Waffe B kauft, die Waffe B auch auf Server C hat.

Nun ist meine Frage. Ich greife mit einem Server, der auf dem Server ist, wo auch die Datenbank ist, auf besagte Datenbank zu. Latenz ist natürlich gering und alles ist schnell.

Wenn ich jetzt jedoch aus den Niederlanden (anderer Root, auch eine 1Gbps-Verbindung) darauf zugreife, dauert es sehr sehr lange, bis alle Daten ausgelesen wurden (habe viele Datensätze, die ausgelesen werden müssen).

Habe hierzu ein Bild gemacht (Paint :()

[Only registered and activated users can see links. Click Here To Register...]

Wie muss es nun laufen, dass Niederlande so schnell ist wie Italy?

An der Schnelligkeit (Anbindung) sollte es nicht hängen, beide Server haben eine 1Gbps-Anbindung.

Schreib - oder Grammatikfehler vorbehalten, nicht meine erste Sprache.

Marco
04/26/2015 19:02 Dr. Coxxy#2
entweder die datenbank auf den beiden servern spiegeln, oder die informationen die in der datenbank gespeichert werden minimieren - sehe in dem beispiel aber auch nicht wirklich ein problem - ist doch vollkommen wurst ob einmal beim einloggen des spielers die paar daten vom anderen server abgefragt werden müssen - sinds halt 2 sekunden mehr einmalig beim einloggen - who cares?
04/26/2015 19:36 const*#3
Quote:
Originally Posted by Dr. Coxxy View Post
entweder die datenbank auf den beiden servern spiegeln, oder die informationen die in der datenbank gespeichert werden minimieren - sehe in dem beispiel aber auch nicht wirklich ein problem - ist doch vollkommen wurst ob einmal beim einloggen des spielers die paar daten vom anderen server abgefragt werden müssen - sinds halt 2 sekunden mehr einmalig beim einloggen - who cares?
Inwiefern spiegeln? Die Datenbank ändert sich alle paar Sekunden. Und es sind keine zwei Sekunden sondern 20-30. :)
04/26/2015 20:23 Mostey#4
Entweder der Server in den Niederlanden besitzt eine schlechte Anbindung zu dir (oder du zu ihm) oder er hat eine schlechte Anbindung an Italien. Denn logisch betrachtet dürfte der ganze Prozess um exakt 100% länger dauern wie wenn du direkt mit Italien kommunizierst - sofern die Übertragungsgeschwindigkeit identisch ist.

Ansonsten würde ich mal versuchen die Datenhaltung zu minimieren oder Daten nicht komplett sondern eher partiell über Streaming zu übertragen.

Mit spiegeln ist die Spiegelung der Daten gemeint. Damit schiebst du die Daten regelmäßig von der Hauptdatenbank in Italien in eine Datenbank in den Niederlanden. Somit müsste der Server dann gar nicht mehr den Hauptserver anfragen sondern hat die Daten (wenn auch mit Verzug) selbst.

Beides hat seine Vor und Nachteile.
04/26/2015 21:27 Dr. Coxxy#5
wtf hast du alles in die datenbank gepackt, dass das 20 sek dauert?

Quote:
Inwiefern spiegeln? Die Datenbank ändert sich alle paar Sekunden.
halt nur die änderungen spiegeln.
04/26/2015 22:57 MrDami123#6
Hast du zu Testzwecken versucht die Datenbank auf den NL Server zu verlegen und darauf zuzugreifen?
Bessere Geschwindigkeit?
04/27/2015 16:37 const*#7
Wenn ich das umdrehe, also NL Hauptserver ist, ist es ebenfalls langsam, woran kann es denn noch liegen? :x
04/27/2015 19:19 MrDami123#8
Ist die Serverhardware ähnlich und wie ist die Auslastung während betrieb? Hast du einen Speedtest durchgeführt?
04/28/2015 12:45 const*#9
Quote:
Originally Posted by MrDami123 View Post
Ist die Serverhardware ähnlich und wie ist die Auslastung während betrieb? Hast du einen Speedtest durchgeführt?
Serverhardware ist äquivalent. Ja habe ich, beide haben ~ 400 MBit bei leaseweb.
04/28/2015 13:28 Mostey#10
Quote:
Originally Posted by *static_cast View Post
Wenn ich das umdrehe, also NL Hauptserver ist, ist es ebenfalls langsam, woran kann es denn noch liegen? :x
Dann kann es ja nur die Anbindung sein, wenn du dein Programm ausschließen kannst...