CN109241193B - 分布式数据库的处理方法和装置,及服务器集群 - Google Patents
分布式数据库的处理方法和装置,及服务器集群 Download PDFInfo
- Publication number
- CN109241193B CN109241193B CN201811129306.1A CN201811129306A CN109241193B CN 109241193 B CN109241193 B CN 109241193B CN 201811129306 A CN201811129306 A CN 201811129306A CN 109241193 B CN109241193 B CN 109241193B
- Authority
- CN
- China
- Prior art keywords
- task
- data
- data writing
- tasks
- partial order
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种分布式数据库的处理方法,包括:至少两个数据写入任务分别获取偏序参数,其中,至少两个数据写入任务为针对分布式数据库的任务,每个数据写入任务包括至少一份数据的写入,不同数据写入任务的偏序参数不同;至少两个数据写入任务分别基于对应的偏序参数,分别生成至少一个偏序值,以基于生成的至少一个偏序值,执行至少一份数据的写入操作,其中,至少两个数据写入任务中一份数据对应一个偏序值,不同份数据对应不同的偏序值。本公开还提供了一种分布式数据库的处理装置以及一种服务器集群。
Description
技术领域
本公开涉及一种分布式数据库的处理方法和装置,及服务器集群。
背景技术
随着传统数据技术日趋成熟、计算机网络技术的飞速发展和应用范围的扩大,以分布式为主要特征的数据库系统的研究与开发受到人们的注意。
在实现本公开的过程中,发明人发现现有技术中至少存在如下问题:现有分布式数据库无法实现自动增长列的基本功能,虽然借助于自动增长生成器能够为分布式数据库写入的每行数据生成一个唯一的值,但是在每新增一行数据时,该分布式数据库都需要调用自动增长生成器,则在需要写入的数据量很庞大的情况下,则需要频繁调用自动增长生成器,这无疑会造成很大的额外性能消耗。
发明内容
本公开的一个方面提供了一种分布式数据库的处理方法,包括:至少两个数据写入任务分别获取偏序参数,其中,至少两个数据写入任务为针对分布式数据库的任务,每个数据写入任务包括至少一份数据的写入,不同数据写入任务的偏序参数不同;至少两个数据写入任务分别基于对应的偏序参数,分别生成至少一个偏序值,以基于生成的至少一个偏序值,执行至少一份数据的写入操作,其中,至少两个数据写入任务中一份数据对应一个偏序值,不同份数据对应不同的偏序值。
可选地,上述至少两个数据写入任务为分布式数据库的控制节点触发的一组任务,上述偏序参数与任务相关参数及任务非相关参数具有关联关系,其中,任务相关参数和一组任务的特征相关联,任务非相关参数和一组任务的特征无关联,至少两个数据写入任务的任务非相关参数相同,偏序参数由所述数据写入任务从控制节点和/或共享存储获得,共享存储可由数据写入任务访问。
可选地,上述偏序参数包括任务相关参数和任务非相关参数,上述偏序参数由数据写入任务从控制节点和/或共享存储获得,包括:数据写入任务从控制节点获取任务相关参数,数据写入任务从共享存储获取任务非相关参数;或数据写入任务从共享存储获取任务相关参数和任务非相关参数;或数据写入任务从控制节点获取任务相关参数和任务非相关参数。
可选地,上述任务相关参数包括一组任务中数据写入任务的数量,以及每个数据写入任务分别对应的任务标识。
可选地,上述至少两个数据写入任务分别基于对应的偏序参数,分别生成至少一个偏序值,包括:第一数据写入任务在写入第一数据时,基于任务非相关参数、数据写入任务的数量、第一数据写入任务对应的任务标识、以及第一份数据在第一数据写入任务对应的至少一份数据中的数据标识信息,生成与第一份数据对应的偏序值;以及上述方法还包括:基于与第一份数据对应的偏序值,完成第一份数据的写入操作。
可选地,上述方法还包括:数据写入任务在完成对应的数据写入操作后,分别将生成的至少一个偏序值中最大的偏序值发送至共享存储,其中,共享存储能够基于获得的偏序值对存储的任务非相关参数进行更新。
本公开的另一个方面提供了一种分布式数据库的处理装置,包括:偏序参数获取模块,用于使至少两个数据写入任务分别获取偏序参数,其中,至少两个数据写入任务为针对所述分布式数据库的任务,每个数据写入任务包括至少一份数据的写入,不同数据写入任务的偏序参数不同;以及偏序值生成模块,用于使至少两个数据写入任务分别基于对应的偏序参数,分别生成至少一个偏序值,以基于生成的至少一个偏序值,执行至少一份数据的写入操作,其中,至少两个数据写入任务中一份数据对应一个偏序值,不同份数据对应不同的偏序值。
可选地,上述至少两个数据写入任务为分布式数据库的控制节点触发的一组任务;偏序参数与任务相关参数及任务非相关参数具有关联关系,其中,任务相关参数和一组任务的特征相关联,任务非相关参数和一组任务的特征无关联,至少两个数据写入任务的任务非相关参数相同,偏序参数由数据写入任务从控制节点和/或共享存储获得,共享存储可由数据写入任务访问。
可选地,上述偏序参数包括任务相关参数和任务非相关参数,该偏序参数由数据写入任务从控制节点和/或共享存储获得包括:数据写入任务从控制节点获取任务相关参数,数据写入任务从共享存储获取任务非相关参数;或数据写入任务从共享存储获取任务相关参数和任务非相关参数;或数据写入任务从控制节点获取任务相关参数和任务非相关参数。
可选地,上述任务相关参数包括一组任务中数据写入任务的数量,以及每个数据写入任务分别对应的任务标识。
可选地,上述偏序值生成模块用于在第一数据写入任务写入第一份数据时,基于任务非相关参数、数据写入任务的数量、第一数据写入任务对应的任务标识、以及第一份数据在第一数据写入任务对应的至少一份数据中的数据标识信息,生成与第一份数据对应的偏序值;上述分布式数据库的处理装置还包括数据写入模块,用于基于与第一份数据对应的偏序值,完成第一份数据的写入操作。
可选地,上述分布式数据库的处理装置还包括偏序值发送模块,用于在数据写入任务完成对应的数据写入操作后,分别将生成的至少一个偏序值中最大的偏序值发送至共享存储,其中,共享存储能够基于获得的偏序值对存储的任务非相关参数进行更新。
本公开的另一个方面提供了一种服务器集群,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行以下操作:至少两个数据写入任务分别获取偏序参数,其中,至少两个数据写入任务为针对分布式数据库的任务,每个数据写入任务包括至少一份数据的写入,不同数据写入任务的偏序参数不同;以及至少两个数据写入任务分别基于对应的偏序参数,分别生成至少一个偏序值,以基于生成的至少一个偏序值,执行至少一份数据的写入操作,其中,至少两个数据写入任务中一份数据对应一个偏序值,不同份数据对应不同的偏序值。
本公开的另一方面提供了一种非易失性存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的分布式数据库的处理方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的分布式数据库的处理方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的分布式数据库的处理方法和装置,及服务器集群的应用场景;
图2示意性示出了根据本公开实施例的分布式数据库的处理方法的流程图;
图3示意性示出了根据本公开另一实施例的分布式数据库的处理方法的流程图;
图4示意性示出了根据本公开又一实施例的分布式数据库的处理方法的流程图;
图5示意性示出了根据本公开实施例的分布式数据库的处理方法的应用场景图;
图6A-图6C示意性示出了根据本公开实施例的分布式数据库的处理装置的结构框图;
图7示意性示出了根据本公开实施例的适于实现服务器集群的计算机系统的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
本公开的实施例提供了一种自动生成偏序值的分布式数据库的处理方法。该方法包括:至少两个数据写入任务分别获取偏序参数,其中,至少两个数据写入任务为针对分布式数据库的任务,每个数据写入任务包括至少一份数据的写入,不同数据写入任务的偏序参数不同;至少两个数据写入任务分别基于对应的偏序参数,分别生成至少一个偏序值,以基于生成的至少一个偏序值,执行至少一份数据的写入操作,其中,至少两个数据写入任务中一份数据对应一个偏序值,不同份数据对应不同的偏序值。
以此方式,根据本公开的实施例,在分布式数据库执行提交的数据写入任务时,可以由数据写入任务生成唯一的、能够标识写入的每份数据的偏序值,相较于现有技术中需要调用自动增长生成器的方法,能够避免分布式数据库与其他设备的频繁交互,并因此可以有效避免额外的性能消耗。
图1示意性示出了根据本公开的实施例的分布式数据库的处理方法和装置,及服务器集群的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该应用场景100包括分布式数据库和网络120,该分布式数据库包括有控制节点110和多个执行节点131、132、133,控制节点110与多个执行节点131、132、133之间通过网络120通信,该网络120可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
其中,控制节点110用于向多个执行节点131、132、133分配数据写入任务,执行节点131、132、133执行其分配得到的数据写入任务,以将数据写入任务包括的一份或多份数据写入数据库时,需要为每份数据设定唯一的偏序值,以唯一的代表该份数据。
但是,考虑到在分布式数据库(如hive、spark等)中,数据写入任务往往分配给多个执行节点,如果各个节点单独生成自增值,很难保证全局唯一。现有技术中为了保证偏序值的唯一性,通常会使用能够生成全局自动增长值的生成器生成偏序值,该生成器是一个中心服务器,其每次被请求时生成一个唯一的值,因此分布式数据库中每新增一份数据,都需要调用生成器一次,这无疑会造成额外的性能消耗,且在数据量极其庞大的情况下,该额外的性能消耗尤为凸显。
本公开的分布式数据库中,在执行节点131、132、133执行数据写入任务时,每个数据写入任务可以分别获取与其对应的偏序参数,以根据偏序参数生成能够唯一标识每个数据写入任务包括的每份数据的偏序值,从而避免分布式数据库对生成器的反复调用,并因此降低性能消耗。
根据本公开的实施例,上述的偏序参数具体例如可以是一个偏序值计算模型,其中具有与每份数据相关的变量,则在数据写入任务生成偏序值时,基于其自身包括的每份数据得到唯一的一个变量值,代入所述偏序值计算模型,以得到能够唯一标识每份数据的偏序值;或者,上述的偏序参数例如还可以是多个参数,该多个参数的由控制节点分配,且该多个参数中包括有任务相关参数,不同任务的任务相关参数不同,以使得不同任务基于湖区的偏序参数得到不同的偏序值。
根据本公开的实施例,如图1所示,该应用场景例如还可以包括有共享存储空间140,控制节点110可以通过网络120与共享存储空间140通信,以自共享存储空间140获取任务非相关参数,具体例如可以是偏序初始值,以使每个数据写入任务基于该偏序初始值分别生成偏序值。
根据本公开的实施例,执行节点131、132、133例如还可以通过网络120与共享存储空间140通信,以基于其生成的偏序值存入任务非相关参数的备选值,作为控制节点110后续分配的数据写入任务生成偏序值的依据。
需要说明的是,本公开实施例所提供的分布式数据库的处理方法一般可以由执行节点131、132、133执行,或者可以由控制节点110执行,或者可以由执行节点131、132、133与控制节点110共同执行。相应地,本公开实施例所提供的分布式数据库的处理装置一般可以设置于执行节点131、132、133,和/或控制节点110中。
应该理解,图1中的控制节点、网络和执行节点的数目仅仅是示意性的。根据事先需要,可以具有任意数目的控制节点、网络和执行节点。
图2示意性示出了根据本公开实施例的分布式数据库的处理方法的流程图。
如图2所示,该方法包括操作S210-操作S220。
在操作S210,至少两个数据写入任务分别获取偏序参数,其中,该至少两个数据写入任务为针对分布式数据库的任务,每个数据写入任务包括至少一份数据的写入,不同数据写入任务的偏序参数不同。
其中,数据写入任务为用于将数据写入分布式数据库的执行任务,且每个数据写入任务包括需要写入的一份或多份数据,其中,每一份数据例如可以对应需要写入的每一行的数据。其中的分布式数据库例如可以是hive表、spark表、或kudu表等。
根据本公开的实施例,上述的至少两个数据写入任务具体例如可以是分布式数据库的控制节点触发的一组任务,该至少两个数据写入任务在控制节点的控制下被分配给至少两个执行节点,则该至少两个执行节点并行地执行上述至少两个数据写入任务,以使得上述的至少两个数据写入任务将其包括的多份数据写入执行节点所属的分布式数据库。
根据本公开的实施例,上述获取的偏序参数具体例如可以与任务相关参数和任务非相关参数具有关联关系,其中,任务相关参数即为与控制节点触发的一组任务的特征相关的参数,具体例如可以是在控制节点触发一组任务后才能够获取的参数,例如可以是控制节点触发的一组数据写入任务的任务个数、每个数据写入任务包括的数据的份数、当前数据写入任务在一组任务中的排序、和/或当前数据写入任务的分配时间等;任务不相关参数即为与控制节点触发的一组任务的特征不相关的参数,具体例如可以是无论控制节点是否触发任务均可获取的参数,例如可以是偏序值的初始值、偏序值自增的步长值、得到备选的偏序值初始值的基数等。
根据本公开的实施例,由于一组任务中的多个数据写入任务具体写入的数据不同,因此,对于不同的数据写入任务,任务相关参数例如可以是不同的;而由于任务非相关参数与任务的特征不相关,因此,对于不同的数据写入任务,任务非相关参数可以是相同的。
根据本公开的实施例,上述的偏序参数的部分例如可以由数据写入任务从分布式数据库的控制节点获取得到,并且/或者,该偏序参数的部分例如还可以由数据写入任务从共享存储中获得,其中的共享存储可以由数据写入任务访问。可以理解的是,上述偏序参数的获取仅作为示例以利于理解本公开,本公开对此不作限定,例如,该偏序参数例如还可以全部由数据写入任务自控制节点或共享存储获取;或者,上述至少两个数据写入任务获取的偏序参数例如还可以是在控制节点向执行节点分配任务时发送给执行节点的。
根据本公开的实施例,上述的偏序参数例如可以是包括上述任务相关参数和任务非相关参数的,其中,任务相关参数可以由数据写入任务从控制节点获取,任务非相关参数可以由数据写入任务从共享存储获取,其中的共享存储例如可以为独立于分布式数据库的存储器或数据库,具体例如可以是Redis数据库,该Redis数据库例如可以存储有任务非相关参数列表,该列表的每一行记录有一个或一组任务非相关参数,则数据写入任务获取任务非相关参数具体例如可以是自任务非相关参数列表中选择符合要求的一个或一组非相关参数。可以理解的是,上述偏序参数中任务相关参数和任务非相关参数的获取仅作为示例以利于理解本公开,本公开对此不作限定,例如,数据写入任务可以从共享存储中同时或依次获取任务相关参数和任务非相关参数,或者数据写入任务可以从分布式数据库的控制节点中同时或依次获取任务相关参数和任务非相关参数。
根据本公开的实施例,上述偏序参数例如还可以是包括有上述任务相关参数及任务非相关参数的计算模型,计算模型例如可以通过以下操作获取:由控制节点在触发一组任务后,先获取任务相关参数和任务非相关参数;然后基于该任务相关参数和任务非相关参数构建计算模型;最后向执行节点分配任务,并同时的向执行节点分配对应的计算模型。其中,因为不同数据写入任务的任务相关参数不同,因此不同数据写入任务对应的计算模型也不同,具体例如可以是不同数据写入任务对应的计算模型具有不同的参数值。可以理解的是,上述控制节点例如还可以在触发所述一组任务之前获取任务非相关参数,且该任务非相关参数可以是从共享存储中获得的。
根据本公开的实施例,上述的计算模型例如具有与任务相关的一个或多个变量,因此数据写入任务在获取到该计算模型后,具体例如可以根据其包括的多份数据得到该一个或多个变量的多个不同的取值,以为每份数据对应的偏序参数的生成提供条件。
在操作S220,至少两个数据写入任务分别基于对应的偏序参数,分别生成至少一个偏序值,以基于生成的所述至少一个偏序值,执行至少一份数据的写入操作,其中,至少两个数据写入任务中一份数据对应一个偏序值,不同份数据对应不同的偏序值。
根据本公开的实施例,根据上述描述可知,数据写入任务获取的偏序参数可以是具有任务相关参数和任务非相关参数的计算模型,其中的任务相关参数例如可以包括一组任务中数据写入任务的数量,以及每个数据写入任务分别对应的任务标识,该计算模型例如还可以包括一个变量,该变量的具体取值例如可以是每个数据写入任务中每份数据的数据标识信息,则上述操作S220具体即为:对于多个数据写入任务中的第一数据写入任务中,将其包括的每份数据的数据标识信息分别代入其获取的计算模型中,计算得到与其包括的每份数据对应的偏序值。可以理解的是,上述的第一数据写入任务代表多个数据写入任务中的任意一个。
根据本公开的实施例,根据上述描述可知,数据写入任务获取的偏序参数可以是包括任务相关参数和任务非相关参数,其中的任务相关参数例如可以包括一组任务中数据写入任务的数量,以及每个数据写入任务分别对应的任务标识,则上述操作S220具体可以包括:对于多个数据写入任务的第一数据写入任务在写入第一份数据时,基于所述任务非相关参数、数据写入任务的数量、第一数据写入任务对应的任务标识、以及第一份数据在第一数据写入任务对应的至少一份数据中的数据标识信息,生成与第一份数据对应的偏序值。可以理解的是,上述的第一数据写入任务代表多个数据写入任务中的任意一个,上述的第一份数据代表第一数据写入任务包括的一份或多份数据中的任意一份。
根据本公开的实施例,上述数据写入任务对应的任务标识具体例如可以是每个数据写入任务在多个数据写入任务中对应的编号,例如,若一组任务中包括四个数据写入任务,则该四个数据写入任务对应的任务标识例如可以分别为0、1、2、3。可以理解的是,上述数据写入任务对应的任务标识仅作为示例以利于理解本公开,本公开对此不作限定,只要保证每个数据写入任务对应的任务标识在其所属的一组任务中是唯一的即可。
根据本公开的实施例,为了保证每份数据对应的偏序值不同,在数据写入任务生成偏序值时,还同时考虑了每份数据在其所属的数据写入任务包括的至少一份数据中的数据标识信息,该数据标识信息例如可以是每份数据在其所属的数据写入任务包括的至少一份数据中对应的编号,例如,若一个数据写入任务包括四份数据,则该四份数据对应的数据标识信息例如可以分别为0、1、2、3。可以理解的是,上述每份数据在其所属的数据写入任务包括的至少一份数据中的数据标识信息仅作为示例以利于理解本公开,本公开对此不作限定,只要保证每份数据在其所属的数据写入任务中是唯一的即可。
综上可知,根据本公开实施例的数据库的处理方法,数据写入任务可以根据获取的偏序参数为每份数据生成唯一对应的偏序值,以唯一的表示该份数据,而无需频繁的调用自动增长生成器,从而可以避免额外的性能消耗,同时使得分布式数据库支持自动增长列的功能。
图3示意性示出了根据本公开另一实施例的分布式数据库的处理方法的流程图。
如图3所示,本实施例的处理方法除了参考图2描述的操作S210-操作S220外,还包括操作S230,其中参考图2中的操作S220具体包括图3描述的操作S221,操作S230在操作S221之后执行。
在操作S221,第一数据写入任务在写入第一份数据时,基于所述任务非相关参数、数据写入任务的数量、第一数据写入任务对应的任务标识、以及第一份数据在第一数据写入任务对应的至少一份数据中的数据标识信息,生成与第一份数据对应的偏序值;在操作S230,第一数据写入任务基于与第一份数据对应的偏序值,完成第一份数据的写入操作。
其中的操作S230即为基于偏序值,将第一数据写入任务包括的第一份数据写入分布式数据库的过程,其中,与该第一份数据对应的偏序值作为该第一份数据的ID值也一并存入分布式数据库中。该操作S230的执行类似于现有技术中传统关系型数据库以第一份数据作为新增的一行数据,进行数据增加的过程,在此不再赘述。
可以理解的是,虽然本公开实施例中的操作S221-操作S230是以第一数据写入任务写入第一份数据为例进行表述,但其中的第一数据写入任务可以是多个数据写入任务中的任一个,其中的第一份数据可以是第一数据写入任务包括的至少一份数据中的任一份,具体的处理过程中,可以是各个执行节点分配得到的数据写入任务并行地执行操作S221-操作S230,直至一批数据中的多个数据写入任务包括的所有份数据均通过以上操作S221-操作S230写入分布式数据库。
根据本公开的实施,通过上述设置,可以使得分布式数据库中写入的每份数据都具有其自动生成的唯一的标识,从而可以在一定程度上补充分布式数据库自动增长列基本功能都空白。
图4示意性示出了根据本公开又一实施例的分布式数据库的处理方法的流程图。
如图4所示,该实施例的处理方法除了参考图2描述的操作S210-操作S220外,还包括操作S240,该操作S240在操作S220之后执行。
在操作S240,数据写入任务在完成对应的数据写入操作后,分别将生成的至少一个偏序值中最大的偏序值发送至共享存储。
其中,本公开实施例与获取的偏序参数具有关联关系的任务非相关参数例如可以存储于共享存储中,则通过上述操作将最大的偏序值发送至共享存储,可以使得该共享存储基于获得的偏序值对存储的任务非相关参数进行更新,具体例如可以是,共享存储将获得的偏序值与预设值求和后更新任务非相关参数,更新后的任务非相关参数即为求和得到的值,而更新后的任务非相关参数是与控制节点再次触发并分配数据写入任务时,新触发的数据写入任务获取的偏序参数具有关联关系,从而可以在一定程度上保证不同批数据写入任务生成的偏序值也是不同的,即生成的偏序值是全局唯一的。可以理解的是,上述的预设值可以是大于0的任意值,例如可以为1,本公开对此不作限定,只要能够保证分布式数据库在任意时机增加数据时,每份数据的偏序值是全局唯一的即可。
根据本公开的实施例,上述操作S240例如还可以具体包括以下操作:先对生成的至少一个偏序值中最大的偏序值与预设值进行求和,然后再将求和的结果发送至共享存储,以供共享存储更新非任务相关参数。
根据本公开的实施例,此处的共享存储中存储的例如可以是任务非相关参数列表,该列表中存有基于一批数据写入任务中各个任务发送的数据得到的任务非相关参数,则后续每批数据写入任务获取偏序参数时,获取的任务非相关参数例如可以是共享存储中维护的列表中值最大的任务非相关参数,以进一步的有效保证数据写入任务生成的偏序值是全局唯一的。
根据本公开的实施例,任务非相关参数具体例如可以包括偏序初始值以及步长值,其中的偏序初始值即为后续的数据写入任务生成的偏序值的基数,而步长值例如可以为生成的偏序值的自增倍率。
根据本公开的实施例,上述偏序初始值和/或步长值例如可以存储于共享存储中,也可以存储于分布式数据库的控制节点中。如偏序初始值存储于共享存储中,而步长值例如可以存储于分布式数据库的控制节点中,则数据写入任务获取偏序参数时,需要同时访问共享存储与控制节点,具体获取方法不再赘述。
根据本公开的实施例,对于控制节点首次触发的数据写入任务,获取的偏序参数中任务非相关参数例如可以为用户预先设置的默认值,或者分布式数据库自动生成的初始值。根据本公开的实施例,任务非相关参数中的步长值可以是用户指定的自增步长,则由于分布式数据库生成的偏序值是基于该任务非相关参数生成的,因此本公开实施例可以实现分布式数据库根据指定步长增长列的功能。
图5示意性示出了根据本公开实施例的分布式数据库的处理方法的应用场景图。
如图5所示,该应用场景包括有分布式数据库和共享存储,其中的分布式数据库包括有一个控制节点和两个执行节点,其中的分布式数据库的处理方法可以是参考图2-4中任一图描述的方法,其中的控制节点例如可以为Spark控制节点,共享存储例如可以是Redis数据库,则在该应用场景下,可以实现分布式数据库的自动增长列的功能。
根据本公开的实施例,通过分布式数据库的处理方法,分布式数据库可以在创建表时定义某字段为偏序增长字段,以仅允许存在一个偏序增长的字段,则该分布式数据库建表的语句例如可以为:
create table tablel(
id int AUTO_INCREMENT,
name string)。
根据本公开的实施例,还可以在tableproperties中指定AUTO_INCREMENT_INCREMENT来指定任务非相关参数中的步长值(具体例如可以是自增步长),也可以通过SETTABLE AUTO_INCREMENT_INCREMENT修改创建的表的自增步长,该自增步长例如可以保存在Table的属性中,由控制节点分发给其触发的各个数据写入任务,本公开实施例中的步长值取1。
以下以控制节点触发的第一组任务insert into table(name)values(‘a’),(‘b’),(‘C’),(‘d’),(‘e’)为例,对本公开提供的分布式数据库的处理方法进行具体描述:
其中,每个数据写入任务获取的偏序参数包括:偏序初始值、数据写入任务的数量PART_NUM(代表控制节点触发的一组任务中包括的数据写入任务的总量)、数据写入任务对应的任务标识PART_ID、每份数据对应的数据标识信息ROW_ID及步长值,其中偏序初始值与步长值为任务非相关参数,其他参数为任务相关参数。
首先,Spark控制节点从Redis数据库中通过Irang获取到所有的值(备选的偏序初始值),其中Redis数据库中存储的值的key为数据库名和表名的组合[db]_[table],由于此次为首次访问Redis数据库,当前的值为null,则偏序初始值为默认的初始值0;随后Spark控制节点向两个执行节点分配数据写入任务,其中,通过语句insert(PART_ID=0,PART_NUM=4)Data=(‘a’)及语句insert(PART_ID=1,PART_NUM=4)Data=(‘b’)向计算节点1分配第一数据写入任务和第二数据写入任务;通过语句insert(PART_ID=2,PART_NUM=4)Data=(‘c’)及insert(PART_ID=3,PART_NUM=4)Data=(‘d’,‘e’)向计算节点2分配第三数据写入任务和第四数据写入任务,其中,在向计算节点1和2分配任务的同时,分配偏序参数PART_ID、PART_NUM,且在分配任务时,一并将步长值和偏序初始值发送给各计算节点;然后计算节点分配的各数据写入任务获取控制节点分配的各偏序参数,并遍历包括的数据,得到每份数据的ROW_ID;最后,各数据写入任务根据获取的偏序参数根据计算模型:
偏序值=(偏序初始值+ROW_ID*PART_NUM+PART_ID)*步长值为其包括的每份数据生成对应的偏序值。其中,上述第一组任务中生成每份数据的偏序值时采用的偏序参数及生成的偏序值如表1所示。
根据本公开的实施例,分布式数据库的处理方法除了上述操作后,还可以根据为每份数据生成的偏序值执行每份数据的写入,以及自生成的至少一个偏序值中选择最大的偏序值,并将该最大的偏序值与步长值1求和后发送给Redis数据库,以供Redis数据库更新备选的偏序初始值,例如,对于第一数据写入任务,即为将生成的最大偏序值0与步长值1的和1推送(push)给Redis数据库,对于第四数据写入任务,即为将生成的最大偏序值7与步长值1的和8推送给Redis数据库,则Redis数据库可得到该第一组任务推送的备选的偏序初始值1、2、3、8,并以列表形式List(1,2,3,8)存储。
表1第一组任务中的每份数据及对应的偏序参数和偏序值
数据 | 偏序初始值 | PART_NUM | PART_ID | 步长值 | ROW_ID | 偏序值 |
(‘a’) | 0 | 4 | 0 | 1 | 0 | 0 |
(‘b’) | 0 | 4 | 1 | 1 | 0 | 1 |
(‘c’) | 0 | 4 | 2 | 1 | 0 | 2 |
(‘d’) | 0 | 4 | 3 | 1 | 0 | 3 |
(‘e’) | 0 | 4 | 3 | 1 | 1 | 7 |
在各计算节点执行完上述第一组任务后,若控制节点又触发了第二组任务insertinto table(name)values(‘f’),(‘g’),(‘h’),(‘i’),则Spark控制节点从Redis数据库中获取到偏序初始值列表list(1,2,3,8),通过最大值计算max计算得到偏序初始值为8,并使Redis数据库清除掉除8以外的其他值,则Redis数据库清除后的结果为List(8),并在随后以与上述第一组任务相同的方式计算得到各份数据的偏序值。
根据本公开的实施例,例如还可以通过语句SET TABLE AUTO_INCREMENT_OFFSET来指定偏序初始值,例如:SET db.TABLE AUTO_INCREMENT_OFFSET=10,则在Redis数据库中的偏序初始值列表为List(10),Spark控制节点计算出的偏序初始值则为10。
根据本公开的实施例,Redis数据库例如只记录上一次执行数据写入任务时的偏序初始值,每个数据写入任务采用偏序增长的方式独立生成偏序值,而不需要频繁的访问Redis数据库,相较于现有技术中需要频繁访问生长器的技术方案,既能保证生成偏序值的性能,又能保证生成的偏序值为Table级别的全局唯一偏序值,并有效降低额外的性能消耗。
图6A-图6C示意性示出了根据本公开实施例的分布式数据库的处理装置的结构框图。
如图6A所示,本公开实施例的分布式数据库的处理装置包括偏序参数获取模块610和偏序值生成模块620。
其中,偏序参数获取模块610用于使至少两个数据写入任务分别获取偏序参数,其中,至少两个数据写入任务为针对分布式数据库的任务,每个数据写入任务包括至少一份数据的写入,不同数据写入任务的偏序参数不同。根据本公开的实施例,该偏序参数获取模块610例如可以用于执行参考图2描述的操作S210,在此不再赘述。
其中,偏序值生成模块620用于使所述至少两个数据写入任务分别基于对应的偏序参数,分别生成至少一个偏序值,以基于生成的至少一个偏序值,执行至少一份数据的写入操作,其中,至少两个数据写入任务中一份数据对应一个偏序值,不同份数据对应不同的偏序值。根据本公开的实施例,该偏序值生成模块620例如可以用于执行参考图2描述的操作S220,在此不再赘述。
根据本公开的实施例,上述的至少两个数据写入任务为分布式数据库的控制节点触发的一组任务,偏序参数获取模块610获取的偏序参数与任务相关参数及任务非相关参数具有关联关系,其中,任务相关参数和一组任务的特征相关联,任务非相关参数和一组任务的特征无关联,至少两个数据写入任务的任务非相关参数相同,偏序参数由数据写入任务从控制节点和/或共享存储获得,共享存储可由数据写入任务访问。
根据本公开的实施例,上述偏序参数包括任务相关参数和任务非相关参数,偏序参数由数据写入任务从控制节点和/或共享存储获得具体可以包括:数据写入任务从控制节点获取任务相关参数,数据写入任务从共享存储获取任务非相关参数;或数据写入任务从共享存储获取任务相关参数和任务非相关参数;或数据写入任务从控制节点获取任务相关参数和任务非相关参数。
根据本公开的实施例,上述任务相关参数包括一组任务中数据写入任务的数量,以及每个数据写入任务分别对应的任务标识。
根据本公开的实施例,上述偏序值生成模块620例如可以具体用于第一数据写入任务在写入第一份数据时,基于任务非相关参数、数据写入任务的数量、第一数据写入任务对应的任务标识、以及第一份数据在第一数据写入任务对应的至少一份数据中的数据标识信息,生成与第一份数据对应的偏序值,且如图6B所示,上述分布式数据库的处理装置600例如还可以包括数据写入模块630,用于基于与第一份数据对应的偏序值,完成第一份数据的写入操作。根据本公开的实施例,上述的偏序值生成模块620例如可以用于执行参考图3描述的操作S221,数据写入模块630可以用于执行参考图3描述的操作S230,在此不再赘述。
根据本公开的实施例,如图6C所示,上述分布式数据库的处理装置600例如还可以包括偏序值发送模块640,用于在数据写入任务完成对应的数据写入操作后,分别将生成的至少一个偏序值中最大的偏序值发送至共享存储,其中,共享存储能够基于获得的偏序值对存储的任务非相关参数进行更新。根据本公开的实施例,该偏序值发送模块640例如可以用于执行参考图4描述的操作S240,在此不再赘述。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,偏序参数获取模块610、偏序值生成模块620、数据写入模块630、以及偏序值发送模块640中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,偏序参数获取模块610、偏序值生成模块620、数据写入模块630、以及偏序值发送模块640中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,偏序参数获取模块610、偏序值生成模块620、数据写入模块630、以及偏序值发送模块640中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图7示意性示出了根据本公开实施例的适于实现服务器集群的计算机系统的方框图。图7示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,本公开还提供了一种服务器集群700,该服务器集群700包括一个或多个处理器710和存储装置(例如可以为存储介质720),存储装置用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行以下操作:至少两个数据写入任务分别获取偏序参数,其中,至少两个数据写入任务为针对分布式数据库的任务,每个数据写入任务包括至少一份数据的写入,不同数据写入任务的偏序参数不同;以及至少两个数据写入任务分别基于对应的偏序参数,分别生成至少一个偏序值,以基于生成的至少一个偏序值,执行至少一份数据的写入操作,其中,至少两个数据写入任务中一份数据对应一个偏序值,不同份数据对应不同的偏序值。
具体地,处理器710例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器710还可以包括用于缓存用途的板载存储器。处理器710可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质720,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质720可以包括计算机程序721,该计算机程序721可以包括代码/计算机可执行指令,其在由处理器710执行时使得处理器710执行根据本公开实施例的方法或其任何变形。
计算机程序721可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序721中的代码可以包括一个或多个程序模块,例如包括721A、模块721B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器710执行时,使得处理器710可以执行根据本公开实施例的方法或其任何变形。
根据本发明的实施例,偏序参数获取模块610、偏序值生成模块620、数据写入模块630、以及偏序值发送模块640中的至少一个可以实现为参考图7描述的计算机程序模块,其在被处理器710执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (10)
1.一种分布式数据库的处理方法,包括:
至少两个数据写入任务分别获取偏序参数,其中,所述至少两个数据写入任务为针对所述分布式数据库的任务,每个数据写入任务包括至少一份数据的写入,不同数据写入任务的偏序参数不同;
所述至少两个数据写入任务分别基于对应的偏序参数,分别生成至少一个偏序值,以基于生成的所述至少一个偏序值,执行所述至少一份数据的写入操作,其中,所述至少两个数据写入任务中一份数据对应一个偏序值,不同份数据对应不同的偏序值;
其中,所述至少两个数据写入任务为所述分布式数据库的控制节点触发的一组任务;所述偏序参数与任务相关参数及任务非相关参数具有关联关系,其中,所述任务相关参数和所述一组任务的特征相关联,所述任务相关参数包括数据写入任务的数量、数据写入任务对应的任务标识和每份数据对应的数据标识信息;所述任务非相关参数和所述一组任务的特征无关联,所述至少两个数据写入任务的任务非相关参数相同,所述任务非相关参数包括偏序初始值和步长值。
2.根据权利要求1所述的方法,其中:
所述偏序参数由所述数据写入任务从所述控制节点和/或共享存储获得,所述共享存储可由所述数据写入任务访问。
3.根据权利要求2所述的方法,其中:
所述偏序参数包括所述任务相关参数和所述任务非相关参数;
所述偏序参数由所述数据写入任务从所述控制节点和/或共享存储获得,包括:
所述数据写入任务从所述控制节点获取任务相关参数,所述数据写入任务从所述共享存储获取任务非相关参数;或
所述数据写入任务从所述共享存储获取任务相关参数和任务非相关参数;或
所述数据写入任务从所述控制节点获取任务相关参数和任务非相关参数。
4.根据权利要求2所述的方法,其中,所述任务相关参数包括所述一组任务中数据写入任务的数量,以及每个数据写入任务分别对应的任务标识。
5.根据权利要求4所述的方法,其中,所述至少两个数据写入任务分别基于对应的偏序参数,分别生成至少一个偏序值,包括:
第一数据写入任务在写入第一份数据时,基于所述任务非相关参数、数据写入任务的数量、第一数据写入任务对应的任务标识、以及第一份数据在第一数据写入任务对应的至少一份数据中的数据标识信息,生成与第一份数据对应的偏序值;以及
所述方法还包括:所述第一数据写入任务基于与所述第一份数据对应的偏序值,完成所述第一份数据的写入操作。
6.根据权利要求2所述的方法,其中,所述方法还包括:
所述数据写入任务在完成对应的数据写入操作后,分别将生成的至少一个偏序值中最大的偏序值发送至所述共享存储,
其中,所述共享存储能够基于获得的偏序值对存储的任务非相关参数进行更新。
7.一种分布式数据库的处理装置,包括:
偏序参数获取模块,用于使至少两个数据写入任务分别获取偏序参数,其中,所述至少两个数据写入任务为针对所述分布式数据库的任务,每个数据写入任务包括至少一份数据的写入,不同数据写入任务的偏序参数不同;以及
偏序值生成模块,用于使所述至少两个数据写入任务分别基于对应的偏序参数,分别生成至少一个偏序值,以基于生成的所述至少一个偏序值,执行所述至少一份数据的写入操作,其中,所述至少两个数据写入任务中一份数据对应一个偏序值,不同份数据对应不同的偏序值;
其中,所述至少两个数据写入任务为所述分布式数据库的控制节点触发的一组任务;所述偏序参数与任务相关参数及任务非相关参数具有关联关系,其中,所述任务相关参数和所述一组任务的特征相关联,所述任务相关参数包括数据写入任务的数量、数据写入任务对应的任务标识和每份数据对应的数据标识信息;所述任务非相关参数和所述一组任务的特征无关联,所述至少两个数据写入任务的任务非相关参数相同,所述任务非相关参数包括偏序初始值和步长值。
8.根据权利要求7所述的装置,其中:
所述偏序参数由所述数据写入任务从所述控制节点和/或共享存储获得,所述共享存储可由所述数据写入任务访问。
9.根据权利要求8所述的装置,其中:
所述偏序参数包括所述任务相关参数和所述任务非相关参数,所述任务相关参数包括所述一组任务中数据写入任务的数量,以及每个数据写入任务分别对应的任务标识;
所述偏序值生成模块,用于在第一数据写入任务写入第一份数据时,基于所述任务非相关参数、数据写入任务的数量、第一数据写入任务对应的任务标识、以及第一份数据在第一数据写入任务对应的至少一份数据中的数据标识信息,生成与第一份数据对应的偏序值;
所述装置还包括:
数据写入模块,用于基于与所述第一份数据对应的偏序值,完成所述第一份数据的写入操作;和/或
偏序值发送模块,用于在所述数据写入任务完成对应的数据写入操作后,分别将生成的至少一个偏序值中最大的偏序值发送至所述共享存储,其中,所述共享存储能够基于获得的偏序值对存储的任务非相关参数进行更新。
10.一种服务器集群,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行以下操作:
至少两个数据写入任务分别获取偏序参数,其中,所述至少两个数据写入任务为针对分布式数据库的任务,每个数据写入任务包括至少一份数据的写入,不同数据写入任务的偏序参数不同;以及
所述至少两个数据写入任务分别基于对应的偏序参数,分别生成至少一个偏序值,以基于生成的所述至少一个偏序值,执行所述至少一份数据的写入操作,其中,所述至少两个数据写入任务中一份数据对应一个偏序值,不同份数据对应不同的偏序值;
其中,所述至少两个数据写入任务为所述分布式数据库的控制节点触发的一组任务;所述偏序参数与任务相关参数及任务非相关参数具有关联关系,其中,所述任务相关参数和所述一组任务的特征相关联,所述任务相关参数包括数据写入任务的数量、数据写入任务对应的任务标识和每份数据对应的数据标识信息;所述任务非相关参数和所述一组任务的特征无关联,所述至少两个数据写入任务的任务非相关参数相同,所述任务非相关参数包括偏序初始值和步长值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811129306.1A CN109241193B (zh) | 2018-09-26 | 2018-09-26 | 分布式数据库的处理方法和装置,及服务器集群 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811129306.1A CN109241193B (zh) | 2018-09-26 | 2018-09-26 | 分布式数据库的处理方法和装置,及服务器集群 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109241193A CN109241193A (zh) | 2019-01-18 |
CN109241193B true CN109241193B (zh) | 2022-10-25 |
Family
ID=65057271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811129306.1A Active CN109241193B (zh) | 2018-09-26 | 2018-09-26 | 分布式数据库的处理方法和装置,及服务器集群 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109241193B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309805B (zh) * | 2019-12-13 | 2023-10-20 | 华为技术有限公司 | 数据库的数据读写方法及装置 |
CN111209104A (zh) * | 2020-04-21 | 2020-05-29 | 南京南软科技有限公司 | 一种异构集群下Spark应用的能量感知调度方法 |
CN111563091B (zh) * | 2020-05-09 | 2023-04-28 | 中国银行股份有限公司 | 非往返式的批量更新MongoDB的方法及系统 |
CN111680103A (zh) * | 2020-05-29 | 2020-09-18 | 成都新希望金融信息有限公司 | 一种分布式数据库自增字段产生有序唯一值的方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880705B (zh) * | 2012-09-28 | 2015-09-02 | 用友软件股份有限公司 | 数据库主键生成装置和数据库主键生成方法 |
US10157108B2 (en) * | 2014-05-27 | 2018-12-18 | International Business Machines Corporation | Multi-way, zero-copy, passive transaction log collection in distributed transaction systems |
CN107918620B (zh) * | 2016-10-10 | 2022-04-19 | 阿里巴巴集团控股有限公司 | 一种数据库的写入方法及装置、电子设备 |
US11222006B2 (en) * | 2016-12-19 | 2022-01-11 | Swirlds, Inc. | Methods and apparatus for a distributed database that enables deletion of events |
CN107247770B (zh) * | 2017-06-05 | 2021-04-13 | 广东亿迅科技有限公司 | 基于zookeeper的全局序列生成方法及装置 |
CN107454203A (zh) * | 2017-07-19 | 2017-12-08 | 成都数联铭品科技有限公司 | 在分布式系统中生成唯一id的方法 |
-
2018
- 2018-09-26 CN CN201811129306.1A patent/CN109241193B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109241193A (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109241193B (zh) | 分布式数据库的处理方法和装置,及服务器集群 | |
US11487698B2 (en) | Parameter server and method for sharing distributed deep learning parameter using the same | |
US11199969B2 (en) | Storage system interface | |
US10320625B1 (en) | Managing service deployment in a cloud computing environment | |
JP5792594B2 (ja) | 仮想パーティションを用いたデータベース再分配 | |
US8429162B1 (en) | Facilitating data redistribution in database sharding | |
US20150379050A1 (en) | Configurable-capacity time-series tables | |
US20200301882A1 (en) | Determining differences between two versions of a file directory tree structure | |
WO2015110062A1 (zh) | 一种分布式数据存储方法、装置和系统 | |
US20130254240A1 (en) | Method of processing database, database processing apparatus, computer program product | |
CN109510852B (zh) | 灰度发布的方法及装置 | |
JP2020531949A (ja) | ブロックチェーン内のデータベース・ハッシュコードの遅延更新 | |
US20210026817A1 (en) | Code generator platform for data transformation | |
US10528580B2 (en) | Method and mechanism for efficient re-distribution of in-memory columnar units in a clustered RDBMS on topology change | |
TW202044064A (zh) | 分區分裂方法、裝置、電子設備及可讀儲存媒體 | |
CN109739684B (zh) | 基于向量时钟的分布式键值数据库的副本修复方法与装置 | |
EP2778962B1 (en) | Silo-aware databases | |
US10642817B2 (en) | Index table update method, and device | |
CN107153680B (zh) | 一种分布式内存数据库在线扩展节点的方法及系统 | |
US11016947B1 (en) | Apparatus and method for recommending and maintaining analytical views | |
US11604803B2 (en) | Net change mirroring optimization across transactions in replication environment | |
CN111414422B (zh) | 一种数据分布方法、装置、设备和存储介质 | |
CN113296891A (zh) | 基于平台的多场景知识图谱处理方法及装置 | |
JP2008225686A (ja) | 分散型データ処理プラットフォームにおけるデータ配置管理装置と方法、システム及びプログラム | |
WO2018145227A1 (en) | Managing data records in object-based cloud storage systems |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |