How *-conductor (database accessor) assure concurrency?
Hi, guys. Today, I encountered strange behaviors and it raise me a simple question which I never concerned about. It's about 'how database accessors like *-conductor assure DB data consistency?' What I've seen is ModelsNotFound in Trove which meaning there is no sqlalchemy query result for the Trove DB model. I'm not sure what's happening before, but what I found is DB entry is actually existed but trove-conductor could not find it emitting exception continuously. At the same time, different trove-conductor would be working normally after restart. First, I thought that sqlalchemy ensures concurrency but after reading related document ( https://docs.sqlalchemy.org/en/latest/orm/session_basics.html#is-the-session...), it does not guarantee at all, and user should take all responsibility to manage session. After, I thought oslo.concurrency is promising to ensure consistency by making lock inter process in that the name tells me. But I could not find any related code for locking. So.. What happens internally for *-manage? Any hints would be appreciated. Thanks.
participants (1)
-
양유석