CN105868210A - 一种分布式数据库中唯一索引的创建方法和装置 - Google Patents

一种分布式数据库中唯一索引的创建方法和装置 Download PDF

Info

Publication number
CN105868210A
CN105868210A CN201510031372.5A CN201510031372A CN105868210A CN 105868210 A CN105868210 A CN 105868210A CN 201510031372 A CN201510031372 A CN 201510031372A CN 105868210 A CN105868210 A CN 105868210A
Authority
CN
China
Prior art keywords
index
data
destination object
unique
create
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.)
Granted
Application number
CN201510031372.5A
Other languages
English (en)
Other versions
CN105868210B (zh
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.)
Beijing Oceanbase Technology Co 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 CN201510031372.5A priority Critical patent/CN105868210B/zh
Publication of CN105868210A publication Critical patent/CN105868210A/zh
Application granted granted Critical
Publication of CN105868210B publication Critical patent/CN105868210B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种分布式数据库中唯一索引的创建方法和装置,其中方法包括:接收用于请求创建唯一索引的索引创建请求,所述索引创建请求包括:待建立唯一索引的目标对象的对象信息;记录所述目标对象的对象信息,并设置所述目标对象处于可操作状态;根据所述对象信息获取目标对象,并创建对应所述目标对象的唯一索引。本发明大大提高了数据库系统的性能。

Description

