TiKV 是如何存取数据的(上)

2018-10-10
阅读 4 分钟
2.8k
本文会详细的介绍 TiKV 是如何处理读写请求的,通过该文档,同学们会知道 TiKV 是如何将一个写请求包含的数据更改存储到系统,并且能读出对应的数据的。

雷神 Thor —— TiDB 自动化运维平台

2018-10-08
阅读 4 分钟
3.4k
随着互联网的飞速发展,业务量可能在短短的时间内爆发式地增长,对应的数据量可能快速地从几百 GB 涨到几百个 TB,传统的单机数据库提供的服务,在系统的可扩展性、性价比方面已经不再适用。为了应对大数据量下业务服务访问的性能问题,MySQL 数据库常用的分库、分表方案会随着 MySQL Sharding(分片)的增多,业务访问...

TiDB 源码阅读系列文章(十九)tikv-client(下)

2018-10-08
阅读 5 分钟
2.8k
上篇文章 中,我们介绍了数据读写过程中 tikv-client 需要解决的几个具体问题,本文将继续介绍 tikv-client 里的两个主要的模块——负责处理分布式计算的 copIterator 和执行二阶段提交的 twoPhaseCommitter。

TiDB 在爱奇艺的应用及实践

2018-09-22
阅读 5 分钟
4.3k
爱奇艺,中国高品质视频娱乐服务提供者,2010 年 4 月 22 日正式上线,推崇品质、青春、时尚的品牌内涵如今已深入人心,网罗了全球广大的年轻用户群体,积极推动产品、技术、内容、营销等全方位创新。企业愿景为做一家以科技创新为驱动的伟大娱乐公司。我们在前沿技术领域也保持一定的关注度。

TiKV 集群版本的安全迁移

2018-09-22
阅读 3 分钟
1.8k
在 TiDB 的产品迭代中,不免会碰到一些兼容性问题出现。通常协议上的兼容性 protobuf 已经能帮我们处理的很好,在进行功能开发,性能优化时,通常会保证版本是向后兼容的,但并不保证向前兼容性,因此,当集群中同时有新旧版本节点存在时,旧版本不能兼容新版本的特性,就有可能造成该节点崩溃,影响集群可用性,甚至丢...

使用 TiKV 构建分布式类 Redis 服务

2018-09-07
阅读 4 分钟
3.2k
Redis 是一个开源的,高性能的,支持多种数据结构的内存数据库,已经被广泛用于数据库,缓存,消息队列等领域。它有着丰富的数据结构支持,譬如 String,Hash,Set 和 Sorted Set,用户通过它们能构建自己的高性能应用。

TiDB 源码阅读系列文章(十八)tikv-client(上)

2018-09-07
阅读 4 分钟
2.4k
在整个 SQL 执行过程中,需要经过 Parser,Optimizer,Executor,DistSQL 这几个主要的步骤,最终数据的读写是通过 tikv-client 与 TiKV 集群通讯来完成的。

CNCF to Host TiKV in the Sandbox

2018-08-29
阅读 3 分钟
2.6k
Today, the Cloud Native Computing Foundation (CNCF) accepted TiKV, an open source distributed transactional key-value database, into the CNCF Sandbox for early stage and evolving cloud native projects.

TiDB 源码阅读系列文章(十七)DDL 源码解析

2018-08-28
阅读 5 分钟
3.6k
DDL 是数据库非常核心的组件,其正确性和稳定性是整个 SQL 引擎的基石,在分布式数据库中,如何在保证数据一致性的前提下实现无锁的 DDL 操作是一件有挑战的事情。本文首先会介绍 TiDB DDL 组件的总体设计,介绍如何在分布式场景下支持无锁 shema 变更,描述这套算法的大致流程,然后详细介绍一些常见的 DDL 语句的源码...

TiDB Operator,让 TiDB 成为真正的 Cloud-Native 数据库

2018-08-23
阅读 5 分钟
2.1k
TiDB Operator 是 TiDB 在 Kubernetes 平台上的自动化部署运维工具。目前,TiDB Operator 已正式开源(pingcap/tidb-operator)。借助 TiDB Operator,TiDB 可以无缝运行在公有云厂商提供的 Kubernetes 平台上,让 TiDB 成为真正的 Cloud-Native 数据库。

TiDB 源码阅读系列文章(十六)INSERT 语句详解

