• 分布式一致性解决分布式一致性问题用二阶段提交一个没有高可用组件的数据库不能依靠外部软件来实现高可用


    聊聊分布式数据库的那些事儿|InfoQ大咖说

    https://v.qq.com/x/page/r03631pv2j3.html


    数据库需要支持事务,事务需要ACID
    分布式数据库不一定需要支持事务,所以不一定支持ACID,只是提出了一个理论CAP,目前业界包括TiDB都普遍支持C和P,分布式数据库是比较新的技术,目前业界还没有相应标准,比如TPCC性能压测都是只针对单机数据库

    分布式数据库里的A和P没什么好说的,可以讨论的是C,一致性


    单机一致性:写入一条数据,再读出的时候,能不能读出刚才写入的最新那条数据


    分布式一致性:
    1、强一致性 2、最终一致性
    强一致性 :TiDB支持强一致性,各个副本都是同步模式
    最终一致性: 阿里的DRDS是最终一致性


    解决分布式一致性问题,用二阶段提交,two-phase commit
    队列或者其他技术本身都解决不了问题,只有两阶段提交是目前主流数据库采用的方案,包括SQL Server,PGSQL
    两阶段提交需要用分布式事务管理器来拒绝单点

    一个没有高可用组件的数据库,不能依靠外部软件来实现高可用,比较MySQL主从依靠zookeeper来做故障切换
    但是zookeeper只能知道master挂了,但是不知道主从数据是否一致!
    本质上无法解决问题

    例如packmaker+corosync 做SQL Server的主从切换,SQL Server只能用共享存储,否则也是无法知道主从数据是否一致

    tidb(AP和TP之间要做资源隔离,硬件级隔离
    https://cloud.tencent.com/developer/article/1496742
    https://mp.weixin.qq.com/s/laRHOlCqtMnse2cA4lSlDw
    这一套架构虽然很方便,但是同样也存在一些问题,最显而易见的就是AP和TP互相干扰,这在初期是HTAP系统无法避免的问题。在18年的时候TiDB就提出了TiFlash的项目



    f

  • 相关阅读:
    20110825 talk 1
    [原]spring学习笔记9.1.2Spring对Aop的概念性介绍
    [转]Servlet总结
    有关锁
    [转]java中hashcode()和equals()的详解
    转置
    [转]JNDI到底是什么,有什么作用
    前端(js/css/html)那些小的知识点,持续更新......
    积累的一些常用javascript函数
    25大实用的jQuery技巧和解决方案
  • 原文地址:https://www.cnblogs.com/MYSQLZOUQI/p/6263388.html
Copyright © 2020-2023  润新知