一种分布式数据库中唯一索引的创建方法和装置
技术领域
本发明涉及数据库技术,特别涉及一种分布式数据库中唯一索引的创建方法和装置。
背景技术
在数据库技术中,为了提高数据查询的效率,经常需要使用到索引,索引是数据库中经常使用的用于加速数据访问的数据结构。其中,索引中的唯一索引是不允许具有相同数据的一种索引。相关技术中,数据库在建立唯一索引时,通常采用同步创建索引方式,即在为某个数据表建立唯一索引的过程中,该数据表不能再被使用。这种同步索引创建方式,在处理数据量较小的单机数据库时对数据访问影响较小,而对于分布式数据库,由于处理的数据量较大,同步创建索引导致的数据表中止提供服务,对系统性能造成很大影响,很多数据访问将无法进行,降低数据库的系统性能。
发明内容
有鉴于此,本发明提供一种分布式数据库中唯一索引的创建方法和装置,以降低唯一索引的创建对数据访问性能的影响,提高数据库系统性能。
具体地,本发明是通过如下技术方案实现的:
第一方面,提供一种分布式数据库中唯一索引的创建方法,包括:
接收用于请求创建唯一索引的索引创建请求,所述索引创建请求包括:待建立唯一索引的目标对象的对象信息;
记录所述目标对象的对象信息,并设置所述目标对象处于可操作状态;
根据所述对象信息获取目标对象,并创建对应所述目标对象的唯一索引。
第二方面,提供一种分布式数据库中唯一索引的创建装置,包括:
请求接收模块,用于接收请求创建唯一索引的索引创建请求,所述索引创建请求包括:待建立唯一索引的目标对象的对象信息;
状态管理模块,用于记录所述目标对象的对象信息,并设置所述目标对象处于可操作状态;
索引创建模块,用于根据所述对象信息获取目标对象,并创建对应所述目标对象的唯一索引。
第三方面,提供一种分布式数据库系统,包括本申请的分布式数据库中唯一索引的创建装置;其中,
所述请求接收模块,设置在所述分布式数据库系统的请求接入服务器;
所述状态管理模块,设置在所述分布式数据库系统的系统状态协调服务器;
所述索引创建模块,设置在所述分布式数据库系统的数据服务器。
本实施例通过采用异步创建唯一索引的方式,索引创建并不一定在接收到索引请求后立刻创建,时间上可以分开,使得索引的创建过程对数据表的访问操作不会造成影响,即使正在对数据表进行索引创建尚未成功,用户仍然可以对该数据表进行操作,该数据表仍然可以对外提供访问服务;这对于数据访问量较大的分布式数据库系统来说,将大大提高数据库系统的性能。
附图说明
图1是本发明实施例提供的分布式数据库中唯一索引的创建方法的流程图;
图2是本发明实施例提供的分布式数据库的系统架构;
图3是本发明实施例提供的唯一索引的创建流程;
图4是本发明实施例提供的唯一索引创建的执行时序图;
图5是本发明实施例提供的一种唯一索引的创建装置的结构框图;
图6是本发明实施例提供的另一种唯一索引的创建装置的结构框图。
具体实施方式
本申请实施例的方法用于分布式数据库中的唯一索引的创建,其中,该方法中涉及到的一些基础概念解释如下:
分布式数据库:分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取更大的存储容量和更高的并发访问量,因此分布式数据库的数据访问量通常较大。
唯一索引及唯一索引的创建:索引是数据库中经常使用的用于加速数据访问的数据结构,而其中的唯一索引是不允许具有相同数据的一种索引。示例性的,参见如下的表1,表1是数据库中存储的某个数据表:
表1数据表
学号 姓名 入学时间 班级
0001 小丽 2010.4 5
0002 小王 2010.5 5
0003 小李 2010.4 5
如上表1所示,该数据表中包括四个字段列,分别为“学号”、“姓名”、“入学时间”和“班级”,唯一索引是用于针对某个字段列建立,比如为“学号”建立唯一索引。其中,唯一索引需要建立在具有唯一性要求的字段列上,比如,“姓名”、“入学时间”这些字段列都有可能出现相同的数据,即两个人的入学时间和姓名可能会相同,但是通常“学号”是不会出现重复的,每个人都有各自对应的学号,因此这个“学号”字段列具有唯一性要求,如果出现相同数据则表示出现错误。
“唯一索引”是用于提高数据获取速度的,例如,假设“学号”字段列中包括特别多的数据(表1仅示例了三个学号),当前要从中获取某一个学号,如何从众多数据中快速查到要获取的目标学号,就需要使用唯一索引。本实施例并不限制唯一索引的具体设置方式,比如,该唯一索引可以是一种编码结构,或者还可以是一种决策树查找的数据结构,相当于限定了一种查找的策略,以使得在根据该索引查找目标数据时能够快速找到。
本申请实施例的分布式数据库中唯一索引的创建方法,重点不在于唯一索引本身的数据结构是如何创建,而是着重关注于分布式数据库在接收到唯一索引的创建请求时,如何设置索引创建时的执行顺序。参见图1所示的流程:
101、接收用于请求创建唯一索引的索引创建请求,所述索引创建请求包括:待建立唯一索引的目标对象的对象信息;
102、记录所述目标对象的对象信息,并设置所述目标对象处于可操作状态;
103、根据对象信息获取目标对象,并创建对应所述目标对象的唯一索引。
该图1的方法流程可以是分布式数据库系统执行,其中,在步骤101中,用户可以向分布式数据库发送创建唯一索引的请求,可以使用标准的SQL语句发起索引创建指令。该请求中要指明待建立唯一索引的目标对象的对象信息。仍以表1为例,目标对象即“学号”字段列,对象信息即用于表明为哪个数据表的哪个字段列建立唯一索引的信息。
在步骤102中,分布式数据库系统将记录目标对象的对象信息,即将记录下用户请求的是为哪个数据表的哪个字段列建立唯一索引,并且,还将设置所述目标对象处于可操作状态。需要说明的是,本申请实施例中,在接收到用户对唯一索引的创建请求时,只需要记录下创建索引相关的信息例如对象信息,就可以立刻将控制权返回给用户,而不需要等待至唯一索引创建成功。
上述的将控制权返回至用户的解释如下:以上述的为“学号”字段列创建唯一索引为例,传统的唯一索引创建方式中,当分布式数据库系统接收到索引创建请求时,将同步创建索引,即立刻开始为该字段列创建索引,并且目标对象是不可用的,在索引创建成功之前,包括该字段列的整个数据表都是不可用的,任何用户都不可以对该数据表再进行任何操作,相当于此时用户对该数据表是没有控制权的,只有当索引创建成功后,数据库系统才将控制权返回至用户,用户继续可以对该数据表操作。而本实施例中,数据库系统只是记录索引创建的相关信息就将控制权返回给用户,也就是说,唯一索引还未创建成功,包括该字段列的数据表就可以对外提供服务,用户就可以对该数据表进行操作。
这种在唯一索引创建成功之前就将控制权返回给用户的方式,可以称为“唯一索引的异步创建方式”,即索引创建并不一定在接收到索引请求后立刻创建,时间上可以分开,例如本实施例在步骤103中才创建对应目标对象的唯一索引。该异步创建索引的方式,使得索引的创建过程对数据表的访问操作不会造成影响,即使正在对数据表进行索引创建尚未成功,用户仍然可以对该数据表进行操作,该数据表仍然可以对外提供访问服务。对于数据访问量较大的分布式数据库系统来说,将大大提高数据库系统的性能。
如下的本申请实施例,以一个可选的分布式数据库系统为例,来说明在该分布式数据库系统中,是如何采用异步方式创建唯一索引。需要说明的是,具体实施中,分布式数据库并一定是本实施例的系统架构,其他架构的数据库也可以采用该唯一索引的异步创建方法,本实施例对此并不限制。
如图2所示,本实施例的分布式数据库系统可以包括:接入服务器21,系统状态协调服务器22以及数据服务器。本实施例中,数据服务器可以包括静态数据服务器23和写操作服务器24。其中,接入服务器21和静态数据服务器23的数量可以设置多个,系统状态协调服务器22和写操作服务器24的数量可以设置一个。各个服务器的功能说明以及该系统的工作原理如下:
接入服务器:该接入服务器用于接收用户的请求,包括数据操作请求(读或写)、索引创建请求等,并根据该请求通知数据服务器或系统状态协调服务器执行对应的处理。
静态数据服务器和写操作服务器:本实施例采用动态数据和静态数据相分离的架构,动态数据是处于变化过程中的数据,只存在于写操作服务器;静态数据是不会变化的数据,存储在静态数据服务器上;每隔一段时间,将写操作服务器上的动态数据合并在静态数据服务器的静态数据上,形成新的静态数据。
系统状态协调服务器:可以用于对该分布式数据库中的各个分布的服务器的状态进行协调,比如,通知静态数据服务器进行索引创建,或者统计各个静态数据服务器上的索引状态等。
该分布式数据库系统的工作原理简单说明如下:以用户发起写操作请求为例,当接入服务器接收到用户的写操作请求时,该请求中可能包括待操作的目标对象,比如“更新A数据表中的a字段中的数据,更新前为01,更新后为02”。其中,更新前的数据01存储在某个静态数据服务器上,接入服务器根据该请求从静态数据服务器上获取该数据01,并将数据01、更新后的数据02及写操作请求发给写操作服务器,以使得写操作服务器据此进行数据更新操作。写操作服务器可以将A数据表中的a字段中的数据01更新为02,并且,该写操作服务器还可以接收对于该数据的其他写操作请求,比如上述的02是一个用户请求的更新值,也许另一个用户请求将该数据01更新为03,又一个用户请求将该数据01更新为04,等,写操作服务器都可以获取到,并可以处理得到最新的更新数据例如是04。后续(可以是某个预定时间)静态数据服务器会向写操作服务器请求对于数据01的动态数据,相当于请求对于数据01的最新更新值,在写操作服务器将最新更新值发送至静态数据服务器后,更新生成新的静态数据即可。
基于上述的分布式数据库系统架构,如下描述该系统创建唯一索引的过程,图3示例了该唯一索引创建的流程,包括:
301、接入服务器接收到索引创建请求;
例如,用户通过SQL语句发起索引创建请求,该请求中可以包括:待建立唯一索引的目标对象的对象信息。比如,可以是对于某个数据表的某个字段建立唯一索引。接入服务器会将该请求转发给系统状态协调服务器。
302、系统状态协调服务器记录目标对象的对象信息;
例如,系统状态协调服务器会将接入服务器转发的索引创建相关的信息记录下来,比如,可以是对于某个数据表的某个字段建立唯一索引,包括了目标对象的对象信息,该对象信息即某数据表的某字段。
但是系统状态协调服务器只是记录上述信息,此时不会发起索引创建,也不会使用任何索引进行唯一性检查。此外,系统状态协调服务器可以记录唯一索引的索引状态,在该步骤中索引状态是无效状态(UA,Unavailable)。如下是一种可选的索引创建信息的记录方式:
表2索引创建表
数据表 字段 索引状态
A 学号 无效UA
303、系统状态协调服务器通知静态数据服务器执行第一次数据合并;
例如,所述的第一次数据合并,指的是需要将静态数据服务器上的静态数据与写操作服务器上的动态数据进行合并,形成新的静态数据。该第一次数据合并的时间,可以是分布式数据库系统预先设定的时间,或者是某个系统负载较小的时间,可以由系统状态协调服务器进行时间控制。数据合并是唯一索引创建的基础,唯一索引是基于合并后的新的静态数据来创建的。
当到达需要进行第一次数据合并的时间点时,系统状态协调服务器通知静态数据服务器执行第一次数据合并,告知静态数据服务器所需要创建唯一索引的目标对象的对象信息,比如某个数据表的某个字段建立唯一索引。此外,系统状态协调服务器也会通知写操作服务器第一次数据合并即将进行,则写操作服务器将等待系统中尚未完成的事务继续完成,并暂时不接受新的事务请求,待所有事务完成之后(如有长尾事务,则利用超时机制,将来不及完成的事务回滚)将当时的数据冻结并写入磁盘文件。
此外,系统状态协调服务器在通知静态数据服务器时,可以是对所有的静态数据服务器都发送通知,由各个静态数据服务器自己判断要进行索引创建的数据表的字段是否在自己的存储数据范围内。只有存储有待建立唯一索引的目标对象的静态数据服务器才执行后续的步骤,否则可以忽略协调服务器的通知。
304、静态数据服务器从所述写操作服务器获取与所述目标对象对应的第一动态数据,将第一动态数据与当前的静态数据合并成第一数据;
其中,各静态数据服务器将根据自身服务数据的范围向写操作服务器发起数据请求,并将冻结后的动态数据(第一动态数据)合入自己服务的静态数据中,进而生成新的静态数据(第一数据)。
例如,即使是某个数据表的某一个字段列,也可能是分别存储在多个静态数据服务器中,每个静态数据服务器存储该字段的一部分,比如学号0001至0005存储在第一静态数据服务器,学号0006至0008存储在第二静态数据服务器,那么各静态数据服务器将根据自己的存储范围分别向写操作服务器请求对应该数据的动态数据,并据此更新形成新的静态数据。
305、静态数据服务器根据第一数据生成第一索引,使用第一索引对所述目标对象进行唯一性检查;
例如,在更新成新的静态数据后,各个静态数据服务器将根据自己存储的静态数据(第一数据)创建唯一索引(第一索引),比如,第一静态数据服务器在得到自己存储的学号的最新静态数据后,创建用于查找任一学号的唯一索引。由于创建该索引的过程完全基于静态数据和已经冻结的动态数据,过程中不会发生任何的数据变动,创建过程无需涉及写操作服务器,整个系统同时也可对外继续提供服务,即写操作服务器仍然可以继续接收针对目标对象的新的动态数据,用户对目标对象数据表仍然可以进行访问和操作。
此外,静态数据服务器在创建第一索引后,还可以设定该唯一索引的状态为未创建成功但可用状态(UC+REJECT),并且,静态数据服务器可以将该索引状态通知系统协调服务器,使得系统协调服务器将自己保存的索引状态进行更改。如果目标对象分布存储在多个静态数据服务器上,各个静态数据服务器都向系统协调服务器通知自己创建的对应对象的唯一索引的状态,只有当所有静态数据服务器都创建唯一索引成功时,协调服务器才确定唯一索引创建成功。
静态数据服务器在创建唯一索引后,可以使用该唯一索引对目标对象进行唯一性检查。例如,假设接入服务器接收到对目标对象的写请求,如上面提到过的,接入服务器需要从静态数据服务器获取对应的静态数据发给写操作服务器,静态数据服务器是能够获知写请求对应的目标对象的,其可以在返回至接入服务器之前,就使用创建的处于(UC+REJECT)状态的唯一索引进行唯一性检查。如果静态数据服务器发现写请求的数据与当前的静态数据发生了唯一性冲突,例如服务器可以使用已经创建的唯一索引判断该写请求的数据更新值是否已经存在,如果存在则表明发生唯一性冲突,服务器就可以通知接入服务器拒绝该写请求。但是也有可能出现在写请求时未发生冲突,而在后续动态数据和静态数据合并后发生冲突的情况,或者其他原因导致的在写请求时的冲突未被检测到,这种冲突就需要等待后续在第二次数据合并时进行唯一索引的创建更新时进行解决,继续参见后续步骤。
此外,正是由于在第一索引的创建过程中,目标对象仍然处于可操作状态,能够对外提供服务,可能会出现在第一索引的创建中即第一次数据合并期间写操作服务器获取了一些可能发生唯一性冲突的数据。参见图4所示,示例了唯一索引创建的执行时序图,其中,第一索引的创建过程中写操作服务器上获取的新的动态数据用delta表示,因为,第一索引创建开始时,从写操作服务器上获取了动态数据的冻结数据,并基于该冻结数据和静态数据的合并创建第一索引,而写操作服务器还可以继续获取新的动态数据,所以delta数据是否会造成唯一性冲突可以在第二次数据合并期间即第二索引的生成过程中检查。
306、静态数据服务器创建第一索引之后,继续创建第二索引,从写操作服务器获取第一索引的生成过程中的第二动态数据,将第二动态数据和第一数据合并生成第二数据,并根据第二数据生成第二索引,用第二索引替换第一索引。
例如,当系统状态协调服务器确定第二索引的建立时间到达时,可以通知静态数据服务器开始进行第二次数据合并。静态数据服务器接收到通知后,执行与第一次数据合并类似的过程,不再详述,比如,静态数据服务器会向写操作服务器请求在第一次数据合并期间获取到的与目标对象对应的动态数据,写操作服务器将冻结的该动态数据发送给静态数据服务器。静态数据服务器进行动静数据的合并后,更新之前创建的唯一索引,将本次合并后的更新数据加入到该索引中,并且在更新索引时进行唯一性冲突检查。如果未发生唯一性冲突,则此时表明唯一索引创建成功,更新后的索引可以称为第二索引,更改唯一索引的状态为创建成功(A,Available);否则,确定本服务器上的唯一索引创建失败,将索引状态变更为创建失败(failed),静态数据服务器还通知系统状态协调服务器更新本服务器对应的索引状态。
如果唯一索引创建成功,后续静态数据服务器将根据最新的唯一索引进行唯一性检查。此外,需要说明的是,在第二次数据合并及第二索引的创建过程中,只需要获取delta数据即可,因为在第一索引创建结束之前,索引的状态还是无效状态,参见图4的示例,因此delta数据是无法进行唯一性检查的;而第一索引创建结束后,尽管由于delta数据还未确定是否有冲突导致唯一索引还不能被认为创建成功,但是此时唯一索引可以用于后续的唯一性检查,即从第一索引创建结束至第二索引创建结束,都可以使用该第一索引进行检查,因此可以只需要确定delta数据是否有冲突即可。可以看到,唯一索引的状态可以据此确定是否可以使用该索引进行唯一性检查,如果索引处于创建成功状态或者未创建成功但可用状态时,可以使用唯一索引对所述目标对象进行唯一性检查。
进一步的,在上述的例子中,系统状态协调服务器可以是在预设时间点发起数据合并的,通知静态数据服务器开始创建索引;但本实施例并不严格限制两次数据合并的执行时间,比如可以每天进行一次,第一天进行第一次数据合并,第二天进行第二次数据合并,作为分布式数据库系统的日常过程。或者,如果用户希望加速唯一索引的创建,还可以主动发起,比如用户可以在自己希望的时间发起索引创建的指示,当接入服务器接收到该索引创建指示时,将该指示转发至系统状态协调服务器,系统状态协调服务器再据此通知静态数据服务器开始进行数据合并及索引创建过程。
上述实施例的唯一索引的创建方法,使得通过两次数据合并和索引创建的过程,实现了唯一索引的创建,并且该异步创建方式不影响数据库系统继续提供对外服务,大大提高了数据库系统的性能。此外,系统状态协调服务器保存该唯一索引的创建状态,使得用户连接无需保存任何相关状态,用户与数据库系统的连接或退出对索引创建过程不会影响,由于协调服务器保存了索引创建的状态,可以根据该状态继续完成唯一索引的创建。
为了实现上述的唯一索引的创建方法,本申请实施例还提供了一种唯一索引的创建装置,该装置例如可以是通过逻辑指令的形式实现,由分布式数据库系统的处理器调用并执行该逻辑指令来实现上述的唯一索引的创建方法。参见图5,示例了该唯一索引的创建装置的结构,该装置可以包括:请求接收模块51、状态管理模块52和索引创建模块53;其中,
请求接收模块51,用于接收请求创建唯一索引的索引创建请求,所述索引创建请求包括:待建立唯一索引的目标对象的对象信息;
状态管理模块52,用于记录所述目标对象的对象信息,并设置所述目标对象处于可操作状态;
索引创建模块53,用于根据所述对象信息获取目标对象,并创建对应所述目标对象的唯一索引。
进一步的,索引创建模块53具体用于:创建第一索引,包括:获取与所述目标对象对应的第一数据,所述第一数据包括当前的静态数据和第一动态数据;根据所述第一数据生成第一索引,使用所述第一索引对所述目标对象进行唯一性检查;在创建第一索引之后,继续创建第二索引,包括:获取所述第一索引的生成过程中获得的第二动态数据,将所述第二动态数据和第一数据合并生成第二数据,并根据所述第二数据生成第二索引,用第二索引替换所述第一索引。
进一步的,状态管理模块52,还用于在所述记录所述目标对象的对象信息之后,记录所述目标对象对应的唯一索引的索引状态,所述索引状态包括:无效状态、未创建成功但可用状态、创建成功状态。
进一步的,该装置还可以包括:创建触发模块54,用于在预设时间点或者在接收到索引创建指示时,通知所述索引创建模块创建唯一索引。
以图2所示的分布式数据库系统为例,该系统可以包括图5或图6所示的唯一索引的创建装置。例如,该装置中的请求接收模块51可以设置在所述分布式数据库系统的请求接入服务器21上,状态管理模块52可以设置在所述分布式数据库系统的系统状态协调服务器22,索引创建模块53可以设置在所述分布式数据库系统的数据服务器上。
当数据服务器包括静态数据服务器和写操作服务器时,索引创建模块53可以是设置在静态数据服务器上。此外,创建触发模块54可以设置在所述分布式数据库系统的系统状态协调服务器22上。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (12)

