V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
c4pt0r
V2EX  ›  程序员

开源了这几个月的工作: TiDB

  c4pt0r · 2015-09-06 12:31:08 +08:00 · 26854 次点击
这是一个创建于 3370 天前的主题,其中的信息可能已经有所发展或是发生改变。

项目的野心还是比较大的,希望实现一个分布式的 SQL 数据库,目前开源了 SQL Layer ,大部分兼容 MySQL 的语法。
TiDB is a distributed SQL database. Inspired by the design of Google F1, TiDB supports the best features of both traditional RDBMS and NoSQL.
Written in Go.
欢迎 Star 和 Fork :)

https://github.com/pingcap/tidb

45 条回复    2019-10-18 14:21:46 +08:00
Comdex
    1
Comdex  
   2015-09-06 12:38:31 +08:00
用 go 写的数据库不少哇
zhicheng
    2
zhicheng  
   2015-09-06 12:40:02 +08:00
我也来发一个 C 写的简单 DBM 。

https://github.com/zhicheng/db
unique
    3
unique  
   2015-09-06 12:43:55 +08:00 via Android
star~
1000copy
    4
1000copy  
   2015-09-06 13:17:00 +08:00
good . stared .
shenfeng
    5
shenfeng  
   2015-09-06 13:17:20 +08:00   ❤️ 1
持续关注
1000copy
    6
1000copy  
   2015-09-06 13:17:56 +08:00
非常高兴看到这样基础的工作的重新创造。鼓掌支持。
archxm
    7
archxm  
   2015-09-06 13:40:05 +08:00
你老板知道么?
alsotang
    8
alsotang  
   2015-09-06 13:43:20 +08:00
这个。。好屌的感觉。。
Shared
    9
Shared  
   2015-09-06 13:44:17 +08:00
@archxm 楼主就是老板啊
c4pt0r
    10
c4pt0r  
OP
   2015-09-06 14:13:44 +08:00
@archxm 哈哈哈,我是 PingCAP 的 CTO, 鄙司就是做 OpenSource 的 NewSQL 的
Andiry
    11
Andiry  
   2015-09-06 14:28:01 +08:00
这个项目比起现有的其他分布式 DB 优势在哪里? performance ? scalability ?
c4pt0r
    12
c4pt0r  
OP
   2015-09-06 14:30:56 +08:00
@Andiry 目前的分布式 DB ,一是没有跨行事务,二是几乎没有 SQL 的支持。而 TiDB 的目标就是这两点。至少目前没有一个开源的分布式数据库搞定了,所以就决定自己搞了。
至于 scalability 大家解决的思路都差不多; replication 通过 Paxos / Raft 搞定。
IwfWcf
    13
IwfWcf  
   2015-09-06 14:38:22 +08:00
有更详细的架构文档吗?和 Google 出来的员工模仿 Spanner 搞的 CockroachDB 相比怎么样?
c4pt0r
    14
c4pt0r  
OP
   2015-09-06 14:42:04 +08:00
@IwfWcf 我们会持续的更新的,包括文档,其实思路和 CockroachDB 比较接近,但是我们会花更多精力实现 Google 的 F1 论文的内容(也就是 SQL layer )目前我们底层的分布式事务 KV 第一阶段会基于 Google 的 Percolator 来做。 CDB 更偏向 Spanner 的设计。

[1] F1: http://research.google.com/pubs/pub41344.html
[2] Percolator: http://research.google.com/pubs/pub36726.html
ahjdzx
    15
ahjdzx  
   2015-09-06 15:46:05 +08:00
发布挺快的。
husinhu
    16
husinhu  
   2015-09-06 16:22:21 +08:00
之前看到一个牛人的开源 NewSQL : https://github.com/codefollower/Lealone 楼主如何评价
loading
    17
loading  
   2015-09-06 16:42:30 +08:00 via iPhone
好牛~
Comdex
    18
Comdex  
   2015-09-06 16:51:44 +08:00
@husinhu 这个 Lealone 用 java 开发的,会不会有性能问题?
cloudzhou
    19
cloudzhou  
   2015-09-06 16:52:48 +08:00
@Comdex 为什么使用 Java 开发会有 *性能问题* ?
Comdex
    20
Comdex  
   2015-09-06 16:56:06 +08:00
@cloudzhou 可能由于垃圾回收机制。。。
c4pt0r
    21
c4pt0r  
OP
   2015-09-06 17:12:55 +08:00   ❤️ 1
@husinhu 很牛逼啊, zhh 的作品。
代码我还没有自习读过,但是看 zhh 平时的风格,应该是比较偏向 Cassandra 然后加上了自己的分布式事务支持,听说打算发论文,希望有机会能读一下。
我们的数据库希望是严格的实现 Google F1 和 Spanner 的论文。
husinhu
    22
husinhu  
   2015-09-06 17:14:21 +08:00
@Comdex 分布式系统架构比语言应该重要多了
husinhu
    23
husinhu  
   2015-09-06 17:15:42 +08:00
@c4pt0r 都是牛人,关注,赞
c4pt0r
    24
