微信开源PhxSQL背后:强一致高可用分布式数据库的设计和实现哲学
|
另外,我们希望通过开源更好地改进PhxSQL.我们欢迎技术性讨论和志愿者提交修改.我们承诺开源的PhxSQL会一直更新.除了一些和内部运维支撑系统进行集成的功能(PhxSQL把这些功能抽象成插件,我们针对内部运维支撑系统实现了这些插件),开源版和内部版本将保持一致. 6、PhxSQL的局限性在一个不完美的世界里,完美是不存在的.我们很坦诚指出PhxSQL存在的两个局限: 1、MySQL主机在执行SQL DDL命令(例如建库和建表命令)时可能存在一致性风险. 由于MySQL的innodb引擎不支持DDL回滚,如果主机在innodb已经commit这条DDL命令,但是这条命令的binlog还没到达PhxSQL的拦截点前宕机,则这条DDL binlog会在全局binlog中缺失,从而备机也不会收到这条binlog. 而为了保证线性一致性、serializable级别事务隔离、及“最小侵入MySQL”原则,我们也不想修改MySQL源码,提前截获DDL命令.考虑到DDL命令频度较低,我们后续准备在PhxSQLProxy加入检查和后续审计告警.也欢迎大家提出更好方案. 2、在写入请求量很大的系统中,MySQL备机流水可能落后较多;如果这个时候主机死机,备机暂时无法提升成新主机,造成系统在一段时间内不可写. 为了保证线性一致性,对于要求读取最新数据的请求(通过ReadWritePort发起的读请求)也将失败;需要等至少一台备机追完流水,被提升为主机才能响应读取最新数据的请求. (编辑:网站开发网_马鞍山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

