CN107908652A - 一种针对分布式数据库系统的Sequence实现方法 - Google Patents
一种针对分布式数据库系统的Sequence实现方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; 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实现方法。
背景技术
在基于分布式的集群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给客户端。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118093064A (zh) * | 2024-04-22 | 2024-05-28 | 深圳市楠菲微电子有限公司 | 一种Model组件及使用Model组件同步Sequence的方法 |
Citations (5)
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 | 聚好看科技股份有限公司 | 集群数据同步方法及装置 |
-
2017
- 2017-10-12 CN CN201710946246.1A patent/CN107908652A/zh active Pending
Patent Citations (5)
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)
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 |