CN113297201A - 索引数据同步方法、系统及装置 - Google Patents

索引数据同步方法、系统及装置 Download PDF

Info

Publication number
CN113297201A
CN113297201A CN202010605957.4A CN202010605957A CN113297201A CN 113297201 A CN113297201 A CN 113297201A CN 202010605957 A CN202010605957 A CN 202010605957A CN 113297201 A CN113297201 A CN 113297201A
Authority
CN
China
Prior art keywords
index data
value
synchronized
node
version number
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.)
Pending
Application number
CN202010605957.4A
Other languages
English (en)
Inventor
林炳辰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010605957.4A priority Critical patent/CN113297201A/zh
Publication of CN113297201A publication Critical patent/CN113297201A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

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

索引数据同步方法、系统及装置
技术领域
本申请涉及数据处理技术领域,特别涉及索引数据同步方法、系统及装置。
背景技术
随着互联网技术的发展,数据库在各种场景都得以应用,而索引是数据库中非常重要的一类数据,它负责快速定位查询需要的数据;通常分布式数据库会把索引存储到本地计算机上,为了保证可用性,往往会配置多个灾备节点,并且使用分布式一致性协议来保证索引的正确性,多节点和一致性协议会显著增加系统的开发和维护成本,并且分布式数据库的多个分区节点会频繁添加索引数据,使用全局索引方案会引起争抢互斥锁的问题,或者使用分区索引方案会存在并发性下降的问题,故亟需一种有效的方案以解决上述问题。
发明内容
有鉴于此,本申请实施例提供了一种索引数据同步方法。本申请同时涉及一种索引数据同步系统,一种索引数据同步装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本申请实施例的第一方面,提供了一种索引数据同步方法,包括:
获取目标分区节点提交的待同步索引数据;
将所述待同步索引数据写入所述目标分区节点对应的键值数据库;
根据写入结果将临时版本号的值变更为状态版本号的值;其中,所述临时版本号的值表示目标分区节点对应的同步事务的事务状态,所述状态版本号的值表示目标分区节点提交索引数据的同步进度;
通过所述目标分区节点对应的目标同步事务的事务数值,对所述临时版本号的值的变更行为进行记录;
在检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点。
可选的,所述将所述待同步索引数据写入所述目标分区节点对应的键值数据库,包括:
获取所述目标分区节点的节点标识;
根据所述节点标识确定所述目标分区节点在所述键值数据库中的目标键值存储区;
将所述待同步索引数据写入所述目标键值存储区。
可选的,所述将所述待同步索引数据写入所述目标键值存储区,包括:
确定提交所述待同步索引数据的时间信息;
基于所述时间信息生成所述待同步索引数据的键名,以及确定所述待同步索引数据的键值和数据类型;
按照所述键名、所述键值和所述数据类型组成所述待同步索引数据的键值项数据,并写入所述目标键值存储区。
可选的,还包括:
确定将所述待同步索引数据写入所述键值数据库的写入时间;
将所述写入时间记录至所述键值数据库的元数据表;
相应的,所述在检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点,包括:
在检测到记录后的事务数值满足预设同步条件的情况下,读取所述键值数据库的所述元数据表,获得所述写入时间;
按照所述写入时间将所述键值数据库中的待同步索引数据同步至所述对象存储节点。
可选的,还包括:
在检测到记录后的事务数值不满足预设同步条件的情况下,则执行按照时间周期检测所述事务数值是否满足所述预设同步条件的步骤。
可选的,所述将所述键值数据库中的待同步索引数据同步至对象存储节点步骤执行之后,还包括:
接收所述对象存储节点返回的同步结果;
根据所述同步结果,对所述状态版本号的值进行更新;
基于更新后的状态版本号的值为对象版本号进行赋值;其中,所述对象版本号的值表示目标分区节点的待同步索引数据同步完成。
可选的,所述将所述键值数据库中的待同步索引数据同步至对象存储节点步骤执行之后,还包括:
判断赋值后的对象版本号的值是否大于变更后的临时版本号的值;
若是,则对记录后的事务数值进行调整,并根据调整结果向所述目标分区节点发送同步完成结果。
可选的,在所述目标分区节点在所述时间周期内提交至少两条待同步索引数据的情况下,所述将所述键值数据库中的待同步索引数据同步至对象存储节点,包括:
确定提交所述至少两条待同步索引数据的提交时间;
根据所述提交时间,计算所述至少两条待同步索引数据中的起始索引数据和末端索引数据的时间差值;
在所述时间差值大于等于所述时间周期的情况下,将所述键值数据库中的所述至少两条待同步索引数据同步至所述对象存储节点。
可选的,所述对象存储节点为目标分区节点的灾备服务节点;
相应的,所述将所述键值数据库中的待同步索引数据同步至对象存储节点步骤执行之后,还包括:
接收所述目标分区节点提交的索引数据读取请求;
将所述索引数据读取请求转发至所述灾备服务节点,并接收所述灾备服务节点返回的目标索引数据;
将所述目标索引数据发送至所述目标分区节点进行数据处理操作。
根据本申请实施例的第二方面,提供了一种索引数据同步系统,包括:
目标分区节点,索引节点和对象存储节点;
所述目标分区节点,被配置为获取用户的操作请求;根据所述操作请求中包含的用户标识读取目标数据并进行处理操作;根据处理操作结果将生成的待同步索引数据发送至所述索引节点;
所述索引节点,被配置为将所述待同步索引数据写入所述目标分区节点对应的键值数据库;根据写入结果将临时版本号的值变更为状态版本号的值;其中,所述临时版本号的值表示目标分区节点对应的同步事务的事务状态,所述状态版本号的值表示目标分区节点提交索引数据的同步进度;通过所述目标分区节点对应的目标同步事务的事务数值,对所述临时版本号的值的变更行为进行记录;在检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至所述对象存储节点;
所述对象存储节点,被配置为对所述待同步索引数据进行存储,并向所述目标分区节点返回同步结果。
可选的,所述将所述待同步索引数据写入所述目标分区节点对应的键值数据库,包括:
获取所述目标分区节点的节点标识;
根据所述节点标识确定所述目标分区节点在所述键值数据库中的目标键值存储区;
将所述待同步索引数据写入所述目标键值存储区。
可选的,所述将所述待同步索引数据写入所述目标键值存储区,包括:
确定提交所述待同步索引数据的时间信息;
基于所述时间信息生成所述待同步索引数据的键名,以及确定所述待同步索引数据的键值和数据类型;
按照所述键名、所述键值和所述数据类型组成所述待同步索引数据的键值项数据,并写入所述目标键值存储区。
可选的,所述索引节点进一步被配置为:
接收所述对象存储节点返回的同步结果;根据所述同步结果,对所述状态版本号的值进行更新;基于更新后的状态版本号的值为对象版本号进行赋值;其中,所述对象版本号的值表示目标分区节点的待同步索引数据同步完成。
可选的,所述索引节点进一步被配置为:
判断赋值后的对象版本号的值是否大于变更后的临时版本号的值;若是,则对记录后的事务数值进行调整,并根据调整结果向所述目标分区节点发送同步完成结果。
根据本申请实施例的第三方面,提供了一种索引数据同步装置,包括:
获取模块,被配置为获取目标分区节点提交的待同步索引数据;
写入模块,被配置为将所述待同步索引数据写入所述目标分区节点对应的键值数据库;
变更模块,被配置为根据写入结果将临时版本号的值变更为状态版本号的值;其中,所述临时版本号的值表示目标分区节点对应的同步事务的事务状态,所述状态版本号的值表示目标分区节点提交索引数据的同步进度;
记录模块,被配置为通过所述目标分区节点对应的目标同步事务的事务数值,对所述临时版本号的值的变更行为进行记录;
同步模块,被配置为在检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点。
根据本申请实施例的第四方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
获取目标分区节点提交的待同步索引数据;
将所述待同步索引数据写入所述目标分区节点对应的键值数据库;
根据写入结果将临时版本号的值变更为状态版本号的值;其中,所述临时版本号的值表示目标分区节点对应的同步事务的事务状态,所述状态版本号的值表示目标分区节点提交索引数据的同步进度;
通过所述目标分区节点对应的目标同步事务的事务数值,对所述临时版本号的值的变更行为进行记录;
在检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点。
根据本申请实施例的第五方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述索引数据同步方法的步骤。
本申请提供的索引数据同步方法,通过将目标分区节点提交的待同步索引数据写入键值数据库后,根据写入结果将临时版本号的值变更为状态版本号的值,之后再通过目标分区节点对应的目标同步事务的事务数值,记录所述临时版本号的值的变更行为,最后对记录后的事务数值进行检测,检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点;通过采用版本号的方式来控制索引数据的同步,可以有效的提高索引节点的并发能力,并且通过对象存储节点存储待同步索引数据,不仅可以降低开发成本,还可以降低维护成本,从而有效的提高了对待同步索引数据的处理能力。
附图说明
图1是本申请一实施例提供的一种索引数据同步方法的流程图;
图2是本申请一实施例提供的一种应用于数据增加场景中的索引数据同步方法的处理流程图;
图3是本申请一实施例提供的一种索引数据同步方法的示意图;
图4是本申请一实施例提供的一种索引数据同步系统的结构示意图;
图5是本申请一实施例提供的一种索引数据同步装置的结构示意图;
图6是本申请一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本申请一个或多个实施例涉及的名词术语进行解释。
对象存储:也叫做基于对象的存储,是用来描述解决和处理离散单元的方法的通用术语,这些离散单元被称作为对象;对象存储就像文件一样,包含数据,但是和文件不同的是,对象在一个层结构中不会再有层级结构,每个对象都在一个被称作存储池的扁平地址空间的同一级别里,一个对象不会属于另一个对象的下一级。
索引数据:是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构对应的数据,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
分区:数据在分布式数据库中被划分成多个无交集的子数据集合,每一个子数据集合是一个分区;相应的,分区节点:即为维护数据一个分区的服务器。
数据灾备:全称为数据灾难备份,是指为防止出现操作失误或系统故障导致数据丢失,而将全系统或部分数据集合,从应用主机的硬盘或阵列复制到其他存储介质的过程;相应的,灾备服务节点:是指提供灾备服务的服务器。
在本申请中,提供了一种索引数据同步方法,本申请同时涉及一种索引数据同步系统,一种索引数据同步装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例提供的一种索引数据同步方法的流程图,具体包括以下步骤:
步骤S102,获取目标分区节点提交的待同步索引数据。
实际应用中,索引数据作为数据库中较为重要一类数据,对索引数据的维护显得尤为重要;通常在对索引数据维护的过程中,是由数据库对应的各个分区节点分别维护对应的索引数据,或者由全部分区节点共同维护全局的索引数据,并且使用多个灾备节点来保证数据的高可靠和一致性,每次索引数据的更新操作都要等待数据同步到灾备节点来保证数据一致性;然而,分区节点维护自身的索引数据存在着查询效率低和并发性能低的缺点,以及分区节点共同维护全部索引数据存在着维护成本高的缺点。
本申请提供的索引数据同步方法,为了能够达到并发性高,且维护成本低的目的,通过将目标分区节点提交的待同步索引数据写入键值数据库后,根据写入结果将临时版本号的值变更为状态版本号的值,之后再通过目标分区节点对应的目标同步事务的事务数值,记录所述临时版本号的值的变更行为,最后对记录后的事务数值进行检测,检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点;通过采用版本号的方式来控制索引数据的同步,可以有效的提高索引节点的并发能力,并且通过对象存储节点存储待同步索引数据,不仅可以降低开发成本,还可以降低维护成本,从而有效的提高了对待同步索引数据的处理能力。
本实施例提供的索引数据同步方法应用于索引节点,通过索引节点完成目标分区节点的待同步索引数据的同步,达到并发性高、维护成本低的效果,具体参见本实施例中的步骤S102至步骤S110对应的描述内容,需要说明的是,本实施例以多个分区节点中的任意一个分区节点作为目标分区节点进行索引数据同步过程的描述,对多个分区节点的待同步索引数据的同步过程均可参见本实施例相应的描述内容,在此不作过多赘述。
具体实施时,由于分布式数据库的架构复杂,例如时序数据库;此时需要将分布式数据库中存储的数据划分为多个无交集的子数据集合,此时每个子数据集合即为一个分区,而为了方便对分布式数据库中的数据的管理,将会为每个分区配置对应的服务器,用于维护分区中的数据,即配置服务器的分区即为分区节点。
基于此,所述目标分区节点即为:对应的分区中的数据发生变化,例如删除、增加或者修改等变化,此时目标分区节点将根据数据变化结果生成待同步索引数据,从而实现后续可以根据待同步索引数据在分区中查询到删除、增加或者修改后的数据;即:所述目标分区节点为有索引数据同步需求的分区节点,所述待同步索引数据为目标分区节点对应的分区中的数据发生变化后生成的索引数据。
实际应用中,所述待同步索引数据可以是目标分区节点,针对分区中的多组数据在一个时刻发生变化后的索引数据组成的即可,比如分区中的数据S和数据N在同一时刻均发生了变化,此时生成数据S对应的索引数据S_in,以及数据N对应的索引数据N_in,之后将索引数据S_in和索引数据N_in可以整合为待同步索引数据提交到索引节点进行同步,或者分别提交到索引节点进行同步;
进一步的,索引节点在进行索引数据的同步过程中,若接收到的待同步索引数据为索引数据S_in和索引数据N_in的整合,此时索引节点即可按照将整合索引数据S_in和索引数据N_in作为待同步索引数据,一起进行后续的同步过程,若接收到的待同步索引数据为索引数据S_in和索引数据N_in,此时索引节点即可按照单独处理索引数据的方式进行后续的同步过程。
步骤S104,将所述待同步索引数据写入所述目标分区节点对应的键值数据库。
具体的,在上述获取所述目标分区节点提交的待同步索引数据的基础上,进一步的,为了能够提高同步对象存储节点索引数据的同步效率,可以将所述待同步索引数据写入所述目标分区节点对应的键值数据库,进行临时存储,当索引节点触发同步条件的情况下,再从所述键值数据库中提取待同步索引数据进行同步过程即可。
实际应用中,由于目标分区节点对应的分区中的数据变化并不规则,故在目标分区节点提交待同步索引数据的过程中,可能出现连续提交多条待同步索引数据的情况发生,此时若针对每一条待同步索引数据单独进行同步处理,将会降低同步效率,并且占用同步资源也是较高的。
基于此,将在索引节点部署所述键值数据库,用于临时存储所述目标分区节点提交的待同步索引数据,之后索引节点将按照时间周期进行待同步索引数据的同步,即每隔时间K进行一次检测,当检测到有待同步的索引数据时,进行同步处理过程,具体实施时,所述时间K可以设置为1毫秒、2毫秒或者5毫秒,具体设置可以根据实际应用场景进行设定,本实施例在此不作过多限定。
进一步的,由于在将待同步索引数据写入键值数据库的过程中,分布式数据库的分区节点过多,如果将各个分区节点的待同步索引数据无差别的写入键值数据库,将会造成待同步索引数据的混乱,无法正确的确定各个分区节点的待同步索引数据,故需要按照各个分区节点的节点标识进行写入操作,本实施例中,具体实现方式如下所述:
(a)获取所述目标分区节点的节点标识。
在获得所述待同步索引数据的情况下,说明需要进行后续的索引数据同步,此时则需要将待同步索引数据写入键值数据库,以实现后续可以一次性上传较多的待同步索引数据,并且为了能够作到针对不同分区节点的待同步索引数据的区分,将获取目标分区节点的节点标识,后续存储到节点标识对应的存储位置。
实际应用中,所述节点标识具体是指目标分区节点具有的唯一标识,可以是字符串,或者数字编号等具有唯一性的标识信息组成,本实施例在此不作过多限定。
(b)根据所述节点标识确定所述目标分区节点在所述键值数据库中的目标键值存储区。
在获取到目标分区节点对应的节点标识后,将根据所述节点标识在所述键值数据库中确定所述目标分区节点对应的目标键值存储区,以用于将目标分区节点提交的待同步索引数据写入所述目标键值存储区。
(c)将所述待同步索引数据写入所述目标键值存储区。
更进一步的,在将所述待同步索引数据写入所述目标键值存储区的过程中,由于键值数据库的性能高易于扩展的特性,可以将待同步索引数据按照特定的形式进行存储,本实施例中,具体实现方式如下所述:
确定提交所述待同步索引数据的时间信息;
基于所述时间信息生成所述待同步索引数据的键名,以及确定所述待同步索引数据的键值和数据类型;
按照所述键名、所述键值和所述数据类型组成所述待同步索引数据的键值项数据,并写入所述目标键值存储区。
具体的,所述键名具体是指所述待同步索引数据的唯一标识,所述键值具体是指所述待同步索引数据的实际配置信息和数据,所述数据类型具体是指所述待同步索引数据的类型;基于此,首先确定提交所述待同步索引数据的时间信息,其次基于所述时间信息生成所述待同步索引数据的键名,同时确定所述待同步索引数据的键值和数据类型,最后即可按照所述键名、所述键值和所述数据类型组成所述待同步索引数据的键值项数据,写入所述目标键值存储区。
实际应用中,所述键值项数据可以是字符串值类型,二进制值类型或DWORD值类型,其中,字符串值类型表示文件的描述或硬件的标识等,字符串值类型的键值项数据由字母和数字组成,它的最大长度不能超过255个字符;二进制值类型是没有长度限制的,可以是任意个字节长;DWORD值类型是一个32位(双字节长)长度的数值。
例如,目标分区节点A1提交了待同步索引数据,此时获取目标分区节点A1的节点标识为ID_A1,之后根据节点标识为ID_A1在键值数据库中确定目标分区节点A1的目标键值存储区,同时根据提交待同步索引数据的时间信息生成键名,以及确定键值和数据类型,最后按照键名、键值和数据类型组成待同步索引数据的键值项数据,并写入节点标识为ID_A1对应的目标键值存储区即可,以用于后续同步至对象存储节点。
综上,为了充分利用同步资源,将对目标分区节点提交的待同步索引数据写入键值数据库进行临时存储,可以有效的提高后续同步效率,并且通过键值数据库进行临时存储所述待同步索引数据,可以充分利用键值数据的可扩展的特性,避免发生数据库存储空间不足的问题发生。
步骤S106,根据写入结果将临时版本号的值变更为状态版本号的值。
具体的,在上述将所述待同步索引数据写入所述键值数据库的基础上,进一步的,将根据写入结果将索引节点本地的临时版本号的值变更为索引节点本地的状态版本号的值;其中,其中,所述临时版本号的值表示目标分区节点对应的同步事务的事务状态,所述状态版本号的值表示目标分区节点提交索引数据的同步进度。
具体实施时,目标分区节点对应的同步事务具体是指目标分区节点同步索引数据的事务,相应的,所述事务状态具体是指同步待同步索引数据的状态阶段,当临时版本号的值cur_ver为0时,表示索引节点不存在待同步索引数据,当临时版本号的值cur_ver变更后不为0,表示索引节点存在待同步索引数据,需要进行索引数据的同步;基于此,所述临时版本号的值可以理解为索引节点同步索引数据的检测器,用于检测是否存在待同步索引数据同步的操作。
其中,所述状态版本号的值syn_ver具体是指目标分区节点提交索引数据的同步进度,所述状态版本号的值syn_ver可以理解为对待同步索引数据的同步进度进行检测的计数器,当同步完成后,状态版本号的值syn_ver自加1,并且状态版本号的值syn_ver单调递增,故每完成一次数据同步就自加1。
实际应用中,将所述临时版本号的值变更为状态版本号的值,在于可以通过临时版本号的值实现确定有新的待同步索引数据写入,之后达到触达后续同步索引数据的操作,即通过变更临时版本号的值触发检测事务数值是否满足预设同步条件的目的,以此来实现当有待同步索引数据写入后,即可通过触发同步条件的方式进行索引数据的同步,当无待同步索引数据写入的情况下,使索引节点处于睡眠状态,以此来降低索引节点运行的资源成本。
步骤S108,通过所述目标分区节点对应的目标同步事务的事务数值,对所述临时版本号的值的变更行为进行记录。
具体的,在上述对所述临时版本号的值进行变更的基础上,进一步的,将通过所述目标分区节点对应的目标同步事务的事务数值,对所述临时版本号的值的变更行为进行记录。
实际应用中,基于所述事务数值waiter_cnt对所述临时版本号的值的变更行为进行记录具体是指,当临时版本号变更为状态版本号的情况下,说明有待同步索引数据需要同步,则将所述目标分区节点的目标同步事务的事务数值waiter_cnt自加1,从而记录有待同步索引数据需要同步至对象存储节点,此时可以得出事务数值waiter_cnt不为0,进行后续的待同步索引数据的同步即可。
需要说明的是,所述事务数值waiter_cnt可以用于检测在时间周期内待同步索引数据的同步结果,即在时间周期内上传的每一条待同步索引数据均会将所述事务数值waiter_cnt自加1,后续在达到时间周期时,即进行待同步索引数据的同步,同步完成并将事务数值waiter_cnt自减1,用于表示同步事务的事务数值的同步完成。
进一步的,在基于所述事务数值对所述临时版本号的值的变更行为进行记录后,此时将按照时间周期进行循环检测,根据检测结果进行同步处理或睡眠,本实施例中,具体实现方式如下所述:
在检测到记录后的事务数值不满足预设同步条件的情况下,则执行按照时间周期检测所述事务数值是否满足所述预设同步条件的步骤。
具体的,在检测到记录后的事务数值不满足预设同步条件的情况下,说明此时记录后的事务数值还未达到同步至对象存储节点的条件,则执行按照时间周期检测所述事务数值是否满足所述预设同步条件的步骤即可,其中,所述同步条件具体是指将待同步索引数据同步至对象存储节点的同步条件,可以是检测事务数值是否不为0。
基于此,索引节点将按照所述时间周期检测当前时刻的事务数值是否满足预设的同步条件,当满足的情况下,则执行后续步骤S110即可,当未满足的情况下,则继续执行按照时间周期检测所述事务数值是否满足所述预设同步条件的步骤,实现检测的目的,从而达到及时同步待同步索引数据的效果。
沿用上例,在A提交了待同步索引数据写入节点标识为ID_A1对应的目标键值存储区的基础上,此时索引节点将按照1毫秒的时间进行检测目标分区节点A1的同步事务的事务数值waiter_cnt是否为0,由于待同步索引数据写入节点标识为ID_A1对应的目标键值存储区,索引节点的临时版本号的值cur_ver将变更为索引节点状态版本号的值syn_ver,而状态版本号的值syn_ver为100,故此时临时版本号的值cur_ver为100,同时事务数值waiter_cnt自加1,检测到事务数值waiter_cnt不为0,则进行后续的待同步索引数据的同步处理即可。
假设事务数值waiter_cnt为0,说明索引节点没有需要同步至对象存储节点的待同步索引数据,则按照1毫秒的时间继续进行检测目标分区节点A1的同步事务的事务数值waiter_cnt是否为0,直至检测到事务数值waiter_cnt不为0,则进行后续的待同步索引数据的同步处理即可。
实际应用中,同步条件可以根据实际应用场景进行设定,即检测事务数值waiter_cnt是否为0可以设定为:事务数值waiter_cnt是否为20或30等,实现将键值数据库中的待同步索引数据进行积攒,后续经过k时间检测到事务数值waiter_cnt满足条件,再进行同步处理即可,可以实现一次性上传更多的待同步索引数据,更加充分的利用同步资源。
综上,按照时间周期循环检测方式达到同步的目的,不仅可以通过时间周期控制键值数据库中的待同步索引数据的数量,还可以充分的利用索引节点的同步资源,进一步提高同步处理效率。
步骤S110,在检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点。
具体的,在上述通过所述事务数值记录临时版本号的值的变更行为的基础上,进一步的,在检测到记录后的事务数值满足预设同步条件的情况下,说明所述键值数据库中的待同步索引数据达到了同步条件,则将所述键值数据库中的待同步索引数据同步至对象存储节点即可。
进一步的,在将所述待同步索引数据写入所述键值数据库的基础上,为了能够实现后续将所述键值数据库中的待同步索引数据上传到对象存储节点时,不会出现重复上传的情况,可以根据写入时间进行同步处理,本实施例中,具体实现方式如下所述:
确定将所述待同步索引数据写入所述键值数据库的写入时间;
将所述写入时间记录至所述键值数据库的元数据表;
相应的,执行所述步骤S110在检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点,所述步骤S110具体是指在检测到记录后的事务数值满足预设同步条件的情况下,读取所述键值数据库的所述元数据表,获得所述写入时间;按照所述写入时间将所述键值数据库中的待同步索引数据同步至所述对象存储节点。
实际应用中,所述写入时间具体是指写入所述待同步索引数据完成的时间,所述元数据表具体是指记录所述键值数据库的描述信息的数据表,比如记录写入时间、数据类型或数据大小等信息;基于此,在后续检测到记录后的事务数值满足预设同步条件的情况下,读取所述键值数据库的所述元数据表,获得所述写入时间,之后按照所述写入时间将所述键值数据库中的待同步索引数据同步至所述对象存储节点即可。
沿用上例,在检测到事务数值waiter_cnt不为0的情况下,则获取键值数据库中写入目标分区节点A1的待同步索引数据的写入时间,之后按照写入时间在节点标识为ID_A1对应的目标键值存储区,提取目标分区节点A1的待同步索引数据,将目标分区节点A1的待同步索引数据同步至对象存储节点即可。
进一步的,在完成待同步索引数据的同步后,此时需要对索引节点中的对象版本号进行赋值,实现确定待同步索引数据的同步完成,本实施例中,具体实现方式如下所述:
接收所述对象存储节点返回的同步结果;
根据所述同步结果,对所述状态版本号的值进行更新;
基于更新后的状态版本号的值为对象版本号进行赋值;其中,所述对象版本号的值表示目标分区节点的待同步索引数据同步完成。
具体的,接收所述对象存储节点返回的同步结果,之后根据所述同步结果对所述状态版本号的值进行更新,最后基于更新后的状态版本号的值为对象版本号进行赋值即可,其中,所述对象版本号的值表示目标分区节点的待同步索引数据同步完成。
沿用上例,在目标分区节点A1的待同步索引数据同步至对象存储节点后,接收对象存储节点返回的同步结果,根据同步结果将状态版本号的值syn_ver:100自加1,此时状态版本号的值syn_ver为101,用于表示已经将待同步索引数据同步至对象存储节点,之后根据状态版本号的值syn_ver:101为对象版本号的值fin_ver进行赋值,此时对象版本号的值fin_ver为101,索引节点即可根据对象版本号的值fin_ver:101确定待同步索引数据完成。
更进一步的,在完成对所述对象版本号的值的赋值之后,此时为了能够准确的确定同步完成,通过对象版本号的值与临时版本号的值比对的方式实现,本实施例中,具体实现方式如下所述:
判断赋值后的对象版本号的值是否大于变更后的临时版本号的值;
若是,则对记录后的事务数值进行调整,并根据调整结果向所述目标分区节点发送同步完成结果;
若否,则不作任何处理。
具体实施时,所述同步完成结果具体是指告知所述目标分区节点已经完成所述待同步索引数据的同步。
沿用上例,将对象版本号的值fin_ver:101与临时版本号的值cur_ver:100进行比对,根据比对结果确定对象版本号的值大于临时版本号的值,则此时可以准确的了解到待同步索引数据同步完成,则将目标分区节点对应的事务数值waiter_cnt自减1,即目标分区节点对应的事务数值waiter_cnt恢复为0,进入睡眠状态,当检测到waiter_cnt不为0时,说明目标分区节点有新的待同步索引数据需要进行同步,则进行执行同步处理过程即可。
综上,采用基于版本号的值对比的方式并发处理来自分区节点的待同步索引数据的同步请求,避免了互斥锁的引入的同时,分区节点大规模并发提交请求不会发生严重阻塞或者性能降级,很好的提高了索引节点的并发能力。
此外,在所述目标分区节点在所述时间周期内提交至少两条待同步索引数据的情况下,将按照时间差值进行同步处理过程,本实施例中,具体实现方式如下所述:
确定提交所述至少两条待同步索引数据的提交时间;
根据所述提交时间,计算所述至少两条待同步索引数据中的起始索引数据和末端索引数据的时间差值;
在所述时间差值大于等于所述时间周期的情况下,将所述键值数据库中的所述至少两条待同步索引数据同步至所述对象存储节点。
例如,目标分区节点B1提交了待同步的索引数据B1_in,B2_in和B3_in,并写入键值数据库,三条索引数据的提交时间连续在0.6毫秒内完成,提交顺序为索引数据B1_in-索引数据B2_in-索引数据B3_in,此时确定起始索引数据为B1_in,末端索引数据为B3_in,二者之间的时间差值是0.6毫秒,通过判断确定0.6毫秒大于1毫秒,则将索引数据B1_in,B2_in和B3_in需要同步至对象存储节点即可。
通过时间比对的方式进行待同步索引数据的同步处理,达到了积攒同步待同步索引数据的效果,从而可以有效的利用同步资源,并且节省了维护索引数据的成本。
实际应用中,所述对象存储节点为目标分区节点的灾备服务节点;当所述目标分区节点出现数据混乱或者损坏的情况下,此时就需要从灾备服务节点获取目标索引数据,对目标分区节点的数据进行处理操作,本实施例中,具体实现方式如下所述:
接收所述目标分区节点提交的索引数据读取请求;
将所述索引数据读取请求转发至所述灾备服务节点,并接收所述灾备服务节点返回的目标索引数据;
将所述目标索引数据发送至所述目标分区节点进行数据处理操作。
实际应用中,所述灾备服务节点具体是指提供灾备服务的服务器,数据灾备是指为防止出现操作失误或系统故障导致数据丢失,而将全系统或部分数据集合,从应用主机的硬盘或阵列复制到其他存储介质的过程;
基于此,在接收到所述目标分区节点提交的索引数据读取请求的情况下,说明所述目标分区节点中的数据发生了变化,或者需要查询目标分区节点中的数据,则将所述索引数据读取请求转发至所述灾备服务节点,并接收所述灾备服务节点返回的目标索引数据;最后将所述目标索引数据发送至所述目标分区节点进行数据处理操作即可。
例如,目标分区节点对应存储商家访问用户数据的分区,当商家需要查询部分用户访问数据(查询访问时间、访问商品内容)的过程中,将需要根据索引数据进行查询,当用户提交查询请求的情况下,索引节点将接收目标分区节点提交的索引数据读取请求,并将索引数据读取请求转发至对象存储节点,之后接收对象存储节点返回的目标索引数据,将目标索引数据发送至目标分区节点,目标分区节点即可根据目标索引数据查询到部分用户的访问数据,并向商家进行展示,从而达到快速查询数据的目的。
本申请提供的索引数据同步方法,通过将目标分区节点提交的待同步索引数据写入键值数据库后,根据写入结果将临时版本号的值变更为状态版本号的值,之后再通过目标分区节点对应的目标同步事务的事务数值,记录所述临时版本号的值的变更行为,最后对记录后的事务数值进行检测,检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点;通过采用版本号的方式来控制索引数据的同步,可以有效的提高索引节点的并发能力,并且通过对象存储节点存储待同步索引数据,不仅可以降低开发成本,还可以降低维护成本,从而有效的提高了对待同步索引数据的处理能力。
下述结合附图2,以本申请提供的索引数据同步方法在数据增加场景中的应用为例,对所述索引数据同步方法进行进一步说明。其中,图2示出了本申请一实施例提供的一种应用于数据增加场景中的索引数据同步方法的处理流程图,具体包括以下步骤:
步骤S202,获取目标分区节点提交的待同步索引数据。
具体的,本实施例将以索引数据同步方法在数据增加场景中的应用为例,对索引数据同步方法进行进一步的描述,即在分布式数据库中当目标分区节点对应的分区中增加数据的情况下,将需要根据增加的数据进行索引数据的生成,并同步至对象存储节点;
基于此,参见图3所示,分布式数据库中包含分区节点1,分区节点2,索引节点和对象存储节点,分区节点1和分区节点2同时发生数据的增加,此时分区节点1和分区节点2都生成了索引数据需要进行同步至对象存储节点,本实施例将以分区节点2为目标分区节点对索引数据的同步过程进行描述,分区节点1的待同步索引数据的同步过程可参见本实施例中相应的描述内容,本实施例在此不作过多赘述。
需要说明的是,图3中的索引数据同步方法的示意图与图2所示的处理流程图步骤相对应,也就是说,图3中的标号含义与图2中的标号所对应的步骤含义相同,即图3中索引数据的同步过程需要通过图2对应的步骤S202至步骤S220实现。
步骤S204,将待同步索引数据写入目标分区节点对应的键值存储空间。
步骤S206,根据写入结果将临时版本号的值cur_ver设置为状态版本号的值syn_ver。
具体的,临时版本号的值表示目标分区节点对应的同步事务的事务状态,状态版本号的值表示目标分区节点提交索引数据的同步进度;图3中的事务1即为本实施例中的同步事务。
步骤S208,根据变更结果对目标分区节点对应的目标同步事务的事务数值waiter_cnt自加1。
具体的,事务数值waiter_cnt自加1具体是指通过所述目标分区节点对应的目标同步事务的事务数值waiter_cnt,对临时版本号的值的变更行为进行记录。
步骤S210,每隔时间周期k毫秒检测事务数值waiter_cnt是否不为0;若否,则继续执行每隔时间周期k毫秒检测事务数值waiter_cnt是否不为0的步骤;若是,则执行步骤212。
步骤S212,对状态本号的值syn_ver自加1。
步骤S214,将键值存储空间中的待同步索引数据同步至对象存储节点。
步骤S216,将自加1后的状态本号的值syn_ver赋值给对象版本号的值fin_ver。
其中,对象版本号的值表示目标分区节点的待同步索引数据同步完成。
步骤S218,判断赋值后的对象版本号的值fin_ver是否大于临时版本号的值cur_ver;若是,执行步骤S220;若否,则不作任何处理。
步骤S220,目标分区节点对应的目标同步事务的事务数值waiter_cnt自减1。
具体的,通过对目标分区节点对应的目标同步事务的事务数值waiter_cnt自减1,实现告知索引节点,分区节点2的待同步索引数据同步完成。
本申请提供的索引数据同步方法,通过将目标分区节点提交的待同步索引数据写入键值数据库后,根据写入结果将临时版本号的值变更为状态版本号的值,之后再通过目标分区节点对应的目标同步事务的事务数值,记录所述临时版本号的值的变更行为,最后对记录后的事务数值进行检测,检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点;通过采用版本号的方式来控制索引数据的同步,可以有效的提高索引节点的并发能力,并且通过对象存储节点存储待同步索引数据,不仅可以降低开发成本,还可以降低维护成本,从而有效的提高了对待同步索引数据的处理能力。
与上述方法实施例相对应,本申请还提供了索引数据同步系统实施例,图4示出了本申请一实施例提供的一种索引数据同步系统的结构示意图。如图4所示,索引数据同步系统400包括:
目标分区节点402,索引节点404和对象存储节点406;
所述目标分区节点402,被配置为获取用户的操作请求;根据所述操作请求中包含的用户标识读取目标数据并进行处理操作;根据处理操作结果将生成的待同步索引数据发送至所述索引节点404;
所述索引节点404,被配置为将所述待同步索引数据写入所述目标分区节点对应的键值数据库;根据写入结果将临时版本号的值变更为状态版本号的值;其中,所述临时版本号的值表示目标分区节点对应的同步事务的事务状态,所述状态版本号的值表示目标分区节点提交索引数据的同步进度;通过所述目标分区节点对应的目标同步事务的事务数值,对所述临时版本号的值的变更行为进行记录;在检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至所述对象存储节点406;
所述对象存储节点406,被配置为对所述待同步索引数据进行存储,并向所述目标分区节点402返回同步结果。
一个可选的实施例中,所述将所述待同步索引数据写入所述目标分区节点对应的键值数据库,包括:
获取所述目标分区节点的节点标识;根据所述节点标识确定所述目标分区节点在所述键值数据库中的目标键值存储区;将所述待同步索引数据写入所述目标键值存储区。
一个可选的实施例中,所述将所述待同步索引数据写入所述目标键值存储区,包括:
确定提交所述待同步索引数据的时间信息;基于所述时间信息生成所述待同步索引数据的键名,以及确定所述待同步索引数据的键值和数据类型;按照所述键名、所述键值和所述数据类型组成所述待同步索引数据的键值项数据,并写入所述目标键值存储区。
一个可选的实施例中,所述索引节点404进一步被配置为:
确定将所述待同步索引数据写入所述键值数据库的写入时间;将所述写入时间记录至所述键值数据库的元数据表;
相应的,所述在检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点,包括:
在检测到记录后的事务数值满足预设同步条件的情况下,读取所述键值数据库的所述元数据表,获得所述写入时间;按照所述写入时间将所述键值数据库中的待同步索引数据同步至所述对象存储节点。
一个可选的实施例中,所述索引节点404进一步被配置为:
在检测到记录后的事务数值不满足预设同步条件的情况下,则执行按照时间周期检测所述事务数值是否满足所述预设同步条件。
一个可选的实施例中,所述索引节点404进一步被配置为:
接收所述对象存储节点返回的同步结果;根据所述同步结果,对所述状态版本号的值进行更新;基于更新后的状态版本号的值为对象版本号进行赋值;其中,所述对象版本号的值表示目标分区节点的待同步索引数据同步完成。
一个可选的实施例中,所述索引节点404进一步被配置为:
判断赋值后的对象版本号的值是否大于变更后的临时版本号的值;若是,则对记录后的事务数值进行调整,并根据调整结果向所述目标分区节点发送同步完成结果。
一个可选的实施例中,在所述目标分区节点在所述时间周期内提交至少两条待同步索引数据的情况下,所述索引节点404进一步被配置为:
确定提交所述至少两条待同步索引数据的提交时间;根据所述提交时间,计算所述至少两条待同步索引数据中的起始索引数据和末端索引数据的时间差值;在所述时间差值大于等于所述时间周期的情况下,将所述键值数据库中的所述至少两条待同步索引数据同步至所述对象存储节点406。
一个可选的实施例中,所述对象存储节点406为目标分区节点402的灾备服务节点;
相应的,所述索引节点404进一步被配置为:
接收所述目标分区节点402提交的索引数据读取请求;将所述索引数据读取请求转发至所述灾备服务节点,并接收所述灾备服务节点返回的目标索引数据;将所述目标索引数据发送至所述目标分区节点402进行数据处理操作。
本实施例提供的索引数据同步系统,通过将目标分区节点提交的待同步索引数据写入键值数据库后,根据写入结果将临时版本号的值变更为状态版本号的值,之后再通过目标分区节点对应的目标同步事务的事务数值,记录所述临时版本号的值的变更行为,最后对记录后的事务数值进行检测,检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点;通过采用版本号的方式来控制索引数据的同步,可以有效的提高索引节点的并发能力,并且通过对象存储节点存储待同步索引数据,不仅可以降低开发成本,还可以降低维护成本,从而有效的提高了对待同步索引数据的处理能力。
上述为本实施例的一种索引数据同步系统的示意性方案。需要说明的是,该索引数据同步系统的技术方案与上述的索引数据同步方法的技术方案属于同一构思,索引数据同步系统的技术方案未详细描述的细节内容,均可以参见上述索引数据同步方法的技术方案的描述。
与上述方法实施例相对应,本申请还提供了索引数据同步装置实施例,图5示出了本申请一实施例提供的一种索引数据同步装置的结构示意图。如图5所示,该装置包括:
获取模块502,被配置为获取目标分区节点提交的待同步索引数据;
写入模块504,被配置为将所述待同步索引数据写入所述目标分区节点对应的键值数据库;
变更模块506,被配置为根据写入结果将临时版本号的值变更为状态版本号的值;其中,所述临时版本号的值表示目标分区节点对应的同步事务的事务状态,所述状态版本号的值表示目标分区节点提交索引数据的同步进度;
记录模块508,被配置为通过所述目标分区节点对应的目标同步事务的事务数值,对所述临时版本号的值的变更行为进行记录;
同步模块510,被配置为在检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点。
一个可选的实施例中,所述写入模块504,包括:
获取节点标识单元,被配置为获取所述目标分区节点的节点标识;
确定存储区单元,被配置为根据所述节点标识确定所述目标分区节点在所述键值数据库中的目标键值存储区;
数据写入单元,被配置为将所述待同步索引数据写入所述目标键值存储区。
一个可选的实施例中,所述数据写入单元,包括:
确定时间信息子单元,被配置为确定提交所述待同步索引数据的时间信息;
生成键名子单元,被配置为基于所述时间信息生成所述待同步索引数据的键名,以及确定所述待同步索引数据的键值和数据类型;
数据写入子单元,被配置为按照所述键名、所述键值和所述数据类型组成所述待同步索引数据的键值项数据,并写入所述目标键值存储区。
一个可选的实施例中,所述索引数据同步装置,还包括:
确定写入时间模块,被配置为确定将所述待同步索引数据写入所述键值数据库的写入时间;
记录写入时间模块,被配置为将所述写入时间记录至所述键值数据库的元数据表;
相应的,所述同步模块510,包括:
读取元数据表单元,被配置为在检测到记录后的事务数值满足预设同步条件的情况下,读取所述键值数据库的所述元数据表,获得所述写入时间;
同步索引数据单元,被配置为按照所述写入时间将所述键值数据库中的待同步索引数据同步至所述对象存储节点。
一个可选的实施例中,所述索引数据同步装置,还包括:
检测模块,被配置为在检测到记录后的事务数值不满足预设同步条件的情况下,则执行按照时间周期检测所述事务数值是否满足所述预设同步条件的步骤。
一个可选的实施例中,所述索引数据同步装置,还包括:
接收模块,被配置为接收所述对象存储节点返回的同步结果;
更新模块,被配置为根据所述同步结果,对所述状态版本号的值进行更新;
赋值模块,被配置为基于更新后的状态版本号的值为对象版本号进行赋值;其中,所述对象版本号的值表示目标分区节点的待同步索引数据同步完成。
一个可选的实施例中,所述索引数据同步装置,还包括:
判断模块,被配置为判断赋值后的对象版本号的值是否大于变更后的临时版本号的值;
若是,则运行发送同步完成结果模块,所述发送同步完成结果模块,被配置为对记录后的事务数值进行调整,并根据调整结果向所述目标分区节点发送同步完成结果。
一个可选的实施例中,在所述目标分区节点在所述时间周期内提交至少两条待同步索引数据的情况下,所述同步模块510,包括:
确定提交时间单元,被配置为确定提交所述至少两条待同步索引数据的提交时间;
计算时间差值单元,被配置为根据所述提交时间,计算所述至少两条待同步索引数据中的起始索引数据和末端索引数据的时间差值;
同步数据单元,被配置为在所述时间差值大于等于所述时间周期的情况下,将所述键值数据库中的所述至少两条待同步索引数据同步至所述对象存储节点。
一个可选的实施例中,所述对象存储节点为目标分区节点的灾备服务节点;
相应的,所述索引数据同步装置,还包括:
接收请求模块,被配置为接收所述目标分区节点提交的索引数据读取请求;
转发请求模块,被配置为将所述索引数据读取请求转发至所述灾备服务节点,并接收所述灾备服务节点返回的目标索引数据;
发送数据模块,被配置为将所述目标索引数据发送至所述目标分区节点进行数据处理操作。
本实施例提供的索引数据同步装置,通过将目标分区节点提交的待同步索引数据写入键值数据库后,根据写入结果将临时版本号的值变更为状态版本号的值,之后再通过目标分区节点对应的目标同步事务的事务数值,记录所述临时版本号的值的变更行为,最后对记录后的事务数值进行检测,检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点;通过采用版本号的方式来控制索引数据的同步,可以有效的提高索引节点的并发能力,并且通过对象存储节点存储待同步索引数据,不仅可以降低开发成本,还可以降低维护成本,从而有效的提高了对待同步索引数据的处理能力。
上述为本实施例的一种索引数据同步装置的示意性方案。需要说明的是,该索引数据同步装置的技术方案与上述的索引数据同步方法的技术方案属于同一构思,索引数据同步装置的技术方案未详细描述的细节内容,均可以参见上述索引数据同步方法的技术方案的描述。
图6示出了根据本申请一实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。
计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本申请的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
其中,处理器620用于执行如下计算机可执行指令:
获取目标分区节点提交的待同步索引数据;
将所述待同步索引数据写入所述目标分区节点对应的键值数据库;
根据写入结果将临时版本号的值变更为状态版本号的值;其中,所述临时版本号的值表示目标分区节点对应的同步事务的事务状态,所述状态版本号的值表示目标分区节点提交索引数据的同步进度;
通过所述目标分区节点对应的目标同步事务的事务数值,对所述临时版本号的值的变更行为进行记录;
在检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的索引数据同步方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述索引数据同步方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:
获取目标分区节点提交的待同步索引数据;
将所述待同步索引数据写入所述目标分区节点对应的键值数据库;
根据写入结果将临时版本号的值变更为状态版本号的值;其中,所述临时版本号的值表示目标分区节点对应的同步事务的事务状态,所述状态版本号的值表示目标分区节点提交索引数据的同步进度;
通过所述目标分区节点对应的目标同步事务的事务数值,对所述临时版本号的值的变更行为进行记录;
在检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的索引数据同步方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述索引数据同步方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

