首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种针对分布式数据库系统的Sequence实现方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:北京人大金仓信息技术股份有限公司

摘要:本发明公开了一种针对分布式数据库系统的Sequence实现方法,包括以下步骤:Sequence Client执行函数nextval;Sequence Client获取访问的Sequence的基本信息,并向Sequence Server发送请求Sequence的基本信息;Sequence Server接收到请求,根据基本信息获取Sequence值;Sequence Server把结果信息发送给所述客户端。有益效果:通过在数据库系统的计算节点中设置Sequence Server,每个计算节点中都有备节点,数据通过物理日志同步。Sequence Server会记录物理日志,因此自动会有备节点同步sequence,确保sequence的高可用,同时,Sequence Server和GTM分开,降低了客户端连接的压力。

主权项:一种针对分布式数据库系统的Sequence实现方法,其特征在于,包括以下步骤:S1 Sequence Client执行函数 nextval;S2 Sequence Client获取访问的 Sequence 的基本信息,并向 Sequence Server 发送请求 Sequence 的基本信息;S3 Sequence Server 接收到请求,根据基本信息获取 Sequence 值;S4 Sequence Server 把结果信息发送给所述客户端。

全文数据:一种针对分布式数据库系统的Sequence实现方法技术领域[0001]本发明涉及数据库技术领域,具体来说,涉及一种针对分布式数据库系统的Sequence实现方法。背景技术[0002]在基于分布式的集群DBMS系统中,需要确保所有计算节点中存储的Sequence具有递增或递减趋势,并且是全局唯一。因此需要一个全局的节点SequenceServer管理Sequence。若客户端SequenceClient需要申请Sequence时,都向SequenceServer获取。[0003]目前,在分布式MPP系统中,事务管理模块统一处理Sequence请求。MPP系统中的管理节点和计算节点都会产生Sequence请求,计算节点和管理节点上的进程,都在事务节点上请求Sequence服务。[0004]事务管理节点同时需要管理分布式系统中事务号和事务快照信息,在由管理节点-计算节点的分布式系统中,多个管理节点中的每一个进程,都需要从一个集中的事务管理节点中获取事务号,同时,有些计算节点中的进程也需要从事务管理节点获取事务号,事务管理节点因此会成为处理瓶颈。当事务节点出现性能瓶颈时,处理Sequence请求的效率会变的比较低。并且事务管理节点没有备节点,发生故障后,会出现单点故障。[0005]针对相关技术中的问题,目前尚未提出有效的解决方案。[0006]以下为本发明中可能会涉及到的关键术语:SQL处理服务进程:在数据库系统中处理具体的SQL业务的进程,在本文中简称服务进程,或者服务器进程。[0007]管理节点:分布式数据库系统中,接受客户端连接,并解释SQL,返回结果集。在本发明中,此节点会收集计算节点实际执行的性能数据,通常也被称为Coordinator节点。[0008]计算节点:存储和进行SQL计算的节点。在本发明中,此节点会向管理节点发送查询实际执行的性能相关数据,通常也被称为Datanode节点。[0009]计划节点:优化器根据SQL语句做出在数据库内部实际执行的查询计划,查询计划中的每个步骤为计划节点,如扫描节点、排序节点等。[0010]Sequence:序列数生成器,生成等差的数列,常被用作主键;SequenceServer:保证分布式DHWS系统中的Sequence为递增或递减,且全局唯~'的服务器;SequenceClient:需要向SequenceServer获取Sequence的Datanodes或Coordinators。发明内容[0011]针对相关技术中的上述技术问题,本发明提出一种针对分布式数据库系统的Sequence实现方法,能够降低客户端连接的压力。[0012]为实现上述技术目的,本发明的技术方案是这样实现的:一种针对分布式数据库系统的Sequence实现方法,包括以下步骤:51SequenceClient执行函数nextval;52SequenceClient获取访问的Sequence的基本信息,并向SequenceServer发送请求Sequence的基本信息;53SequenceServer接收到请求,根据基本信息获取Sequence值;54SequenceServer把结果信息发送给所述客户端。[0013]作为优选,所述SequenceClient包括管理节点和计算节点。[0014]作为优选,SequenceClient需要sequence请求后,获取sequence的RelFileNode,将sequence彳目息发送给SequenceServer,等待Sever发回sequence值并接收sequence值。[0015]作为优选,SequenceServer接收到请求后,验证sequence信息,所述信息包括dbid和seq_id,获取sequence值并发送到客户端。[0016]进一步的,SequenceServer在将sequence发送给客户端之前,需要判断是否记录日志,若需记录日志,则在记录日志之后发送sequence给客户端。[0017]本发明的有益效果:通过在数据库系统的计算节点中设置SequenceServer,每个计算节点中都有备节点,数据通过物理日志同步。SequenceServer会记录物理日志,因此自动会有备节点同步sequence,确保sequence的尚可用,同时,SequenceServer和GTM分开,降低了客户端连接的压力。附图说明[0018]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0019]图1是根据本发明实施例所述的Sequence请求流程示意图;图2是根据本发明实施例所述的SequenceServer基本流程示意图;图3是根据本发明实施例所述的SequenceClient基本流程示意图。具体实施方式[0020]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。[0021]如图1至3所示,根据本发明实施例所述的一种针对分布式数据库系统的Sequence实现方法,包括以下步骤:51SequenceClient执行函数nextval;52SequenceClient获取访问的Sequence的基本信息,并向SequenceServer发送请求Sequence的基本信息;53SequenceServer接收到请求,根据基本彳目息获取Sequence值;S4SequenceServer把结果信息发送给所述客户端。[0022]作为优选,所述SequenceClient包括管理节点和计算节点。[0023]作为优选,SequenceClient需要sequence请求后,获取sequence的RelFileNode,将sequence信息发送给SequenceServer,等待Sever发回sequence值并接收sequence值。[0024]作为优选,SequenceServer接收到请求后,验证sequence信息,所述信息包括dbid和seq_id,获取sequence值并发送到客户端。[0025]进一步的,SequenceServer在将sequence发送给客户端之前,需要判断是否记录日志,若需记录日志,则在记录日志之后发送sequence给客户端。[0026]为了方便理解本发明的上述技术方案,以下通过具体使用方式上对本发明的上述技术方案进行详细说明。[0027]在具体使用时,根据本发明所述的一种针对分布式数据库系统的Sequence实现方法,在应用时主要包括:1.SequenceServer并发处理SequenceClient请求获取Sequence大致流程为:建立连接一获取Sequence值一关闭连接。考虑三次握手四次挥手性能因素,不能每获取一个Sequence都走这一流程,应当为:建立连接一获取多个Sequence-释放连接。[0028]SequenceServer最多保存1024个连接,但同时只能处理一个连接,其它连接阻塞等待,SequenceServer已不阻塞方式读取Sequence请求,每个连接都把请求放在seq_client数组中,若读取Sequence请求长度不到sizeofNextValRequest,该请求暂不处理,直到获取全部request为止。[0029]2.SequenceServer服务所有数据库当SequenceServer接收到Client的请求时,向Clinet发送Sequence值。由于Client请求的Sequence可能属于不同的数据库,SN集群的每个数据库是相互隔离的。因此SequenceServer不能正常调用数据库内高层次的函数。SequenceServer只能更底层的函数,如数据库缓存级函数ReadBuffei^Server根据客户端发来Sequence基本信息构造出访问Sequence底层文件的数据结构。[0030]综上所述,借助于本发明的上述技术方案,通过在数据库系统的计算节点中设置SequenceServer,每个计算节点中都有备节点,数据通过物理日志同步。SequenceServer会记录物理日志,因此自动会有备节点同步sequence,确保sequence的高可用,同时,SequenceServer和GTM分开,降低了客户端连接的压力。[0031]以上所述仅为本发明的较佳实施例而己,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

