Hilfe für APF-Neuling

Hier finden sich Fragen und Ergänzung zur Dokumentation. // All questions and discussions about the documentation.
Antworten
Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Hilfe für APF-Neuling

Beitrag von Screeze » 25.10.2009, 15:14:09

Kann man irgendwo einstellen, auf wieviel zeichen das GORM setup die ..ID spalte der datenbank setzt? standartmäßig scheinen das int(5) zu sein, welches für meinen fall bei weitem nicht ausreicht.

edit: sehe grade das is hardgecoded, da hilft nur nachträgliches bearbeiten der datenbank?

Benutzeravatar
MrNiceGuy
Beiträge: 749
Registriert: 03.02.2009, 16:49:42
Wohnort: Nienburg / Weser

Re: Hilfe für APF-Neuling

Beitrag von MrNiceGuy » 25.10.2009, 18:08:39

Heißt das, dass dir INT nicht reicht oder dass dir (5) nicht reicht? Denn die Angabe der Zahl beeinflusst nicht die größtmögliche Zahl, sondern lediglich das Verhalten bei ZEROFILLED...
There are only 10 Types of people in the world:
Those who understand binary and those who don't.

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Hilfe für APF-Neuling

Beitrag von Screeze » 25.10.2009, 19:04:31

(5) reicht mir nicht.
sondern lediglich das Verhalten bei ZEROFILLED...
? ich hab das (damals) so gelernt, dass die angabe der zahl die stellen der maximalen zahl beeinflusst, bei (5) demnach ist die maximale 99999.
Ist das falsch?

und was is zerofilled?

Benutzeravatar
dr.e.
Administrator
Beiträge: 4605
Registriert: 04.11.2007, 16:13:53

Re: Hilfe für APF-Neuling

Beitrag von dr.e. » 25.10.2009, 19:58:32

Hallo ihr beiden,