2018-08-20
阅读 6 分钟
4.4k
在之前的一篇文章 《TiDB 源码阅读系列文章(四)INSERT 语句概览》 中,我们已经介绍了 INSERT 语句的大体流程。为什么需要为 INSERT 单独再写一篇?因为在 TiDB 中,单纯插入一条数据是最简单的情况,也是最常用的情况;更为复杂的是在 INSERT 语句中设定各种行为,比如,对于 Unique Key 冲突的情况应如何处理:是报...

TiDB 源码阅读系列文章(十五)Sort Merge Join

2018-08-08
阅读 3 分钟
3.5k
在开始阅读源码之前, 我们来看看什么是 Sort Merge Join (SMJ),定义可以看 wikipedia。简单说来就是将 Join 的两个表,首先根据连接属性进行排序,然后进行一次扫描归并, 进而就可以得出最后的结果。这个算法最大的消耗在于对内外表数据进行排序,而当连接列为索引列时,我们可以利用索引的有序性避免排序带来的消耗, ...

三十分钟成为 Contributor | 为 TiKV 添加 built-in 函数

2018-08-02
阅读 6 分钟
2.1k
SQL 语句发送到 TiDB 后经过 parser 生成 AST(抽象语法树),再经过 Query Optimizer 生成执行计划,执行计划切分成很多子任务,这些子任务以表达式的方式最后下推到底层的各个 TiKV 来执行。

社区 | 如何优雅降落到 TiDB 星球?

2018-07-25
阅读 3 分钟
2.4k
提到「开源项目 TiDB」人们总是习惯性反应:它在 GitHub 上 Star 数已经超过 17000,并拥有 260+ 位全球各地的 Contributors 。但数据总归是冷冰冰的,不能生动的展现 TiDB 社区的魅力。所以今天推送一篇 TiDB contributor 杜川同学加入 TiDB 社区前后的「心路历程」,他从亲历者的角度告诉你—— PingCAPer 够 nice 么? ...

TiDB 源码阅读系列文章(十四)统计信息(下)

2018-07-19
阅读 4 分钟
2.5k
在 统计信息(上) 中,我们介绍了统计信息基本概念、TiDB 的统计信息收集/更新机制以及如何用统计信息来估计算子代价,本篇将会结合原理介绍 TiDB 的源码实现。

TiDB 源码阅读系列文章(十三)索引范围计算简介

2018-07-13
阅读 5 分钟
2.8k
在数据库中处理查询请求时,如果可以尽早的将无关数据过滤掉,那么后续的算子就可以少做无用功,提升整个 SQL 的执行效率。过滤数据最常用的手段是使用索引,TiDB 的优化器也会尽量采用索引过滤的方式处理请求,利用索引有序的特点来提升查询效率。比如当查询条件为 a = 1 时,如果 a 这一列上有索引,我们就可以利用索...

TiDB 源码阅读系列文章(十二)统计信息(上)

2018-07-06
阅读 6 分钟
3.7k
在 TiDB 里,SQL 优化的过程可以分为逻辑优化和物理优化两个部分,在物理优化阶段需要为逻辑查询计划中的算子估算运行代价,并选择其中代价最低的一条查询路径作为最终的查询计划。这里非常关键的一点是如何估算查询代价,本文所介绍的统计信息是这个估算过程的核心模块。

TiDB 在特来电的实践

2018-07-02
阅读 4 分钟
2.9k
特来电新能源有限公司是创业板第一股特锐德(300001)的全资子公司,主要从事新能源汽车充电网的建设、运营及互联网的增值服务。特来电颠覆了传统充电桩的模式,世界首创了电动汽车群智能充电系统,获得 336 项技术专利,以“无桩充电、无电插头、群管群控、模块结构、主动防护、柔性充电”的特点引领世界新能源汽车充电的...

TiDB 源码阅读系列文章(十一)Index Lookup Join

2018-06-28
阅读 4 分钟
2.6k
在介绍 Index Lookup Join 之前,我们首先看一下什么是 Nested Loop Join(NLJ)。 NLJ 的具体定义可以参考 Wikipedia。NLJ 是最为简单暴力的 Join 算法,其执行过程简述如下:

SuRF: 一个优化的 Fast Succinct Tries

2018-06-25
阅读 4 分钟
3.7k
SuRF 的核心数据结构就是 Fast Succinct Tries(FST),一种空间节省,支持 point 和 range query 的静态 trie。在很多时候,对于一棵树来说,上层的 trie 节点较少,但访问频繁,也就是我们俗称的 hot,而下层的节点则相对的 cold 一点。因此,SuRF 使用了两种数据结构来分别处理 hot 和 cold 节点。在 upper 层上面使...

