 Go in TiDBGo in TiDB Yao Wei | PingCAP About me ● Yao Wei (姚维) ● TiDB Kernel Expert, General Manager of South Region, China ● 360 Infra team / Alibaba-UC / PingCAP ● Atlas/MySQL-Sniffer ● Infrastructure software HBase Cassandra MongoDB ... Google Spanner Google F1 TiDB RDBMS NoSQL NewSQL Architecture TiKV TiKV TiKV TiKV Raft Raft Raft TiDB TiDB TiDB ... ... Placement Driver (PD) Control flow: Balance queries ● Very complex OLAP queries ● External Consistency ● SQL is much more complex than KV Why TiDB choose Golang? ● Easy-learning ● Productivity ● Concurrency ● Easy to trace bugs and profile0 码力 | 22 页 | 1.01 MB | 1 年前3 Go in TiDBGo in TiDB Yao Wei | PingCAP About me ● Yao Wei (姚维) ● TiDB Kernel Expert, General Manager of South Region, China ● 360 Infra team / Alibaba-UC / PingCAP ● Atlas/MySQL-Sniffer ● Infrastructure software HBase Cassandra MongoDB ... Google Spanner Google F1 TiDB RDBMS NoSQL NewSQL Architecture TiKV TiKV TiKV TiKV Raft Raft Raft TiDB TiDB TiDB ... ... Placement Driver (PD) Control flow: Balance queries ● Very complex OLAP queries ● External Consistency ● SQL is much more complex than KV Why TiDB choose Golang? ● Easy-learning ● Productivity ● Concurrency ● Easy to trace bugs and profile0 码力 | 22 页 | 1.01 MB | 1 年前3
 Go 构建大型开源分布式数据库技术内幕Go 搭建大型开源分布式数据库技术内幕 shenli@PingCAP 关于我 ● 申砾 (Shen Li) ● TiDB 技术负责人 ● 网易有道 / 360搜索 / PingCAP ● Infrastructure software engineer 为什么需要一个新的数据库? 从单机数据库到 NewSQL ● 关系型数据库 ● NoSQL ● 中间件 ● NewSQL Redis HBase Cassandra MongoDB ... Google Spanner Google F1 TiDB RDBMS NoSQL NewSQL NewSQL 是什么 ● 水平扩展 ● 事务 ● 高可用 & 自动故障恢复 ● SQL TiDB ● Scalability as the first class feature ● SQL is necessary it right and make it fast. ● 测试很重要 ● 简单易用 ● 和社区结合 架构 TiKV TiKV TiKV TiKV Raft Raft Raft TiDB TiDB TiDB ... ... ... ... ... Placement Driver (PD) Control flow: Balance / Failover Metadata / Timestamp0 码力 | 44 页 | 649.68 KB | 1 年前3 Go 构建大型开源分布式数据库技术内幕Go 搭建大型开源分布式数据库技术内幕 shenli@PingCAP 关于我 ● 申砾 (Shen Li) ● TiDB 技术负责人 ● 网易有道 / 360搜索 / PingCAP ● Infrastructure software engineer 为什么需要一个新的数据库? 从单机数据库到 NewSQL ● 关系型数据库 ● NoSQL ● 中间件 ● NewSQL Redis HBase Cassandra MongoDB ... Google Spanner Google F1 TiDB RDBMS NoSQL NewSQL NewSQL 是什么 ● 水平扩展 ● 事务 ● 高可用 & 自动故障恢复 ● SQL TiDB ● Scalability as the first class feature ● SQL is necessary it right and make it fast. ● 测试很重要 ● 简单易用 ● 和社区结合 架构 TiKV TiKV TiKV TiKV Raft Raft Raft TiDB TiDB TiDB ... ... ... ... ... Placement Driver (PD) Control flow: Balance / Failover Metadata / Timestamp0 码力 | 44 页 | 649.68 KB | 1 年前3
 5 How to integrate Graph mode into RDBMS smoothly => nil TiDB 架构 01. 副标题 TiDB TiDB Worker Spark Driver TiKV Cluster (Storage) Metadata TiKV TiKV TiKV MySQL Clients Syncer Data location Job TiSpark DistSQL API TiKV TiDB TSO/Data TSO/Data location Worker Worker Spark Cluster TiDB Cluster TiDB ... ... ... DistSQL API PD PD PD Cluster TiKV TiKV TiDB PD 天下大势,合久必分,分久必合 《三国演义》 图 + 关系型多模实现 01. 副标题 g_prefix Vertex_ID Tag_ID OrderBy Limit Traverse Projection GraphTagReader Filter (age>10) https://github.com/tigraph/tidb DEMO 第三部分 DEMO 01. 副标题 -- 创建 people 点 CREATE TAG people (id BIGINT, name VARCHAR(32)); -- 写入0 码力 | 26 页 | 1.14 MB | 1 年前3 5 How to integrate Graph mode into RDBMS smoothly => nil TiDB 架构 01. 副标题 TiDB TiDB Worker Spark Driver TiKV Cluster (Storage) Metadata TiKV TiKV TiKV MySQL Clients Syncer Data location Job TiSpark DistSQL API TiKV TiDB TSO/Data TSO/Data location Worker Worker Spark Cluster TiDB Cluster TiDB ... ... ... DistSQL API PD PD PD Cluster TiKV TiKV TiDB PD 天下大势,合久必分,分久必合 《三国演义》 图 + 关系型多模实现 01. 副标题 g_prefix Vertex_ID Tag_ID OrderBy Limit Traverse Projection GraphTagReader Filter (age>10) https://github.com/tigraph/tidb DEMO 第三部分 DEMO 01. 副标题 -- 创建 people 点 CREATE TAG people (id BIGINT, name VARCHAR(32)); -- 写入0 码力 | 26 页 | 1.14 MB | 1 年前3
 Go在数据库中间件的应用现存问题 • 数据库访问基本采用直连方式 • 无法满足数据访问平台化要求 • 配置管理方式落后,运维压力大 • 为什么采用Go来实现 • go诸多优点,可用性高 • go处理mysql的binlog有知识积累 • 公司大规模推广使用go 8 分表路由逻辑 • 分表规则 • 哈希分表:shardkey通过Hash函数分表 • 分段分表:按照年、月、日或者整形范围分表 本质上哈希 本质上哈希分表与分段分表都是一样,只是其Hash方式不同,使得看起来有两 种不同的数据组织方式。 9 故障主备切换 • 故障情形 • 从节点挂掉:进行剔除下线处理 • 主节点挂掉,机器存活:通过binlog恢复数据,提升备为主 • 主节点挂掉,机器不存活:采用Relaylog恢复数据,提升备为主 • 部署模式 • 一主多从 • 双主多从 10 故障主备切换 • 一主多从模式 master Dead-Master Latest-Slave Slave Latest-Slave与Master差异 日志 Latest-Slave与Slave差异 日志 Master故障时试图通过Rsync拉取Binlog,最大程度保 证数据不丢失; Slave之间的数据差异通过中继日志恢复。 • 数据恢复工作原理 11 故障主备切换 • 双主多从模式 master slave slave slave0 码力 | 17 页 | 4.02 MB | 1 年前3 Go在数据库中间件的应用现存问题 • 数据库访问基本采用直连方式 • 无法满足数据访问平台化要求 • 配置管理方式落后,运维压力大 • 为什么采用Go来实现 • go诸多优点,可用性高 • go处理mysql的binlog有知识积累 • 公司大规模推广使用go 8 分表路由逻辑 • 分表规则 • 哈希分表:shardkey通过Hash函数分表 • 分段分表:按照年、月、日或者整形范围分表 本质上哈希 本质上哈希分表与分段分表都是一样,只是其Hash方式不同,使得看起来有两 种不同的数据组织方式。 9 故障主备切换 • 故障情形 • 从节点挂掉:进行剔除下线处理 • 主节点挂掉,机器存活:通过binlog恢复数据,提升备为主 • 主节点挂掉,机器不存活:采用Relaylog恢复数据,提升备为主 • 部署模式 • 一主多从 • 双主多从 10 故障主备切换 • 一主多从模式 master Dead-Master Latest-Slave Slave Latest-Slave与Master差异 日志 Latest-Slave与Slave差异 日志 Master故障时试图通过Rsync拉取Binlog,最大程度保 证数据不丢失; Slave之间的数据差异通过中继日志恢复。 • 数据恢复工作原理 11 故障主备切换 • 双主多从模式 master slave slave slave0 码力 | 17 页 | 4.02 MB | 1 年前3
 2.1.1 Golang主动式内存缓存的优化探索之路数据加载,更新 02. 全量数据加载,增量数据监听 • 每个应用服务分别消费数据变更消息 • 一个应用服务消费数据变更,应用服务集群内广播 Maxwell是一个能实时读取MySQL二进 制日志binlog,并生成JSON格式的消 息,作为生产者发送给Kafka、 RabbitMQ、Redis、文件或其它平台的 应用程序 数据管理 如何像SQL一样灵活? 多维度查询 03. 业务0 码力 | 48 页 | 6.06 MB | 1 年前3 2.1.1 Golang主动式内存缓存的优化探索之路数据加载,更新 02. 全量数据加载,增量数据监听 • 每个应用服务分别消费数据变更消息 • 一个应用服务消费数据变更,应用服务集群内广播 Maxwell是一个能实时读取MySQL二进 制日志binlog,并生成JSON格式的消 息,作为生产者发送给Kafka、 RabbitMQ、Redis、文件或其它平台的 应用程序 数据管理 如何像SQL一样灵活? 多维度查询 03. 业务0 码力 | 48 页 | 6.06 MB | 1 年前3
 4.GPT 与数据库的生态整合GPT 与数据库的生态整合 王琦智 PingCAP TiDB 开发者生态高级工程师 目 录 自然语言到 SQL 01 自然语言到图表 02 GPTs 调用数据库 API 03 总结 04 自然语言到SQL OSS Insight 自然语言到图表 Thoughts to insights made easy(with AI) GPTs 调用数据库 API Thank You0 码力 | 21 页 | 3.33 MB | 1 年前3 4.GPT 与数据库的生态整合GPT 与数据库的生态整合 王琦智 PingCAP TiDB 开发者生态高级工程师 目 录 自然语言到 SQL 01 自然语言到图表 02 GPTs 调用数据库 API 03 总结 04 自然语言到SQL OSS Insight 自然语言到图表 Thoughts to insights made easy(with AI) GPTs 调用数据库 API Thank You0 码力 | 21 页 | 3.33 MB | 1 年前3
 Casdoor · An Open Source UI-first Identity Access Management (IAM) / Single-Sign-On (SSO) platform supporting OAuth 2.0, OIDC, SAML and CASdatabases: • MySQL • MariaDB • PostgreSQL • CockroachDB • SQL Server • Oracle • SQLite 3 • TiDB Do Download wnload The source code of Casdoor is hosted on GitHub: https://github.com/casdoor/ Product oduct TTechnologies echnologies Docs Docs Dashboard of PingCAP TiDB React + TypeScript + Go + Gin Use Casdoor for TiDB Dashboard SSO sign-in (other languages: Chinese, Japanese) GitLab Vue0 码力 | 825 页 | 58.31 MB | 1 年前3 Casdoor · An Open Source UI-first Identity Access Management (IAM) / Single-Sign-On (SSO) platform supporting OAuth 2.0, OIDC, SAML and CASdatabases: • MySQL • MariaDB • PostgreSQL • CockroachDB • SQL Server • Oracle • SQLite 3 • TiDB Do Download wnload The source code of Casdoor is hosted on GitHub: https://github.com/casdoor/ Product oduct TTechnologies echnologies Docs Docs Dashboard of PingCAP TiDB React + TypeScript + Go + Gin Use Casdoor for TiDB Dashboard SSO sign-in (other languages: Chinese, Japanese) GitLab Vue0 码力 | 825 页 | 58.31 MB | 1 年前3
 04. GraphQL in Chaos Mesh 2.0 - 李晨曦问题与解决方案 3. 设计思路与实现 4. 后续的工作 Chaos Mesh 介绍 Chaos Mesh 是什么 ● Kubernetes 上的云原生混沌工程平台 ● 最初目标是作为 TiDB 的内部测试平台 ● 提供对 Pod 或者具体容器的错误注入, 包括网络、系统 IO、内核以及一些应用层注入 chaos-mesh.org github.com/chaos-mesh Chaos0 码力 | 30 页 | 1.29 MB | 1 年前3 04. GraphQL in Chaos Mesh 2.0 - 李晨曦问题与解决方案 3. 设计思路与实现 4. 后续的工作 Chaos Mesh 介绍 Chaos Mesh 是什么 ● Kubernetes 上的云原生混沌工程平台 ● 最初目标是作为 TiDB 的内部测试平台 ● 提供对 Pod 或者具体容器的错误注入, 包括网络、系统 IO、内核以及一些应用层注入 chaos-mesh.org github.com/chaos-mesh Chaos0 码力 | 30 页 | 1.29 MB | 1 年前3
共 8 条
- 1













