开源了这几个月的工作: TiDB - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
c4pt0r
V2EX    程序员

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

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

项目的野心还是比较大的,希望实现一个分布式的 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     Solana     2461 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 33ms UTC 10:50 PVG 18:50 LAX 02:50 JFK 05:50
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86