我的理解是TiDB的底层和HBase底层非常相似,存储引擎region都是基于lsm tree的。
而TiDB最大的特点就是引入了raft协议和percolater,在故障可用性,以及用户体验上(支持二级索引)上用极大的提升。
但通常大家都认为TiDB的写入吞吐量会远不及HBase。
这个理解似乎大多是出于TiDB的WAL日志和数据写入是需要共识的(2/3节点的确认),而HBase的写入是单一Regionserver完成WAL写入和数据写入即可。
1.事实上的HBase写入确实是单一regionserver写入即可,但regionserver在进行WAL写入时,以及数据刷写HDFS时,都是需要3活写的(不同的点可能在于regionserver仅确保了单个hdfs写入成功就返回成功了?这点时风险操作吗)。
最后写入的网络开销似乎和TiDB类似,都是需要确保3个节点写入成功的
2.尽管TiDB需要写入共识,但似乎通过异步并发的方式,同时向多个follower请求,在大多数情况下是能接近单点写入的延迟的?
3.请问目前有具体的性能对比和测试报告吗