1.一种分布式数据库中唯一索引的创建方法,其特征在于,包括:
接收用于请求创建唯一索引的索引创建请求,所述索引创建请求包括:待建立唯一索引的目标对象的对象信息;
记录所述目标对象的对象信息,并设置所述目标对象处于可操作状态;
根据所述对象信息获取目标对象,并创建对应所述目标对象的唯一索引。
2.根据权利要求1所述的方法,其特征在于,所述创建对应所述目标对象的唯一索引,包括:
在创建所述唯一索引的过程中,若发现所述目标对象包括发生唯一性冲突的数据,则确认唯一索引创建失败;否则,确认唯一索引创建成功。
3.根据权利要求1所述的方法,其特征在于,所述根据所述对象信息获取目标对象,并创建对应所述目标对象的唯一索引,包括:
创建第一索引,包括:获取与所述目标对象对应的第一数据,所述第一数据包括当前的静态数据和第一动态数据;根据所述第一数据生成第一索引,使用所述第一索引对所述目标对象进行唯一性检查;
在创建第一索引之后,继续创建第二索引,包括:获取所述第一索引的生成过程中获得的第二动态数据,将所述第二动态数据和第一数据合并生成第二数据,并根据所述第二数据生成第二索引,用第二索引替换所述第一索引。
4.根据权利要求3所述的方法,其特征在于,所述创建第一索引或第二索引,是在预设时间点开始创建,或者在接收到索引创建指示时进行创建。
5.根据权利要求1所述的方法,其特征在于,在所述记录所述目标对象的对象信息之后,还包括:
记录所述目标对象对应的唯一索引的索引状态,所述索引状态包括:无效状态、未创建成功但可用状态、创建成功状态;
在所述索引状态为创建成功状态或者未创建成功但可用状态时,使用所述唯一索引对所述目标对象进行唯一性检查。
6.一种分布式数据库中唯一索引的创建装置,其特征在于,包括:
请求接收模块,用于接收请求创建唯一索引的索引创建请求,所述索引创建请求包括:待建立唯一索引的目标对象的对象信息;
状态管理模块,用于记录所述目标对象的对象信息,并设置所述目标对象处于可操作状态;
索引创建模块,用于根据所述对象信息获取目标对象,并创建对应所述目标对象的唯一索引。
7.根据权利要求6所述的装置,其特征在于,所述索引创建模块具体用于:
创建第一索引,包括:获取与所述目标对象对应的第一数据,所述第一数据包括当前的静态数据和第一动态数据;根据所述第一数据生成第一索引,使用所述第一索引对所述目标对象进行唯一性检查;
在创建第一索引之后,继续创建第二索引,包括:获取所述第一索引的生成过程中获得的第二动态数据,将所述第二动态数据和第一数据合并生成第二数据,并根据所述第二数据生成第二索引,用第二索引替换所述第一索引。
8.根据权利要求7所述的装置,其特征在于,还包括:
创建触发模块,用于在预设时间点或者在接收到索引创建指示时,通知所述索引创建模块创建唯一索引。
9.根据权利要求6所述的装置,其特征在于,
所述状态管理模块,还用于在所述记录所述目标对象的对象信息之后,记录所述目标对象对应的唯一索引的索引状态,所述索引状态包括:无效状态、未创建成功但可用状态、创建成功状态。
10.一种分布式数据库系统,其特征在于,包括权利要求6所述的分布式数据库中唯一索引的创建装置;其中,
所述请求接收模块,设置在所述分布式数据库系统的请求接入服务器;
所述状态管理模块,设置在所述分布式数据库系统的系统状态协调服务器;
所述索引创建模块,设置在所述分布式数据库系统的数据服务器。
11.根据权利要求10所述的系统,其特征在于,所述数据服务器包括:静态数据服务器和写操作服务器;
所述静态数据服务器,用于:
在创建第一索引时,从所述写操作服务器获取与所述目标对象对应的第一动态数据,将第一动态数据与当前的静态数据合并成第一数据;根据所述第一数据生成第一索引,使用所述第一索引对所述目标对象进行唯一性检查;
在创建第一索引之后,继续创建第二索引时,从所述写操作服务器获取第一索引的生成过程中获得的第二动态数据,将第二动态数据和第一数据合并生成第二数据,并根据第二数据生成第二索引,用第二索引替换所述第一索引。
12.根据权利要求10所述的系统,其特征在于,还包括:
创建触发模块,设置在所述系统状态协调服务器上,用于在预设时间点或者在接收到索引创建指示时,通知所述索引创建模块创建唯一索引。
CN201510031372.5A 2015-01-21 2015-01-21 一种分布式数据库中唯一索引的创建方法和装置 Active CN105868210B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510031372.5A CN105868210B (zh) 2015-01-21 2015-01-21 一种分布式数据库中唯一索引的创建方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510031372.5A CN105868210B (zh) 2015-01-21 2015-01-21 一种分布式数据库中唯一索引的创建方法和装置

Publications (2)

Publication Number Publication Date
CN105868210A true CN105868210A (zh) 2016-08-17
CN105868210B CN105868210B (zh) 2019-07-19

Family

ID=56623100

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510031372.5A Active CN105868210B (zh) 2015-01-21 2015-01-21 一种分布式数据库中唯一索引的创建方法和装置

Country Status (1)

Country Link
CN (1) CN105868210B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255867A (zh) * 2016-12-29 2018-07-06 北京国双科技有限公司 唯一标识处理方法及装置
CN108984639A (zh) * 2018-06-22 2018-12-11 联想(北京)有限公司 服务器集群的数据处理方法和装置
CN110874383A (zh) * 2018-08-30 2020-03-10 阿里巴巴集团控股有限公司 数据处理方法、装置及电子设备
CN112148725A (zh) * 2019-06-26 2020-12-29 中兴通讯股份有限公司 一种实现全局唯一索引的方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040210582A1 (en) * 2002-04-08 2004-10-21 Oracle International Corporation Method and mechanism for managing and accessing static and dynamic data
CN101382949A (zh) * 2008-10-28 2009-03-11 阿里巴巴集团控股有限公司 一种数据库表的管理方法及装置
US8352408B2 (en) * 2008-01-07 2013-01-08 Quantum Group, Inc. System and methods for providing integrated wellness assessment
CN103186622A (zh) * 2011-12-30 2013-07-03 北大方正集团有限公司 一种全文检索系统中索引信息的更新方法以及装置
CN103631937A (zh) * 2013-12-06 2014-03-12 北京趣拿信息技术有限公司 构建列存储索引的方法、装置及系统
CN103914458A (zh) * 2012-12-29 2014-07-09 中国移动通信集团河北有限公司 一种海量数据迁移的方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040210582A1 (en) * 2002-04-08 2004-10-21 Oracle International Corporation Method and mechanism for managing and accessing static and dynamic data
US8352408B2 (en) * 2008-01-07 2013-01-08 Quantum Group, Inc. System and methods for providing integrated wellness assessment
CN101382949A (zh) * 2008-10-28 2009-03-11 阿里巴巴集团控股有限公司 一种数据库表的管理方法及装置
CN103186622A (zh) * 2011-12-30 2013-07-03 北大方正集团有限公司 一种全文检索系统中索引信息的更新方法以及装置
CN103914458A (zh) * 2012-12-29 2014-07-09 中国移动通信集团河北有限公司 一种海量数据迁移的方法及装置
CN103631937A (zh) * 2013-12-06 2014-03-12 北京趣拿信息技术有限公司 构建列存储索引的方法、装置及系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255867A (zh) * 2016-12-29 2018-07-06 北京国双科技有限公司 唯一标识处理方法及装置
CN108984639A (zh) * 2018-06-22 2018-12-11 联想(北京)有限公司 服务器集群的数据处理方法和装置
CN108984639B (zh) * 2018-06-22 2021-12-24 联想(北京)有限公司 服务器集群的数据处理方法和装置
CN110874383A (zh) * 2018-08-30 2020-03-10 阿里巴巴集团控股有限公司 数据处理方法、装置及电子设备
CN110874383B (zh) * 2018-08-30 2023-05-05 阿里云计算有限公司 数据处理方法、装置及电子设备
CN112148725A (zh) * 2019-06-26 2020-12-29 中兴通讯股份有限公司 一种实现全局唯一索引的方法及装置
WO2020258965A1 (zh) * 2019-06-26 2020-12-30 中兴通讯股份有限公司 一种实现全局唯一索引的方法及装置
US11880367B2 (en) 2019-06-26 2024-01-23 Xi'an Zhongxing New Software Co., Ltd. Method and apparatus for realizing globally unique index

Also Published As

Publication number Publication date
CN105868210B (zh) 2019-07-19

Similar Documents

Publication Publication Date Title
CN103678556B (zh) 列式数据库处理的方法和处理设备
US9348641B2 (en) System and method for performing a transaction in a massively parallel processing database
CN111881223B (zh) 数据管理方法、设备、系统及存储介质
US20150120645A1 (en) System and Method for Creating a Distributed Transaction Manager Supporting Repeatable Read Isolation level in a MPP Database
US20130212131A1 (en) Symbolic hyper-graph database
CN108804234B (zh) 数据存储系统及其操作方法
US8812492B2 (en) Automatic and dynamic design of cache groups
CN107870954B (zh) 一种分布式数据库的扩展方法及装置
WO2021184761A1 (zh) 数据访问方法和装置、数据存储方法和装置
US20160239529A1 (en) Methods and systems of splitting database indexes and digests
CN104008199B (zh) 一种数据查询方法
CN107689977B (zh) 分布式缓存和推送的路由方法及其系统
CN105868210A (zh) 一种分布式数据库中唯一索引的创建方法和装置
CN112162846B (zh) 事务处理方法、设备及计算机可读存储介质
US11150996B2 (en) Method for optimizing index, master database node and subscriber database node
CN110727693A (zh) 访问异构数据库的方法、装置、设备、插件及存储介质
US10776352B2 (en) Generic query language for data stores
US20080270352A1 (en) Modifying entry names in directory server
CN111897824A (zh) 数据操作方法、装置、设备和存储介质
CN106796588B (zh) 索引表的更新方法和设备
CN112632116B (zh) 一种k-db数据库多节点集群调度的方法、系统、设备及介质
CN116701413A (zh) 主数据处理方法及装置
US8694559B2 (en) Using database content for multiple business data systems connected to one database
US20040236744A1 (en) Method for ensuring referential integrity in highly concurrent datbase environments
CN106815318A (zh) 一种时序数据库的集群化方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210219

Address after: 801-10, Section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Ant financial (Hangzhou) Network Technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Innovative advanced technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210908

Address after: 100020 unit 02, 901, floor 9, unit 1, building 1, No.1, East Third Ring Middle Road, Chaoyang District, Beijing

Patentee after: Beijing Aoxing Beisi Technology Co.,Ltd.

Address before: 801-10, Section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province 310000

Patentee before: Ant financial (Hangzhou) Network Technology Co.,Ltd.