-
Notifications
You must be signed in to change notification settings - Fork 2.7k
fix(performance): move the ipv6 check to schema validation #12714
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
base: master
Are you sure you want to change the base?
Conversation
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.
more test cases:
call Admin API, to confirm the schema check is working right
done |
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.


There is a big performance difference between APISIX 3.10 and 2.13 when no plug-ins are enabled.
After comparing the flame graphs of APISIX 3.10 and 2.13 versions, it can be clearly seen that the biggest difference is in the pick_server function. After comparing the function codes of the two versions, it is found that the code of version 3.10 has added logic to traverse all upstream nodes, and when there are more upstream nodes during performance testing, so the difference is more obvious.
After backtracking the changes, it was found that the changes traversing all upstream nodes were introduced by this pr #7594.
change point
apisix/apisix/balancer.lua
Lines 198 to 202 in 73618d4
check_schemafunction to implement this logicNote: This change is backwards compatible. When detecting data from etcd, it modifies the host for compatibility