Marauroa 3.8: Difference between revisions

Jump to navigation Jump to search
Content deleted Content added
imported>Hendrik Brummermann
imported>Kymara
typo
Line 47: Line 47:
; Summary : Login events are now processed asynchronously
; Summary : Login events are now processed asynchronously
; Reason for change : On login a number of database queries have to be done and some of them are relatively slow (up to 100ms) so this slowed down turn execusion.
; Reason for change : On login a number of database queries have to be done and some of them are relatively slow (up to 100ms) so this slowed down turn execusion.
; Impact on Marauroa users : n changes required
; Impact on Marauroa users : No changes required
; Details : On login Marauroa has to verify the username and password and check if the account was banned. In addition to that it checks if the account was blocked because of too many failed login attempts. And if all is well, it loads a list of all characters belonging to that account, including character details. All in all this can take up to 100ms on a large database with many logged login events.
; Details : On login Marauroa has to verify the username and password and check if the account was banned. In addition to that it checks if the account was blocked because of too many failed login attempts. And if all is well, it loads a list of all characters belonging to that account, including character details. All in all this can take up to 100ms on a large database with many logged login events.
: Although login events have always been outside the normal turn loop, they used a common synchronization lock. In Marauroa 3.8 all of this happens without holding the lock. Only the small and very fast step of placing a selected character into the world is synchronized.
: Although login events have always been outside the normal turn loop, they used a common synchronization lock. In Marauroa 3.8 all of this happens without holding the lock. Only the small and very fast step of placing a selected character into the world is synchronized.