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
Thanks for bringing this up! Yes, the local caching mechanism should work over a single request lifecycle. I think we can improve this by hooking the cache onto the Split::Helper instead.
The ideal solution would be to solve what's causing the performance impact. The number of Redis calls made per single request. But that needs a lot more work.
Describe the bug
Split caching system isn't thread / process safe. When the request ends, the cache remains set in the process.
This is due to Split using class instance variables to store the cache.
In a scenario in which you're using Puma with multiple processes handling requests, this is not ideal.
If one process removes or resets an experiment, the cache only gets reset in a single process. Not in all the processes having the cached values.
To Reproduce
Using puma, Split with cache enabled, and 2 browser windows:
Suggestions
CurrentAttributes
for the caching mechanism instead of the current class instance variable method.The text was updated successfully, but these errors were encountered: