WO2012045245A1 - 一种保持数据一致性的方法及系统 - Google Patents
一种保持数据一致性的方法及系统 Download PDFInfo
- Publication number
- WO2012045245A1 WO2012045245A1 PCT/CN2011/075113 CN2011075113W WO2012045245A1 WO 2012045245 A1 WO2012045245 A1 WO 2012045245A1 CN 2011075113 W CN2011075113 W CN 2011075113W WO 2012045245 A1 WO2012045245 A1 WO 2012045245A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- server
- data
- version number
- version
- update
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Abstract
本发明公开一种保持数据一致性的方法,包括:协同服务器将所有的版本号进行相互比较,当两个版本号不可比较时,根据强制合并规则确定新的版本号;协同服务器在本地更新版本号和与其对应的数据,并将数据更新请求、新的版本号和与其对应的数据发送给各个副本服务器;本发明还提供一种保持数据一致性的系统。根据本发明的技术方案,准确、高效的保证各个服务器中数据一致。
Description
一种保持数据一致性的方法及系统 技术领域
本发明涉及云计算领域的分布式緩存系统, 尤其涉及一种保持数据一 致性的方法及系统。 背景技术
云计算( Cloud Computing )是网格计算( Grid Computing )、 分布式计 算( Distributed Computing )、并行计算( Parallel Computing )、效用计算( Utility Computing )、 网络存 I ( Network Storage Technologies )、 虚拟 ( Virtualization )、 负载均衡( Load Balance )等传统的计算机技术和网络技 术发展融合的产物, 它旨在通过网络把多个成本相对较低的计算实体整合 成一个具有强大计算能力的系统。
分布式緩存系统是云计算范围中的一个领域, 可以提供海量数据的分 布式存储服务, 并具备高速读写访问的能力。 在分布式緩存系统中, 保持 数据的一致性是比较难解决的问题。 分布式緩存系统是由若干服务器和客 户端互相连接构成的; 服务器负责数据的存储, 客户端负责对服务器进行 数据的写入、 读取、 更新、 删除等操作。 一般来说写入的数据不可能只保 存在单个服务器上, 而是在多台服务器上保存同一个数据的副本, 可以互 为备份。 所述数据由键(Key )和值(Value )构成, Key相当于数据的索引, Value是 Key所代表的数据内容, 逻辑上 Key和 Value是——对应的关系。
如果对某个 Key对应的 Value反复进行写入、 更新、 删除等动作, 而 在这些动作期间存在网络故障或各种软件、 硬件故障等问题, 则可能在不 同的服务器上保存的该 Key以及与其对应的 Value是不一致的, 而这时如 果要通过 Key读取 Value, 如何实现能够返回正确的 Value是亟待解决的问
题, 即数据一致性问题。 现有技术中, 保持数据一致性主要有以下四种方 法:
第一种方法是依赖于全局一致的时钟, 给每个 Value加上时间戳, 以时 间戳大小决定数据版本的新旧; 在一秒钟几万次操作的场景中, 时间戳是 一样的, 因此这种方法的缺点是精确度较低;
第二种方法是由某个中心节点赋予版本号, 即每个数据都从一个中心 节点得到一个版本号, 通过版本号来决定数据版本的新旧, 这种方法的缺 点是中心节点的存在会导致运行效率的瓶颈;
第三种方法是客户端在每次写入、 更新、 删除操作之前, 都执行读取 操作, 从服务器读出数据的版本号, 并在执行写入、 更新、 删除操作时, 将读取到的版本号带到服务器, 表示是基于这个版本号的操作, 服务器收 到操作指令后进行判断, 如果当前保存的数据版本号与这个操作基于的版 本号一致, 则执行操作并更新版本号, 否则拒绝操作; 这种方法的缺点是 如果同时对同一个 Key进行操作, 则先发到服务器的成功, 后发到服务器 的失败, 但实际上在大多数应用中, 应该是以后发到的数据为准;
第四种方法是釆用向量版本号、 多版本的技术方案, 与第三种方法类 似, 即在写入、 更新、 删除操作前客户端都执行读取版本号的操作, 客户 端会将版本号带到服务器, 服务器参考当前版本号和客户端携带的版本号 并根据一定规则决定新的版本号, 这里的版本号是按一定规则生成的向量 版本号, 这个方案的优点是如果同一个 Key有多个版本号, 则大多数版本 号之间是可以比较的; 如果不可比较, 则多个版本都被保存, 当客户端读 取该 Key对应的 Value时, 将所有不可比较的版本返回给客户端; 这个方 案的缺点是大多数应用中, 客户端在得到多个版本号的返回时, 同样无从 知道哪个 Value是新的。
发明内容
有鉴于此, 本发明的主要目的在于提供一种保持数据一致性的方法及 系统, 准确、 高效的保证各个服务器中数据一致。
为达到上述目的, 本发明的技术方案是这样实现的:
本发明公开一种保持数据一致性的方法, 包括:
协同服务器将所有的版本号进行相互比较, 当两个版本号不可比较时, 根据强制合并规则确定新的版本号;
协同服务器在本地更新版本号和与其对应的数据, 并将数据更新请求、 新的版本号和与其对应的数据发送给各个副本服务器。
上述方法中, 所述协同服务器将所有的版本号进行相互比较, 当两个 版本号不可比较时, 根据强制合并规则确定新的版本号为:
如果相同的版本号的数量超过收到的版本号的总数的一半, 则协同服 务器确定所述相同的版本号作为新的版本号; 如果相同的版本号的数量没 有超过收到的版本号的总数的一半, 则协同服务器根据大小比较方法, 将 不同的版本号进行相互比较, 协同服务器确定将其中最大的版本号作为新 的版本号; 当存在两个版本号之间不可比较的情况时, 协同服务器根据强 制合并规则确定新的版本号。
上述方法中, 所述强制合并规则为: 以优先级最高的服务器所存储的 版本号为新的版本号, 或以服务器无故障运行时间最长的服务器所存储的 版本号为新的版本号。
上述方法中, 用于数据更新时, 所述协同服务器将所有的版本号进行 相互比较之前, 该方法还包括:
协同服务器收到客户端发送的数据更新请求后, 读取自身存储的版本 号和与其对应的数据内容, 并发送数据读取请求给各个副本服务器; 副本 服务器读取自身存储的版本号和与其对应的数据内容, 并发送给协同服务
哭
上述方法中, 用于数据更新时, 该方法还包括:
副本服务器进行数据更新, 将自身的更新结果返回给协同服务器; 协 同服务器将总体的更新结果返回给客户端。
上述方法中, 用于数据读取时, 所述协同服务器将所有的版本号进行 相互比较之前, 该方法还包括:
协同服务器收到客户端发送的数据读取请求后, 读取自身存储的版本 号和与其对应的数据, 并发送数据读取请求和读取的版本号给副本服务器; 副本服务器将收到的版本号和自身存储的版本号进行比较, 当自身存储的 版本号更新或不可比较时, 将读取的版本号和与其对应的数据发送给协同 服务器, 当收到的版本号更新时, 返回比较结果。
上述方法中, 用于数据更新时, 该方法还包括:
协同服务器将新的版本号和与其对应的数据发送给客户端; 副本服务 器进行数据更新, 将更新结果返回给协同服务器。
本发明还公开一种保持数据一致性的系统, 包括: 协同服务器、 副本 服务器; 其中,
协同服务器, 设置为将所有的版本号进行相互比较, 当两个版本号不 可比较时, 根据强制合并规则确定新的版本号; 在本地更新版本号和与其 对应的数据, 并将数据更新请求、 新的版本号和与其对应的数据发送给各 个副本服务器;
副本服务器, 设置为接收协同服务器发送的数据更新请求、 新的版本 号和与其对应的数据。
上述系统中, 用于数据更新时,
所述协同服务器还设置为, 收到客户端发送的数据更新请求后, 读取 自身存储的版本号和与其对应的数据内容, 并发送数据读取请求给各个副
本服务器; 所述副本服务器还设置为, 收到数据读取请求时, 读取自身存 储的版本号和与其对应的数据内容, 并发送给协同服务器;
所述副本服务器还设置为, 进行数据更新, 将自身的更新结果返回给 协同服务器; 所述协同服务器还设置为, 将总体的更新结果返回给客户端。
上述系统中, 用于数据读取时,
所述协同服务器还设置为, 收到客户端发送的数据读取请求后, 读取 自身存储的版本号和与其对应的数据; 发送数据读取请求和读取的版本号 给副本服务器; 所述副本服务器还设置为, 将收到的版本号和自身存储的 版本号进行比较; 当自身存储的版本号更新或不可比较时, 将读取的版本 号和与其对应的数据发送给协同服务器, 当收到的版本号更新时, 返回比 较结果;
所述协同服务器还设置为, 将新的版本号和与其对应的数据发送给客 户端; 所述副本服务器还设置为, 进行数据更新, 将更新结果返回给协同 服务器。
本发明提供的保持数据一致性的方法及系统, 协同服务器将所有的版 本号进行相互比较, 当两个版本号不可比较时, 根据强制合并规则确定新 的版本号; 协同服务器在本地更新版本号和与其对应的数据, 并将数据更 新请求、 新的版本号和与其对应的数据发送给各个副本服务器, 不依赖于 时钟, 从而提高了数据的准确度; 不依赖于中心节点分配版本号, 避免 了中心节点带来的运行效率的瓶颈,提高了数据读取和更新的运行效率; 此外, 针对同一个 key所对应的版本号和与其对应的数据, 在每个协同服 务器和副本服务器上最多只保留一个版本的数据, 协同服务器返回给客户 端的也只有一个版本的数据, 从而客户端可以得到最新版本的数据。 附图说明
图 1 是本发明实施例实现数据更新时保持数据一致性的方法的流程示
意图;
图 2是本发明实施例实现数据读取时保持数据一致性的方法的流程示 意图;
图 3是本发明实施例实现保持数据一致性的系统的结构示意图。 具体实施方式
本发明的基本思想是: 协同服务器将所有的版本号进行相互比较, 当 两个版本号不可比较时, 根据强制合并规则确定新的版本号; 协同服务器 在本地更新版本号和与其对应的数据, 并将数据更新请求、 新的版本号和 与其对应的数据发送给各个副本服务器。
下面通过附图及具体实施例对本发明再做进一步的详细说明。
本发明提供一种保持数据一致性的方法, 图 1 是本发明实施例实现数 据更新时保持数据一致性的方法的流程示意图, 如图 1 所示, 该方法包括 以下步骤:
步骤 101 , 协同服务器收到客户端发送的数据更新请求后,读取自身存 储的版本号和与其对应的数据内容;
具体的, 客户端中保存数据的 key与服务器的对应关系的列表, 当需 要对某个数据进行更新时, 客户端根据该数据的 key, 将数据更新请求发送 给与其对应的服务器, 该服务器称为本次操作的协同服务器; 协同服务器 收到客户端发送的数据更新请求后, 从本地读取自身存储的与该 key对应 的版本号和与该版本号对应的数据内容; 其中, key、 版本号和数据内容是
——对应的, 所述版本号为向量版本号。
步骤 102, 协同服务器发送数据读取请求给各个副本服务器; 具体的,协同服务器保存该 key与可能保存与该 key对应的数据内容的 副本服务器的对应关系的列表, 协同服务器将数据读取请求发送给各个可 能保存与该 key对应的数据内容的副本服务器。
步骤 103 , 副本服务器读取自身存储的版本号和与其对应的数据内容, 并发送给协同服务器;
具体的, 每个副本服务器收到数据读取请求后, 尝试读取自身存储的 版本号和与其对应的数据内容, 如果能够读取出版本号和与其对应的数据 内容, 表示本地已经保存版本号和与其对应的数据内容, 则副本服务器将 读取出的版本号和与其对应的数据内容发送给协同服务器; 如果没有读取 出版本号和与其对应的数据内容, 则副本服务器通知协同服务器没有数据。
步骤 104, 协同服务器将所有的版本号进行相互比较, 当两个版本号不 可比较时, 根据强制合并规则确定新的版本号;
具体的, 本实施例中的版本号是向量版本号, 使用向量版本号的优点 是, 针对同一个 key的大部分的不同的版本的不同的版本号之间是可以相 互比较的; 向量版本号中每个分量的数值表示的是, 这个分量对应的服务 器为协同服务器时, 数据变更操作的次数, 所述变更操作指的是写入、 更 新、 删除操作; 例如, X、 Υ、 Ζ分别代表三台服务器, 客户端第一次写入 数据时选择 X为协同服务器, 则向量版本号为 (1 , 0, 0 ) , 然后如果客户 端更新数据时, X出现故障, 则客户端可能会选择 Υ为协同服务器, 此时 产生的向量版本号为 (1 , 1 , 0 ) , 将两个向量版本号进行比较, 得出向量 版本号为 (1 , 1 , 0 ) 的版本比向量版本号为 (1 , 0, 0 ) 的版本新; 如果 向量版本号为 (3 , 2 , 3 ) 与向量版本号为 (1 , 2 , 4 ) 的两个版本号进行 比较, 则这两个版本号是不可比较的, 因为前者向量版本号中的向量既有 大于后者的向量版本号中的向量, 也有小于后者的向量版本号中的向量, 这种情况下, 两个向量版本号是不可比较的;
协同服务器收到各个副本服务器返回的版本号和与其对应的数据内 容, 或没有数据的通知, 当协同服务器收到的副本服务器的响应的数量超 过副本服务器总数的一半时, 协同服务器将在步骤 101 中读取的自身的版
本号和收到的多个版本号之间进行相互比较; 如果存在相同的版本号的数 量超过收到的版本号的总数的一半, 则协同服务器确定这些相同的版本号 作为新的版本号; 如果不存在相同的版本号的数量超过收到的版本号的总 数的一半, 则协同服务器根据上述大小比较方法, 将若干不同的版本号进 行相互比较, 协同服务器确定将其中最大的版本号作为新的版本号; 当存 在两个版本号之间不可比较的情况时, 协同服务器根据强制合并规则确定 新的版本号; 其中, 强制合并规则可以是服务器的优先级, 或服务器无故 障运行时间; 例如, 可以设置服务器的优先级, 当存在两个版本号之间不 可比较的情况时, 以优先级最高的服务器所存储的版本号为新的版本号; 或, 以服务器无故障运行时间最长的服务器所存储的版本号为新的版本号; 协同服务器保存与副本服务器的交互记录, 协同服务器中还具有计数 器, 根据记录协同服务器可以知道发送的副本服务器的总数, 并可以利用 计数器统计收到的副本服务器的响应数量, 从而协同服务器可以确定, 何 时收到的副本服务器的响应的数量超过副本服务器总数的一半。
步骤 105 , 协同服务器在本地更新版本号和与其对应的数据, 并将数据 更新请求、 新的版本号和与其对应的数据发送给各个副本服务器;
具体的, 协同服务器在确定新的版本号后, 在本地将新的版本号和与 其对应的数据, 替换原来存储的版本号和与其对应的数据, 实现版本号和 与其对应的数据的更新; 协同服务器将数据更新请求、 确定的新的版本号 和与其对应的数据发送给各个副本服务器。
步骤 106, 副本服务器进行数据更新, 将自身的更新结果返回给协同服 务器, 协同服务器将总体的更新结果返回给客户端;
具体的, 副本服务器收到协同服务器发送数据更新请求、 新的版本号 和与其对应的数据后, 进行版本号和与其对应的数据的更新, 将新的版本 号和与其对应的数据替换原先在自身存储的版本号和与其对应的数据, 并
将更新结果返回给协同服务器, 更新结果包括更新成功和更新失败; 当协 同服务器收到的副本服务器的更新结果的数量超过副本服务器总数的一半 时, 协同服务器将更新成功的结果返回给客户端; 如果协同服务器收到的 副本服务器的更新结果的数量最终没有超过副本服务器总数的一半, 协同 服务器将更新失败的结果返回给客户端。
图 2是本发明实施例实现数据读取时保持数据一致性的方法的流程示 意图, 如图 2所示, 该方法包括以下步骤:
步骤 201 , 协同服务器收到客户端发送的数据读取请求后,读取自身存 储的版本号和与其对应的数据;
具体的, 客户端中保存数据的 key与服务器的对应关系的列表, 当需 要对某个数据进行读取时, 客户端根据该数据的 key, 将数据读取请求发送 给与其对应的服务器, 该服务器称为本次操作的协同服务器; 协同服务器 收到客户端发送的数据读取请求后, 从本地读取自身存储的与该 key对应 的版本号和与该版本号对应的数据内容; 其中, key、 版本号和数据内容是 ——对应的, 所述版本号为向量版本号。
步骤 202 , 协同服务器发送数据读取请求和读取的版本号给副本服务 器;
具体的,协同服务器保存该 key与可能保存与该 key对应的数据内容的 副本服务器的对应关系的列表, 协同服务器将数据读取请求和在步骤 201 中读取的版本号发送给各个可能保存与该 key对应的数据内容的副本服务 器。
步骤 203 , 副本服务器将收到的版本号和自身存储的版本号进行比较; 具体的, 每个副本服务器收到数据读取请求后, 尝试读取自身存储的 版本号和与其对应的数据内容, 如果能够读取出版本号和与其对应的数据 内容, 表示本地已经保存版本号和与其对应的数据内容, 则副本服务器将
读取出的版本号与收到的版本号进行比较, 如果读取出的版本号比收到的 版本号新,或两个版本号不可比较,则执行步骤 204;如果收到的版本号新, 或两个版本号相同容, 则执行步骤 208; 如果没有读取出版本号和与其对应 的数据内容, 则副本服务器通知协同服务器没有数据。
步骤 204,副本服务器将读取的版本号和与其对应的数据发送给协同服 务器。
步骤 205同步骤 104。
步骤 206, 协同服务器在本地更新版本号和与其对应的数据, 并将新的 版本号和与其对应的数据发送给客户端, 将数据更新请求、 新的版本号和 与其对应的数据发送给各个副本服务器;
具体的, 协同服务器在确定新的版本号后, 在本地将新的版本号和与 其对应的数据, 替换原来存储的版本号和与其对应的数据, 实现版本号和 与其对应的数据的更新; 协同服务器将新的版本号和与其对应的数据发送 给客户端, 并将数据更新请求、 确定的新的版本号和与其对应的数据发送 给各个副本服务器。
步骤 207, 副本服务器进行数据更新, 将更新结果返回给协同服务器, 结束当前流程;
具体的, 副本服务器收到协同服务器发送数据更新请求、 新的版本号 和与其对应的数据后, 进行版本号和与其对应的数据的更新, 将新的版本 号和与其对应的数据替换原先在自身存储的版本号和与其对应的数据, 并 将更新结果返回给协同服务器, 更新结果包括更新成功和更新失败。
步骤 208, 副本服务器返回比较结果;
具体的, 如果副本服务器确定收到的版本号新, 或收到的版本号和读 取的版本号相同, 副本服务器将上述比较结果返回给协同服务器, 结束流 程。
本实施例中, 当副本服务器确定协同服务器的版本号新或两个版本号 不可比较时, 返回读取到的版本号和与其对应的数据内容, 否则只返回比 较结果给协同服务器, 提示两个版本号相同或收到的版本号新, 从而可以 节省大量的带宽, 提高自身的执行效率。
上述方法中, 当存在两个版本号不可比较时, 根据一定的规则进行强 制合并, 最后确定一个新的版本号, 因此针对同一个 key所对应的版本号 和与其对应的数据, 在每个协同服务器和副本服务器上最多只保留一个版 本的数据, 协同服务器返回给客户端的也只有一个版本的数据, 弥补了背 景技术中第四种方法的不足; 此外, 服务器易于得到更多的版本号作为参 考, 相对来说判断的较为准确, 所以在服务器进行版本号的比较比在客户 端进行比较更加具有优势。
为实现上述方法, 本发明还提供一种保持数据一致性的系统, 图 3是 本发明实施例实现保持数据一致性的系统的结构示意图, 如图 3 所示, 该 系统包括: 协同服务器 31、 副本服务器 32; 其中,
协同服务器 31 , 设置为将所有的版本号进行相互比较, 当两个版本号 不可比较时, 根据强制合并规则确定新的版本号; 在本地更新版本号和与 其对应的数据, 并将数据更新请求、 新的版本号和与其对应的数据发送给 各个副本服务器 32;
副本服务器 32, 设置为接收协同服务器发送的数据更新请求、 新的版 本号和与其对应的数据。
用于数据更新时, 所述协同服务器 31还设置为, 收到客户端发送的数 据更新请求后, 读取自身存储的版本号和与其对应的数据内容, 并发送数 据读取请求给各个副本服务器 32; 所述副本服务器 32还设置为, 收到数据 读取请求时, 读取自身存储的版本号和与其对应的数据内容, 并发送给协 同服务器 31 ;
所述副本服务器 32还设置为, 进行数据更新, 将自身的更新结果返回 给协同服务器 31 ; 所述协同服务器 31还设置为, 将总体的更新结果返回给 客户端。
用于数据读取时, 所述协同服务器 31还设置为, 收到客户端发送的数 据读取请求后, 读取自身存储的版本号和与其对应的数据; 发送数据读取 请求和读取的版本号给副本服务器 32; 所述副本服务器 32还设置为, 将收 到的版本号和自身存储的版本号进行比较; 当自身存储的版本号更新或不 可比较时, 将读取的版本号和与其对应的数据发送给协同服务器 31 , 当收 到的版本号更新时, 返回比较结果;
所述协同服务器 31还设置为, 将新的版本号和与其对应的数据发送给 客户端; 所述副本服务器 32还设置为, 进行数据更新, 将更新结果返回给 协同服务器 31。
上述系统中, 副本服务器的数量为一个或多个。
以上所述, 仅为本发明的较佳实施例而已, 并非用于限定本发明的保 护范围, 凡在本发明的精神和原则之内所作的任何修改、 等同替换和改进 等, 均应包含在本发明的保护范围之内。
Claims
1、 一种保持数据一致性的方法, 其中, 该方法包括:
协同服务器将所有的版本号进行相互比较, 当两个版本号不可比较时, 根据强制合并规则确定新的版本号;
协同服务器在本地更新版本号和与其对应的数据, 并将数据更新请求、 新的版本号和与其对应的数据发送给各个副本服务器。
2、 根据权利要求 1所述的方法, 其中, 所述协同服务器将所有的版本 号进行相互比较, 当两个版本号不可比较时, 根据强制合并规则确定新的 版本号为:
如果相同的版本号的数量超过收到的版本号的总数的一半, 则协同服 务器确定所述相同的版本号作为新的版本号; 如果相同的版本号的数量没 有超过收到的版本号的总数的一半, 则协同服务器根据大小比较方法, 将 不同的版本号进行相互比较, 协同服务器确定将其中最大的版本号作为新 的版本号; 当存在两个版本号之间不可比较的情况时, 协同服务器根据强 制合并规则确定新的版本号。
3、 根据权利要求 1或 2所述的方法, 其中, 所述强制合并规则为: 以 优先级最高的服务器所存储的版本号为新的版本号, 或以服务器无故障运 行时间最长的服务器所存储的版本号为新的版本号。
4、 根据权利要求 1或 2所述的方法, 其中, 用于数据更新时, 所述协 同服务器将所有的版本号进行相互比较之前, 该方法还包括:
协同服务器收到客户端发送的数据更新请求后, 读取自身存储的版本 号和与其对应的数据内容, 并发送数据读取请求给各个副本服务器; 副本 服务器读取自身存储的版本号和与其对应的数据内容, 并发送给协同服务 器。
5、 根据权利要求 1或 2所述的方法, 其中, 用于数据更新时, 该方法 还包括:
副本服务器进行数据更新, 将自身的更新结果返回给协同服务器; 协 同服务器将总体的更新结果返回给客户端。
6、 根据权利要求 1或 2所述的方法, 其中, 用于数据读取时, 所述协 同服务器将所有的版本号进行相互比较之前, 该方法还包括:
协同服务器收到客户端发送的数据读取请求后, 读取自身存储的版本 号和与其对应的数据, 并发送数据读取请求和读取的版本号给副本服务器; 副本服务器将收到的版本号和自身存储的版本号进行比较, 当自身存储的 版本号更新或不可比较时, 将读取的版本号和与其对应的数据发送给协同 服务器, 当收到的版本号更新时, 返回比较结果。
7、 根据权利要求 1或 2所述的方法, 其中, 用于数据更新时, 该方法 还包括:
协同服务器将新的版本号和与其对应的数据发送给客户端; 副本服务 器进行数据更新, 将更新结果返回给协同服务器。
8、 一种保持数据一致性的系统, 其中, 该系统包括: 协同服务器、 副 本服务器; 其中,
协同服务器, 设置为将所有的版本号进行相互比较, 当两个版本号不 可比较时, 根据强制合并规则确定新的版本号; 在本地更新版本号和与其 对应的数据, 并将数据更新请求、 新的版本号和与其对应的数据发送给各 个副本服务器;
副本服务器, 设置为接收协同服务器发送的数据更新请求、 新的版本 号和与其对应的数据。
9、 根据权利要求 8所述的系统, 其中, 用于数据更新时,
所述协同服务器还设置为, 收到客户端发送的数据更新请求后, 读取 自身存储的版本号和与其对应的数据内容, 并发送数据读取请求给各个副 本服务器; 所述副本服务器还设置为, 收到数据读取请求时, 读取自身存 储的版本号和与其对应的数据内容, 并发送给协同服务器;
所述副本服务器还设置为, 进行数据更新, 将自身的更新结果返回给 协同服务器; 所述协同服务器还设置为, 将总体的更新结果返回给客户端。
10、 根据权利要求 8所述的系统, 其中, 用于数据读取时,
所述协同服务器还设置为, 收到客户端发送的数据读取请求后, 读取 自身存储的版本号和与其对应的数据; 发送数据读取请求和读取的版本号 给副本服务器; 所述副本服务器还设置为, 将收到的版本号和自身存储的 版本号进行比较; 当自身存储的版本号更新或不可比较时, 将读取的版本 号和与其对应的数据发送给协同服务器, 当收到的版本号更新时, 返回比 较结果;
所述协同服务器还设置为, 将新的版本号和与其对应的数据发送给客 户端; 所述副本服务器还设置为, 进行数据更新, 将更新结果返回给协同 服务器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010503437.9A CN101964820B (zh) | 2010-10-08 | 2010-10-08 | 一种保持数据一致性的方法及系统 |
CN201010503437.9 | 2010-10-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012045245A1 true WO2012045245A1 (zh) | 2012-04-12 |
Family
ID=43517550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2011/075113 WO2012045245A1 (zh) | 2010-10-08 | 2011-06-01 | 一种保持数据一致性的方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101964820B (zh) |
WO (1) | WO2012045245A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104158897A (zh) * | 2014-08-25 | 2014-11-19 | 曙光信息产业股份有限公司 | 一种分布式文件系统中文件布局的更新方法 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101964820B (zh) * | 2010-10-08 | 2014-04-09 | 中兴通讯股份有限公司 | 一种保持数据一致性的方法及系统 |
CN102265277B (zh) * | 2011-06-01 | 2014-03-05 | 华为技术有限公司 | 数据存储系统的操作方法和装置 |
CN102833273B (zh) * | 2011-06-13 | 2017-11-03 | 中兴通讯股份有限公司 | 临时故障时的数据修复方法及分布式缓存系统 |
CN103020058B (zh) * | 2011-09-21 | 2016-07-06 | 阿里巴巴集团控股有限公司 | 一种多版本数据获取方法和装置 |
CN102427577A (zh) * | 2011-12-06 | 2012-04-25 | 安徽省徽商集团有限公司 | 从协同服务器向移动终端推送信息的系统及其方法 |
CN103294675B (zh) * | 2012-02-23 | 2018-08-03 | 上海盛大网络发展有限公司 | 一种分布式存储系统中的数据更新方法及装置 |
CN102646127A (zh) * | 2012-02-29 | 2012-08-22 | 浪潮(北京)电子信息产业有限公司 | 分布式文件系统副本选择方法和装置 |
CN103729352B (zh) * | 2012-10-10 | 2017-07-28 | 腾讯科技(深圳)有限公司 | 分布式文件系统对多个副本数据进行处理的方法及该系统 |
CN103810045B (zh) * | 2012-11-09 | 2016-12-21 | 阿里巴巴集团控股有限公司 | 资源分配方法、资源管理器、资源服务器及系统 |
CN104754001A (zh) * | 2013-12-30 | 2015-07-01 | 方正宽带网络服务股份有限公司 | 云存储系统和数据存储方法 |
CN105991752B (zh) * | 2015-03-06 | 2019-06-21 | 阿里巴巴集团控股有限公司 | 一种数据块更新方法及设备 |
US9774729B2 (en) | 2015-03-26 | 2017-09-26 | Futurewei Technologies, Inc. | System and method for mobile core data services |
CN104820676B (zh) * | 2015-04-14 | 2018-06-19 | 天脉聚源(北京)教育科技有限公司 | 一种判断版本号大小的方法及装置 |
CN106302625B (zh) * | 2015-06-26 | 2019-10-25 | 阿里巴巴集团控股有限公司 | 数据更新方法、装置及相关系统 |
CN106557278A (zh) * | 2015-09-30 | 2017-04-05 | 腾讯科技(深圳)有限公司 | 一种缓存数据持久化的方法 |
CN106066894A (zh) * | 2016-06-23 | 2016-11-02 | 广州市百果园网络科技有限公司 | 数据全缓存方法和数据全缓存装置 |
CN106649669B (zh) * | 2016-12-14 | 2018-06-05 | 咪咕数字传媒有限公司 | 一种基于远程字典服务器的数据存储方法及系统 |
CN106941525A (zh) * | 2017-03-14 | 2017-07-11 | 郑州云海信息技术有限公司 | 一种在分布式存储系统中保持数据一致性的方法 |
CN107819870A (zh) * | 2017-11-21 | 2018-03-20 | 广州视睿电子科技有限公司 | 增量拉取数据方法、装置、存储介质、终端设备和服务器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101105745A (zh) * | 2006-07-14 | 2008-01-16 | 中兴通讯股份有限公司 | 分布式软件系统的部署方法 |
CN101483576A (zh) * | 2008-01-11 | 2009-07-15 | 上海博达数据通信有限公司 | 一种分布式系统中的版本管理实现方法 |
CN101576915A (zh) * | 2009-06-18 | 2009-11-11 | 北京大学 | 一种分布式b+树索引系统及构建方法 |
CN101964820A (zh) * | 2010-10-08 | 2011-02-02 | 中兴通讯股份有限公司 | 一种保持数据一致性的方法及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001075785A (ja) * | 1999-09-09 | 2001-03-23 | Nec Corp | データ更新システム |
US20020129103A1 (en) * | 2001-03-12 | 2002-09-12 | Birkler J?Ouml;Rgen | Instant messaging presence service protocol |
US6874001B2 (en) * | 2001-10-05 | 2005-03-29 | International Business Machines Corporation | Method of maintaining data consistency in a loose transaction model |
CN1690961A (zh) * | 2004-04-30 | 2005-11-02 | 鸿富锦精密工业(深圳)有限公司 | 客户端程序自动更新系统及方法 |
CN100512474C (zh) * | 2007-04-24 | 2009-07-08 | 中兴通讯股份有限公司 | 一种通讯系统主备板存储版本自动同步的方法 |
CN101547219B (zh) * | 2009-05-05 | 2012-09-05 | 汤淼 | 一种数据存储系统和方法 |
-
2010
- 2010-10-08 CN CN201010503437.9A patent/CN101964820B/zh active Active
-
2011
- 2011-06-01 WO PCT/CN2011/075113 patent/WO2012045245A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101105745A (zh) * | 2006-07-14 | 2008-01-16 | 中兴通讯股份有限公司 | 分布式软件系统的部署方法 |
CN101483576A (zh) * | 2008-01-11 | 2009-07-15 | 上海博达数据通信有限公司 | 一种分布式系统中的版本管理实现方法 |
CN101576915A (zh) * | 2009-06-18 | 2009-11-11 | 北京大学 | 一种分布式b+树索引系统及构建方法 |
CN101964820A (zh) * | 2010-10-08 | 2011-02-02 | 中兴通讯股份有限公司 | 一种保持数据一致性的方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104158897A (zh) * | 2014-08-25 | 2014-11-19 | 曙光信息产业股份有限公司 | 一种分布式文件系统中文件布局的更新方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101964820A (zh) | 2011-02-02 |
CN101964820B (zh) | 2014-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2012045245A1 (zh) | 一种保持数据一致性的方法及系统 | |
AU2016405587B2 (en) | Splitting and moving ranges in a distributed system | |
CN105393243B (zh) | 事务定序 | |
US9081841B2 (en) | Asynchronous distributed garbage collection for replicated storage clusters | |
US9031910B2 (en) | System and method for maintaining a cluster setup | |
US8315977B2 (en) | Data synchronization between a data center environment and a cloud computing environment | |
JP5387757B2 (ja) | 並列データ処理システム、並列データ処理方法及びプログラム | |
US9218405B2 (en) | Batch processing and data synchronization in cloud-based systems | |
CN113535656B (zh) | 数据访问方法、装置、设备及存储介质 | |
EP3722973B1 (en) | Data processing method and device for distributed database, storage medium, and electronic device | |
JP5686034B2 (ja) | クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム | |
US20200104404A1 (en) | Seamless migration of distributed systems | |
US11860892B2 (en) | Offline index builds for database tables | |
US10747739B1 (en) | Implicit checkpoint for generating a secondary index of a table | |
US20100293143A1 (en) | Initialization of database for synchronization | |
US11693828B2 (en) | Real-time data replication in a multiple availability zone cloud platform | |
US9170886B2 (en) | Relaxed anchor validation in a distributed synchronization environment | |
US11789971B1 (en) | Adding replicas to a multi-leader replica group for a data set | |
US20120191645A1 (en) | Information processing apparatus and database system | |
US11880385B1 (en) | Ordering updates to secondary indexes using conditional operations | |
US11687565B2 (en) | Asynchronous data replication in a multiple availability zone cloud platform | |
US11334455B2 (en) | Systems and methods for repairing a data store of a mirror node | |
Zhang et al. | A tiered replication model in embedded database based mobile geospatial information service | |
Fadoua et al. | Near Real-time Synchronization Approach for Heterogeneous Distributed Databases | |
JP2019003584A (ja) | データベースサーバ、データベース管理方法、およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11830201 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 11830201 Country of ref document: EP Kind code of ref document: A1 |