c4pt0r  
OP
   2015-09-06 17:18:21 +08:00
@Comdex 其实在一个大型的分布式系统上, java gc 对于整个系统的吞吐影响不大。而且现代 jvm 的 gc 已经还算比较牛逼了。
IwfWcf
    25
IwfWcf  
   2015-09-06 17:20:39 +08:00
@c4pt0r Percolator 的事务实现简单很多,但感觉性能上会差很多,毕竟 Percolator 主要是用于批处理,对延时不是那么敏感。你们的实现会有这个问题吗?
janxin
    26
janxin  
   2015-09-06 17:22:56 +08:00
点个赞,已 star
cloudzhou
    27
cloudzhou  
   2015-09-06 19:12:05 +08:00
@Comdex 你认为目前而言 Go 的虚拟机 会比 Java 的 JVM 更有优势吗? :-)
husinhu
    28
husinhu  
   2015-09-06 20:27:34 +08:00
@c4pt0r
@Comdex

很巧,那位作者的微博也作出了评价
回复 @netroby: 每隔 3 年就有一个语言会得到追捧,咱这类码农圈的老人早就熟悉和厌倦这种玩法了,留给年轻人玩吧。想想我还能做几年技术?少则 5 年,多则 15 年,时间有限,找点有意思的未解的问题去做做,说不定还能拉近跟图灵奖的距离,俺是有追求的人。:)
@zhh-2015
我有考虑过用 Rust 、 Golang 这些新语言去重新实现一个数据库的,这些新语言还没有形成一个生态,很多还是空白,新语言的开发者和追随者都会希望多一些这类语言的杀手级应用,所以相对 Java/C++这类成熟语言会更容易受到关注。但是我认为数据库已经是个老领域了,专注解决一些新问题或难题会更有意义一些。
Comdex
    29
Comdex  
   2015-09-06 22:53:52 +08:00
@cloudzhou 感觉编译性语言更适合开发这种系统级的应用。。。
qq12365411
    30
qq12365411  
   2015-09-07 09:54:33 +08:00
给你点个赞
c4pt0r
    31
c4pt0r  
OP
   2015-09-07 11:56:45 +08:00
@IwfWcf Percolator 其实事务模型很简单,就是一个 2PC 加上了一个二级锁的优化,同时通过中心授时服务器来分配全局递增的事务 ID 。这个模型的优点就是实现简单,在单个机房内部性能尚可,作为一个阶段性的目标还算可以,而且我认为分布式事务基本都是 2PC 的变种。加上现在 TiDB 的 SQL 层和存储层是彻底分离的,所以未来我有计划尝试新的模型,比如 CockroachDB 的 HLC ,或者其他的什么好玩的东西。
c4pt0r
    32
c4pt0r  
OP
   2015-09-07 12:28:27 +08:00
@cloudzhou
go 没有虚拟机, 没有中间语言。
倒是有 runtime
smalldirector
    33
smalldirector  
   2015-09-07 12:32:49 +08:00
已 start ,最近公司也再搞分布式事物的东西,我们是基于 cassandra 搞的
morefreeze
    34
morefreeze  
   2015-09-07 12:42:48 +08:00
膜拜老大
everxu
    35
everxu  
   2015-09-07 13:29:30 +08:00
写数据库的都好牛逼
cloudzhou
    36
cloudzhou  
   2015-09-08 12:19:55 +08:00
@c4pt0r 我说的不严谨,我是说 GC 的部分,垃圾回收。
comzyh
    37
comzyh  
   2016-09-06 23:33:10 +08:00
听楼主讲了,感觉很有前途~
shaoyikai
    38
shaoyikai  
   2017-06-29 09:35:08 +08:00
这个东西要是做出来了就太棒了!帮助了整个行业提升了效率,划时代的产品。
c4pt0r
    39
c4pt0r  
OP
   2017-06-29 09:45:56 +08:00   ❤️ 1
@shaoyikai 嗯 661 天前的帖子。。。现在我们公司已经 B 轮了。。。哈哈哈哈
tedcon
    40
tedcon  
   2018-04-11 15:34:21 +08:00
无意间翻到,PingCap 真的是风生水起啊
no13bus
    41
no13bus  
   2019-04-23 09:51:51 +08:00
@c4pt0r 确实都实现了。👍🏻
c4pt0r
    42
c4pt0r  
OP
   2019-05-12 01:35:06 +08:00
@no13bus 考古贴。。。哈哈哈
c4pt0r
    43
c4pt0r  
OP
   2019-08-29 10:18:43 +08:00
一转眼四年过去了
anjiannian
    44
anjiannian  
   2019-09-09 14:51:38 +08:00
@c4pt0r 今天你们员工来我们工作讲产品,想起来你们之前在 V2EX 发过帖,四年,变得这么牛逼了,顺祝商祺
c4pt0r
    45
c4pt0r  
OP
   2019-10-18 14:21:46 +08:00
@anjiannian 谢谢
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1175 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 26ms · UTC 23:03 · PVG 07:03 · LAX 15:03 · JFK 18:03
Developed with CodeLauncher
♥ Do have faith in what you're doing.