# Belastet es das System zu sehr einen Timer jede 0.2 Sekunden eine DB Abfrage machen zu lassen?



## ITrun90 (7. Jul 2011)

Hey,

aus Übungszwecken zur Datenbank habe ich ein kleines Chatprogramm entwickelt, was auch wunderbar läuft. Nun möchte ich noch ermitteln, ob der gegenüber gerade tippt. Wie schon gesagt es soll eine Übung zu Datenbanken mit Java sein. Darum möchte ich einen Timer, der alle 0.2 Sekunden überprüft, ob in einer Datenbank ein Eintrag "Tippt: true" steht. Ist das wohl zu belastent für das System oder sind solche Sachen absolut in Ordnung?


----------



## Gast2 (7. Jul 2011)

Warum willst du das über die Datenbank lösen?

Wenn der Gegenüber lostippt schickt dein Client ne Nachricht an den Server, der Server leitet die Nachricht zum anderen Charpartner weiter.
Wenn der Gegenüber nicht mehr tippt schickt sein Client wieder ne nachricht zum Server, der die nachricht wieder weiterleitet.


----------



## ITrun90 (7. Jul 2011)

Nunja ich hab leider nur Webspace keinen richtigen Server^^


----------



## Gast2 (7. Jul 2011)

Hm, das heißt du 2 Chatclients, die ihre Nachrichten in die Datenbank schreiben, und der Gegenüber schaut dann in der Datenbank nach ob neue Nachrichten vorliegen?
Hast du da keinerlei Sockets die miteinander kommunizieren?


----------



## ITrun90 (7. Jul 2011)

Nein. Es schaut eben so aus, dass jede Nachricht von einem Client in eine Tabelle geschrieben wird und diese Tabelle wird ausgelesen. So können auch 5 Clients untereinander schreiben. Ich weiß das es in der Realität anders ist aber ich hab mir das halt genommen um Datenbanken mit Java zu üben, mehr nicht. Und möchte nur wissen, ob eine Abfrage alle 0.2 Sekunden zu krass ist.


----------



## Evil-Devil (7. Jul 2011)

Klappen kann das durchaus, aber die Requests müssen innerhalb der 0.2 Sekunden auch geschickt werden. Wenn dein Client eine Anfrage schickt, dann wird die imho nicht immer innerhalb der 0.2 Sekunden beantwortet werden. Eine Sekunde ist imho ein guter Wert.


----------



## Gast2 (7. Jul 2011)

Auch eine Sekunde ist nicht grade viel.
Wenn du z.b. 10 Clients hast die jeweils im 1 sek takt die Datenbank auslesen hast du im worst case alle 100ms nen request.


----------



## nocturne (7. Jul 2011)

0.2 ms ist wirklich zu krass, selbst mit Balancer oder cloud-computing. 

Fachlich gehört das im MVC-Modell nur zum "View"! "Controller" und "Model" sind nicht eigentlich nicht betroffen.

Ich empfehle einen Queue mit JMS, genau da gehört das hin.


----------



## gafktor (8. Jul 2011)

Hallo,
DB-Zugriff hängt von vielen Faktoren ab. Nimm die Netzwerkauslastung, die Auslastung der DB falls noch andere Programme zugreifen, usw. Da du ja testen möchtest mach es doch einfach. Meine natürlich das nichts kritisches durch deine Tests beeinflusst wird sofern es sich um eine produktive Umgebung handelt.
Wenn lokal, gehe ich mal von aus, schau dir sie Auslastung der DB in der Workbench an.


----------



## HoaX (8. Jul 2011)

nocturne hat gesagt.:


> 0.2 ms ist wirklich zu krass, selbst mit Balancer oder cloud-computing.



Macht euch mal nicht ins Hemd. Von wievielen Chatteilnehmern ist denn auszugehen? 2? 3? Da ist es völlig Wurst ob er alle 1s oder 0.2s einen Request macht (auch wenn ich ebenfalls der Meinung bin das 1s ausreichend sein sollte).

Schaut euch irgendwelche dynamische Webseiten an, da werden von einer PHP-Seite 20-30 Queries abgesetzt, und das innerhalb 0,01s... Datenbanken sind darauf ausgelegt schnell zu arbeiten und die Daten effizient abzulegen.

Wegen solcher Spielereien würde ich mir jedenfalls keinen Kopf machen bezüglich Geschwindigkeit/Auslastung/...


----------

