It is a nice feature, if we can do `QPS performance should exceed3.0.0-beta
version by 30%`, it is cool.


On Mon, Oct 17, 2022 at 2:46 PM tzssangglass <tzssanggl...@apache.org>
wrote:

> Background
> In the early days, APISIX prided itself on its high performance, but as the
> project grew, we would add more features to the main process, which caused
> APISIX's performance to degrade. This is an irreversible process.
> Now it's time to refocus the perspective on improving performance.
> I would like to introduce a new approach for guiding current and future
> performance optimization measures.
>
> Vision
> Implementing a complete AI Plane allows APISIX to dynamically determine the
> best configuration switch based on user configuration (routing, plug-ins,
> etc.), monitoring, and other data, and intelligently enable or disable some
> features to find the best balance between functionality, performance, and
> security. Make every line of the main process code real and meaningful, and
> reject every bit of waste. On the premise of not compromising security and
> functionality, we further improve APISIX execution efficiency, thus
> enhancing APISIX node throughput and system stability, and bringing users a
> more ultimate experience. In the future, AI Plane will be more intelligent
> to help users better manage their existing APIs and further enhance
> APISIX's experience of managing user APIs.
>
> Goals
> For now let's talk about short-term goals, in the short term (before APISIX
> 3.0 is released), we need to achieve
> 1. improve APISIX performance relative to 3.0.0-beta version in both
> single-route and multiple-route scenarios;
> 2. optimized for many routes pressure testing scenarios (5000 routes, no
> binding of any plugins, only one upstream), QPS performance should exceed
> 3.0.0-beta version by 30%.
>
> Detailed Design
> 1. when the route matching conditions are simple, such as only URI, and
> host, enable caching to speed up route matching, the cache key can be set
> dynamically;
> 2. remove ctxdump from the Lua code and implement it at the C level;
> 3. if there are no plugins bound to the route that works in the
> header_filter and body_filter phases, and if there are no special settings
> in these two phases, skip them directly;
> 4. when there is only one upstream node in the upstream and no other
> configuration items are enabled, set upstream in a minimalist way.
>
> *ZhengSong Tu*
> My GitHub: https://github.com/tzssangglass
> Apache APISIX: https://github.com/apache/apisix
>


-- 

*MembPhis*
My GitHub: https://github.com/membphis
Apache APISIX: https://github.com/apache/apisix

Reply via email to