权利要求:1.一种针对分布式数据库系统的Sequence实现方法,其特征在于,包括以下步骤:51SequenceClient执行函数nextval;52SequenceClient获取访问的Sequence的基本信息,并向SequenceServer发送请求Sequence的基本f目息;53SequenceServer接收到请求,根据基本信息获取Sequence值;54SequenceServer把结果信息发送给所述客户端。2.根据权利要求1所述的针对分布式数据库系统的Sequence实现方法,其特征在于,所述SequenceClient包括管理节点和计算节点。3.根据权利要求1所述的针对分布式数据库系统的Sequence实现方法,其特征在于,SequenceClient需要sequence请求后,获取sequence的RelFileNode,将sequence信息发送给SequenceServer,等待Sever发回sequence值并接收sequence值。4.根据权利要求1所述的针对分布式数据库系统的Sequence实现方法,其特征在于,SequenceServer接收到请求后,验证sequence信息,所述信息包括dbid和seq_id,获取sequence值并发送到客户端。5.根据权利要求1或4所述的针对分布式数据库系统的Sequence实现方法,其特征在于,SequenceServer在将sequence发送给客户端之目U,需要判断是否记录日志,若需记录日志,则在记录日志之后发送sequence给客户端。

百度查询: 北京人大金仓信息技术股份有限公司 一种针对分布式数据库系统的Sequence实现方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。