-
-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: epoll based worker #139
Conversation
d179201
to
c8daf8d
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
FYI, there's a sporadic bug on libcurl that leads to some reqs failed: curl/curl#14976 Will put this back to draft until it's resolved. Reported a bug on curl here: curl/curl#15079 |
curl/curl#15079 was solved. It was mostly a lack of documentation. In essence, |
Fixes sporadic timeouts
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
epoll is Linux-only so can't test on my Mac; rubber stamping this
Will open an issue to address this. |
Should this be counted as a version change? |
Can't wait this get release in Supabase cloud ! |
Done on #165 |
This replaces the usage of curl_multi_perform (which uses
select()
) for curl_multi_socket_action +epoll()
, which is more performant (requests finish in less time) and more reliable (with 0 timeouts).It closes #86. Using the cloud test added on #150, on this branch we get the following results:
On master:
So we get 0 timeouts on 1M requests, while on master we got many failures starting at 10K requests. The completion of the requests take much less time as well.