wir setzen Moodle unteranderem an unserer Hochschule zum Semesterstart für die Wahl des Stundenplanes ein. Jeder Student muss zum Semesterbeginn sich in einer Gruppeneinteilung/Abstimmung (mod/choice/view) für seinen Wunsch-Stundenplan eintragen.
Dabei gilt das Motto "Wer zuerst kommt, mahlt zuerst".
Das führt dazu, dass sich teilweise mehrere hundert User gleichzeitg in Moodle einloggen und auf die Freigabe des Abstimmung warten (die Studierende selber, deren Verwandte und Bekannte), um möglichst den besten Stundeplan zu erhaschen. Wir erlauben mehrere gleichzeitige Logins mit demselben User in moodle.
Sobald die Abstimmung eröffnet ist, tragen sich die Studis rasent schnell ein.
Dabei tritt folgendes Phänomen auf:
Während der letzten Semesterstarts haben wir beobachtet, wie eine Gruppeneinteilung bei 39/40 Teilnehmer bereits „Maximum erreicht/Gruppe voll“ anzeigte.
Eine Datenbankauswertung zeigte, dass tatsächlich 40 TN eingetragen waren. Unter den 40 TN war jedoch ein Nutzer doppelt eingetragen. In der GUI werden tatsächlich nur 39 TN angezeigt. Scheinbar arbeitet das SELECT-Statement im Hintergrund mit einem DISTINCT.
Meine Frage ist nun, wie dieses Verhalten bei einer Abstimmung zustande kommen kann und wie/ob dies im Code gefixed werden kann. Liegt es an den massiv hohen gleichzeitigen Zugriffen auf die Abstimmung?
Hat jemand diese Erfahrung ebenfalls schon gemacht oder einen Lösungsvorschlag?
VG Robin