aktuell wird INT(5) UNSIGNED verwendet. Das bedeutet, dass eine maximale Anzahl von 4.294.967.295 Datensätzen gespeichert werden kann (siehe http://dev.mysql.com/doc/refman/5.1/en/ ... types.html). Das reicht nicht?
Viele Grüße,
Christian

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Hilfe für APF-Neuling

Beitrag von Screeze » 25.10.2009, 21:03:42

hoppala :D
ja ok vergiss es, ich hab da iwas verwechselt... :D

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: Hilfe für APF-Neuling

Beitrag von Megger » 26.10.2009, 00:45:30

Es kann durchaus vorkommen, dass 4.294.967.295 IDs nicht ausreichen, besonders bei einem Endlos Spiel (Es sind vielleicht nur 1.000 Datensätze zeitgleich vorhanden, die IDs werden ja allerdings weiter nach oben gezählt)! Aber das lässt sich wahrscheinlich nur umgehen indem man die vorhandenen Datensätze exportiert, die Tabelle leert (dadurch wird auch der ID Zähler zurückgesetzt) und dann die exportierten Datensätze mit neuer ID wieder einfügt und die Verknüpfungen anpasst!

Oder gibt es eine andere Möglichkeit?
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Benutzeravatar
dr.e.
Administrator
Beiträge: 4605
Registriert: 04.11.2007, 16:13:53

Re: Hilfe für APF-Neuling

Beitrag von dr.e. » 26.10.2009, 00:51:18

Hi Megger,

es gibt eine ganz einfache Möglichkeit: manuelles Setup der Datenbank. Sofern im Setup-Aufruf keine DB-Verbindung angegeben wird, gibt das Tool die Statements aus, die zum Setup nötig sind. Dort kann dann INT(5) UNSIGNED mit BIGINT(?) UNSIGNED ersetzt werden, bevor die Statements ausgeführt werden. Beim Update der Datenbank ist das allerdings noch nicht berücksichtigt, hier müsste die Anpassung auch manuell erfolgen.

Alternativ kann ich natürlich noch eine Option in das Setup- und Update-Tool einbauen, mit dem der Datentyp für Index- und ID-Spalten definiert werden kann - parallel zu Storage-Engine?
Viele Grüße,
Christian

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: Hilfe für APF-Neuling

Beitrag von Megger » 26.10.2009, 07:45:06

Selbst bei BIGINT ist irgendwann Schluss, da steht man nur etwas später vor dem Problem.

Edit:
Ich kann es einfach noch nicht abschätzen wie die "Taktfrequenz" aussehen wird. In guten Zeiten mit vielen Spielern können es 10.000 pro Stunde oder 100.000 pro Minute sein. Da sehe ich im moment noch keinen konkreten Wert beim jetzigen Stand der Entwicklung meines Spiels.
Bei 10.000 pro Stunde sind es ca. 49 Jahre bis die Tabelle bei INT voll ist
Bei 100.000 pro Minute dürften es ca. 29 Tage sein :D
Hoffe habe mich nicht verechnet
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Hilfe für APF-Neuling

Beitrag von Screeze » 26.10.2009, 15:35:33

100k pro minute sind hochgeschätzt... was hast du vor??? :D
ne option zum einstellen wäre super

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: Hilfe für APF-Neuling

Beitrag von Megger » 26.10.2009, 16:12:54

Natürlich ist das hochgeschätzt! Aber dadurch, dass ich eigentlich alles was an Events passiert in der Datenbank ablege, wird die Event Tabelle viele Einträge erhalten und irgendwann geht der Platz aus. Man könnte natürlich mehrere BIGINT Felder als Primary Key verwenden, aber ich verändere ungern das Setup des GORM. Wobei man dann viel umschreiben müsste :D
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Hilfe für APF-Neuling

Beitrag von Screeze » 26.10.2009, 18:15:53

ich hoff die rechnung stimmt:

bigint bedeutet:
9.223.372.036.854.775.807
selbst bei 100.000/min (was vermutlich 10.000 user gleichzeitig online bedeuten wird?)
wären das 9.223.372.036,???? * 10^4 minuten = 177.919.985,3 JAHRE


Reicht das nicht????
alle 177 Millionen jahre die tabelle mal bereinigen kriegste hin oder :D

Benutzeravatar
dr.e.
Administrator
Beiträge: 4605
Registriert: 04.11.2007, 16:13:53

Re: Hilfe für APF-Neuling

Beitrag von dr.e. » 26.10.2009, 19:53:16

Hallo Jungs,

177Mio Jahre sollten reichen, das sehe ich auch so. :D Ich baue eine Option ein und melde mich, sobald der Code im SVN verfügbar ist.
Viele Grüße,
Christian

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: Hilfe für APF-Neuling

Beitrag von Megger » 26.10.2009, 19:57:41

:D Das wird schon schwierig nach 177 Millionen Jahren!
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Benutzeravatar
MrNiceGuy
Beiträge: 749
Registriert: 03.02.2009, 16:49:42
Wohnort: Nienburg / Weser

Re: Hilfe für APF-Neuling

Beitrag von MrNiceGuy » 27.10.2009, 14:29:10

Nur noch kurz zur Erläuterung von (5):

Es gibt in (My?)SQL die Möglichkeit ein INT-Feld-Typ mit ZEROFILLED zu deklarieren. Das bedeutet, dass Zahlen links immer mit Nullen "gepadded" werten, ählich wie bei str_pad() in PHP mit STR_PAD_LEFT. Hierbei ist die Angabe in der Klammer lediglich die Anzahl stellen, die gefüllt werden sollen. Bei INT(5) also 5 Stellen. Das macht aus "1" ein "00001", aus "256" ein "00256" und aus "123456" ein "123456". Sprich: Es wirkt sich nur auf Zahlen aus, die weniger Stellen haben, als in der Klammer angegen.

Kurze Korrektur: ZEROFILL wird als Attribut eines Feldes in Kombination mit UNSIGNED gesetzt: "UNSIGNED ZEROFILL".
There are only 10 Types of people in the world:
Those who understand binary and those who don't.

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: Hilfe für APF-Neuling

Beitrag von Megger » 27.10.2009, 15:41:41

Ich stelle mir weiterhin die Frage, ob es nicht noch eine andere Möglichkeit gibt die das Auto Increment wieder zurück zu stellen!
Es wird zwar nicht wirklich benötigt (ausser man ja 100.000.000 Datensätze/s) Aber trotzdem würde es mich interessieren.
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast