存档

‘database’ 分类的存档

多机房数据同步(一致性读写)视频 @Qcon

2015年1月20日 谭俊青 2 条评论

http://www.infoq.com/cn/presentations/tuniu-multiple-data-centers-distributed-database-synchronization

解决跨数据中心的数据同步和一致性问题,实现跨机房的高可用访问(比如中国特殊网络状况,提供多个数据中心的情况下,解决数据的可用性、一致性)。

分类: Go, MySQL Replication, database 标签: ,

多机房数据同步(一致性读写)

2014年10月18日 谭俊青 没有评论

这次参加Qcon全球软件开发大会

专题:扩展性、可用性、高性能
主题:多数据中心分布式数据库同步
http://2014.qconshanghai.com/user/702

核心思想是2地三机房的数据读写一致性,同时保证一定的性能。
基于类Paxos的算法,这里用的是Raft 还有MySQL的semi-sync Replication。
三机房是为了保证可用性以及防止出现脑裂现象
2地,可以保证足够的性能(其中2个机房在一个地方,延时小)

我最终的目标是想做出一款能够实现金融级的分布式可扩展的数据库,它应该具备:
准确性
强一致性(全局一致性需要做的工作很多,比如用物理时钟去保证)
高可用
可扩展(使用必须在一定规则下)
分布式事务(内部shard/chunk之间的分布式事务)

分类: database 标签:

LegendBase and Google F1 database 分布式实时同步关系型数据库

2012年6月1日 谭俊青 4 条评论

前段时间还在几个群里说我准备做数据库,跨数据中心实时同步关系型数据库,而且我域名都注册好了,LegendBase.org,名字就准备叫LegendBase的。

计划:

  • 实时同步:采用Paxos算法,推荐至少5台服务器(2F+1)
  • 高可用,避免像MySQL replication那样会有数据不一致的情况
  • 数据自动全局分布
  • 支持事务和snapshot(基于时间线)
  • 延时相对很高(因为Paxos,和事务2PC的原因)
  • 高并发高吞吐

想不到Google的动作这么块,它们的Megastore已经升级为F1了… 看功能和特性跟我上面提到的这些基本一致。
看新闻说Google已经在adwards上弃用MySQL,改用F1。

我在想,F1会开源吗,我的LegendBase还需要做吗?

TCP keep-alive & connection pool

2010年7月9日 谭俊青 没有评论

作者:谭俊青@MySQL实验室,转载请注明链接和出处。

要理解TCP keep-alive/persistent connection, 得从TCP协议说起。

TCP flow:

    _____                                                     _____
   |     |                                                   |     |
   |  A  |                                                   |  B  |
   |_____|                                                   |_____|
      ^                                                         ^
      |--->--->--->-------------- SYN -------------->--->--->---|
      |---<---<---<------------ SYN/ACK ------------<---<---<---|
      |--->--->--->-------------- ACK -------------->--->--->---|
      |--->--->--->-------------- ... -------------->--->--->---|
      |---<---<---<-------------- ... --------------<---<---M---|

建立TCP链接需要经过3步,SYN、SYN/ACK、ACK,关闭则需要4步

约定:

当用户通过浏览器打开一个页面的时候,最小情况下,只需要2个packet,一次是请求(http get request),一次是回应(response from server)。但是这里没有计入TCP链接的建立(3 packets)和关闭(4packets),当然每个packet都需要ACK,但是ACK信息一般直接包含在回应的packet里,为了量化方便,这里忽略掉。 … 【阅读全文·MySQL实验室】

使用SSD跑InnoDB注意事项及解决方案

2010年6月22日 谭俊青 11 条评论

相信有不少同仁已经做过过SSD作为存储对IO瓶颈的数据库性能测试,在得到可喜的成绩之余,在用于生产环境之前需要解决一些问题。

InnoDB共享表空间包含:
Data dictonary
Double write buffer
Insert buffer
Rollback segments
UNDO space … 【阅读全文·MySQL实验室】