-
Notifications
You must be signed in to change notification settings - Fork 170
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
option to drop post_action #290
Conversation
ede627d
to
67bd043
Compare
Spell Checker found issuesdoc/management-api.md
doc/parameters.md
Spell Checker found issuesdoc/management-api.md
doc/parameters.md
Generated by 🚫 Danger |
5efbcd4
to
414d313
Compare
bca005d
to
2faf581
Compare
@@ -113,13 +113,28 @@ function _M.disabled() | |||
ngx.exit(ngx.HTTP_FORBIDDEN) | |||
end | |||
|
|||
function _M.info() |
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.
This looks separate from no post_action changes, adding an /info endpoint, no?
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.
Yes it is separate commit. Not really useful without the post_action changes because there where no timers before.
1c56134
to
dd8276e
Compare
[nginx] increase number of running timers [nginx] increase default pool size for sockets
that returns information about timers
doing synchronous call in the post_action will push the latency to the client on the same connection using timers we can make that fully asynchronous not being tied to the request phase at all setting APICAST_REPORTING_THREADS environment variable to a number greater than 0 will enable reporting in asynchronous timers instead of synchronous call the number defines a maximum number of parallel calls to backend per worker if there is new report coming but no connections is available APIcast will wait for up to 10 seconds before falling back to the synchronous call please note this is **experimental** feature
so SSL validation will work $ openssl ecparam -genkey -name prime256v1 -out key.pem $ openssl req -new -sha256 -key key.pem -out csr.csr -subj '/CN=127.0.0.1' $ openssl req -x509 -sha256 -days 3650 -key key.pem -in csr.csr -out certificate.pem
because tests run in the same context
So, focussing on the second of the two comparisons: In the Pr version: Thruput is 97.7% of Master If it solves a real problem for this and other customers with long latencies, then I guess 97.7% is acceptable....and maybe their are opportunities to optimize it further.... |
#289 revealed limitations of post_action
this PR offers new experimental flag to turn off post_action
and use nginx timers instead
setting
APICAST_REPORTING_THREADS
to a value greater than 0 is going to enable asynchronous reporting to backend.doing synchronous call in the post_action will
push the latency to the client on the same connection
using timers we can make that fully asynchronous
not being tied to the request phase at all
setting APICAST_REPORTING_THREADS environment variable
to a number greater than 0 will enable reporting in asynchronous
timers instead of synchronous call
the number defines a maximum number of parallel calls
to backend per worker
if there is new report coming but no connections is available
APIcast will wait for up to 10 seconds before falling back to the
synchronous call
please note this is experimental feature
TODO