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

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

Info

Publication number
CN107908652A
CN107908652A CN201710946246.1A CN201710946246A CN107908652A CN 107908652 A CN107908652 A CN 107908652A CN 201710946246 A CN201710946246 A CN 201710946246A CN 107908652 A CN107908652 A CN 107908652A
Authority
CN
China
Prior art keywords
sequence
client
server
data base
distributed data
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
CN201710946246.1A
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.)
Beijing Kingbase Information Technologies Co Ltd
Original Assignee
Beijing Kingbase Information Technologies Co 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 Beijing Kingbase Information Technologies Co Ltd filed Critical Beijing Kingbase Information Technologies Co Ltd
Priority to CN201710946246.1A priority Critical patent/CN107908652A/zh
Publication of CN107908652A publication Critical patent/CN107908652A/zh
Pending legal-status Critical Current

Links

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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures 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

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)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

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

Description

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

Claims (5)

1.一种针对分布式数据库系统的Sequence实现方法,其特征在于,包括以下步骤:
S1 Sequence Client执行函数 nextval;
S2 Sequence Client获取访问的 Sequence 的基本信息,并向 Sequence Server 发送请求 Sequence 的基本信息;
S3 Sequence Server 接收到请求,根据基本信息获取 Sequence 值;
S4 Sequence Server 把结果信息发送给所述客户端。
2.根据权利要求1所述的针对分布式数据库系统的Sequence实现方法,其特征在于,所述Sequence Client包括管理节点和计算节点。
3.根据权利要求1所述的针对分布式数据库系统的Sequence实现方法,其特征在于,Sequence Client需要sequence请求后,获取sequence的RelFileNode,将sequence信息发送给Sequence Server,等待Sever发回sequence值并接收sequence值。
4.根据权利要求1所述的针对分布式数据库系统的Sequence实现方法,其特征在于,Sequence Server 接收到请求后,验证sequence信息,所述信息包括dbid和seq_id,获取sequence值并发送到客户端。
5.根据权利要求1或4所述的针对分布式数据库系统的Sequence实现方法,其特征在于,Sequence Server在将sequence发送给客户端之前,需要判断是否记录日志,若需记录日志,则在记录日志之后发送sequence给客户端。
CN201710946246.1A 2017-10-12 2017-10-12 一种针对分布式数据库系统的Sequence实现方法 Pending CN107908652A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710946246.1A CN107908652A (zh) 2017-10-12 2017-10-12 一种针对分布式数据库系统的Sequence实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710946246.1A CN107908652A (zh) 2017-10-12 2017-10-12 一种针对分布式数据库系统的Sequence实现方法

Publications (1)

Publication Number Publication Date
CN107908652A true CN107908652A (zh) 2018-04-13

Family

ID=61840407

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710946246.1A Pending CN107908652A (zh) 2017-10-12 2017-10-12 一种针对分布式数据库系统的Sequence实现方法

Country Status (1)

Country Link
CN (1) CN107908652A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118093064A (zh) * 2024-04-22 2024-05-28 深圳市楠菲微电子有限公司 一种Model组件及使用Model组件同步Sequence的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130151895A1 (en) * 2011-12-09 2013-06-13 Altibase Corp. Apparatus and method of managing databases of active node and standby node of main memory database management system
CN105447183A (zh) * 2015-12-12 2016-03-30 天津南大通用数据技术股份有限公司 Mpp架构数据库集群序列系统及序列管理方法
CN105550309A (zh) * 2015-12-12 2016-05-04 天津南大通用数据技术股份有限公司 Mpp架构数据库集群序列系统及序列管理方法
CN105824868A (zh) * 2015-12-24 2016-08-03 广东亿迅科技有限公司 一种分布式数据库数据处理方法和分布式数据库系统
CN107016075A (zh) * 2017-03-27 2017-08-04 聚好看科技股份有限公司 集群数据同步方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130151895A1 (en) * 2011-12-09 2013-06-13 Altibase Corp. Apparatus and method of managing databases of active node and standby node of main memory database management system
CN105447183A (zh) * 2015-12-12 2016-03-30 天津南大通用数据技术股份有限公司 Mpp架构数据库集群序列系统及序列管理方法
CN105550309A (zh) * 2015-12-12 2016-05-04 天津南大通用数据技术股份有限公司 Mpp架构数据库集群序列系统及序列管理方法
CN105824868A (zh) * 2015-12-24 2016-08-03 广东亿迅科技有限公司 一种分布式数据库数据处理方法和分布式数据库系统
CN107016075A (zh) * 2017-03-27 2017-08-04 聚好看科技股份有限公司 集群数据同步方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118093064A (zh) * 2024-04-22 2024-05-28 深圳市楠菲微电子有限公司 一种Model组件及使用Model组件同步Sequence的方法

Similar Documents

Publication Publication Date Title
WO2020001108A1 (zh) 基于区块链的数据处理方法和装置
US7406499B2 (en) Architecture for partition computation and propagation of changes in data replication
US8301589B2 (en) System and method for assignment of unique identifiers in a distributed environment
US8170981B1 (en) Computer method and system for combining OLTP database and OLAP database environments
US20110161281A1 (en) Distributed Transaction Management in a Distributed Shared Disk Cluster Environment
US9280381B1 (en) Execution framework for a distributed file system
US6226650B1 (en) Database synchronization and organization system and method
US20060195487A1 (en) Systems and Methods for Managing the Synchronization of Replicated Version-Managed Databases
US11394794B2 (en) Fast ingestion of records in a database using data locality and queuing
CN103605698A (zh) 一种用于分布异构数据资源整合的云数据库系统
CN105516284B (zh) 一种集群数据库分布式存储的方法和装置
EP1128277A3 (en) Data processing method and system, program for realizing the method, and computer readable storage medium storing the program
JP2009020901A (ja) データベースシステム、データベース検索方法及び記録媒体
US20120150803A1 (en) Replication resynchronization
CN109189723A (zh) 一种分布式卫星数据中心多源遥感数据处理方法
US7577663B2 (en) Distributed database systems and methods
CN109815294A (zh) 一种无主节点分布并行数据存储方法和系统
US10114874B2 (en) Source query caching as fault prevention for federated queries
Hongqian et al. Cloud-based data management system for automatic real-time data acquisition from large-scale laying-hen farms
US20050131825A1 (en) Distributed knowledge management system
CN109753245B (zh) 一种多磁盘负载均衡异步读写调度方法及装置
CN103365740A (zh) 一种数据冷备方法及装置
CN110704442A (zh) 一种大数据的实时获取方法及装置
CN105446981B (zh) 站点地图生成方法、访问方法及装置
CN107908652A (zh) 一种针对分布式数据库系统的Sequence实现方法

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180413