Das Commit braucht einfach zu lange. Da dauert eine Verarbeitung ca. 1 Sekunde, was viel zu lang ist.
Jetzt muss ich eine alternative finden, vielleicht habt ihr noch ideen...
Ist die Sekunde zu lang, weil dadurch der Hauptthread blockiert wird und daher keine Daten mehr ankommen?
In diesem Fall einfach die Datenbankoperationen in einen Thread auslagern (oder mehrere, jeweils mit einer Connection pro Client-Thread).
Und man kann die eintreffenden Daten erst mal in einer in-memory Queue speichern, um kurze Spitzenlasten abfangen zu können.
Sind es asynchrone Sockets, die die Haupt-Messageloop verwenden? Auch diesen Bereich könnte man in einen oder mehrere Hintergrundthreads auslagern, mit
Indy oder Synapse und blockierenden Sockets wird es dann deutlich einfacher und performanter.