OK, I see. +1

Chao Zhang
https://github.com/tokers

On June 20, 2023 at 15:12:27, Ling Samuel (lingsamuelgr...@gmail.com) wrote:

Hi, it is a breaking change indeed.

About the plugin detail, I have explained in the main thread.

> Snowflake depends on a unique worker_id, which is acquired from etcd. If
etcd
fails, each request with request-id plugin that uses the snowflake
algorithm
needs to try to retrieve a unique worker_id. This has a significant impact
on performance.

LI Fabrice <yihao.li...@hotmail.com> 于2023年6月15日周四 00:38写道:

> Hi,
>
> First of all, that will be a breaking change. In addition, if the user is
> using the old version and then updates to the new version, it is
necessary
> to verify and explain the change of request-id plugin. Finally, can you
> give some info of the request-id plugin when etcd is unavailable?
>
> Fabriceli
> https://github.com/Fabriceli
>
> > 2023年6月14日 16:55,Ling Samuel <lingsamuelgr...@gmail.com> 写道:
> >
> > *Background*
> >
> > The snowflake algorithm in the request-id plugin introduces an
> unnecessary
> > dependency on etcd. This will significantly affect APISIX performance
if
> > etcd is unavailable.
> >
> > Snowflake depends on a unique worker_id, which is acquired from etcd.
If
> > etcd fails, each request with request-id plugin that uses the snowflake
> > algorithm needs to try to retrieve a unique worker_id. This has a
> > significant impact on performance.
> >
> > In addition, the data plane may not have access to etcd. This
limitation
> > would make the algorithm completely unusable.
> >
> > In the request-id scenario, uuid can generate a globally unique id,
which
> > is enough for this case.
> >
> > So I suggest removing this algorithm from the request-id plugin. There
> are
> > some benefits here:
> >
> > 1. reduce code complexity and the maintenance burden
> > 2. remove dependency on etcd on the data plane
> > 3. reduce the potential instability of request-id that may affect user
> > business
>
>

Reply via email to