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