有这个必要吗?那还需要用tidb干啥呢
tidb 代码里很多地方强依赖 tikv 和 pd,并没有很好地解耦,替换不现实。
之前 foundationdb 想过直接用 tidb 做上层的 SQL 引擎,后来放弃了:Use FoundationDB as an alternative of TiKV for TiDB · Issue #19111 · pingcap/tidb · GitHub
TiDB作为一款优秀的分布式数据库,其核心组件主要是是计算层tidb-server、存储层tikv-server和调度管理层pd-server,这几个组件共同构成了这款数据库。
楼主如果不想要存储层tikv,那么由于pd是管理数据Region的调度管理层,那么也不需要pd-server了,这样只剩下一个tidb-server计算层。由于tidb-server包含有很多与tikv、pd相关的处理逻辑,你们也是无法直接使用的,需要经过大量的源码调整和验证,实在是吃力不讨好。如果仅仅是想要一个SQL解析器、事务处理模块,可以直接用官方开源的 sql parser,这个比你直接使用tidb-server好多了。
另外,在只需要KV存储的业务场景,可以不用tidb-srver计算层,只部署tikv-server和pd-server 实现一个纯分布式KV键值对分布式存储系统,业务绕过滤事务等相关特性,直接访问的 Raw KV。这个用法需要业务方有极强的源码把控能力,以应对各种未知的问题(虽然支持,但毕竟是非常规用法)。
你这样的话,PD的调度,TiDB的算子下推啥的应该都需要改源代码吧
我看单独用tidb源码编译运行也能跑,不需要安装tikv和pd,是本地有一个store吧
是的,我看单独编译tidb运行也能跑,不需要装tikv和pd,这个本地有一个store
实现所有的tikv的接口和pd的接口就可以替换,但是tidb有些和tikv耦合的有点紧,比如说region管理之类的。
tidb和tikv代码是全部开源的,大佬可以去研究下。
大佬有自己开发一个数据库的想法非常牛。
这位大佬估计就是想自己做自己的数据库了
弄个单机的应该不需要pd吧,只要能从自己存储上拿数据上来在tidb层做计算就行了
这是打算套壳?吃信创的汤了?
那不是,打算试下自己用用看
好新颖的想法
tidb的代码里面有访问pd的部分,查region在哪里。这个得实现,否则没法工作。
MySQL 引擎都是可插拔的
PG 也有外表一说,往这些方向研究吧。
TIDB 的扩展性暂不清楚。
这个搞你得对他们的组件了解的非常深刻吧,不建议
如果这样那你要根据tidb实现相应的接口,很复杂不建议这样做
大佬,具体得实现哪些接口才行啊,有相关文档吗