【Infra Meetup No.45】Rust in TiKV

本文整理自 2017 年 4 月 16 日 Rust 专场 Meetup 上,我司首席架构师唐刘同学的现场分享,共享给大家。enjoy~

分布式系统测试那些事儿 - 信心的毁灭与重建

本话题系列文章整理自 PingCAP Infra Meetup 第 26 期刘奇分享的《深度探索分布式系统测试》议题现场实录。文章较长,为方便大家阅读,会分为上中下三篇,本文为下篇。

MPP and SMP in TiDB

本篇文章整理自第 21 期 PingCAP Infra Meetup 上申砾分享的《MPP and SMP in TiDB》内容。

分布式系统测试那些事儿 - 错误注入

本话题系列文章整理自 PingCAP Infra Meetup 第 26 期刘奇分享的《深度探索分布式系统测试》议题现场实录。文章较长,为方便大家阅读,会分为上中下三篇,本文为中篇。

分布式系统测试那些事儿 - 理念

本话题系列文章整理自 PingCAP Infra Meetup 第 26 期刘奇分享的《深度探索分布式系统测试》议题现场实录。文章较长,为方便大家阅读,会分为上中下三篇,本文为上篇。

TiDB 中的子查询优化技术

子查询优化一直是 SQL 查询优化中非常难的一部分,尤其是关联子查询的改写。TiDB 为了兼容 MySQL,允许用户在任何位置编写子查询。对于非关联子查询,TiDB 会对其进行提前求值,对于关联子查询,TiDB 会尽可能的对其进行去关联化,例如改写成 SemiJoin。本文会重点介绍 TiDB 对关联子查询的优化手段。

TiDB 下推 API 实现细节 - Union Scan

TiDB 集群的架构分为上层的 SQL 层和底层的 KV 层,SQL 层通过调用 KV 层的 API 读写数据,由于 SQL 层的节点和 KV 层节点通常不在一台机器上,所以,每次调用 KV 的 API 都是一次 RPC, 而往往一个普通的 Select 语句的执行,需要调用几十到几十万次 KV 的接口,这样的结果就是性能非常差,绝大部分时间都消耗在 RPC 上。为了解决这个问题,TiDB 实现了下推 API,把一部分简单的 SQL 层的执行逻辑下推到 KV 层执行,让 KV 层可以理解 Table 和 Column,可以批量读取多行结果,可以用 Where 里的 Expression 对结果进行过滤, 可以计算聚合函数,大幅减少了 RPC 次数和数据的传输量。