Hallo zusammen,
folgende Aufgabe habe ich zu lösen:
Ein Javaprogramm soll per Netzwerk ankommende Anfragen parallel an z.Zt. 12 MySQL-Server weiterleiten, die Resultsets zusammenfassen und an den anfragenden Client zurücksenden.
Die Anfrage ist z.B. "SELECT volltextsuchbegriff". Das Programm startet einen Thread, der startet wiederum 12 Threads, die daraus richtiges SQL machen, Datenbankverbindungen aufmachen und die MySQL-Server befragen. Wenn die fertig sind, formatiert der erste Thread die Resultate in einem CSV-Format und sendet sie zurück. Jeder MySQL-Server liefert maximal 750 Zeilen.
Zur Zeit schaffe ich auf einem DUAL-XEON mit 3,2 GHz und 2GB RAM gerade mal 4 Anfragen / Sekunde. Danach kapituliert der GC und es hagelt outofMemory-Exceptions.
Ich habe schon viel mit -XX:+UseAgressiveHeap und Konsorten, verschiedenen VM's und Umstellung auf Thread-Pools rumprobiert. Keine Änderung.
Meine Frage an euch ist nun: Liegts an meinem Code oder ist die Aufgabe so anspruchsvoll, dass man soviel Rechenpower braucht (kann ich mir eigentlich nicht vorstellen.).
Danke...
folgende Aufgabe habe ich zu lösen:
Ein Javaprogramm soll per Netzwerk ankommende Anfragen parallel an z.Zt. 12 MySQL-Server weiterleiten, die Resultsets zusammenfassen und an den anfragenden Client zurücksenden.
Die Anfrage ist z.B. "SELECT volltextsuchbegriff". Das Programm startet einen Thread, der startet wiederum 12 Threads, die daraus richtiges SQL machen, Datenbankverbindungen aufmachen und die MySQL-Server befragen. Wenn die fertig sind, formatiert der erste Thread die Resultate in einem CSV-Format und sendet sie zurück. Jeder MySQL-Server liefert maximal 750 Zeilen.
Zur Zeit schaffe ich auf einem DUAL-XEON mit 3,2 GHz und 2GB RAM gerade mal 4 Anfragen / Sekunde. Danach kapituliert der GC und es hagelt outofMemory-Exceptions.
Ich habe schon viel mit -XX:+UseAgressiveHeap und Konsorten, verschiedenen VM's und Umstellung auf Thread-Pools rumprobiert. Keine Änderung.
Meine Frage an euch ist nun: Liegts an meinem Code oder ist die Aufgabe so anspruchsvoll, dass man soviel Rechenpower braucht (kann ich mir eigentlich nicht vorstellen.).
Danke...