You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This obviously prevents part of the event processing from happening in parallel. It would of course be nicer if that wasn't the case.
There are two parts to this:
The mutex currently implicitly prevents two goroutines from interfering with each other when fetching/updating the same object. To address this, some kind of more sophisticated locking mechanism would be necessary, i.e. one that takes the object ID into account and only prevents concurrent calls for the same object, maybe something similar to ObjectNameLock from Fix broken runtime config sync icinga2#10013.
While adding MySQL/MariaDB support, we noticed that the database queries currently performed are susceptible to InnoDB locking issues, see Port schema to MySQL 5.7 / MariaDB 10.2 #203 (review) and following comments. Currently, this happens to be prevented by the current locking, but if we improve this, this has to be addressed.
The text was updated successfully, but these errors were encountered:
Currently,
object.FromEvent()
performs some database interaction while holding a mutex:https://github.com/Icinga/icinga-notifications/blob/8102c7797364a1f184526a19083220fa7d7a46c9/internal/object/object.go
This obviously prevents part of the event processing from happening in parallel. It would of course be nicer if that wasn't the case.
There are two parts to this:
ObjectNameLock
from Fix broken runtime config sync icinga2#10013.The text was updated successfully, but these errors were encountered: