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
Migrated issue, originally created by jvanasco (jvanasco)
Looking at some performance logs during an audit, it appeared that our dogpile implementation was broken -- there would often be two identical cache misses in a row.
After stacktracing and looking through source, the issue was simple enough and a non-issue -- dogpile.core.dogpile.Lock is implemented in such a way that the logic flows on a get/create like this:
• get
• create
• get again (protect against race conditions)
• set
I think it would be helpful to just add a line to the API docs about this, as I couldn't find anything in dogpile.cache addressing it -- and it sure looks like I broke something, even when everything is working exactly as it should.
Note: `get_or_create` utilizes the `Lock` mechanism from `dogpile.core`. In order to protect against race conditions, a secondary call to 'get' is made before the call to `set`.
The text was updated successfully, but these errors were encountered:
Migrated issue, originally created by jvanasco (jvanasco)
Looking at some performance logs during an audit, it appeared that our dogpile implementation was broken -- there would often be two identical cache misses in a row.
After stacktracing and looking through source, the issue was simple enough and a non-issue --
dogpile.core.dogpile.Lock
is implemented in such a way that the logic flows on a get/create like this:• get
• create
• get again (protect against race conditions)
• set
I think it would be helpful to just add a line to the API docs about this, as I couldn't find anything in dogpile.cache addressing it -- and it sure looks like I broke something, even when everything is working exactly as it should.
The text was updated successfully, but these errors were encountered: