CN113239013B - 分布式系统及存储介质 - Google Patents
分布式系统及存储介质 Download PDFInfo
- Publication number
- CN113239013B CN113239013B CN202110533445.6A CN202110533445A CN113239013B CN 113239013 B CN113239013 B CN 113239013B CN 202110533445 A CN202110533445 A CN 202110533445A CN 113239013 B CN113239013 B CN 113239013B
- Authority
- CN
- China
- Prior art keywords
- data
- creation
- node
- data item
- identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013479 data entry Methods 0.000 claims abstract description 91
- 238000012217 deletion Methods 0.000 claims abstract description 74
- 230000037430 deletion Effects 0.000 claims abstract description 74
- 238000003780 insertion Methods 0.000 claims abstract description 9
- 230000037431 insertion Effects 0.000 claims abstract description 9
- 230000008439 repair process Effects 0.000 claims description 27
- 230000001360 synchronised effect Effects 0.000 claims description 27
- 238000000034 method Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 15
- 239000002609 medium Substances 0.000 description 13
- 230000002159 abnormal effect Effects 0.000 description 8
- 230000000007 visual effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- 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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例中提供一种分布式系统及存储介质,分布式系统包括至少两个存储副本节点和全局索引服务;系统中存储的数据条目能够被唯一的身份标识所定位访问;全局索引服务中存储有数据条目的身份标识,并且支持基于强一致性协议的针对身份标识的插入操作、查询操作和删除操作;存储副本节点支持针对数据条目的创建操作、更新操作、查询操作和删除操作;存储副本节点之间采用最终一致性的方式进行数据条目的同步、检查和修复,当不同存储副本节点中存储的数据条目存在冲突时,依靠全局索引服务进行仲裁。本发明实施例提供的分布式系统,通过引入外部强一致性全局索引服务,可以改善多副本节点内的数据不一致的问题。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及分布式系统及存储介质。
背景技术
在分布式系统中,最终一致性一般指对于已改变写的数据的读取,最终都能取得已更新的数据,但往往不完全保证能立即取得已更新的数据,通常可以通过牺牲一致性的方式实现较高的可用性。基于最终一致性设计的分布式系统常见的数据同步方式为基于哈希树(hash tree)也称为默克尔树(merkle tree)同步各节点的数据,数据版本采用向量时钟(以版本自增的方式或者时间戳方式)在各个节点间同步,假如遇到节点故障情况,会选择先写入,后修复的方式来提高系统可用性。最终一致性的系统一般在索引中采用墓碑记录(tombstone,一般为负数版本)来表示删除动作,在系统进行索引压缩清理(compaction)的时候就把墓碑记录和旧的数据一起删除。但现有基于最终一致性设计的系统,由于在异常状态下将放弃一致性作为设计手段,表现与其“最终一致性”的概念不符,导致最终的结果不能取到已更新数据,与用户实际操作相差甚远。
例如,时间相邻的两个set(写入)操作和delete(删除)操作若发生在同一秒内,由于时间精度问题或者按不同的顺序到达不同的节点,可能原本的先写入再删除两个操作会变成先删除操作再写入的两个操作,这样会导致节点中存在写入操作残余数据。图1为现有技术中的一种最终一致性系统理想状态下的工作流程示意图。按照正常时序,时间相邻的两个set(写入)操作和delete(删除),并且这两个操作没有产生并发,线性地按照相同的时序到达各个节点时,最终保存在主从节点内的数据是一致的。图2为现有技术中的另一种分布式系统工作流程示意图,图2表示当主从节点按照不同时序收到set-del-set请求时的流程示意图,最终保存在主从节点内的数据是不符合预期。交互步骤的不同会导致不同的错误结果。
又例如在进行删除操作时由于存在从节点不可达,虽然其他节点在删除时插入了墓碑记录,但是该墓碑记录会被周期性执行的compaction动作清除,后续不可达的节点上线后,由于没发现其他节点有墓碑记录,又将残余数据同步到其他节点。
因此,本发明实施例对需要实现最终一致性的系统作出改进,提出一种分布式系统,以解决现有技术中存在的节点间的数据一致性较差的问题。
发明内容
本发明实施例提供了分布式系统及存储介质,可以优化现有的针对分布式系统处理数据时不足的方案。
第一方面,本发明实施例提供了分布式系统,包括:包括至少两个存储副本节点和全局索引服务;
所述系统中存储的数据条目能够被唯一的身份标识所定位访问,所述身份标识为数据名称;
所述全局索引服务中存储有数据条目的身份标识,并且支持基于强一致性协议的针对身份标识的插入操作、查询操作和删除操作;
所述存储副本节点存储有身份标识所关联的数据条目,所述至少两个存储副本节点中有且只有一个存储副本节点为主节点状态,记为主节点,所述至少两个存储副本节点中的其余存储副本节点为从节点状态,记为从节点;
所述存储副本节点支持受所述全局索引服务辅助之下的针对数据条目的创建操作、更新操作、查询操作和删除操作;
所述存储副本节点之间采用最终一致性的方式进行数据条目的同步、检查和修复,当不同存储副本节点中存储的数据条目存在冲突时,依靠所述全局索引服务进行仲裁。
第二方面,本发明实施例提供了一种分布式系统,包括作为主节点的第一计算机设备、作为从节点的第二计算机设备和部署有全局索引服务的第三计算机设备,所述计算机设备具备如第一方面所述的相应功能,所述计算机设备中包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例提供的分布式系统涉及的相应步骤。
第三方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的分布式系统涉及的相应步骤。
本发明实施例中提供的分布式系统及存储介质,分布式系统包括至少两个存储副本节点和全局索引服务;系统中存储的数据条目能够被唯一的身份标识所定位访问,身份标识为数据名称;全局索引服务中存储有数据条目的身份标识,并且支持基于强一致性协议的针对身份标识的插入操作、查询操作和删除操作;存储副本节点存储有身份标识所关联的数据条目,至少两个存储副本节点中有且只有一个存储副本节点为主节点状态,记为主节点,至少两个存储副本节点中的其余存储副本节点为从节点状态,记为从节点;存储副本节点支持受全局索引服务辅助之下的针对数据条目的创建操作、更新操作、查询操作和删除操作。存储副本节点之间采用最终一致性的方式进行数据条目的同步、检查和修复,当不同存储副本节点中存储的数据条目存在冲突时,依靠全局索引服务进行仲裁。本发明实施例提供的分布式系统,通过引入外部强一致性全局索引服务,使得该系统在数据创建、更新、查询以及删除过程中,可以在全局索引服务的辅助下,通过全局索引服务中存储的身份标识来实现保存在各个副本节点中的数据达成一致,可以改善多副本节点内的数据不一致的问题。
需要说明的是,由于引入了外部的强一致性全局索引服务,使得系统的可用性受到全局索引服务的可用性所制约,并且全局索引服务也维护了跟每个存储副本节点本地索引所冗余的数据身份标识信息,使得存储成本相应有增加。并且由于存储副本节点间更新操作和删除操作仍然是先写入后修复的最终一致性方式,同步交互步骤较少,比完全基于强一致性方式(Paxos或Raft协议)的系统能达到更高的可用性和性能。所以本发明实施例提供的分布式系统一般适用于数据条目键值较大,具有较强一致性,较高可用性和较高性能要求的场景,比如文件存储系统或者文档型数据库系统。
附图说明
图1为现有技术中的一种分布式系统工作流程示意图;
图2为现有技术中的另一种分布式系统工作流程示意图;
图3为本发明实施例提供的一种分布式系统的结构示意图;
图4为本发明实施例提供的又一种分布式系统的结构示意图;
图5为本发明实施例提供的一种分布式系统的工作流程示意图;
图6为本发明实施例提供的又一种分布式系统的工作流程示意图;
图7为本发明实施例提供的又一种分布式系统的工作流程示意图;
图8为本发明实施例提供的又一种分布式系统的工作流程示意图;
图9为本发明实施例提供的全局索引服务中包含删除队列的示意图;
图10为本发明实施例提供的又一种分布式系统的工作流程示意图;
图11为本发明实施例提供的又一种分布式系统的工作流程示意图;
图12为本发明实施例提供的又一种分布式系统的工作流程示意图;
图13为本发明实施例提供的又一种分布式系统的工作流程示意图;
图14为本发明实施例提供的又一种分布式系统的工作流程示意图;
图15为本发明实施例提供的一种分布式系统的结构框图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
需要说明的是,本发明实施例中提及的“第一”、“第二”等概念仅用于对不同的项目(如下文中的数据条目、节点、身份标识以及同步标识等)进行区分,并非限定不同项目之间的顺序或者相互依存关系。
在分布式系统中,最终一致性表示对于已改变写的数据的读取,最终都能取得已更新的数据,但不完全保证能立即取得已更新的数据,通常通过牺牲一致性的方式实现较高的可用性。
其中,上述分布式系统可以理解为是建立在网络之上的软件系统,具有查询速度快、存放数据量大、读写性能高等特点。分布式系统可以包括以键值对(key-value)的形式分布式存储数据的存储系统,此时,可以将整个存储系统理解为一个大的地图(map),每个键都会对应一个唯一的值。当然,还可以包含其他存储形式,一般包含数据名称和数据内容,数据名称和数据内容存在对应关系,具体命名方式或存储格式等均不做限定。value也可能为单一键值或包含更复杂的结构化数据。为了便于描述,下面以数据名称为键(key,简称k),数据内容为值(value,简称v)为例进行后续说明。
图3为本发明实施例提供的一种分布式系统的结构示意图,该分布式系统可以配置在多个计算机设备上,该计算机设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。一般而言,计算机设备可以是笔记本、台式计算机以及服务器等。
本发明实施例提供的分布式系统,包括至少两个存储副本节点和全局索引服务。其中,至少两个存储副本节点中有且只有一个存储副本节点为主节点状态,记为主节点,至少两个存储副本节点中的其余存储副本节点为从节点状态,记为从节点。如图3所示,系统中可以包含3个存储副本节点,分别为存储副本节点1、存储副本节点2和存储副本节点3,图3所示情况下,存储副本节点1处于主节点状态,记为主节点,存储副本节点2和存储副本节点3均处于从节点状态,记为从节点1和从节点2。在其他情况下,存储副本节点2和存储副本节点3也有可能会成为主节点,本发明实施例不做限定。需要说明的是,图3仅作为示意性说明,分布式系统中的存储副本节点的数量还可以更少(1个主节点和1个从节点)或更多(1个主节点和3个以上从节点)。
本发明实施例提供的分布式系统中存储的数据条目能够被唯一的身份标识所定位访问,身份标识为数据名称。
示例性的,数据条目可以表示对数据进行存储时转化为的键值(key value)信息,可对应简称为数据条目<k,v>。其中,k表示数据名称,v表示数据内容,可以将k作为数据条目的唯一的身份标识。在分布式系统中,数据条目可以被该身份标识所定位访问。可选的,每响应一次用户(如通过客户端)发送的数据条目创建请求,可以创建一个对应的<k,v>,此时的数据内容可以是空值,数据名称(key)则作为身份标识。
全局索引服务中存储有数据条目的身份标识,可将该身份标识包含于索引信息中。全局索引服务支持基于强一致性协议的针对身份标识的插入操作、查询操作和删除操作。其中,强一致性也称为原子一致性或线性一致性,表示在分布式系统中,在对数据进行创建或者其他操作时,所有节点上的数据需时刻保持同步。因此,在本实施例提供的分布式系统中,全局索引服务支持基于强一致性协议的针对身份标识的插入操作、查询操作和删除操作,在保证全局索引服务中存储的数据条目的身份标识在系统中各存储副本中一致的情况下,可支持对身份标识的插入操作、查询操作和删除操作。其中,全局索引服务可以采用强一致性的共识算法来实现。强一致性协议的具体类型不做限定,例如可以包括Paxos或者Raft等。
本发明实施例中,存储副本节点支持受全局索引服务辅助之下的针对数据条目的创建操作、更新操作、查询操作和删除操作。各操作的实现过程此处不做具体限定。存储副本节点之间采用最终一致性的方式进行数据条目的同步、检查和修复,当不同存储副本节点中存储的数据条目存在冲突时,依靠全局索引服务进行仲裁。
本发明实施例提供的分布式系统,通过同步、检查和修复的方式实现一个主节点及所有从节点中的数据条目的一致性,当不同存储副本节点中存储的数据条目存在冲突时,依靠全局索引服务进行评判,实现数据的一致性,可以改善多副本节点内的数据不一致的问题。
在一些实施例中,数据条目在创建后带有唯一的创建标识(可记为create_id),创建标识用于区分来自不同时刻或不同来源的创建请求。全局索引服务中还存储有身份标识所关联的创建标识,并且支持基于强一致性协议的针对创建标识的插入操作、查询操作和删除操作。存储副本节点还存储有身份标识所关联的创建标识。
在主节点进行数据条目的数据创建时,除包含有身份标识外,同时存储由客户端生成的创建标识,该创建标识是系统中全局唯一的,用于对本次的数据创建操作进行唯一标识,创建标识的具体生成方式不做限定,例如可以通过低冲突率随机算法生成。
创建标识存储在存储副本节点中,且一个创建标识与一个身份标识相关联对应。全局索引服务中也存储有身份标识所关联的创建标识,可支持基于强一致性协议的针对创建标识的插入操作、查询操作和删除操作。
可选的,请参照图4,图4为本发明实施例提供的又一种分布式系统的结构示意图;图4表示本发明实施例提供的分布式系统中包含副本存储引擎时的模块架构图,其中,示意性地画出了主节点和两个从节点(分别记为副本1和副本2),客户端可以与主节点直接通信,向主节点发送创建请求等。可以在主节点和从节点中设置副本存储引擎,副本存储引擎中可以包括本地的从数据名称到数据内容的索引,在副本存储引擎中的索引中保存数据条目的身份标识和创建标识,从而实现各节点中的数据条目、身份标识以及创建标识的关联存储。全局索引服务中需要存储的数据条目的身份标识以及身份标识所关联的创建标识等相关信息可以存储在索引存储引擎中。
进一步地,请参照图5,图5为本发明实施例提供的一种分布式系统的工作流程示意图。分布式系统在进行数据条目的创建操作时,包括如下步骤:
S101、主节点根据接收到的创建请求执行第一数据条目的本地创建操作成功后,转发所述创建请求到所有从节点。
其中,创建请求包含第一数据条目对应的第一身份标识和由客户端生成的第一创建标识;第一数据条目的本地创建操作包括:创建第一身份标识到第一数据条目的映射关系,并将第一数据条目预置为空值,附加第一创建标识,并存储第一同步标识。
当客户端创建数据条目时,向主节点发起数据创建操作,可将当前需要新建的数据条目记为第一数据条目,当主节点接收到第一数据条目<k,v>对应的创建请求时,创建第一身份标识到第一数据条目的映射关系,将第一数据条目、第一身份标识以及第一创建标识关联后,关联存储对应的第一同步标识,并向从节点发送第一数据条目(k,v)对应的数据创建请求。
同步标识(可记为sync_info)用于表示对应的数据条目在同步过程中,主从节点内的数据并未实现一致性。也即,若数据条目关联存储有同步标识,则说明未实现一致性,若数据条目未关联存储有同步标识,可认为已实现一致性。同步标识的具体内容不做限定,对于不同的数据条目来说,其同步标识的具体内容可以是一样的。
当创建数据条目时,除创建第一身份标识到第一数据条目的映射关系,并生成有第一身份标识及第一创建标识外,还需添加对应的第一同步标识。
第一同步标识用于表示是与第一数据条目关联的同步标识。在主节点响应数据创建操作时,为所新建的数据条目添加同步标识,此时该同步标识存在的意义是为了标识此时只有主节点中存储了新建的数据条目,而从节点中并未存储,因此数据条目是不一致的。
S102、从节点根据主节点转发的创建请求执行第一数据条目的本地创建操作成功后,向主节点返回第一数据条目对应的创建成功信息。
示例性的,从节点在接收到主节点发送的第一数据条目对应的创建请求后,同样执行第一数据条目的本地创建操作,也即创建所述第一身份标识到所述第一数据条目的映射关系,并将所述第一数据条目预置为空值,附加所述第一创建标识,并存储第一同步标识,以完成数据同步。在成功存储后,向主节点发送第一数据条目对应的创建成功信息。其中,创建成功信息中例如可以包括第一身份标识和创建成功标识。若从节点存在多个,则每个从节点的本地创建操作以及创建成功信息的返回过程可以是独立的,互不干扰。也即,当每一个从节点创建操作成功后,均会独立地向主节点返回第一数据条目对应的创建成功信息。
S103、主节点在确定接收到至少预设数量的从节点返回的第一数据条目对应的创建成功信息后,通知全局索引服务保存第一身份标识和第一创建标识,并在全局索引服务返回保存成功信息后,在本地执行第一同步标识的删除操作以及通知从节点执行第一同步标识的删除操作。
示例性的,所述预设数量的具体数值可以根据实际情况设置,可以为大于1个,当然也可以是所有从节点的总数量。若预设数量小于所有从节点的总数量,则可以无需等待所有从节点返回第一数据条目对应的创建成功信息,当有预设数量的从节点返回第一数据条目的创建成功信息后,便可通知全局索引服务保存第一身份标识和第一创建标识。
当主节点在确定接收到至少预设数量的从节点返回的第一数据条目对应的创建成功信息时,便通知全局索引服务保存第一身份标识和第一创建标识的目的在于,当从节点为多个时,可能存在从节点异常或离线状态下不能返回创建成功信息的情况,因此本发明实施例提供的分布式系统,采用接收到预设数量创建成功信息即可通知全局索引服务保存第一身份标识和第一创建标识。对于可能存在从节点异常或离线状态下不能返回创建成功信息的情况的节点,本发明实施例提供的分布式系统,可采用修复的方式使得异常或离线状态下的从节点在恢复正常后也能保持主从节点中数据的一致性。
示例性的,主节点可以根据从节点返回的创建成功信息中包含的身份标识确定是否是第一数据条目在从节点中被创建成功,若是第一身份标识,则表明当前接收到的创建成功信息对应于第一数据条目,也即第一数据条目在当前发送创建成功信息的从节点中被创建成功。当系统中至少预设数量的从节点都向主节点返回数据创建成功的信息时,主节点可以通知全局索引服务保存数据条目对应的身份标识和创建标识,作为索引信息。全局索引服务可以不保存数据条目对应的数据内容,以减少对存储空间的占用。全局索引服务保存第一数据条目对应的第一索引信息后,说明第一数据条目已经实现一致性,此时,分布式系统中的第一数据条目可以被访问或读取,也即用户侧可以通过访问全局索引服务来确定分布式系统中能够被访问到的数据条目,能够被访问到的数据条目在分布式系统中已实现一致性。
进一步地,当全局索引服务向主节点返回保存成功信息后,主节点在本地执行第一同步标识的删除操作以及通知从节点执行第一同步标识的删除操作。当全局索引服务向主节点返回保存成功信息后,可认为第一数据条目在系统中已经实现一致,因此,可以对主从节点中存储的第一同步标识进行同步删除。
可选的,在进行数据条目创建时,还包括:所述主节点和/或所述从节点在执行所述第一数据条目的本地创建操作之前,若经检查确定所述第一数据条目已存在,则判断已存在的创建标识与所述第一创建标识是否相同,若相同,则继续执行所述第一数据条目的本地创建操作;若不同,则返回创建冲突。这样设置的好处在于,可以利用创建标识来区分来自不同时刻或不同来源的创建请求,避免发生针对同一数据条目的重复创建,也能够保证数据条目在系统中的一致性。
如图6、图7所示,为本发明实施例提供的又一种分布式系统的工作流程示意图。图6表示当进行数据创建时的流程示意图,图7表示当对第一同步标识进行删除处理时,以主节点正常状态下删除第一同步标识为例的流程示意图。
当客户端响应用户的创建第一数据条目<k,v>的数据创建操作时,将对应的创建请求发送至主节点,主节点创建第一数据条目<k,v>,也即创建k到<k,v>的映射关系,并将<k,v>预置为空值,附加第一创建标识(create_id),并关联存储第一同步标识(sync_info)。若主节点确定创建本地数据条目成功,则转发创建请求到所有从节点(图中示出了从节点1和从节点2作为示意性说明),从节点检查本地是否已经存在第一数据条目,若存在,则校验本地的创建标识与第一创建标识(create_id)是否一致,若一致,则继续执行第一数据条目的本地创建操作,若从节点第一数据条目的本地创建操作成功,则向主节点返回创建成功信息。主节点在接收到创建成功信息后,通知全局索引服务保存元数据信息(也即第一身份标识和第一创建标识),随后,主节点确定所有存储副本节点创建第一数据条目成功后,在本地执行副本标记sync_info<k>(第一同步标识)的删除操作以及通知从节点执行第一同步标识的删除操作。
需要说明的是,主节点在向对应的存储设备中写入数据时,也可能出现异常,因此,所述主节点可以在确定接收到主节点对应的存储设备返回的第一数据条目的存储成功信息以及接收到所有从节点返回的第一数据条目对应的创建成功信息的情况下,通知全局索引服务保存第一数据条目对应的第一索引信息,以及对第一同步标识进行删除处理。若存在未创建成功的存储副本节点,可直接结束流程,说明此时第一数据条目并未实现一致性,可以保留第一同步标识,在后续的一致性修复过程进行处理。
S104、主节点向客户端返回第一数据条目的创建结果。
一般的,当所有从节点均执行完第一同步标识的删除操作时,则表示第一数据条目在所有从节点中均已创建成功,主节点向客户端返回第一数据条目的创建结果的表现形式可以为向客户端发送创建成功标识信息,若客户端为可视化界面,可在可视化界面反馈“第一数据条目创建成功”相关的文字信息。
相应地,若第一数据条目创建失败,主节点向客户端返回第一数据条目的创建结果的表现形式也可以为在向客户端发送创建失败的标识信息,若客户端为可视化界面,可在可视化界面反馈“第一数据条目创建失败”相关的文字信息。
本发明实施例通过采用上述技术方案,可以实现数据条目创建过程中主从节点内存储的数据一致,改善了以往系统中多副本节点内的数据不一致的问题。
作为本发明实施例的一个可选实施例,在上述实施例的基础上,可以进行如下优化:在进行数据条目创建时,所述主节点在收集自身和/或所述从节点的创建结果时,若存在至少一个创建冲突结果,则启动第一数据条目的一致性修复流程,根据第一创建标识的修复结果确定对应的向客户端返回的所述第一数据条目的创建结果,其中,修复结果为保留时对应创建成功,修复结果为删除时对应创建失败。
示例性的,主节点在确定存在至少一个创建冲突结果时,说明可能存在重复创建的情况,需要对本次的创建操作进行进一步核实。例如,可以以全局索引服务中的创建标识为准,若全局索引服务中已存在第一数据条目对应的第一身份标识和第一创建标识,则主节点可以继续判断本地的第一创建标识和全局索引服务中的第一创建标识是否一致,若一致,则修复结果为保留,对应创建成功,若不一致,则修复结果为删除,对应创建失败。
在上述各可选实施例基础上,本发明实施例还可对提供的分布式系统作进一步优化,可对存储在主节点、从节点中的数据条目进行删除操作,具体可包括:主节点从全局索引服务的第一级删除队列中获取待删除的第二数据条目对应的第二身份标识,对本地存储的第二数据条目进行删除处理,并向从节点发送所述第二数据条目对应的数据删除请求;从节点根据数据删除请求成功删除本地存储的第二数据条目后,向主节点返回第二数据条目对应的删除成功信息;主节点在确定接收到所有从节点返回的所述第二数据条目对应的删除成功信息的情况下,通知全局索引服务从第一级删除队列中删除第二身份标识。
图8为本发明实施例提供的又一种分布式系统的工作流程示意图,如图8所示,本发明实施例优化的分布式系统的工作流程还可包括如下操作:
S201、主节点从全局索引服务的第一级删除队列中获取待删除的第二数据条目对应的第二身份标识,对本地存储的第二数据条目进行删除处理,并向从节点发送所述第二数据条目对应的数据删除请求。
具体地,请参照图9和图10。图9为本发明实施例提供的全局索引服务中包含删除队列的示意图;图10为本发明实施例提供的又一种分布式系统的工作流程示意图,表示当分布式系统中所有节点状态正常时,主从节点同步删除数据条目的流程示意图。
从图9、图10中可以看出全局索引服务中包含有两级删除队列,通过两级删除队列来保证删除操作在各个节点执行的一致性,图10中将第一级删除队列简称为第一队列,供主节点拉取删除任务,将第二级删除队列简称为第二队列,每个节点都对应一个第二队列,供相应节点拉取删除任务。当分布式系统中所有节点状态正常时,若要对数据进行删除操作时,全局索引服务原子操作(也即逐个操作)将需要删除的数据条目的数据名称移动到第一队列中。主节点从全局索引服务中拉取第一队列的删除任务,也即主节点从第一级删除队列中获取需要删除的数据条目对应的数据名称。为与上述实施例进行区分,此处称为第二数据条目对应的第二数据名称,主节点将第二数据条目成功删除后同步指示从节点删除对应的第二数据条目。
S202、从节点根据数据删除请求成功删除本地存储的第二数据条目后,向主节点返回第二数据条目对应的删除成功信息。
如图10所示,当分布式系统中所有节点状态正常时,主从节点均可删除成功,从节点在成功删除第二数据条目后,会向主节点返回对应的删除成功信息。
S203、主节点在确定接收到所有从节点返回的所述第二数据条目对应的删除成功信息的情况下,通知全局索引服务从第一级删除队列中删除第二身份标识。
当所有从节点将第二数据条目删除成功后,向主节点反馈数据删除成功,通知全局索引服务在第一级删除队列中删除第二身份标识,则此时第一级删除队列中不再含有第二数据条目的第二身份标识,应用本发明实施例提供的分布式系统,主节点在同步所有从节点执行删除成功后,通知全局索引服务移除对应的删除任务,保证了删除任务的成功执行及分布式系统数据的一致性。
然而,在系统执行删除任务时,主节点可能由于异常关闭导致没有执行完整的步骤使得数据仍残留。这种异常情况被排除后仍可以通过重复执行上述步骤使得系统最终具备一致性。
在上述实施例的基础上,本发明实施例提供的分布式系统在进行数据条目的删除操作时,还可包括:主节点向第一节点发送数据条目的删除请求时,若网络连接失败或者超时未收到结果回复时,通知全局索引服务以事务方式执行如下操作:从第一级删除队列中删除第二身份标识,并将第二身份标识存入第一节点对应的第二级删除队列中,其中,所述第一节点包括从节点。
主节点拉取第一队列中的删除数据任务执行并同时转发拉取到的删除数据任务到从本节点执行,当所有节点删除数据成功时,主节点通知全局索引服务对应的删除数据任务移除队列删除成功。当主节点向第一节点发送数据条目的删除请求时,若网络连接失败或者超时未收到结果回复时,可认为执行删除任务失败时,主节点通知全局索引服务,全局索引服务从第一删除队列中移除第二身份标识,并同时将该删除任务投递到对应执行失败的第一节点的第二删除队列中,供第一节点进行后续处理。例如,删除失败的第一节点恢复正常后主动拉取执行。
进一步地,在上述实施例的基础上,本发明实施例提供的分布式系统在进行数据条目的删除操作时,还包括:第二节点从对应的第二级删除队列中获取待删除的第三数据条目对应的身份标识,对本地存储的第三数据条目进行删除处理,其中,第二节点包括所述主节点和/或从节点。第二节点可以定时(例如每间隔第二预设时长获取一次,又如每天指定时刻进行获取等)地从对应第二级删除队列中获取待删除的数据条目对应的身份标识,保证了删除任务最终执行成功,副本节点在执行删除数据任务时,通过本地副本存储引擎索引存储保证了数据的存在唯一性,同时也保证了删除的幂等性,支持重复删除操作,确保了分布式系统删除数据的最终一致性。
示例性的,图11为本发明实施例提供的又一种分布式系统的工作流程示意图,图11表示当系统执行删除任务,系统异常时,以从节点B(相当于第二节点)删除数据条目失败为例,主从节点利用两级删除队列通过异步删除数据条目的方式,实现主从节点内数据的完整删除,同时实现主从节点中数据的一致性。
首先,主节点在确定从节点B针对第三数据条目删除失败的情况下,通知全局索引服务将主节点对应的第一级删除队列中的第三数据名称删除,而此时从节点B中仍存储有第三数据条目以及对应的第三身份标识,故将第三身份标识转移至从节点B对应的第二级删除队列中,使得从节点B在恢复正常后可以及时从从节点B对应的第二级删除队列中有针对性拉取第三身份标识,并对从节点B中的第三数据条目进行删除,删除成功后,通知全局索引服务将从节点B对应的第二级删除队列中的第三身份标识删除。
进一步地,在上述实施例的基础上,本发明实施例可以进行进一步优化,在进行存储副本节点间的一致性检查操作,包括如下步骤:第三节点定时对同步标识进行扫描,在确定扫描到的第四同步标识的存在时长超过第一预设时长的情况下,通知主节点针对所述第四同步标识对应的第四数据条目进行一致性修复处理,其中,所述第三节点包括所述主节点和/或所述从节点。
扫描同步标识的意义在于,若分布式系统中主从节点内存储的数据已实现一致,则不存在同步标识。若在扫描到同步标识存在时长超过预设时长,则可表明当前存在同步标识的节点内未实现与其他节点内数据一致,其中所述第一预设时长可以根据实际需求进行设置,可参考数据同步过程正常所需时长来确定,例如3s。针对第三节点定时扫描到第四同步标识存在时间超过第一预设时长,主节点可对第四同步标识对应的第四数据条目进行修复操作,使得实现数据一致性。
示例性的,图12为本发明实施例提供的又一种分布式系统流程示意图,当客户端进行数据条目<k,v>创建工作时,主节点网络正常,则可正常写入数据条目<k,v>、创建标识以及同步标识(sync_info),但由于从节点离线,导致从节点的同步写入操作失败。由于主节点中的同步标识未被清除,在进行存储副本节点间的一致性检查操作时,主节点(可认为相当于上文所述第三节点)利用修复队列定时对同步标识进行扫描,在确定扫描到的sync_info的存在时长超过第一预设时长的情况下,针对扫描得到的sync_info对应的数据条目进行一致性修复处理,此时,若从节点恢复正常上线,主节点便可以将数据条目<k,v>、创建标识以及同步标识(sync_info)修复至重新恢复正常的从节点中,随后,同步清除主从节点中的同步标识,实现了即使有节点异常也能使得主从节点内数据保持一致性,也即通过存储副本节点间的一致性检查操作实现存储副本节点间的数据一致性。
更进一步地,以第五数据条目为待进行一致性修复的数据条目为例,主节点执行第五数据条目的一致性修复操作,步骤如下:
a)主节点查询全局索引服务以获取第五数据条目对应的第五创建标识,对所有存储副本节点的第五数据条目进行检查。
其中,若全局索引服务中不存在第五数据条目的身份标识,则对第五数据条目进行删除;若第五创建标识与本地的创建标识不一致,则在本地删除第五数据条目后再创建带有第五创建标识的第五数据条目。
本发明实施例中以全局索引服务中存储的数据条目的身份标识以及创建标识为准,对数据条目进行修复前,主节点首先查询全局索引服务,若全局索引服务中不存在第五数据条目的身份标识,说明系统中不应该存储第五数据条目,则对第五数据条目进行删除。
若全局索引服务中存在第五数据条目的身份标识,则需要继续查询全局索引服务,以获得第五数据条目对应的准确的创建标识。若从全局索引服务中查询得到的第五创建标识与本地的创建标识不一致,即存在创建标识冲突的情况,则在本地删除第五数据条目后再创建带有第五创建标识的第五数据条目。出现这种情况的原因可能在于,数据条目创建过程中存在异常。
示例性的,图13为本发明实施例提供的又一种分布式系统流程示意图。
以主节点A异常为例,当用户A使用客户端A发送创建数据条目<k,v>请求到主节点A时,该请求中包含客户端A生成的创建标识(create_id),主节点A在收到创建请求后,在本地写入数据条目<k,v>、创建标识(create_id)和同步标识(sync_info)后,通知全局索引服务保存身份标识k和创建标识(create_id)。此时若主节点A网络异常离线,同步从节点B写入数据条目<k,v>失败。此时,系统进行主从节点切换,从节点B提升为主节点B,主节点A网络恢复上线成为从节点A,分布式系统多客户端并发环境下,用户B使用客户端B发起创建数据条目<k,v>请求到主节点B时(此时系统中已经存在数据条目<k,v>),客户端B所生成的创建标识记为新的创建标识(new_create_id),并在B节点对应的本地写入数据条目<k,v>、新的创建标识(new_create_id)和同步标识(sync_info),并同步数据条目<k,v>给从节点A,由于从节点A已存在数据条目<k,v>,且本地已存在的创建标识(create_id)与当前主节点B转发的创建请求中的新的创建标识(new_create_id)不相同,故返回主节点B创建冲突。
进一步地,主节点B在收集创建结果时,识别到创建冲突结果,启动数据条目的一致性修复流程,通过查询全局索引服务,将正确的创建标识(create_id)和数据条目<k,v>同步修复到本地。
b)主节点比较各个存储副本节点的第五数据条目的数据版本,选择数据版本高的数据的向数据版本低的同步。
对于一个数据条目来说,可能存在不同的数据版本,在对数据进行一致性修复的过程中,也可进行数据版本的同步,也即,还需主节点比较各个存储副本节点的第五数据条目的数据版本,选择数据版本高的数据的向数据版本低的同步。
c)主节点确认修复结果为所有存储副本节点中的第五数据条目的数据内容一致时,对所有节点中的第五数据条目对应的第五同步标识进行删除。
示例性的,当各个从节点成功同步版本高的第五数据条目的数据内容时,主节点收到从节点返回同步成功信息,表明实现主从节点中第五数据条目的数据版本统一后,清除第五同步标识。如图13所示,在确定修复结果为所有存储副本节点中的数据条目<k,v>的v的取值一致时,清除同步标识(sync_info)。
本发明实施例提供的分布式系统,通过数据修复操作,使得数据版本在分布式系统的主从节点实现数据一致性。
在上述实施例的基础上,本发明实施例进行了进一步优化,优化了在进行数据条目的更新操作时,带有数据版本,并且包括如下步骤:
所述主节点根据接收到的第六数据条目对应的数据更新请求查询所述全局索引服务,在确定所述全局索引服务中存在所述第六数据条目对应的第六身份标识的情况下,执行本地更新操作,并向所述从节点转发所述第六数据条目对应的数据更新请求,使得从节点执行本地更新操作;其中,所述本地更新操作为:根据所述数据更新请求对所述第六身份标识对应的数据内容进行更新并存储数据版本,并为更新后的第六数据条目添加第六同步标识;所述主节点在确定所述主节点和所述从节点针对所述第六数据条目的更新结果一致后,通知所有节点对所述第六同步标识进行删除处理。
请参照图14,图14为发明实施例提供的又一种分布式系统流程示意图;在进行数据条目的更新操作时,带有数据版本,并且包括如下步骤:
S301、主节点根据接收到的第六数据条目对应的数据更新请求查询全局索引服务,在确定全局索引服务中存在第六数据条目对应的第六身份标识的情况下,执行本地更新操作,并向从节点转发第六数据条目对应的数据更新请求,使得从节点执行本地更新操作。
其中,本地更新操作为:根据数据更新请求对第六身份标识对应的数据内容进行更新并存储数据版本,并为更新后的第六数据条目添加第六同步标识。
在实际应用过程中,有时需要做数据更新处理。具体地,在主节点收到更新请求后,优先查询在全局索引服务下是否包含针对第六数据条目对应的第六身份标识。若包含,则对第六身份标识对应的数据内容进行更新,并添加第六同步标识,以表示第六数据条目处于同步过程中,暂未满足数据一致性。
可选地,若全局索引服务中不存在第六数据条目对应的第六身份标识,则可向主节点返回更新失败提醒。出现这种情况的原因可能在于,客户端对应的调用方出现逻辑错误等。
S302、主节点在确定主节点和从节点针对第六数据条目的更新结果一致后,通知所有节点对第六同步标识进行删除处理。
当主节点更新完成后,从节点进行同步更新,更新第六身份标识对应的数据内容,在确定主节点和从节点针对第六数据条目的更新结果一致后,对第三同步标识进行删除处理,以表示第六数据条目更新完成,第六数据条目的数据内容在各存储副本节点之间已实现一致。
本发明实施例提供的分布式系统,当系统中存在离线节点的情况下,系统可正常响应客户端的写入,并通过修复队列扫描对应数据条目和同步标识触发修复,修复完成后清除同步标识,并最终达到数据一致性。
本发明实施例提供了一种分布式系统,如图15所示,图15为本发明实施例提供的一种分布式系统的结构框图。分布式系统150包括:作为主节点的第一计算机设备151、作为从节点的第二计算机设备152和部署有全局索引服务的第三计算机设备153,计算机设备中包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如本发明实施例分布式系统中的相应步骤。
本发明实施例提供的分布式系统可用于执行上述任意实施例提供的分布式系统,具备相应的功能和有益效果。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行任一实施例所述的分布式系统。
存储介质——任何的各种类型的存储器系统或存储系统。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDRRAM、SRAM、EDORAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的分布式系统,还可以执行本发明任意实施例所提供的分布式系统中的相关操作。
上述实施例中提供的分布式系统及存储介质可执行本发明任意实施例所提供的分布式系统,具备执行该系统相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的分布式系统。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种分布式系统,其特征在于,包括至少两个存储副本节点和全局索引服务;
所述系统中存储的数据条目能够被唯一的身份标识所定位访问,所述身份标识为数据名称;
所述全局索引服务中存储有数据条目的身份标识,并且支持基于强一致性协议的针对身份标识的插入操作、查询操作和删除操作;
所述存储副本节点存储有身份标识所关联的数据条目,所述至少两个存储副本节点中有且只有一个存储副本节点为主节点状态,记为主节点,所述至少两个存储副本节点中的其余存储副本节点为从节点状态,记为从节点;
所述存储副本节点支持受所述全局索引服务辅助之下的针对数据条目的创建操作、更新操作、查询操作和删除操作;
所述存储副本节点之间采用最终一致性的方式进行数据条目的同步、检查和修复,当不同存储副本节点中存储的数据条目存在冲突时,依靠所述全局索引服务进行仲裁;
其中,进行存储副本节点间的一致性检查操作,包括如下步骤:
第三节点定时对同步标识进行扫描,在确定扫描到的第四同步标识的存在时长超过第一预设时长的情况下,通知主节点针对所述第四同步标识对应的第四数据条目进行一致性修复处理,其中,所述第三节点包括所述主节点和/或所述从节点;
其中,主节点执行第五数据条目的一致性修复操作,步骤如下:
所述主节点查询所述全局索引服务以获取第五数据条目对应的第五创建标识,对所有存储副本节点的第五数据条目进行检查;其中,若所述全局索引服务中不存在第五数据条目的身份标识,则对第五数据条目进行删除;若第五创建标识与本地的创建标识不一致,则在本地删除第五数据条目后再创建带有第五创建标识的第五数据条目;
所述主节点比较各个存储副本节点的第五数据条目的数据版本,选择数据版本高的数据的向数据版本低的同步;
所述主节点确认修复结果为所有存储副本节点中的第五数据条目的数据内容一致时,对所有节点中的第五数据条目对应的第五同步标识进行删除。
2.根据权利要求1所述的系统,其特征在于,数据条目在创建后带有唯一的创建标识,所述创建标识用于区分来自不同时刻或不同来源的创建请求;所述全局索引服务中还存储有身份标识所关联的创建标识,并且支持基于强一致性协议的针对创建标识的插入操作、查询操作和删除操作;所述存储副本节点还存储有身份标识所关联的创建标识;
在进行数据条目的创建操作时,包括如下步骤:
所述主节点根据接收到的创建请求执行第一数据条目的本地创建操作成功后,转发所述创建请求到所有从节点;其中,所述创建请求包含所述第一数据条目对应的第一身份标识和由客户端生成的第一创建标识;所述第一数据条目的本地创建操作包括:创建所述第一身份标识到所述第一数据条目的映射关系,并将所述第一数据条目预置为空值,附加所述第一创建标识,并存储第一同步标识;
所述从节点根据所述主节点转发的创建请求执行所述第一数据条目的本地创建操作成功后,向所述主节点返回所述第一数据条目对应的创建成功信息;
所述主节点在确定接收到至少预设数量的从节点返回的所述第一数据条目对应的创建成功信息后,通知所述全局索引服务保存所述第一身份标识和所述第一创建标识,并在所述全局索引服务返回保存成功信息后,在本地执行所述第一同步标识的删除操作以及通知所述从节点执行所述第一同步标识的删除操作;
所述主节点向所述客户端返回所述第一数据条目的创建结果。
3.根据权利要求2所述的系统,其特征在于,在进行数据条目创建时,还包括:
所述主节点和/或所述从节点在执行所述第一数据条目的本地创建操作之前,若经检查确定所述第一数据条目已存在,则判断已存在的创建标识与所述第一创建标识是否相同,若相同,则继续执行所述第一数据条目的本地创建操作;若不同,则返回创建冲突。
4.根据权利要求3所述的系统,其特征在于,在进行数据条目创建时,还包括:
所述主节点在收集自身和/或所述从节点的创建结果时,若存在至少一个创建冲突结果,则启动所述第一数据条目的一致性修复流程,根据所述第一创建标识的修复结果确定对应的向所述客户端返回的所述第一数据条目的创建结果,其中,修复结果为保留时对应创建成功,修复结果为删除时对应创建失败。
5.根据权利要求1所述的系统,其特征在于,在进行数据条目的删除操作时,包括如下步骤:
所述主节点从所述全局索引服务的第一级删除队列中获取待删除的第二数据条目对应的第二身份标识,对本地存储的第二数据条目进行删除处理,并向所述从节点发送所述第二数据条目对应的数据删除请求;
所述从节点根据所述数据删除请求成功删除本地存储的所述第二数据条目后,向所述主节点返回所述第二数据条目对应的删除成功信息;
所述主节点在确定接收到所有所述从节点返回的所述第二数据条目对应的删除成功信息的情况下,通知所述全局索引服务从所述第一级删除队列中删除所述第二身份标识。
6.根据权利要求5所述的系统,其特征在于,在进行数据条目的删除操作时,还包括:
所述主节点向第一节点发送数据条目的删除请求时,若网络连接失败或者超时未收到结果回复时,通知所述全局索引服务以事务方式执行如下操作:从所述第一级删除队列中删除所述第二身份标识,并将所述第二身份标识存入所述第一节点对应的第二级删除队列中,其中,所述第一节点包括从节点。
7.根据权利要求6所述的系统,其特征在于,在进行数据条目的删除操作时,还包括:
第二节点从对应的第二级删除队列中获取待删除的第三数据条目对应的第三身份标识,对本地存储的第三数据条目进行删除处理,其中,所述第二节点包括所述主节点和/或所述从节点。
8.根据权利要求1所述的系统,其特征在于,在进行数据条目的更新操作时,带有数据版本,并且包括如下步骤:
所述主节点根据接收到的第六数据条目对应的数据更新请求查询所述全局索引服务,在确定所述全局索引服务中存在所述第六数据条目对应的第六身份标识的情况下,执行本地更新操作,并向所述从节点转发所述第六数据条目对应的数据更新请求,使得从节点执行本地更新操作;其中,所述本地更新操作为:根据所述数据更新请求对所述第六身份标识对应的数据内容进行更新并存储数据版本,并为更新后的第六数据条目添加第六同步标识;
所述主节点在确定所述主节点和所述从节点针对所述第六数据条目的更新结果一致后,通知所有节点对所述第六同步标识进行删除处理。
9.一种分布式系统,其特征在于,包括作为主节点的第一计算机设备、作为从节点的第二计算机设备和部署有全局索引服务的第三计算机设备,所述计算机设备具备如权利要求1所述分布式系统的相应功能,所述计算机设备中包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求2-8任一项所述系统中涉及的相应步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求2-8任一项所述系统中涉及的相应步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110533445.6A CN113239013B (zh) | 2021-05-17 | 2021-05-17 | 分布式系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110533445.6A CN113239013B (zh) | 2021-05-17 | 2021-05-17 | 分布式系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113239013A CN113239013A (zh) | 2021-08-10 |
CN113239013B true CN113239013B (zh) | 2024-04-09 |
Family
ID=77134534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110533445.6A Active CN113239013B (zh) | 2021-05-17 | 2021-05-17 | 分布式系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113239013B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114237497B (zh) * | 2021-11-30 | 2024-03-12 | 北京达佳互联信息技术有限公司 | 一种分布式存储方法及装置 |
CN114048269B (zh) * | 2022-01-12 | 2022-04-22 | 北京奥星贝斯科技有限公司 | 在分布式数据库中同步更新元数据的方法及装置 |
CN114726806A (zh) * | 2022-03-29 | 2022-07-08 | 驭势(上海)汽车科技有限公司 | 智能设备影子管理方法、系统、装置、设备和介质 |
CN114584574B (zh) * | 2022-04-28 | 2022-08-02 | 武汉四通信息服务有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
CN115562581B (zh) * | 2022-09-30 | 2023-05-26 | 中国科学院空间应用工程与技术中心 | 一种多副本数据对象管理方法、介质及分布式存储系统 |
CN117076440A (zh) * | 2023-10-16 | 2023-11-17 | 北京人大金仓信息技术股份有限公司 | 间隔分区表上全局索引的异步清理方法、存储介质和设备 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5551027A (en) * | 1993-01-07 | 1996-08-27 | International Business Machines Corporation | Multi-tiered indexing method for partitioned data |
US7500020B1 (en) * | 2003-12-31 | 2009-03-03 | Symantec Operating Corporation | Coherency of replicas for a distributed file sharing system |
CN102411637A (zh) * | 2011-12-30 | 2012-04-11 | 创新科软件技术(深圳)有限公司 | 分布式文件系统的元数据管理方法 |
CN103036717A (zh) * | 2012-12-12 | 2013-04-10 | 北京邮电大学 | 分布式数据的一致性维护系统和方法 |
CN103412897A (zh) * | 2013-07-25 | 2013-11-27 | 中国科学院软件研究所 | 一种基于分布式结构的并行数据处理方法 |
CN103729436A (zh) * | 2013-12-27 | 2014-04-16 | 中国科学院信息工程研究所 | 一种分布式元数据管理方法及系统 |
US9471593B1 (en) * | 2010-12-30 | 2016-10-18 | Emc Corporation | Method and apparatus for ensuring consistent ordering of writes in a distributed database storage system |
CN106326239A (zh) * | 2015-06-18 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 分布式文件系统及其文件元信息管理方法 |
CN108008918A (zh) * | 2017-11-30 | 2018-05-08 | 联想(北京)有限公司 | 数据处理方法、存储节点及分布式存储系统 |
CN110196856A (zh) * | 2019-05-09 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种分布式数据读取方法及装置 |
CN111104070A (zh) * | 2019-12-24 | 2020-05-05 | 北京同有飞骥科技股份有限公司 | 分布式系统中数据一致性的实现方法及系统 |
CN111797121A (zh) * | 2020-07-02 | 2020-10-20 | 中国工商银行股份有限公司 | 读写分离架构业务系统的强一致性查询方法、装置及系统 |
US10936559B1 (en) * | 2016-09-28 | 2021-03-02 | Amazon Technologies, Inc. | Strongly-consistent secondary index for a distributed data set |
CN112527900A (zh) * | 2020-12-04 | 2021-03-19 | 广州银行股份有限公司 | 一种数据库读多副本一致性的方法、装置、设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11347705B2 (en) * | 2019-04-02 | 2022-05-31 | Sap Se | Supporting scalable distributed secondary index using replication engine for high-performance distributed database systems |
-
2021
- 2021-05-17 CN CN202110533445.6A patent/CN113239013B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5551027A (en) * | 1993-01-07 | 1996-08-27 | International Business Machines Corporation | Multi-tiered indexing method for partitioned data |
US7500020B1 (en) * | 2003-12-31 | 2009-03-03 | Symantec Operating Corporation | Coherency of replicas for a distributed file sharing system |
US9471593B1 (en) * | 2010-12-30 | 2016-10-18 | Emc Corporation | Method and apparatus for ensuring consistent ordering of writes in a distributed database storage system |
CN102411637A (zh) * | 2011-12-30 | 2012-04-11 | 创新科软件技术(深圳)有限公司 | 分布式文件系统的元数据管理方法 |
CN103036717A (zh) * | 2012-12-12 | 2013-04-10 | 北京邮电大学 | 分布式数据的一致性维护系统和方法 |
CN103412897A (zh) * | 2013-07-25 | 2013-11-27 | 中国科学院软件研究所 | 一种基于分布式结构的并行数据处理方法 |
CN103729436A (zh) * | 2013-12-27 | 2014-04-16 | 中国科学院信息工程研究所 | 一种分布式元数据管理方法及系统 |
CN106326239A (zh) * | 2015-06-18 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 分布式文件系统及其文件元信息管理方法 |
US10936559B1 (en) * | 2016-09-28 | 2021-03-02 | Amazon Technologies, Inc. | Strongly-consistent secondary index for a distributed data set |
CN108008918A (zh) * | 2017-11-30 | 2018-05-08 | 联想(北京)有限公司 | 数据处理方法、存储节点及分布式存储系统 |
CN110196856A (zh) * | 2019-05-09 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种分布式数据读取方法及装置 |
CN111104070A (zh) * | 2019-12-24 | 2020-05-05 | 北京同有飞骥科技股份有限公司 | 分布式系统中数据一致性的实现方法及系统 |
CN111797121A (zh) * | 2020-07-02 | 2020-10-20 | 中国工商银行股份有限公司 | 读写分离架构业务系统的强一致性查询方法、装置及系统 |
CN112527900A (zh) * | 2020-12-04 | 2021-03-19 | 广州银行股份有限公司 | 一种数据库读多副本一致性的方法、装置、设备及介质 |
Non-Patent Citations (2)
Title |
---|
一致性协议在分布式数据库系统中的应用;赵春扬 等;《华东师范大学学报(自然科学版)》(第05期);91-106 * |
集群环境下分布式索引的实现;翁海星 等;《计算机应用》;第36卷(第01期);1-7+12 * |
Also Published As
Publication number | Publication date |
---|---|
CN113239013A (zh) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113239013B (zh) | 分布式系统及存储介质 | |
CN109739935B (zh) | 数据读取方法、装置、电子设备以及存储介质 | |
CN110502507B (zh) | 一种分布式数据库的管理系统、方法、设备和存储介质 | |
US8527459B2 (en) | System and method for data replication between heterogeneous databases | |
US8650155B2 (en) | Apparatus and method for log based replication of distributed transactions using globally acknowledged commits | |
CN109992628B (zh) | 数据同步的方法、装置、服务器及计算机可读存储介质 | |
US8250033B1 (en) | Replication of a data set using differential snapshots | |
CN105843702B (zh) | 一种用于数据备份的方法以及装置 | |
US20130124470A1 (en) | Asynchronous distributed garbage collection for replicated storage clusters | |
CN105574187B (zh) | 一种异构数据库复制事务一致性保障方法及系统 | |
US7836162B2 (en) | Transaction processing system and transaction processing method | |
CN109783578B (zh) | 数据读取方法、装置、电子设备以及存储介质 | |
CN102708166B (zh) | 数据复制方法、数据恢复方法及装置 | |
CN114048269B (zh) | 在分布式数据库中同步更新元数据的方法及装置 | |
CN112334891B (zh) | 用于搜索服务器的集中式存储 | |
CN110196788B (zh) | 一种数据读取方法、装置、系统及存储介质 | |
WO2021082925A1 (zh) | 一种交易处理的方法及装置 | |
CN115658245B (zh) | 一种基于分布式数据库系统的事务提交系统、方法及装置 | |
CN116049306A (zh) | 数据同步方法、装置、电子设备以及可读存储介质 | |
CN106354830B (zh) | 一种数据库集群节点间数据同步的方法及装置 | |
CN113778975A (zh) | 基于分布式数据库的数据处理方法及装置 | |
US7933873B2 (en) | Handling transfer of bad data to database partitions in restartable environments | |
CN115964441A (zh) | 一种数据库多写一致性的系统 | |
CN117171266B (zh) | 一种数据同步方法、装置、设备和存储介质 | |
KR20130043823A (ko) | 로그에 기반하여 데이터 정합성을 유지하는 분산 저장 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100000 Unit 501A, Floor 5, 101, Building 1, Yard 5, Laiguangying West Road, Chaoyang District, Beijing Applicant after: Beijing Qingyun Science and Technology Co.,Ltd. Address before: 100020 601, 6 floor, 16 building, No. 36 Chuang Yuan Road, Chaoyang District, Beijing. Applicant before: Beijing Qingyun Science and Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |