网络同步数据库多终端操作不冲突?特别是地理数据库可实现网络同步操作协同编辑?
所谓地理数据库,我觉得提问的朋友指的是跨城或者跨DC、跨可用区域的实例部署。要同时在可用区域跨域、跨城上面同时对实例进行操作,但它有两个实例、两个区域这种。这个叫做异地多活,这确实是非常有挑战的一件事。举个例子来讲,通常不光是改数据还有可能修改表里面的Schema。比如说我这个表,有两个DC都同时它们在两个不同的城市。那么需要在两地都支持我的应用,首先能够动态的增加和删除数据我们的数据;第二我甚至可以允许两边的应用同时修改我的Schema做online DDL 这种事情。如果不做任何的数据库系统或应用改造的话那一定会出现数据冲突的问题。在阿里我们用这种情况用DTS (data transmition service) 至少可以做到异地灾备,一边可以编解一边可以做到实时的数据同步,比一般来说,先解析binlog ,然后把binlog解析过来把数据同步到另外里面的DC数据中心里面去。但这还没有做到多活,没有做到另外一个数据中心同步过去的数据和数据库实时修改然后实现双向同步。这是非常有挑战的一件事,光用DTS那种数据同步工具是做不到的,同时还需要应用对它的整个所有的应用,不论是对它DBA也好还是用户层的应用所有的这些跟数据库相关的操作改动一定要有一个统一的收口在这里一层。在阿里内部叫DMS (data management service) 也是我们云上的一个产品,所有的东西所有的操作都是通过它去做收敛,比如online DDL这种操作,可以确保自身这些变更能够做到同步而且两边没有冲突。这种方案加上DTS,再加上数据库内核本身,像今天分享时讲到的不管是云原生数据库、分布式数据库,它们现在也是大量的使用分布式的数据同步协议像Paxos、raft那它至少可以做在一个可容区里面三节点实时同步,再对跨区域实行在DTS上面DMS实行收口和所有的变更,以上为基本的逻辑和思路。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。