Claims (17)

1.一种索引数据同步方法,包括
获取目标分区节点提交的待同步索引数据;
将所述待同步索引数据写入所述目标分区节点对应的键值数据库;
根据写入结果将临时版本号的值变更为状态版本号的值;其中,所述临时版本号的值表示目标分区节点对应的同步事务的事务状态,所述状态版本号的值表示目标分区节点提交索引数据的同步进度;
通过所述目标分区节点对应的目标同步事务的事务数值,对所述临时版本号的值的变更行为进行记录;
在检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点。
2.根据权利要求1所述的索引数据同步方法,所述将所述待同步索引数据写入所述目标分区节点对应的键值数据库,包括:
获取所述目标分区节点的节点标识;
根据所述节点标识确定所述目标分区节点在所述键值数据库中的目标键值存储区;
将所述待同步索引数据写入所述目标键值存储区。
3.根据权利要求2所述的索引数据同步方法,所述将所述待同步索引数据写入所述目标键值存储区,包括:
确定提交所述待同步索引数据的时间信息;
基于所述时间信息生成所述待同步索引数据的键名,以及确定所述待同步索引数据的键值和数据类型;
按照所述键名、所述键值和所述数据类型组成所述待同步索引数据的键值项数据,并写入所述目标键值存储区。
4.根据权利要求1所述的索引数据同步方法,还包括:
确定将所述待同步索引数据写入所述键值数据库的写入时间;
将所述写入时间记录至所述键值数据库的元数据表;
相应的,所述在检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点,包括:
在检测到记录后的事务数值满足预设同步条件的情况下,读取所述键值数据库的所述元数据表,获得所述写入时间;
按照所述写入时间将所述键值数据库中的待同步索引数据同步至所述对象存储节点。
5.根据权利要求1所述的索引数据同步方法,还包括:
在检测到记录后的事务数值不满足预设同步条件的情况下,则执行按照时间周期检测所述事务数值是否满足所述预设同步条件的步骤。
6.根据权利要求5所述的索引数据同步方法,所述将所述键值数据库中的待同步索引数据同步至对象存储节点步骤执行之后,还包括:
接收所述对象存储节点返回的同步结果;
根据所述同步结果,对所述状态版本号的值进行更新;
基于更新后的状态版本号的值为对象版本号进行赋值;其中,所述对象版本号的值表示目标分区节点的待同步索引数据同步完成。
7.根据权利要求6所述的索引数据同步方法,所述将所述键值数据库中的待同步索引数据同步至对象存储节点步骤执行之后,还包括:
判断赋值后的对象版本号的值是否大于变更后的临时版本号的值;
若是,则对记录后的事务数值进行调整,并根据调整结果向所述目标分区节点发送同步完成结果。
8.根据权利要求5所述的索引数据同步方法,在所述目标分区节点在所述时间周期内提交至少两条待同步索引数据的情况下,所述将所述键值数据库中的待同步索引数据同步至对象存储节点,包括:
确定提交所述至少两条待同步索引数据的提交时间;
根据所述提交时间,计算所述至少两条待同步索引数据中的起始索引数据和末端索引数据的时间差值;
在所述时间差值大于等于所述时间周期的情况下,将所述键值数据库中的所述至少两条待同步索引数据同步至所述对象存储节点。
9.根据权利要求1所述的索引数据同步方法,所述对象存储节点为目标分区节点的灾备服务节点;
相应的,所述将所述键值数据库中的待同步索引数据同步至对象存储节点步骤执行之后,还包括:
接收所述目标分区节点提交的索引数据读取请求;
将所述索引数据读取请求转发至所述灾备服务节点,并接收所述灾备服务节点返回的目标索引数据;
将所述目标索引数据发送至所述目标分区节点进行数据处理操作。
10.一种索引数据同步系统,包括:
目标分区节点,索引节点和对象存储节点;
所述目标分区节点,被配置为获取用户的操作请求;根据所述操作请求中包含的用户标识读取目标数据并进行处理操作;根据处理操作结果将生成的待同步索引数据发送至所述索引节点;
所述索引节点,被配置为将所述待同步索引数据写入所述目标分区节点对应的键值数据库;根据写入结果将临时版本号的值变更为状态版本号的值;其中,所述临时版本号的值表示目标分区节点对应的同步事务的事务状态,所述状态版本号的值表示目标分区节点提交索引数据的同步进度;通过所述目标分区节点对应的目标同步事务的事务数值,对所述临时版本号的值的变更行为进行记录;在检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至所述对象存储节点;
所述对象存储节点,被配置为对所述待同步索引数据进行存储,并向所述目标分区节点返回同步结果。
11.根据权利要求10所述的索引数据同步系统,所述将所述待同步索引数据写入所述目标分区节点对应的键值数据库,包括:
获取所述目标分区节点的节点标识;
根据所述节点标识确定所述目标分区节点在所述键值数据库中的目标键值存储区;
将所述待同步索引数据写入所述目标键值存储区。
12.根据权利要求11所述的索引数据同步系统,所述将所述待同步索引数据写入所述目标键值存储区,包括:
确定提交所述待同步索引数据的时间信息;
基于所述时间信息生成所述待同步索引数据的键名,以及确定所述待同步索引数据的键值和数据类型;
按照所述键名、所述键值和所述数据类型组成所述待同步索引数据的键值项数据,并写入所述目标键值存储区。
13.根据权利要求10所述的索引数据同步系统,所述索引节点进一步被配置为:
接收所述对象存储节点返回的同步结果;根据所述同步结果,对所述状态版本号的值进行更新;基于更新后的状态版本号的值为对象版本号进行赋值;其中,所述对象版本号的值表示目标分区节点的待同步索引数据同步完成。
14.根据权利要求13所述的索引数据同步系统,所述索引节点进一步被配置为:
判断赋值后的对象版本号的值是否大于变更后的临时版本号的值;若是,则对记录后的事务数值进行调整,并根据调整结果向所述目标分区节点发送同步完成结果。
15.一种索引数据同步装置,包括:
获取模块,被配置为获取目标分区节点提交的待同步索引数据;
写入模块,被配置为将所述待同步索引数据写入所述目标分区节点对应的键值数据库;
变更模块,被配置为根据写入结果将临时版本号的值变更为状态版本号的值;其中,所述临时版本号的值表示目标分区节点对应的同步事务的事务状态,所述状态版本号的值表示目标分区节点提交索引数据的同步进度;
记录模块,被配置为通过所述目标分区节点对应的目标同步事务的事务数值,对所述临时版本号的值的变更行为进行记录;
同步模块,被配置为在检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点。
16.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
获取目标分区节点提交的待同步索引数据;
将所述待同步索引数据写入所述目标分区节点对应的键值数据库;
根据写入结果将临时版本号的值变更为状态版本号的值;其中,所述临时版本号的值表示目标分区节点对应的同步事务的事务状态,所述状态版本号的值表示目标分区节点提交索引数据的同步进度;
通过所述目标分区节点对应的目标同步事务的事务数值,对所述临时版本号的值的变更行为进行记录;
在检测到记录后的事务数值满足预设同步条件的情况下,将所述键值数据库中的待同步索引数据同步至对象存储节点。
17.一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现权利要求1至9任意一项所述索引数据同步方法的步骤。
CN202010605957.4A 2020-06-29 2020-06-29 索引数据同步方法、系统及装置 Pending CN113297201A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010605957.4A CN113297201A (zh) 2020-06-29 2020-06-29 索引数据同步方法、系统及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010605957.4A CN113297201A (zh) 2020-06-29 2020-06-29 索引数据同步方法、系统及装置

