Marauroa 3.8: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
imported>Madmetzger |
imported>Hendrik Brummermann →Performance optimization: async login |
||
| Line 43: | Line 43: | ||
== Performance optimization == |
== Performance optimization == |
||
=== Asynchronous login === |
=== Asynchronous login === |
||
; Summary : |
; 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 : todo |
|||
; Impact on Marauroa users : |
; Impact on Marauroa users : - |
||
; 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 : todo |
|||
: 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. |
|||
: As a nice side effect: There are many messages exchanged during the login process and since processing of them does not have to wait for the turn to end anymore, logins are a bit faster now. If we want to change database storage to a meta model in the future, we will not have to worry about it being a bit slower than the blob anymore. |
|||
=== Baking of RPClasses === |
=== Baking of RPClasses === |
||
; Summary : todo |
; Summary : todo |
||