十问 TiDB :关于架构设计的一些思考

2018-06-20
阅读 8 分钟
5.2k
做 TiDB 的缘起是从思考一个问题开始的:为什么在数据库领域有这么多永远也躲不开的坑?从 2015 年我们写下第一行代码,3 年以来我们迎面遇到无数个问题,一边思考一边做,尽量用最小的代价来快速奔跑。

Succinct Data Structure

2018-06-19
阅读 4 分钟
2.7k
TiDB 2.0 中,我们引入了一个叫 Chunk 的数据结构用来在内存中存储内部数据,用于减小内存分配开销、降低内存占用以及实现内存使用量统计/控制,其特点如下:

TiDB 源码阅读系列文章(十)Chunk 和执行框架简介

2018-06-19
阅读 4 分钟
2.9k
TiDB 2.0 中,我们引入了一个叫 Chunk 的数据结构用来在内存中存储内部数据,用于减小内存分配开销、降低内存占用以及实现内存使用量统计/控制,其特点如下:

TiDB在西山居实时舆情监控系统中的应用

2018-06-11
阅读 3 分钟
1.8k
西山居创建 1995 年初夏,在美丽的海滨小城珠海,西山居工作室孕育而生,一群西山居居士们十年如一日尅勊业业的奋斗。"创造快乐,传递快乐!" 一直是西山居居士们的创作宗旨。西山居以领先的技术作为坚实的基础以独特的本土化产品为玩家提供时尚化服务。在未来,西山居仍以娱乐软件为主导产品,不断进行研发和市场活动,...

TiDB 在西山居实时舆情监控系统中的应用

2018-06-11
阅读 3 分钟
1.5k
西山居创建 1995 年初夏,在美丽的海滨小城珠海,西山居工作室孕育而生,一群西山居居士们十年如一日尅勊业业的奋斗。"创造快乐,传递快乐!" 一直是西山居居士们的创作宗旨。西山居以领先的技术作为坚实的基础以独特的本土化产品为玩家提供时尚化服务。在未来,西山居仍以娱乐软件为主导产品,不断进行研发和市场活动,...

TiDB 源码阅读系列文章(九) Hash Join

2018-06-07
阅读 5 分钟
2.3k
Hash Join 的基本定义可以参考维基百科:Hash join。简单来说,A 表和 B 表的 Hash Join 需要我们选择一个 Inner 表来构造哈希表,然后对 Outer 表的每一行数据都去这个哈希表中查找是否有匹配的数据。

性能测试工具的 Coordinated Omission 问题

2018-06-03
阅读 3 分钟
2k
很早之前就看过 Gil 大神的一篇文章《Your Load Generator Is Probably Lying To You - Take The Red Pill And Find Out Why》,里面提到了性能测试工具 coordinated omission 的问题,但当时并没有怎么在意。这几天有人在我们自己的性能测试工具 go-ycsb ([链接])上面问了这个问题,我才陡然发现,原来我们也有。

TiDB 助力客如云餐饮 SaaS 服务

2018-06-03
阅读 7 分钟
4.1k
客如云成立于 2012 年,是全球领先、 国内最大的 SaaS 系统公司。 目前面向餐饮、 零售等服务业商家, 提供软硬一体的新一代智能化前台、收银等 SaaS 云服务,包括预订、排队、外卖、点餐、收银、会员管理、进销存等系统服务,并将数据实时传达云端。我们是客如云的大数据基础架构组,负责公司的大数据架构和建设工作,...

TiDB 分布式数据库在转转公司的应用实践

2018-05-30
阅读 5 分钟
3.1k
转转二手交易网 —— 把家里不用的东西卖了变成钱,一个帮你赚钱的网站。由腾讯与 58 集团共同投资。为海量用户提供一个有担保、便捷的二手交易平台。转转是 2015 年 11 月 12 日正式推出的 APP,遵循“用户第一”的核心价值观,以“让资源重新配置,让人与人更信任”为企业愿景,提倡真实个人交易。

TiDB 在威锐达 WindRDS 远程诊断及运维中心的应用

2018-05-18
阅读 4 分钟
2.2k
西安锐益达风电技术有限公司成立于 2012 年 1 月 4 日,是一家专业化的工业测量仪器系统、机电产品和计算机软件研发、设计和制造公司,是北京威锐达测控系统有限公司在西安成立的全资子公司。依托大学的科研实力,矢志不渝地从事仪器仪表及测量系统的研究和应用开发,积累了丰富的专业知识和实践经验,具备自主开发高端...