Open NilsVollmer opened 6 years ago
Erster Quick-Fix ist deployed: Bei der Freitext-Suche und in den FilteringSelect-Auswahlfeldern läuft ein 400ms timeout nach jeden Tastenanschlag ab, nach dem erst die Suchanfrage abgefeuert wird. Beim schnelleren Tippen sollte also nicht für jeden neuen character ein request erfolgen.
Außerdem habe ich den Bug gefixt, nach dem der loading-state von Index-Tabellen nicht mehr angezeigt wurde (Tabelle wird durchsichtig solange geladen wird).
Weitere Fehlerbehebung (v.A. in filtern) wird durch das filter-refactoring durch @NilsVollmer blockiert.
Die Researcher berichten immer mal wieder von schlechter Performance im Backend und in den Logs kann man das auch immer sehr gut an den vielen High Response Time / Timeout (30 sekunden) Errors sehen.
Ich konnte jetzt keinen Fehler in den Logs finden und ich vermute, dass das Problem mit der Suche zusammenhängt: sowohl bei den Filtern als auch bei der Freitextsuche (pg_search) schicken wir direkt bei jedem Tastaturanschlag eine neue Suche ab. Gerade pg_search auf großen Modellen, wie Offer etc. wird von der Performance eher ein paar Sekunden brauchen. Der Nutzer tippt aber natürlich einfach weiter und erstellt so sehr viele Queries auf einmal. Beispiel aus den Logs:
In diesen Fällen wär die Last auf dem Server deutlich geringer, wenn nur am Ende eine finale Query abgeschickt werden würde anstatt n queries für jeden Tastaturanschlag. Wir sollten also entweder einen 'Abschicken/Filtern/Suchen'-Button einbauen oder einen Timer laufen lassen, der immer zurückgesetzt wird, wenn eine neue Taste angeschlagen wird und erst wenn dann 2-3 Sekunden nichts neues getippt wurde, wird die Suche abgeschickt.
@Twiek Bitte priorisieren ;)