Relational database is not the only way.k8s implement all features(RBAC, ABAC, cascade) we need but no relational databases. Keep configuration in two places, it will bring a hard problem: how to keep consistency.A problem that engineers have struggled for many years but there has been no easy solution until now,I think it’s not worth introducing such a problem to implement the mentioned features. ( I also have never seen a project using etcd and relational storage at the same time to store the same data, )
wei jin <[email protected]> 于2020年8月20日周四 下午4:04写道: > We need a relational database to do some function extensions to meet some > practical needs, such as authority management. But we also hope to keep > apisix sufficiently convergent and focus on a high-performance gateway. > APISIX should not be affected by external function extensions. > > vincixu <[email protected]> 于2020年8月20日周四 下午3:53写道: > > > I don't think a lot of routes is a good practice. > > But we can discuss how many routes APISIX plans to support. There is no > > pressure on the front-end sorting of records less than 50,000 records(Our > > team way). > > If we plan to support large rotes query, paging and so on, we can load > the > > data into memory, and then simulate query and paging in the backend > instead > > of depend on another storage (the k8s apiserver way), > > if we really need a storage that is easy to query, why not directly use > it > > as the configuration library of APISIX? Just like tyk did( using mongo as > > configuration storage). > > It is very dangerous and inelegant to keep duplicate configuration even > in > > different storage media. > > > > YuanSheng Wang <[email protected]> 于2020年8月20日周四 下午12:30写道: > > > > > On Thu, Aug 20, 2020 at 11:42 AM vincixu <[email protected]> wrote: > > > > > > > > support search and paging, etcd cannot support such features. > > > > back-end search and paging is unnecessary, we can implement it in the > > > > front-end, because users will not have too many configurations. > > > > > > > > > > > because users will not have too many configurations > > > > > > Apache APISIX can support a large number of routes, which is an > important > > > feature for our users. > > > > > > Another case: > > > > > > the `service` or `upstream` object can be bound in `route`, when we > need > > to > > > delete the `service` > > > or `upstream` object, we need to confirm there is no route using it. if > > we > > > are using RDS, its easy for > > > this case. > > > > > > If we only use etcd, it is hard to support this case too. > > > > > > > > > > > > > > YuanSheng Wang <[email protected]> 于2020年8月20日周四 上午11:29写道: > > > > > > > > > On Thu, Aug 20, 2020 at 10:57 AM vincixu <[email protected]> wrote: > > > > > > > > > > > I haven't followed APISIX Dashboard until I saw this email. > > > > > > In my opinion, APISIX Dashboard should not rely on storage other > > than > > > > > ETCD > > > > > > or even ManagerAPI, which will increase the overall complexity. > > > > > > > > > > > > > > > > `manager api` relies on relational databases, because some data > needs > > > to > > > > > support search and paging, etcd cannot support such features. > > > > > > > > > > For the `route.name` field, it is necessary to ensure that it is > > > unique > > > > > among all routes, which cannot be implemented in etcd. > > > > > > > > > > > > > > > > This is really not a good idea. Dashboard should be kept simple > and > > > > easy > > > > > to > > > > > > deploy, not another huge application. > > > > > > > > > > > > Justin Mclean <[email protected]> 于2020年8月20日周四 > 上午10:05写道: > > > > > > > > > > > > > HI, > > > > > > > > > > > > > > Last I looked mysql was also GPL which is not compatible with > the > > > > > Apache > > > > > > > License. I assume this is an optional dependancy? > > > > > > > > > > > > > > Thanks, > > > > > > > Justin > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > *MembPhis* > > > > > My GitHub: https://github.com/membphis > > > > > Apache APISIX: https://github.com/apache/incubator-apisix > > > > > > > > > > > > > > > > > > -- > > > > > > *MembPhis* > > > My GitHub: https://github.com/membphis > > > Apache APISIX: https://github.com/apache/incubator-apisix > > > > > >
