[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN107528816B - 分布式数据库中id的处理方法、管理系统及服务器 - Google Patents

分布式数据库中id的处理方法、管理系统及服务器 Download PDF

Info

Publication number
CN107528816B
CN107528816B CN201610458012.8A CN201610458012A CN107528816B CN 107528816 B CN107528816 B CN 107528816B CN 201610458012 A CN201610458012 A CN 201610458012A CN 107528816 B CN107528816 B CN 107528816B
Authority
CN
China
Prior art keywords
information
module
session
distributed database
server
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
Application number
CN201610458012.8A
Other languages
English (en)
Other versions
CN107528816A (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.)
ZTE Corp
China Citic Bank Corp Ltd
Original Assignee
ZTE Corp
China Citic Bank Corp 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 ZTE Corp, China Citic Bank Corp Ltd filed Critical ZTE Corp
Priority to CN201610458012.8A priority Critical patent/CN107528816B/zh
Priority to PCT/CN2017/087096 priority patent/WO2017219848A1/zh
Publication of CN107528816A publication Critical patent/CN107528816A/zh
Application granted granted Critical
Publication of CN107528816B publication Critical patent/CN107528816B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种分布式数据库中的ID处理方法,包括:根据客户端的ID需求信息向ID服务器发送ID生成请求,其中,上述ID需求信息包括会话标识信息、ID数量信息;接收上述ID服务器返回的N个ID,其中,N为整数且大于上述ID数量信息中的数量值;根据上述会话标识信息将上述N个ID缓存到与会话标识信息对应的会话区。使得在相应的会话区中会缓存有一定数量的预取ID,减少了ID申请的频次,从而在较大程度上降低了对分布式数据库系统的性能消耗。

Description

分布式数据库中ID的处理方法、管理系统及服务器
技术领域
本发明涉及分布式数据库领域,尤其涉及分布式数据库中ID的处理方法、管理系统及服务器。
背景技术
随着传统的数据库技术日趋成熟,以及互联网应用的高速发展,数据库应用已普遍出现在互联网之上。而传统的集中式数据库系统同时也表现出其不足之处:采用集中式管理,势必造成性能瓶颈,单一的提高硬件性能已不能满足目前互联网的大数据量高并发查询写入的需求,同时会产生大量的硬件维护和升级费用。此外,数据库的集中管理往往造成多数据库关联,一旦某一台数据库崩溃,将造成整个系统崩溃。所以分布式数据库系统的发展呈不可阻挡之势。
分布式数据库中各局部数据库应满足集中式数据库的一致性、可串行性和可恢复性,除此以外还应保证数据库的全局一致性、并行操作的可串行性和系统的全局可恢复性,这些都离不开全局唯一标识符(IDentifier,简称为ID)。而在相关技术中,全局唯一ID的生成方式会让分布式数据库系统及ID服务器存在一定的性能瓶颈,比如,当客户端发出一条ID申请时,分布式数据库管理系统就需要将该申请送达到ID服务器,ID服务器生成了对应的ID后再由分布式数据库管理系统分配给客户端。而随着业务量的不断增加以及高峰时段的高并发现象不断出现,这样的ID处理方式会让分布式数据库系统存在由于频繁的ID申请而导致其性能受到影响的问题。
发明内容
为了解决相关技术中分布式数据库系统性能受到影响的问题,本发明提供了一种分布式数据库中ID的处理方法、管理系统及服务器,以至少解决上述问题。
根据本发明的一个方面,提供了一种分布式数据库中标识符ID的处理方法,包括:根据客户端的ID需求信息向ID服务器发送ID生成请求,其中,上述ID需求信息包括会话标识信息、ID数量信息;接收上述ID服务器返回的N个ID,其中,N为整数且大于上述ID数量信息中的数量值;根据上述会话标识信息将上述N个ID缓存到与会话标识信息对应的会话区。
可选地,在根据客户端的ID需求信息向ID服务器发送ID生成请求之前,还包括:根据上述ID需求信息,在与会话标识信息对应的会话区中查询是否存在满足需求的ID;若存在,则将上述ID分配给客户端。
可选地,将上述ID分配给客户端之后,还包括:对会话区中缓存的ID信息进行更新。
可选地,在会话结束的情况下,该方法还包括:在会话区中存在未使用的ID时,向ID服务器发送回收通知消息,其中,上述回收通知消息包括未使用的ID信息。
根据本发明的另一个方面,还提供了一种分布式数据库中标识符ID的处理方法,包括:接收分布式数据库管理系统发送的ID生成请求,其中,上述ID生成请求包括ID数量信息;根据上述ID生成请求查询ID存储表中是否存在可用ID;若存在,则将上述可用ID返回到分布式数据库管理系统;其中,上述可用ID为在将上述N个ID缓存到与会话标识信息对应的会话区且未使用的情况下,回写到ID存储表中的。
可选地,根据上述ID生成请求查询ID存储表中是否存在可用ID之后,还包括:若不存在,则根据上述ID生成请求生成对应的ID;将上述ID返回到分布式数据库管理系统。
可选地,在会话结束的情况下,该方法还包括:接收分布式数据库管理系统发送的回收通知消息,其中,上述回收通知消息包括未使用的ID信息;根据上述回收通知消息,将未使用的ID回写到ID存储表中。
可选地,将未使用的ID回写到ID存储表中,包括:根据上述回收通知消息查询是否存在与未使用的ID相匹配的队列;若存在,则将未使用的ID回写到所述队列中;若不存在,则在上述ID存储表中新建一个队列并将未使用的ID回写到新建的队列中。
可选地,上述ID为顺序生成的序列值。
根据本发明的再一个方面,提供了一种分布式数据库管理系统,包括:控制模块,用于根据客户端的ID需求信息向ID服务器发送ID生成请求,其中,上述ID需求信息包括会话标识信息、ID数量信息;接收模块,用于接收ID服务器返回的N个ID,其中,N为整数且大于ID数量信息中的数量值;缓存模块,用于根据会话标识信息将上述N个ID缓存到与会话标识信息对应的会话区。
可选地,该系统还包括:查询模块,用于在根据客户端的ID需求信息向ID服务器发送ID生成请求之前,根据上述ID需求信息,在与会话标识信息对应的会话区中查询是否存在满足需求的ID;分配模块,用于将上述满足需求的ID分配给客户端。
可选地,该系统还包括:更新模块,用于在分配模块将满足需求的ID分配给客户端之后,对会话区中缓存的ID信息进行更新。
可选地,该系统还包括:回收通知模块,用于在会话结束且会话区中存在未使用的ID时,向ID服务器发送回收通知消息,其中,上述回收通知消息包括未使用的ID信息。
根据本发明的还一个方面,还提供了一种ID服务器,包括:
接收请求模块,用于接收分布式数据库管理系统发送的ID生成请求,其中,上述ID生成请求包括ID数量信息;预检模块,根据上述ID生成请求查询ID存储表中是否存在可用ID;反馈模块,用于在ID存储表中存在可用ID时,将可用ID返回到分布式数据库管理系统;其中,上述可用ID是在将上述N个ID缓存到与会话标识信息对应的会话区且未使用的情况下,回写到ID存储表中的。
可选地,该服务器还包括:生成模块,用于在ID存储表中不存在可用ID时,根据上述ID生成请求生成对应的ID;反馈模块,还用于将上述ID返回到分布式数据库管理系统。
可选地,该服务器还包括:回收监听模块,用于在会话结束的情况下,接收分布式数据库管理系统发送的回收通知消息,其中,上述回收通知消息包括未使用的ID信息;回写模块,用于根据上述回收通知消息,将未使用的ID回写到ID存储表中。
可选地,回写模块还包括:匹配单元,用于根据上述回收通知消息查询ID存储表中ID是否存在与未使用的ID相匹配的队列;回写单元,用于在存在与未使用的ID相匹配的队列时,将未使用的ID回写到该队列中;当不存在与未使用的ID相匹配的队列时,匹配单元还用于在ID存储表中新建一个队列,回写单元还用于将未使用的ID回写到新建的队列中。
可选地,上述ID为顺序生成的序列值。
通过本发明,根据客户端的ID需求信息向ID服务器发送ID生成请求,其中,上述ID需求信息包括会话标识信息、ID数量信息;接收上述ID服务器返回的N个ID,其中,N为整数且大于上述ID数量信息中的数量值;根据上述会话标识信息将上述N个ID缓存到与会话标识信息对应的会话区。使得在相应的会话区中会缓存有一定数量的预取ID,减少了ID申请的频次,从而在较大程度上降低了对分布式数据库系统的性能消耗。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的分布式数据库中的ID处理方法流程图一;
图2是根据本发明实施例的分布式数据库中的ID处理方法流程图二;
图3是根据本发明实施例的分布式数据库系统与ID服务器组网架构示意图;
图4是根据本发明实施例的分布式数据库管理系统结构框图一;
图5是根据本发明实施例的分布式数据库管理系统结构框图二;
图6是根据本发明实施例的ID服务器结构框图一;
图7是根据本发明实施例的ID服务器结构框图二;
图8是根据本发明实施例一的ID生成流程示意图;
图9是根据本发明实施例二的ID申请流程示意图;
图10是根据本发明实施例三的ID回收流程示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明实施例提供了一种分布式数据库中的ID处理方法,图1是根据本发明实施例的分布式数据库中的ID处理方法流程图一,如图1所示,该方法包括:
S102,根据客户端的ID需求信息向ID服务器发送ID生成请求,其中,客户端的ID需求信息中包括会话标识信息和ID数量信息,客户端的数量没有限制;
而该会话标识信息和ID数量信息既可以是客户端在向分布式数据库管理系统发送ID申请时携带的,也可以是分布式数据库管理系统在根据上述ID申请向ID服务器发送ID生成请求时添加的。
S104,接收上述ID服务器返回的N个ID,其中,N为整数且大于上述ID数量信息中的数量值;
在本步骤中,又区分为两种情况:第一,分布式数据库管理系统获知客户端实际需求的ID数量后,比如该数量为10个,则向ID服务器申请10个ID,但是ID服务器返回100个ID;第二,分布式数据库管理系统获知客户端实际需求的ID数量后,比如该数量为10个,则向ID服务器申请100个ID,而ID服务器正好返回100个ID。
S106,根据上述会话标识信息将上述N个ID缓存到与会话标识信息对应的会话区;上述与会话标识信息对应的会话区,也即与提出ID申请的客户端向匹配的会话区,该会话区在分布式数据库系统一侧,其中,上述分布式数据库系统包含上述分布式数据库管理系统。
当上述N个ID缓存到该会话区之后,有多种方式可以使客户端获得需要的ID,比如该客户端可以在主动检测到上述会话区中的ID或者收到相关通知消息后主动到会话区中获取该客户端所需要的ID;还可以由分布式数据库管理系统按照客户端需要的ID个数进行分配。满足该客户端的需求后,剩余的ID将会作为预取ID继续缓存在该会话区中,等待下次需要时再进行分配。
通过本发明实施例,根据客户端的ID需求信息向ID服务器发送ID生成请求,其中,上述ID需求信息包括会话标识信息、ID数量信息;接收上述ID服务器返回的N个ID,其中,N为整数且大于上述ID数量信息中的数量值;根据上述会话标识信息将上述N个ID缓存到与会话标识信息对应的会话区。使得在相应的会话区中会缓存有一定数量的预取ID,减少了ID申请的频次,从而在较大程度上降低了对分布式数据库系统的性能消耗。
在本发明的一个实施方式中,在步骤S102之前,即在根据客户端的ID需求信息向ID服务器发送ID生成请求之前,还可以选择先根据上述ID需求信息,在与会话标识信息对应的会话区中查询是否存在满足需求的ID。本实施方式中与会话标识信息对应的会话区,即是指与该客户端向匹配的会话区,一般处于当前链接状态,该会话区在分布式数据库系统一侧。
当查询到存在满足需求的ID时,就直接将该ID分配给客户端使用。
在未查询到满足需求的ID时,再启动上述S102步骤。
在本发明的一个实施方式中,当在会话区中查询到存在满足需求的ID时,就直接将该ID分配给客户端使用。而且对该会话区进行更新,具体的,对该会话区中的ID信息进行更新,对于已经分配使用的ID不再保留或者打上标记。
在本发明的一个实施方式中,当一个会话结束时,如果在该会话区中还缓存有未使用的ID,则分布式数据库管理系统就向ID服务器发送回收通知消息,通知ID服务器对未使用的ID进行回收,以免造成ID浪费;尤其是当ID为连续的序列值时,可以避免出现序列空洞现象。其中,上述的回收通知消息中包含有已申请但未使用ID的相关信息。
本发明实施例还提供了一种分布式数据库中的ID处理方法,图2是根据本发明实施例的分布式数据库中的ID处理方法流程图二,如图2所示,该方法包括:
S202,接收分布式数据库管理系统发送的ID生成请求,其中,上述ID生成请求包括ID数量信息;
而该ID数量信息既可以是客户端在向分布式数据库管理系统发送ID申请时携带的,也可以是分布式数据库管理系统在根据上述ID申请向ID服务器发送ID生成请求时添加的。
S204,根据上述ID生成请求查询ID存储表中是否存在可用ID;
本步骤中要查询的可用ID是指,当上述N个ID在缓存到会话区中但没有使用时,又回写到ID存储表中的那部分ID;该回写过程一般是在ID服务器收到分布式数据库管理系统发送的回收通知消息后,由ID服务器来执行的,该ID存储表是存储在ID服务器一侧,ID存储表的类型可以是多种,由生成ID的方式来决定。
S206,若ID存储表中存在可用ID,则直接将上述可用ID返回到分布式数据库管理系统,不再根据上述ID生成请求来生成ID了;其中,本实施方式中的ID优选为顺序生成的序列值,也可以是其他形式的标识符。
通过本发明实施例,接收分布式数据库管理系统发送的ID生成请求,其中,上述ID生成请求包括ID数量信息;根据上述ID生成请求查询ID存储表中是否存在可用ID;若存在,则将所述可用ID返回到所述分布式数据库管理系统;其中,所述可用ID为在将所述N个ID缓存到与所述会话标识信息对应的会话区且未使用的情况下,回写到所述ID存储表中的。使得ID服务器可以将回收的ID再重新返回给分布式数据库系统使用,避免造成ID浪费,尤其是当ID为连续的序列值时,可以避免出现序列空洞现象。
在本发明的一个实施方式中,如果根据ID生成请求查询了ID存储表之后,发现并不存在可用ID,则该ID服务器再根据该ID生成请求生成对应的ID,并将所生成的ID返回到上述分布式数据库管理系统。
其中,ID服务器所生成的ID数量既可以等于上述ID生成请求中要求的数量,也可以大于上述ID生成请求中要求的数量。
在本发明的一个实施方式中,当一个会话结束时,如果在该会话区中还缓存有未使用的ID,则分布式数据库管理系统就向ID服务器发送回收通知消息,通知ID服务器对未使用的ID进行回收;相应的,ID服务器则接收上述分布式数据库管理系统发送的回收通知消息,其中,上述的回收通知消息中包含有已申请但未使用ID的相关信息。该ID服务器根据上述回收通知消息,将未使用的ID回写到ID存储表中,以免造成ID浪费;尤其是当ID为连续的序列值时,可以避免出现序列空洞现象。
在本发明的一个实施方式中,当ID服务器收到分布式数据库管理系统发送的回收通知消息后,先查询该ID服务器的ID存储表中是否已经存在与上述未使用的ID相匹配的队列,根据查询情况区分为两种情形:第一,若存在与上述未使用的ID相匹配的队列,则将上述未使用的ID按照规则写入该队列即可;若不存在,则在该ID存储表中新建一个队列并将上述未使用的ID按照规则写入该新建的队列即可。
本发明实施例还提供了一种分布式数据库管理系统,图3是根据本发明实施例的分布式数据库系统与ID服务器组网架构示意图,其中,上述分布式数据库系统包含上述分布式数据库管理系统;图4是根据本发明实施例的分布式数据库管理系统结构框图,如图3、图4所示,该系统包括:
控制模块402,是本实施方式中分布式数据库管理系统的主控模块,当控制模块402获得客户端的ID需求信息后,即可以选择向ID服务器发送ID生成请求,其中,客户端的ID需求信息中包括会话标识信息和ID数量信息,客户端的数量没有限制;
而该会话标识信息和ID数量信息既可以是客户端在向分布式数据库管理系统发送ID申请时携带的,也可以是分布式数据库管理系统在根据上述ID申请向ID服务器发送ID生成请求时添加的。
接收模块404,是在上述ID服务器返回N个ID时执行接收任务,其中,N为整数且大于上述ID数量信息中的数量值;
接收模块404接收返回的N个ID又区分为两种情况:第一,控制模块402获知客户端实际需求的ID数量后,比如该数量为10个,则向ID服务器申请10个ID,但是ID服务器返回100个ID,接收模块404则接收该100个ID;第二,控制模块402获知客户端实际需求的ID数量后,比如该数量为10个,则向ID服务器申请100个ID,而ID服务器正好返回100个ID,接收模块404则接收该100个ID。
缓存模块406,根据上述会话标识信息将上述N个ID缓存到与会话标识信息对应的会话区;上述与会话标识信息对应的会话区,也即与提出ID申请的客户端向匹配的会话区,该会话区在分布式数据库系统一侧,其中,上述分布式数据库系统包含上述分布式数据库管理系统。
当上述N个ID缓存到该会话区之后,有多种方式可以使客户端获得需要的ID,比如该客户端可以在主动检测到上述会话区中的ID或者收到相关通知消息后主动到会话区中获取该客户端所需要的ID;还可以由分布式数据库管理系统按照客户端需要的ID个数进行分配。满足该客户端的需求后,剩余的ID将会作为预取ID继续缓存在该会话区中,等待下次需要时再进行分配。
通过本发明实施例,控制模块402根据客户端的ID需求信息向ID服务器发送ID生成请求,其中,上述ID需求信息包括会话标识信息、ID数量信息;接收模块404接收上述ID服务器返回的N个ID,其中,N为整数且大于上述ID数量信息中的数量值;缓存模块406根据上述会话标识信息将上述N个ID缓存到与会话标识信息对应的会话区。使得在相应的会话区中会缓存有一定数量的预取ID,减少了ID申请的频次,从而在较大程度上降低了对分布式数据库系统的性能消耗。
在本发明的一个实施方式中,图5是根据本发明实施例的分布式数据库管理系统结构框图二,如图3、图5所示,该系统还包括:
查询模块508,即在根据客户端的ID需求信息向ID服务器发送ID生成请求之前,该查询模块508还可以选择先根据上述ID需求信息,在与会话标识信息对应的会话区中查询是否存在满足需求的ID。本实施方式中与会话标识信息对应的会话区,即是指与该客户端向匹配的会话区,一般处于当前链接状态,该会话区在分布式数据库系统一侧。
当查询到存在满足需求的ID时,由分配模块510就直接将该ID分配给客户端使用。
在本发明的一个实施方式中,如图3、图5所示,该系统还包括:
更新模块512,当查询模块508在会话区中查询到存在满足需求的ID时,分配模块510就直接将该ID分配给客户端使用。此时由更新模块512对该会话区进行更新,具体的,对该会话区中的ID信息进行更新,更新模块512可以对已经分配使用的ID不再保留或者打上标记。
在本发明的一个实施方式中,如图3、图5所示,该系统还包括:
回收通知模块514,当一个会话结束时,如果在该会话区中还缓存有未使用的ID,则回收通知模块514就向ID服务器发送回收通知消息,通知ID服务器对未使用的ID进行回收,以免造成ID浪费;尤其是当ID为连续的序列值时,可以避免出现序列空洞现象。其中,上述的回收通知消息中包含有已申请但未使用ID的相关信息。
本发明实施例还提供了一种ID服务器,图6是根据本发明实施例的ID服务器结构框图一,如图3、图6所示,该服务器包括:
接收请求模块602,当分布式数据库管理系统发来ID生成请求,该接收请求模块602接收上述ID生成请求,其中,上述ID生成请求包括ID数量信息;而该ID数量信息既可以是客户端在向分布式数据库管理系统发送ID申请时携带的,也可以是分布式数据库管理系统在根据上述ID申请向ID服务器发送ID生成请求时添加的。
预检模块604,当接收请求模块602接收到ID生成请求后,预检模块604根据上述ID生成请求去查询ID存储表中是否存在可用ID,该ID存储表是在该ID服务器一侧;
预检模块604要查询的可用ID是指,当上述N个ID在缓存到会话区中但没有使用时,又回写到ID存储表中的那部分ID;该回写过程一般是在ID服务器收到分布式数据库管理系统发送的回收通知消息后,由ID服务器来执行的,ID存储表的类型可以是多种,由生成ID的方式来决定。
反馈模块606,若ID存储表中存在可用ID,则反馈模块606直接将上述可用ID返回到分布式数据库管理系统,该ID服务器也不再根据上述ID生成请求来生成ID了;其中,本实施方式中的ID优选为顺序生成的序列值,也可以是其他形式的标识符。
通过本发明实施例,接收请求模块602接收分布式数据库管理系统发送的ID生成请求,其中,上述ID生成请求包括ID数量信息;预检模块604根据上述ID生成请求查询ID存储表中是否存在可用ID;若存在,则反馈模块606将所述可用ID返回到所述分布式数据库管理系统;其中,所述可用ID为在将所述N个ID缓存到与所述会话标识信息对应的会话区且未使用的情况下,回写到所述ID存储表中的。使得ID服务器可以将回收的ID再重新返回给分布式数据库系统使用,避免造成ID浪费,尤其是当ID为连续的序列值时,可以避免出现序列空洞现象。
在本发明的一个实施方式中,图7是根据本发明实施例的ID服务器结构框图二,如图3、图7所示,该服务器还包括:
生成模块708,在预检模块704根据ID生成请求查询了ID存储表之后,发现并不存在可用ID,则生成模块708再根据该ID生成请求生成对应的ID,随后由反馈模块706将所生成的ID返回到上述分布式数据库管理系统。
其中,ID服务器所生成的ID数量既可以等于上述ID生成请求中要求的数量,也可以大于上述ID生成请求中要求的数量。
在本发明的一个实施方式中,如图3、图7所示,该服务器还包括:
回收监听模块710,当一个会话结束时,如果在会话区中还缓存有未使用的ID,则分布式数据库管理系统就向ID服务器发送回收通知消息,通知ID服务器对未使用的ID进行回收;相应的,ID服务器中的回收监听模块710则接收上述分布式数据库管理系统发送的回收通知消息,其中,上述的回收通知消息中包含有已申请但未使用ID的相关信息。
回写模块708,在上述回收监听模块710收到回收通知消息后,回写模块708则根据该回收通知消息将未使用的ID回写到ID存储表中,以免造成ID浪费;尤其是当ID为连续的序列值时,可以避免出现序列空洞现象。
在本发明的一个实施方式中,如图3、图7所示,该服务器中的回写模块708包括:
匹配单元7002及回写单元7004;
当ID服务器中的回收监听模块710收到分布式数据库管理系统发送的回收通知消息后,由回写模块708中的匹配单元7002先查询该ID服务器的ID存储表中是否已经存在与上述未使用的ID相匹配的队列,根据查询情况区分为两种情形:第一,若存在与上述未使用的ID相匹配的队列,则由上述回写单元7004将上述未使用的ID按照规则写入该队列即可;若不存在,则由匹配单元7002在该ID存储表中新建一个队列,回写单元7004将上述未使用的ID按照规则写入该新建的队列即可。
下面将结合附图及实施例对本发明的方法进行更详细的说明:
实施例一
图8是根据本发明实施例一的ID生成流程示意图,实施例一中的ID为顺序生成的序列值,如图3、图8所示,该ID生成流程包括:
ID服务器接收到分布式数据库管理系统发来的ID生成请求,其中,上述ID生成请求包括ID数量信息;
而该ID数量信息既可以是客户端在向分布式数据库管理系统发送ID申请时携带的,也可以是分布式数据库管理系统在根据上述ID申请向ID服务器发送ID生成请求时添加的。
ID服务器根据上述ID生成请求在本地存储的ID存储表中查询是否存在可用ID;
本步骤中要查询的可用ID是指,当上述N个ID在缓存到会话区中但没有使用时,又回写到ID存储表中的那部分ID;该回写过程一般是在ID服务器收到分布式数据库管理系统发送的回收通知消息后,由ID服务器来执行的,该ID存储表存储在ID服务器一侧,ID存储表的类型可以是多种,由生成ID的方式来决定。
若ID存储表中存在可用ID,且数量能够满足需求,则直接将上述可用ID返回到分布式数据库管理系统。
如果ID服务器根据ID生成请求查询了ID存储表之后,发现并不存在可用ID,或者可用ID的数量并不能满足需求,则该ID服务器再根据该ID生成请求按照顺序生成一定数量的序列值,该序列值通过哈希计算得到,并将所生成的序列值作为ID返回到上述分布式数据库管理系统。
其中,ID服务器所生成的序列值数量既可以等于上述ID生成请求中要求的数量,也可以大于上述ID生成请求中要求的数量。
实施例二
图9是根据本发明实施例二的ID申请流程示意图,实施例二中的ID为顺序生成的序列值,该序列值通过哈希计算得到,如图3、图9所示,该申请流程包括:
分布式数据库管理系统接收到客户端发送的ID申请并获取到客户端的需求信息,分布式数据库管理系统根据上述ID需求信息,在当前链接的会话区中查询是否存在满足需求的ID,即序列值。该会话区在分布式数据库系统一侧。
当查询到当前链接的会话区中存在可用序列值并能满足当前业务的需求时,就直接将该序列值分配给客户端使用。然后将当前链接会话区中的序列值范围进行更新,也即对该会话区中的ID信息进行更新,对于已经分配使用的序列值不再保留或者打上标记。
当查询到当前链接的会话区中不存在可用序列值,或者存在的序列值并不能满足当前业务的需求时,分布式数据库管理系统就根据客户端的ID需求信息向ID服务器发送ID生成请求,其中,客户端的ID需求信息中包括会话标识信息和ID数量信息,客户端的数量没有限制;
而该会话标识信息和ID数量信息既可以是客户端在向分布式数据库管理系统发送ID申请时携带的,也可以是分布式数据库管理系统在根据上述ID申请向ID服务器发送ID生成请求时添加的。
随后,分布式数据库管理系统接收上述ID服务器返回的N个序列值,该序列值通过哈希计算得到,其中,N为整数且大于上述ID数量信息中的数量值;
在本步骤中,又区分为两种情况:第一,分布式数据库管理系统获知客户端实际需求的ID数量后,比如该数量为10个,则向ID服务器申请10个ID,但是ID服务器返回100个ID;第二,分布式数据库管理系统获知客户端实际需求的ID数量后,比如该数量为10个,则向ID服务器申请100个ID,而ID服务器正好返回100个ID。
分布式数据库管理系统将上述N个ID缓存到当前链接的会话区,也即与提出ID申请的客户端向匹配的会话区,该会话区在分布式数据库系统一侧,其中,上述分布式数据库系统包含上述分布式数据库管理系统。
当上述N个ID缓存到该会话区之后,有多种方式可以使客户端获得需要的ID,比如该客户端可以在主动检测到上述会话区中的ID或者收到相关通知消息后主动到会话区中获取该客户端所需要的ID;还可以由分布式数据库管理系统按照客户端需要的ID个数进行分配。满足该客户端的需求后,剩余的ID将会作为预取ID继续缓存在该会话区中,等待下次需要时再进行分配。
然后,由分布式数据库管理系统将当前链接会话区中的序列值范围进行更新,也即对该会话区中的ID信息进行更新,对于已经分配使用的序列值不再保留或者打上标记。
实施例三
由于在本发明实施例中,当前链接的会话区所缓存的ID数量很可能超过了其实际需要的数量,这部分多余且未使用的ID如果在会话结束时没有归还给ID服务器,则这些ID将会在该分布式数据库系统中丢失。为了防止ID丢失所造成的浪费及可能的序列空洞现象,本发明实施例提供了解决方法。图10是根据本发明实施例三的ID回收流程示意图,实施例三中的ID为顺序生成的序列值,该序列值通过哈希计算得到,如图3、图10所示,该流程包括:
当ID服务器收到分布式数据库管理系统发送的回收通知消息后,先查询该ID服务器的ID存储表中是否已经存在与上述未使用的ID(即序列值)相匹配的队列,该ID存储表在本实施例中即为哈希表。具体地,ID服务器从回收通知消息中提取序列名称,通过该序列名称进行哈希计算生成哈希值,以该哈希值为关键字(KEY)、以存储该哈希值的链表地址为值(VALUE),在哈希表中进行查询是否存在对应的队列。
根据查询情况区分为两种情形:第一,若存在与上述未使用的ID相匹配的队列,则将上述未使用的ID按照规则写入该队列即可;具体地,根据该哈希表中序列范围的最大值对列表进行逆排序,将需要回写的序列值范围插入列表中。
若不存在,则在该ID存储表中新建一个队列并将上述未使用的ID按照规则写入该新建的队列即可。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种分布式数据库中标识符ID的处理方法,其特征在于,包括:
分布式数据库管理系统根据客户端的ID需求信息向ID服务器发送ID生成请求,其中,所述ID需求信息包括会话标识信息、ID数量信息;
接收所述ID服务器返回的N个ID,其中,N为整数且大于所述ID数量信息中的数量值;
根据所述会话标识信息将所述N个ID缓存到与所述会话标识信息对应的会话区。
2.根据权利要求1所述的方法,其特征在于,在根据客户端的ID需求信息向ID服务器发送ID生成请求之前,还包括:
根据所述ID需求信息,在与所述会话标识信息对应的会话区中查询是否存在满足需求的ID;
若存在,则将所述ID分配给所述客户端。
3.根据权利要求2所述的方法,其特征在于,将所述ID分配给所述客户端之后,还包括:
对所述会话区中缓存的ID信息进行更新。
4.根据权利要求1至3任一项所述的方法,其特征在于,在会话结束的情况下,所述方法还包括:
所述会话区中存在未使用的ID时,向所述ID服务器发送回收通知消息,其中,所述回收通知消息包括未使用的ID信息。
5.一种分布式数据库中标识符ID的处理方法,其特征在于,包括:
ID服务器接收分布式数据库管理系统发送的ID生成请求,其中,所述ID生成请求包括ID数量信息和会话标识信息;
根据所述ID生成请求查询ID存储表中是否存在可用ID;
若存在,则将所述可用ID返回到所述分布式数据库管理系统;
其中,所述可用ID为在将N个ID缓存到与所述会话标识信息对应的会话区且未使用的情况下,回写到所述ID存储表中的;
在会话结束的情况下,所述方法还包括:
接收分布式数据库管理系统发送的回收通知消息,其中,所述回收通知消息包括未使用的ID信息;
根据所述回收通知消息查询所述ID存储表中是否存在与所述未使用的ID相匹配的队列;
若存在,则将所述未使用的ID回写到所述队列中;
若不存在,则在所述ID存储表中新建一个队列并将所述未使用的ID回写到新建的队列中。
6.根据权利要求5所述的方法,其特征在于,根据所述ID生成请求查询ID存储表中是否存在可用ID之后,还包括:
若不存在,则根据所述ID生成请求生成对应的ID;
将所述ID返回到所述分布式数据库管理系统。
7.根据权利要求5或6所述的方法,其特征在于,所述ID为顺序生成的序列值。
8.一种分布式数据库管理系统,其特征在于,包括:
控制模块,用于根据客户端的ID需求信息向ID服务器发送ID生成请求,其中,所述ID需求信息包括会话标识信息、ID数量信息;
接收模块,用于接收所述ID服务器返回的N个ID,其中,N为整数且大于所述ID数量信息中的数量值;
缓存模块,用于根据所述会话标识信息将所述N个ID缓存到与所述会话标识信息对应的会话区。
9.根据权利要求8所述的系统,其特征在于,该系统还包括:
查询模块,用于在根据客户端的ID需求信息向ID服务器发送ID生成请求之前,根据所述ID需求信息,在与所述会话标识信息对应的会话区中查询是否存在满足需求的ID;
分配模块,用于将所述满足需求的ID分配给所述客户端。
10.根据权利要求9所述的系统,其特征在于,该系统还包括:
更新模块,用于在所述分配模块将所述满足需求的ID分配给所述客户端之后,对所述会话区中缓存的ID信息进行更新。
11.根据权利要求8至10任一项所述的系统,其特征在于,该系统还包括:
回收通知模块,用于在会话结束且所述会话区中存在未使用的ID时,向所述ID服务器发送回收通知消息,其中,所述回收通知消息包括未使用的ID信息。
12.一种ID服务器,其特征在于,该服务器包括:
接收请求模块,用于接收分布式数据库管理系统发送的ID生成请求,其中,所述ID生成请求包括ID数量信息和会话标识信息;
预检模块,根据所述ID生成请求查询ID存储表中是否存在可用ID;
反馈模块,用于在所述ID存储表中存在可用ID时,将所述可用ID返回到所述分布式数据库管理系统;
其中,所述可用ID是在将N个ID缓存到与所述会话标识信息对应的会话区且未使用的情况下,回写到所述ID存储表中的;
回收监听模块,用于在会话结束的情况下,接收分布式数据库管理系统发送的回收通知消息,其中,所述回收通知消息包括未使用的ID信息;
回写模块,所述回写模块包括:
匹配单元,用于根据所述回收通知消息查询所述ID存储表中是否存在与所述未使用的ID相匹配的队列;
回写单元,用于在存在与所述未使用的ID相匹配的队列时,将所述未使用的ID回写到所述队列中;
当不存在与所述未使用的ID相匹配的队列时,所述匹配单元还用于在所述ID存储表中新建一个队列,所述回写单元还用于将所述未使用的ID回写到新建的ID队列中。
13.根据权利要求12所述的服务器,其特征在于,该服务器还包括:
生成模块,用于在所述ID存储表中不存在可用ID时,根据所述ID生成请求生成对应的ID;
所述反馈模块,还用于将所述ID返回到所述分布式数据库管理系统。
14.根据权利要求12或13所述的服务器,其特征在于,所述ID为顺序生成的序列值。
CN201610458012.8A 2016-06-22 2016-06-22 分布式数据库中id的处理方法、管理系统及服务器 Active CN107528816B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610458012.8A CN107528816B (zh) 2016-06-22 2016-06-22 分布式数据库中id的处理方法、管理系统及服务器
PCT/CN2017/087096 WO2017219848A1 (zh) 2016-06-22 2017-06-02 分布式数据库中id的处理方法、管理系统及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610458012.8A CN107528816B (zh) 2016-06-22 2016-06-22 分布式数据库中id的处理方法、管理系统及服务器

Publications (2)

Publication Number Publication Date
CN107528816A CN107528816A (zh) 2017-12-29
CN107528816B true CN107528816B (zh) 2021-05-18

Family

ID=60734158

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610458012.8A Active CN107528816B (zh) 2016-06-22 2016-06-22 分布式数据库中id的处理方法、管理系统及服务器

Country Status (2)

Country Link
CN (1) CN107528816B (zh)
WO (1) WO2017219848A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733802B (zh) * 2018-05-17 2023-03-24 腾讯科技(深圳)有限公司 识别码生成及解析方法、装置、存储介质和电子设备
CN109165712B (zh) * 2018-08-01 2021-06-29 广州唯品会信息科技有限公司 分布式分期号的生成方法、装置和计算机存储介质
CN109347935B (zh) * 2018-09-30 2021-08-03 珠海信达九州科技有限公司 一种基于区块链实现实时通讯消息同步的方法
CN110555078A (zh) * 2019-09-02 2019-12-10 上海摩库数据技术有限公司 分布式id生成
CN110795632B (zh) * 2019-10-30 2022-10-04 北京达佳互联信息技术有限公司 一种状态查询方法、装置及电子设备
CN110968589A (zh) * 2019-12-18 2020-04-07 浙江明度智控科技有限公司 一种分布式系统中自增id的管理方法和装置
CN113726830B (zh) * 2020-05-25 2023-09-12 网联清算有限公司 一种报文标识生成方法及装置
CN111741081A (zh) * 2020-06-05 2020-10-02 安徽三实信息技术服务有限公司 一种分布式服务器管理系统
CN111782694B (zh) * 2020-06-28 2023-10-20 百度在线网络技术(北京)有限公司 一种信息写入方法、装置以及电子设备
CN111949406B (zh) * 2020-08-13 2024-07-26 深圳市睿策者科技有限公司 编号资源的分配处理方法、装置、计算机和存储介质
CN111985187B (zh) * 2020-08-31 2021-06-08 卫宁健康科技集团股份有限公司 分布式id获取方法、装置、电子设备和存储介质
CN112751748B (zh) * 2020-12-28 2023-04-18 百果园技术(新加坡)有限公司 会话消息管理方法、装置、服务器和可读存储介质
CN113568891B (zh) * 2021-08-05 2024-02-20 深圳墨世科技有限公司 分布式id生成方法、装置、服务器和可读存储介质
CN116418783B (zh) * 2023-06-12 2023-09-29 太初(无锡)电子科技有限公司 一种id编号动态重分配的方法、计算机设备及介质
CN117714275B (zh) * 2023-07-11 2024-09-27 荣耀终端有限公司 分布式应用的身份管理方法及相关装置
CN117478722B (zh) * 2023-12-22 2024-03-15 深圳市一恒科电子科技有限公司 P2p标识符的分配方法、系统、电子设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1588359A (zh) * 2004-10-09 2005-03-02 武汉大学 数据库中对象标识符回收再利用的方法
CN101661430A (zh) * 2008-08-29 2010-03-03 中兴通讯股份有限公司 一种存储块回收判断装置及存储块管理系统
CN101826073A (zh) * 2009-03-06 2010-09-08 华为技术有限公司 分布式数据库同步方法、设备及系统
CN102156717A (zh) * 2011-03-25 2011-08-17 中国有色矿业集团有限公司 一种将实体对象映射到数据库中的方法及装置
CN103561128A (zh) * 2013-11-04 2014-02-05 福建星网锐捷网络有限公司 光纤通道身份标识回收处理方法及网络设备
CN104317749A (zh) * 2014-10-31 2015-01-28 小米科技有限责任公司 信息写入方法和装置
CN104486407A (zh) * 2014-12-12 2015-04-01 北京国双科技有限公司 编号的生成方法及装置
US9141653B2 (en) * 2012-11-02 2015-09-22 Accenture Global Services Limited Real-time data management for a power grid
CN105117439A (zh) * 2015-08-11 2015-12-02 小米科技有限责任公司 全局标识生成方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620811B2 (en) * 2002-04-23 2009-11-17 Panasonic Corporation Server device and program management system
CN102148760B (zh) * 2011-04-02 2014-01-22 福建星网锐捷网络有限公司 Id申请方法、装置及系统
CN202906964U (zh) * 2012-05-28 2013-04-24 深圳市谷米科技有限公司 高兼容性的id生成器
CN105684492B (zh) * 2013-07-31 2019-04-19 瑞典爱立信有限公司 在通信网中用于指配小区标识符值的方法和装置以及用于管理小区标识符值的指配的方法和装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1588359A (zh) * 2004-10-09 2005-03-02 武汉大学 数据库中对象标识符回收再利用的方法
CN101661430A (zh) * 2008-08-29 2010-03-03 中兴通讯股份有限公司 一种存储块回收判断装置及存储块管理系统
CN101826073A (zh) * 2009-03-06 2010-09-08 华为技术有限公司 分布式数据库同步方法、设备及系统
CN102156717A (zh) * 2011-03-25 2011-08-17 中国有色矿业集团有限公司 一种将实体对象映射到数据库中的方法及装置
US9141653B2 (en) * 2012-11-02 2015-09-22 Accenture Global Services Limited Real-time data management for a power grid
CN103561128A (zh) * 2013-11-04 2014-02-05 福建星网锐捷网络有限公司 光纤通道身份标识回收处理方法及网络设备
CN104317749A (zh) * 2014-10-31 2015-01-28 小米科技有限责任公司 信息写入方法和装置
CN104486407A (zh) * 2014-12-12 2015-04-01 北京国双科技有限公司 编号的生成方法及装置
CN105117439A (zh) * 2015-08-11 2015-12-02 小米科技有限责任公司 全局标识生成方法及装置

Also Published As

Publication number Publication date
WO2017219848A1 (zh) 2017-12-28
CN107528816A (zh) 2017-12-29

Similar Documents

Publication Publication Date Title
CN107528816B (zh) 分布式数据库中id的处理方法、管理系统及服务器
US10534776B2 (en) Proximity grids for an in-memory data grid
CN103067433B (zh) 一种分布式存储系统的数据迁移方法、设备和系统
CN109344122B (zh) 一种基于文件预创策略的分布式元数据管理方法及系统
CN112084258A (zh) 一种数据同步方法和装置
CN107231395A (zh) 数据存储方法、装置和系统
CN107733957B (zh) 分布式服务配置系统及版本号分配方法
JP2007128371A (ja) コンテンツ検索システム
CN101188566A (zh) 一种集群环境下数据缓存同步的方法及系统
CN101969468A (zh) 查询服务器集群系统及查询方法
CN101706781A (zh) 一种数据库缓存集中管理方法和系统
CN109542894B (zh) 用户数据集中存储方法、装置、介质和计算机设备
CN105744001B (zh) 分布式缓存系统扩容方法、数据访问方法及装置和系统
CN107451853A (zh) 一种红包实时派发的方法、装置、系统及存储介质
CN104133783A (zh) 处理分散式缓存数据的方法和装置
US20150248350A1 (en) Apparatus and method for managing cache in cache distributed environment
CN112328632A (zh) 一种分布式两级缓存的方法和系统
CN107807931B (zh) 模板信息管理的方法和系统
CN114490744B (zh) 一种数据缓存方法、存储介质、电子装置
US20170286483A1 (en) Standing queries in memory
US20150100545A1 (en) Distributed database system and a non-transitory computer readable medium
CN114185991A (zh) 基于分布式数据库实现数据同步的方法及相关装置
CN112231129A (zh) 一种数据代理服务方法、服务器、存储介质及计算设备
CN109376001A (zh) 一种资源分配的方法及设备
CN111125580A (zh) 网络资源获取方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right

Effective date of registration: 20180130

Address after: 518057 Nanshan District science and technology, Guangdong Province, South Road, No. 55, No.

Applicant after: ZTE Corporation

Applicant after: China Citic Bank Co., Ltd.

Address before: 518057 Nanshan District science and Technology Industrial Park, Guangdong high tech Industrial Park, ZTE building

Applicant before: ZTE Corporation

TA01 Transfer of patent application right
CB03 Change of inventor or designer information

Inventor after: Ding Yan

Inventor after: Chen Xiaoqiang

Inventor after: Li Yanzhong

Inventor after: Liu Wentao

Inventor after: Deng Qiong

Inventor after: Chen Jianfeng

Inventor before: Ding Yan

Inventor before: Chen Xiaoqiang

Inventor before: Li Yanzhong

CB03 Change of inventor or designer information
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant