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
In #234 PR we introduced IORef to keep the set of domains that ever returned 429 error code.
But there are some concerns that @Martoon-00 stated:
However, the potential issue with atomicModifyIORef' is that it may cause high contention. If we get 1000 simultaneous responses with 429 and invoke this function repeatedly, it may end up with different calls hindering each other, because AFAIU atomicModifyIORef is implemented as compare-and-set, and each thread will get value, perform S.insert computation, only to find out that during that time another thread tried to insert something and thus the result is invalidated and computation must be repeated. If this is true, we may get quadratic execution time.
Acceptance criteria
Set up a simple experiment and try to reproduce the issue
Discuss and decide whether it can harm the normal program working
The text was updated successfully, but these errors were encountered:
Clarification and motivation
In #234 PR we introduced
IORef
to keep the set of domains that ever returned 429 error code.But there are some concerns that @Martoon-00 stated:
Acceptance criteria
The text was updated successfully, but these errors were encountered: