分布式事务
要支持分布式事务,首先要解决的就是分布式系统时间的问题,也就是我们用什么来标识不同事务的顺序。通常有几种做法:
- TrueTime,TrueTime 是 Google Spanner 使用的方式,不过它需要硬件 GPS + 原子钟支持,而且 Spanner 并没有在论文里面详细说明硬件环境是如何搭建的,外面要自己实现难度比较大。
- HLC,HLC 是一种混合逻辑时钟,它使用 Physical Time 和 Logical Clock 来确定事件的先后顺序,HLC 已经在一些应用中使用,但 HLC 依赖 NTP,如果 NTP 精度误差比较大,很可能会影响 commit wait time。
- TSO,TSO 是一个全局授时器,它直接使用一个单点服务来分配时间。TSO 的方式很简单,但会有单点故障问题,单点也可能会有性能问题。
http://www.shellsec.com/news/51034.html
http://www.jianshu.com/p/8500882ab38c
重要指标是velocity的趋势
The tidb Open Source Project on Open Hub TSO
The CockroachDB Open Source Project on Open Hub HLC
https://pingcap.com/docs-cn/
https://github.com/pingcap/tidb
https://www.cockroachlabs.com/docs/stable/
https://github.com/cockroachdb/docs
Docker (Moby) VS Kubernetes的: