cockroachDB技术架构学习——SQL层

本文介绍了cockroachDB的SQL层,包括SQL parser解析器、SQL planner计划器、SQL executor执行器和DistSQL。解析器将SQL语句转化为抽象语法树,计划器生成优化的执行计划,执行器则负责将计划转化为键值操作。同时,文章还探讨了编码方式和DistSQL如何加速分布式查询。
摘要由CSDN通过智能技术生成

preview
cockroachDB的SQL api以PostgreSQL为蓝本进行交互。收到SQL RPC后,节点将它们转换为可与我们的分布式键值存储一起使用的操作。如果节点接收到无法直接服务的读取或写入请求,它会找到可以处理该请求的节点并与之通信。

SQL层

​ SQL层主要将客户端SQL查询转换为KV操作。

​ 当开发人员向集群发送请求时,它们将以SQL语句的形式到达,但最终数据将作为键值(KV)对写入存储层并从存储层读取。SQL层将SQL语句转换为KV操作计划,并将其传递到事务层。

SQL parser解析器

​ 在收到SQL请求之后,解析该语句,创建查询计划,然后执行该计划。

​ 接收到的查询将针对yacc文件(描述了支持的语法)进行解析,并将每个查询的字符串版本转换为抽象语法树(AST)

SQL planner计划器

​ AST随后分为三个阶段转换为查询计划:

  1. ​ AST转换为高级逻辑查询计划。进行语义分析,检查查询是否有效;解析名称,消除不需要的中间计算以及确定要用于中间结果的数据类型。
  2. 使用有效地转换优化来简化逻辑计划。
  3. 使用搜索算法优化逻辑计划。评估执行查询的多种可能方式并选择成本最低的执行计划。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值