Methods to resolve data conflicts a live system, the first access node receives the data sent by the client request and the first data update request to generate a unique global version number; access node update request to the storage node sends second data, second data update request with the version number; according to the second data storage node update request update data and update the corresponding partial order, and returns the partial relation to the access node; partial order relation for sequence of records received storage node data update request version number; access node access ordering storage node returns, the data storage node to judge whether there is a conflict when conflict exists in the storage node; when the data access node adjusts the conflict. When the data in the storage node is in conflict, the receiving node adjusts the conflict of data and greatly improves the data update efficiency.
【技术实现步骤摘要】
本申请涉及通信
,尤其涉及一种解决数据冲突的方法和系统。
技术介绍
当前双活或者多活系统,允许数据从两个或者多个节点写入,同时需要将写入的数据复制到其它节点中,使得多个节点上的数据达到一致。当多个节点同时对一份数据进行修改时,由于写入时序和网络、磁盘等原因造成写入先后顺序的不一致,出现数据冲突,从而多节点都写入成功的情况下,数据在多个节点上处于不一致的状态,导致从不同节点读取出来的数据不一样。例如,三个节点分别对C进行修改,由于写入顺序不一致,导致三个节点最终的数据不相同。现有技术为了处理这种从多个节点同时写入数据导致数据冲突,造成多节点间数据不一致的场景,提出了两种比较通用的解决方法。第一种解决方法是利用分布式锁来解决多个节点之间数据冲突的问题。向节点写入数据时先向分布式锁服务器申请锁,写完数据后再释放锁。这种方式能够保证同一份数据的修改在不同节点操作串行进行,从而保证了不会出现多节点数据不一致的情况。例如Node1、Node2和Node3上都存储有数据C,现在三个节点需要分别对数据C进行修改时,Node1先向分布式锁服务器申请到数据C的锁,则三个节点都修改为C1,然后Node2向分布式锁服务器申请到数据C的锁,则三个节点都修改为C2,最后Node3向分布式锁服务器申请到C的锁,则三个节点都修改为C3。最后三个节点中的数据一致,都为C3。不过此方法在没有写冲突时会产生无效的锁申请,导致系统整体性能下降。第二种解决方法是采用优先级锁来解决多个节点之间数据冲突的问题。在配置系统中各个节点的多活关系时,确定各个节点的优先级,当往节点中写入数据时首先向分 ...
【技术保护点】
一种多活系统中解决数据冲突的方法,其特征在于,所述多活系统包含接入节点和存储节点,所述方法包括:所述接入节点接收客户端发送的第一数据更新请求,并对所述第一数据更新请求生成一个全球唯一的版本号;所述接入节点向所述存储节点发送第二数据更新请求,所述第二数据更新请求中携带所述版本号;所述存储节点根据所述第二数据更新请求更新对应的数据,更新偏序关系,并向所述接入节点返回所述偏序关系;其中,所述偏序关系用于记录所述存储节点接收到的数据更新请求的版本号的先后顺序;所述接入节点获取所述存储节点返回的偏序关系,判断存储节点中的所述数据是否存在冲突;当存储节点中的所述数据存在冲突时,所述接入节点调整所述冲突。
【技术特征摘要】
1.一种多活系统中解决数据冲突的方法,其特征在于,所述多活系统包含接入节点和存储节点,所述方法包括:所述接入节点接收客户端发送的第一数据更新请求,并对所述第一数据更新请求生成一个全球唯一的版本号;所述接入节点向所述存储节点发送第二数据更新请求,所述第二数据更新请求中携带所述版本号;所述存储节点根据所述第二数据更新请求更新对应的数据,更新偏序关系,并向所述接入节点返回所述偏序关系;其中,所述偏序关系用于记录所述存储节点接收到的数据更新请求的版本号的先后顺序;所述接入节点获取所述存储节点返回的偏序关系,判断存储节点中的所述数据是否存在冲突;当存储节点中的所述数据存在冲突时,所述接入节点调整所述冲突。2.根据权利要求1所述的方法,其特征在于,所述接入节点判断所述存储节点中的所述数据是否存在冲突具体为:当获取到的存储节点的偏序关系不一致时,所述接入节点判断所述存储节点中的所述数据存在冲突。3.根据权利要求1所述的方法,其特征在于,所述接入节点判断所述存储节点中的所述数据是否存在冲突具体为:当接收到的存储节点的偏序关系不一致时,在预定的时间周期内所述接入节点重新获取所述存储节点的偏序关系,当所述重新获取的所述存储节点的偏序关系不一致时,所述接入节点判断所述存储节点中的所述数据存在冲突。4.根据权利要求1-3任一所述的方法,其特征在于,所述接入节点调整所述冲突具体为:所述接入节点根据冲突调整策略向所述存储节点发送第三数据更新请求,所述第三数据更新请求中包含需要调整的偏序关系;所述存储节点接收到所述第三数据更新请求之后,根据所述需要调整的偏序关系更新所述存储节点中的所述数据。5.根据权利要求4所述的方法,其特征在于,所述冲突调整策略包括存储节点优先级策略和偏序关系优先级策略;所述存储节点优先级策略为以优先级高的存储节点的偏序关系来调整优先级低的存储节点中的数据;所述偏序关系优先级策...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。