Publications (1)

Publication Number Publication Date
CN113297201A true CN113297201A (zh) 2021-08-24

Family

ID=77318010

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010605957.4A Pending CN113297201A (zh) 2020-06-29 2020-06-29 索引数据同步方法、系统及装置

Country Status (1)

Country Link
CN (1) CN113297201A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113963763A (zh) * 2021-10-20 2022-01-21 上海柯林布瑞信息技术有限公司 医疗数据存储的分区变更方法以及装置
CN116204556A (zh) * 2022-12-29 2023-06-02 上海云砺信息科技有限公司 基于搜索引擎和关系型数据库的实时对象存储查询系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113963763A (zh) * 2021-10-20 2022-01-21 上海柯林布瑞信息技术有限公司 医疗数据存储的分区变更方法以及装置
CN113963763B (zh) * 2021-10-20 2022-11-11 上海柯林布瑞信息技术有限公司 医疗数据存储的分区变更方法以及装置
CN116204556A (zh) * 2022-12-29 2023-06-02 上海云砺信息科技有限公司 基于搜索引擎和关系型数据库的实时对象存储查询系统
CN116204556B (zh) * 2022-12-29 2023-11-28 上海云砺信息科技有限公司 基于搜索引擎和关系型数据库的实时对象存储查询系统

Similar Documents

Publication Publication Date Title
US10248356B2 (en) Using scratch extents to facilitate copying operations in an append-only storage system
US10534547B2 (en) Consistent transition from asynchronous to synchronous replication in hash-based storage systems
US9305002B2 (en) Method and apparatus for eventually consistent delete in a distributed data store
US9609060B2 (en) Distributed storage system and method
US9690823B2 (en) Synchronizing copies of an extent in an append-only storage system
US9547706B2 (en) Using colocation hints to facilitate accessing a distributed data storage system
CN111813760B (zh) 数据迁移方法以及装置
US10296518B2 (en) Managing distributed deletes in a replicated storage system
CN110569311A (zh) 一种数据库的数据同步方法、设备和计算机存储介质
US9405643B2 (en) Multi-level lookup architecture to facilitate failure recovery
CN106874281B (zh) 实现数据库读写分离的方法和装置
CN111078667B (zh) 一种数据迁移的方法以及相关装置
CN113360456B (zh) 数据归档方法、装置、设备以及存储介质
CN113297201A (zh) 索引数据同步方法、系统及装置
CN110990399B (zh) 重建索引方法及装置
TW202008147A (zh) 區塊鏈資料的壓縮處理方法和裝置
CN109947730A (zh) 元数据恢复方法、装置、分布式文件系统及可读存储介质
CN114117111A (zh) 一种信息检索方法、装置及系统
CN112000850A (zh) 进行数据处理的方法、装置、系统及设备
CN115004662A (zh) 数据同步方法、装置、数据存储系统及计算机可读介质
CN110275863B (zh) 文件移动方法、装置及存储介质
CN114297196A (zh) 元数据存储方法、装置、电子设备及存储介质
US9967310B2 (en) Using an RPC framework to facilitate out-of-band data transfers
US11334455B2 (en) Systems and methods for repairing a data store of a mirror node
US20240061820A1 (en) Identifying renames and deletions in a storage system

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40059149

Country of ref document: HK