掌桥专利:专业的专利平台
掌桥专利
首页

基于数据库集群的数据处理方法、装置和计算机设备

文献发布时间:2024-04-18 20:02:18


基于数据库集群的数据处理方法、装置和计算机设备

技术领域

本申请涉及数据库技术领域,特别是涉及一种基于数据库集群的数据处理方法、装置和计算机设备。

背景技术

数据库(Database)是一个有组织的、可存储、可管理和可检索数据的集合,数据库集群是多个数据库的集合。随着数据量的增加,对数据库管理系统的性能和可用性提出了更高的要求。

现有技术中数据库的数据文件存储方式,并不能实现在同一时间支持多个数据库节点同时进行访问,数据库的共享存储功能受限,进而降低数据库的数据处理效率。

发明内容

基于此,有必要针对上述技术问题,提供一种基于数据库集群的数据处理方法、装置和计算机设备,能够提高数据库处理数据的效率。

第一方面,本申请提供了一种基于数据库集群的数据处理方法,所述方法包括:

获取数据处理请求;

从数据库节点集群中,选择所述数据处理请求对应的处理节点;

控制所述处理节点,通过共享存储或所述处理节点的数据库服务,对所述数据处理请求对应的目标数据进行处理;其中,所述数据库节点集群中各数据库节点均能够对所述共享存储中的数据进行访问。

在其中一个实施例中,若所述数据处理请求为数据查询请求,则所述控制所述处理节点,通过共享存储或所述处理节点的数据库服务,对所述数据处理请求对应的目标数据进行处理,包括:

若所述数据处理请求对应的目标数据位于共享存储中,则控制所述处理节点,从所述共享存储中获取目标数据;

若所述目标数据位于目标节点中,则控制所述处理节点,通过所述处理节点的数据库服务,从所述目标节点中获取所述目标数据。

在其中一个实施例中,所述控制所述处理节点,通过所述处理节点的数据库服务,从所述目标节点中获取所述目标数据,包括:

若所述目标节点为所述数据库节点集群中的其他数据库节点,则控制所述处理节点,与所述其他数据库节点建立内部通信连接;

在内部通信连接已建立的情况下,控制所述处理节点,通过所述处理节点的数据库服务,将所述目标数据从所述其他数据库节点复制到所述处理节点,并从所述处理节点中获取所述目标数据。

在其中一个实施例中,所述控制所述处理节点,从所述共享存储中获取目标数据,包括:

根据所述数据处理请求,确定版本标识;

控制所述处理节点,从所述共享存储中获取所述版本标识对应的目标数据。

在其中一个实施例中,若所述数据处理请求为数据修改请求或数据写入请求,则控制所述处理节点,通过共享存储,对所述数据处理请求对应的目标数据进行处理,包括:

根据所述数据处理请求,确定版本标识;

控制所述处理节点,对共享存储中所述版本标识对应的目标数据进行加锁处理;

在加锁状态下,控制所述处理节点,对所述共享存储中的版本标识对应的目标数据进行修改,或向所述共享存储写入所述版本标识对应的目标数据。

在其中一个实施例中,所述根据所述数据处理请求,确定版本标识,包括:

根据所述数据处理请求的请求标识和时间戳,确定版本标识。

在其中一个实施例中,所述控制所述处理节点,通过共享存储或所述处理节点的数据库服务,对所述数据处理请求对应的目标数据进行处理,包括:

获取所述处理节点的节点状态数据;

若根据所述节点状态数据识别到所述处理节点为故障节点,则从所述节点集群中重新选择一个处理节点,并控制重新选择的处理节点,通过共享存储或所述处理节点的数据库服务,对所述数据处理请求对应的目标数据进行处理。

第二方面,本申请还提供了一种基于数据库集群的数据处理装置,所述装置包括:

获取模块,用于获取数据处理请求;

选择模块,用于从数据库节点集群中,选择所述数据处理请求对应的处理节点;

处理模块,用于控制所述处理节点,通过共享存储或所述处理节点的数据库服务,对所述数据处理请求对应的目标数据进行处理;其中,所述数据库节点集群中各数据库节点均能够对所述共享存储中的数据进行访问。

第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取数据处理请求;

从数据库节点集群中,选择所述数据处理请求对应的处理节点;

控制所述处理节点,通过共享存储或所述处理节点的数据库服务,对所述数据处理请求对应的目标数据进行处理;其中,所述数据库节点集群中各数据库节点均能够对所述共享存储中的数据进行访问。

第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取数据处理请求;

从数据库节点集群中,选择所述数据处理请求对应的处理节点;

控制所述处理节点,通过共享存储或所述处理节点的数据库服务,对所述数据处理请求对应的目标数据进行处理;其中,所述数据库节点集群中各数据库节点均能够对所述共享存储中的数据进行访问。

第五方面,本申请还提供了一种计算机程序产品,所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

获取数据处理请求;

从数据库节点集群中,选择所述数据处理请求对应的处理节点;

控制所述处理节点,通过共享存储或所述处理节点的数据库服务,对所述数据处理请求对应的目标数据进行处理;其中,所述数据库节点集群中各数据库节点均能够对所述共享存储中的数据进行访问。

上述基于数据库集群的数据处理方法、装置、计算机设备和存储介质,在获取到数据处理请求的情况下,从数据库节点集群中,选择数据处理请求对应的处理节点,并控制处理节点,通过共享存储或处理节点的数据库服务,对数据处理请求对应的目标数据进行处理;其中,数据库节点集群中各数据库节点均能够对共享存储中的数据进行访问。上述方案,通过引入支持多个数据库节点同时进行访问的共享存储,实现了对数据库的共享功能的扩展,减少了数据库节点之间相互等待的时间,进而提高了数据库的数据处理效率。

附图说明

图1为一个实施例中数据库共享存储集群的示意图;

图2为一个实施例中基于数据库集群的数据处理方法的流程示意图;

图3为一个实施例中对数据处理请求对应的目标数据进行处理的流程示意图;

图4为一个实施例中从目标节点中获取目标数据的流程示意图;

图5为另一个实施例中对数据处理请求对应的目标数据进行处理的流程示意图;

图6为一个实施例中处理节点故障的流程示意图;

图7为另一个实施例中基于数据库集群的数据处理方法的流程示意图;

图8为一个实施例中基于数据库集群的数据处理装置的结构框图;

图9为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请实施例提供的数据处理方法,可以应用于如图1所示的数据库共享存储集群中。其中,数据库共享存储集群包括应用层、接口层、节点层和共享存储;其中,应用层支持用户交互功能;接口层用于数据库与应用层的对接,例如将应用层的数据处理请求发送至对应的数据库节点,并将数据库节点反馈的响应数据发送至应用层;节点层用于响应数据处理请求,其中,节点层包括多个数据库节点,数据库节点至少包括数据库、数据库服务(也为数据库实例)、存储管理服务、集群同步服务、本地存储和通信网络;共享存储用于存储数据文件、控制文件和日志文件等数据,以供多个数据库节点进行访问。

本申请实施例提供的数据库共享存储集群主要在功能、性能、可靠性三个方面进行优化,具体优化内容如下:

在功能上,不仅围绕分区表、Oracle兼容字典视图等重点功能持续进行完善,并且基于高可用集群开发了虚拟专用数据库、分布式事务等高级功能,实现Oracle核心高级功能,并使其实用化,满足应用使用需求。例如,该数据库共享存储集群改进了数据库封锁机制,优化了数据字典。本申请中的数据库共享存储集群扩展了节点间的同步机制,不再需要等待远程节点日志刷盘;同时,增加了集群全局系统视图,增加了兼容性数据字典,提升了集群的易用性。

示例性的,在业务功能复杂度高,存在高并发信息查询、大批量流程更新等业务的需求下,数据库在业务高峰压力下存在底层数据访问冲突问题,数据库整体负载能力明显下降,导致应用卡顿。为提升数据库共享存储集群高峰负载能力,通过改进集群封锁机制,优化了表数据访问与结构变更冲突问题,避免了表结构变更对增、删、改和查的阻塞,提升业务流畅性。

进一步的,通过优化数据字典,新增集群全局监控视图,细化数据库锁信息的统计与展示,为数据库事务阻塞、死锁现象的分析提供便利,提升了数据库的可调试性。

在性能上,该数据库共享存储集群从底层数据封锁机制、索引性能、优化器智能化、基础运算算法、集群并发能力等方面进行了全面改进,提升了事务处理能力。

示例性的,该数据库共享存储集群改进了索引机制,优化了索引查询性能。数据库索引在并发数据访问下存在性能衰减现象,业务查询功能缓慢,导致系统整体卡顿。数据库共享存储集群通过改进索引机制,减少底层数据访问冲突,提升查询性能。

另外,该数据库共享存储集群提升了优化器智能程度,完善了代价估算模型,扩大了统计信息直方图的桶数限制,提升了多种场景下对条件的代价估算的准确性。在管理平台涉及业务组织结构庞大、数据分布不均匀的情况下,业务功能在使用层次查询、相关子查询、分区表关联查询等复杂SQL用法时,数据库查询优化器代价估算不准,执行计划不是最优解。通过改进查询优化器代价估算准确性,提升执行计划最优解能力,在多个运算场景下得到了性能提升。并且,数据库共享存储集群改进了系统字典和系统动态视图性能,降低了系统字典查询代价,提升了查询性能。

进一步地,数据库共享存储集群采用动态哈希(HASH)算法,减少运算冲突,提升了运算性能。

更进一步地,该数据库共享存储集群改进了临时表机制,在大量数据并发处理情况下,数据库临时表删除数据慢,造成业务功能卡顿。通过改进临时表底层数据处理机制,对无过滤条件的临时表删除语句直接清除临时段,有效提升临时表并发删除数据性能;另外,加强了临时表的成本估算能力,在多表关联查询中提升了对临时数据估算的准确度,辅助优化器生成最优执行计划,提升了临时表的复杂运算性能。

更进一步地,该数据库共享存储集群改进集群并发冲突,提升集群负载能力,针对高并发业务场景下的性能瓶颈进行研究,优化了集群核心缓冲区管理算法,改善了密集型数据操作引起的资源争用问题;改进了集群工作线程的并发调度机制、节点间通讯机制,避免产生冲突阻塞,提升效率;在此改进下,集群整体事务处理能力得到了提升。

更进一步地,该数据库共享存储集群促进分区表技术完善,提升上亿级大表管理能力,例如,电网管理平台需要大量使用分区表高级功能,按照特定规则将表分为若干个逻辑部分,来支撑大表数据查询、更新业务场景,对分区表功能、性能具有较高要求。该数据库共享存储集群开发了多级分区定义模板功能、分区列和子分区列变更功能,细化了分区表数据字典信息,优化了分区表语句性能、关联运算性能,使分区表更加实用化。

更进一步地,该数据库共享存储集群推动开发虚拟专用数据库功能,配合应用达到数据管控目的。例如,电网管理平台财务域采用虚拟专用数据库,将数据按单位进行隔离,实现业务层面的访问权限控制。

在可靠性上,对集群节点间内存通讯校验机制、工作线程并行处理机制、集群故障处理能力等方面进行深入优化,有效避免了线程间的冲突死锁问题;在网络、磁盘、操作系统等运行环境故障情况下完善判定因素,改进处理机制,提升了故障处理效率,将故障切换时间从分钟级下探至秒级,进一步保障业务的连续性。

该数据库共享存储集群优化了集群线程工作流程,提升了集群稳定性,针对在遇到的典型故障进行研究,改进集群节点间的内存通讯校验机制,重构了一批内存调用接口,将绑定参数窥探操作从临界区剥离出去,避免数据页访问挂起,同时完善了工作线程并行处理机制,加强了函数调用的返回值判断,有效避免了线程间的冲突死锁问题,提升了集群运行稳定性。

进一步地,该数据库共享存储集群改进集群故障处理机制,数据库共享存储集群通过节点间的网络、表决盘共同判断集群节点的可用性,但是出现节点0服务器通信中断、但节点0内部进程未卡死的情况时,集群进行故障处理可能将正常运行的节点1退出。通过改进集群故障处理机制,在判断节点故障时新增一次IP连通性检查,可有效规避上述异常,提升集群可用性。

可选的,上述数据库共享存储集群还可以包括控制层,该控制层可以设置于接口层和节点层之间,控制层用于将数据处理请求分配至对应的数据库节点,并实时监测数据库节点的状态,在数据库节点出现故障时,控制数据库节点剔除和更换等操作。

示例性的,该控制层可以由控制端来实现,控制端可以为终端或服务器,其中终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种基于数据库集群的数据处理方法,以该方法应用于控制端为例进行说明,包括以下步骤:

S201,获取数据处理请求。

可选的,在用户具有数据处理请求的情况下,通过应用层中的应用程序发起数据处理请求;服务器可以利用监听机制实时监测是否存在数据处理请求,在监测到存在数据处理请求的情况下,获取数据处理请求。其中,数据处理请求可以为数据访问、数据修改或数据写入等操作。

S202,从数据库节点集群中,选择数据处理请求对应的处理节点。

在本申请实施例中,数据库节点集群包括多个数据库节点,数据库节点至少包括数据库、数据库服务(也为数据库实例)、存储管理服务、集群同步服务、本地存储和通信网络。

可选的,获取数据处理请求后,可以根据数据处理请求对应的数据处理请求标识,在数据库节点集群中,选择与数据处理请求相对应的处理节点,例如可以根据数据处理请求对应的数据任务类别确定相对应的处理节点;或者,还可以根据数据库节点的运行状态,选择与数据处理请求相对应的处理节点,例如,选择空闲的数据库节点来处理数据处理请求。

S203,控制处理节点,通过共享存储或处理节点的数据库服务,对数据处理请求对应的目标数据进行处理。

共享存储是一种两台或多台服务器能共用一个主存储器的并行体系结构,为了实现多个数据库节点同时访问或修改数据,要求将数据文件、控制文件和日志文件保存在共享存储上,可以更加便捷地管理数据库文件,以实现数据库节点集群中各数据库节点均能够对共享存储中的数据进行访问,可以理解的是,在同一时间存在多个数据处理请求的情况下,多个数据库节点可以同时对共享存储中的数据进行访问,无需等待其他数据库节点访问完成后再进行访问,由此可以提高数据库节点处理数据的效率。

可选的,目标数据为与数据处理请求对应的响应数据。数据处理请求对应的响应数据可能在共享存储中,或者在数据库节点中,由此可以控制处理节点,通过共享存储或处理节点的数据库服务,对数据处理请求对应的目标数据进行处理。

上述数据处理方法,在获取到数据处理请求的情况下,从数据库节点集群中,选择数据处理请求对应的处理节点,并控制处理节点,通过共享存储或处理节点的数据库服务,对数据处理请求对应的目标数据进行处理;其中,数据库节点集群中各数据库节点均能够对共享存储中的数据进行访问。上述方案,通过引入支持多个数据库节点同时进行访问的共享存储,实现了对数据库的共享功能的扩展,减少了数据库节点之间相互等待的时间,进而提高了数据库的数据处理效率。

需要说明的一点是,不同类型的数据处理请求对应的数据处理过程会有所不同,下面对不同类型的数据处理请求对应的数据处理过程进行详细的介绍。

在一个实施例中,若数据处理请求为数据查询请求,参见图3,图3提供了一种对数据处理请求对应的目标数据进行处理的流程示意图,具体包括以下步骤:

S301,若数据处理请求对应的目标数据位于共享存储中,则控制处理节点,从共享存储中获取目标数据。

可选的,可以根据数据处理请求标识确定数据处理请求对应的目标数据位于共享存储中,还是位于数据库节点中;若数据处理请求对应的目标数据位于共享存储中,则可以控制处理节点,从共享存储中获取目标数据;其中,目标数据为与数据处理请求对应的响应数据。

示例性的,共享存储中包括目标数据的多个版本,以供多个数据库节点同时进行访问,由此需要根据数据处理请求,确定版本标识;进而控制处理节点,从共享存储中获取版本标识对应的目标数据。例如,可以根据数据处理请求的请求标识和时间戳,确定版本标识,其中,请求标识可以为数据处理请求的类别;时间戳可以确定处理数据请求的时间;根据数据处理请求的类别和时间戳可以确定版本标识,该版本标识用于确定处理数据处理请求开始时间之前的目标数据的版本。

应理解,共享存储实时应用的数据库节点集群,允许多个数据库服务同时访问、操作同一数据库,通过资源共享、数据库访问控制、负载均衡和缓存交换等方式,实现多个处理机对同一组数据文件的并发访问。在共享存储集群中,通过多版本并发控制(MVCC)可以确保数据库的读操作与写操作不会相互阻塞,大幅度提升数据库的并发度以及使用体验。数据页中只保留物理记录的最新版本数据,通过回滚记录维护数据的历史版本,通过活动事务视图判断事务可见性,以确定获取哪一个版本的数据。其中,“数据页”通常指的是数据库存储中的一个基本单位。数据库在物理存储上以页的形式组织数据,每个数据页可以包含一定数量的数据行或数据记录。在数据库管理系统中,数据页是管理和存储数据的基本单位之一。

S302,若目标数据位于目标节点中,则控制处理节点,通过处理节点的数据库服务,从目标节点中获取目标数据。

可选的,目标节点为数据库集群节点中存有目标数据的目标节点。若确定目标数据位于目标节点中,则可以控制处理节点,通过处理节点的数据库服务,从目标节点中获取目标数据。其中,数据库服务可以理解为在内存中运行的数据库进程,用于管理和处理数据库的操作;数据库服务负责连接到数据库,将数据加载到内存中,并执行数据处理请求的响应操作。

本申请实施例中,通过确定数据处理请求对应的目标数据的存储位置,并控制处理节点,从对应的存储位置中获取目标数据,可以减少等待数据响应的时间,进而提高了数据库处理数据的效率。

在一个实施例中,参见图4,图4提供了一种从目标节点中获取目标数据的流程示意图,具体包括以下步骤:

S401,若目标节点为数据库节点集群中的其他数据库节点,则控制处理节点,与其他数据库节点建立内部通信连接。

可选的,若目标节点为数据库节点集群中的其他数据库节点,则可以控制处理节点与其他数据库节点建立内部通信连接,其中,内部通信连接可以利用内部通信网络进行连接。需要说明的是,数据库节点之间利用内部通信网络进行数据传输相比于磁盘的读、写速度更快,能够更加快速的响应数据处理请求。

S402,在内部通信连接已建立的情况下,控制处理节点,通过处理节点的数据库服务,将目标数据从其他数据库节点复制到处理节点,并从处理节点中获取目标数据。

可选的,在内部通信连接已建立的情况下,控制处理节点,通过处理节点的数据库服务,将目标数据从其他数据库节点复制到处理节点,并从处理节点中获取目标数据。由此可以更加快速的响应数据处理请求,进而提高数据库处理数据的效率。

在一个实施例中,若数据处理请求为数据修改请求或数据写入请求,参见图5,图5提供了另一种对数据处理请求对应的目标数据进行处理的流程示意图,具体包括以下步骤:

S501,根据数据处理请求,确定版本标识。

可选的,可以根据数据处理请求的请求标识,确定版本标识,例如,可以根据数据处理请求的请求标识和时间戳,确定版本标识,其中,请求标识可以为数据处理请求的类别;时间戳可以确定处理数据请求的时间;根据数据处理请求的类别和时间戳可以确定版本标识,该版本标识用于确定处理数据处理请求开始时间之前的目标数据的版本。

S502,控制处理节点,对共享存储中版本标识对应的目标数据进行加锁处理。

可选的,为了数据处理的一致性,在处理节点对版本标识对应的目标数据进行修改或写入之前,需要对该目标数据进行加锁处理,由此可以控制处理节点,对共享存储中版本标识对应的目标数据进行加锁处理。

示例性的,可以采用行锁进行并发访问控制,避免多个处理节点同时修改相同数据;还使用事务锁和对象锁进行并发访问控制,有效减少封锁冲突,并提升数据并发处理性能。

S503,在加锁状态下,控制处理节点,对共享存储中的版本标识对应的目标数据进行修改,或向共享存储写入版本标识对应的目标数据。进而,在加锁状态下,控制处理节点,对共享存储中的版本标识对应的目标数据进行修改,或向共享存储写入版本标识对应的目标数据。由此,可以避免在处理节点对版本标识对应的目标数据进行修改或写入的情况下,其他数据库节点也对该目标数据进行读写等操作,由此避免数据不同步的问题。

需要说明的一点是,不同的数据库节点对不同版本的目标数据进行修改或写入等操作时,可以利用集群同步服务可以将不同的数据库节点对不同版本的目标数据进行修改或写入等操作,同步给其他的数据库节点,以实现共享数据的同步和一致性。

在一个实施例中,处理节点在处理数据处理请求的过程中,可能会存在故障,由此可以进行节点故障处理。参见图6,图6提供了一种处理节点故障的流程示意图,具体包括以下步骤:

S601,获取处理节点的节点状态数据。

可选的,可以利用监听机制,实时获取处理节点的节点状态数据,以确定节点的运行状态。

S602,若根据节点状态数据识别到处理节点为故障节点,则从节点集群中重新选择一个处理节点,并控制重新选择的处理节点,通过共享存储或处理节点的数据库服务,对数据处理请求对应的目标数据进行处理。

若根据节点状态数据识别到处理节点为故障节点,则可以从节点集群中重新选择一个处理节点,并控制重新选择的处理节点,通过共享存储或处理节点的数据库服务,对数据处理请求对应的目标数据进行处理。可以理解的是,节点集群中可以设置活动节点,以用于替换故障的处理节点,以便于数据处理请求不受处理节点故障的影响,以便于数据处理请求能够正常响应。

在一个实施例中,参见图7,图7提供了另一种基于数据库集群的数据处理方法的流程示意图,具体包括以下步骤:

S701,获取数据处理请求。

可选的,在用户具有数据处理请求的情况下,通过应用层中的应用程序发起数据处理请求;服务器可以利用监听机制实时监测是否存在数据处理请求,在监测到存在数据处理请求的情况下,获取数据处理请求。其中,数据处理请求可以为数据访问、数据修改或数据写入等操作。

S702,从数据库节点集群中,选择数据处理请求对应的处理节点。

可选的,数据库节点集群包括多个数据库节点,数据库节点至少包括数据库、数据库服务(也为数据库实例)、存储管理服务、集群同步服务、本地存储和通信网络。获取数据处理请求后,可以根据数据处理请求对应的数据处理请求标识,在数据库节点集群中,选择与数据处理请求相对应的处理节点。

S703,判断数据处理请求的类别,若数据处理请求为数据查询请求,则执行步骤S704;若数据处理请求为数据修改请求或数据写入请求,则执行步骤S707-S709。

可选的,可以根据数据处理请求的标识确定数据处理请求的类别。

S704,判断数据处理请求对应的目标数据位于共享存储中或目标节点中,若位于共享存储中,则执行S705,若位于目标节点中,则执行S706。

可选的,可以同样可以根据数据处理请求的标识确定数据处理请求对应的目标数据位于共享存储中或目标节点中。

S705,控制处理节点,从共享存储中获取目标数据。

可选的,可以根据数据处理请求标识确定数据处理请求对应的目标数据位于共享存储中,还是位于数据库节点中;若数据处理请求对应的目标数据位于共享存储中,则可以控制处理节点,从共享存储中获取目标数据;其中,目标数据为与数据处理请求对应的响应数据。

示例性的,共享存储中包括目标数据的多个版本,以供多个数据库节点同时进行访问,由此需要根据数据处理请求,确定版本标识;进而控制处理节点,从共享存储中获取版本标识对应的目标数据。例如,可以根据数据处理请求的请求标识和时间戳,确定版本标识,其中,请求标识可以为数据处理请求的类别;时间戳可以确定处理数据请求的时间;根据数据处理请求的类别和时间戳可以确定版本标识,该版本标识用于确定处理数据处理请求开始时间之前的目标数据的版本。

S706,控制处理节点,通过处理节点的数据库服务,从目标节点中获取目标数据。

可选的,目标节点为数据库集群节点中存有目标数据的目标节点。若确定目标数据位于目标节点中,则可以控制处理节点,与其他数据库节点建立内部通信连接,并在内部通信连接已建立的情况下,控制处理节点,通过处理节点的数据库服务,从目标节点中获取目标数据。其中,数据库服务可以理解为在内存中运行的数据库进程,用于管理和处理数据库的操作;数据库服务负责连接到数据库,将数据加载到内存中,并执行数据处理请求的响应操作。

S707,根据数据处理请求,确定版本标识。

可以根据数据处理请求的请求标识,确定版本标识,例如,可以根据数据处理请求的请求标识和时间戳,确定版本标识,其中,请求标识可以为数据处理请求的类别;时间戳可以确定处理数据请求的时间;根据数据处理请求的类别和时间戳可以确定版本标识,该版本标识用于确定处理数据处理请求开始时间之前的目标数据的版本。

S708,控制处理节点,对共享存储中版本标识对应的目标数据进行加锁处理。

为了数据处理的一致性,在处理节点对版本标识对应的目标数据进行修改或写入之前,需要对该目标数据进行加锁处理,由此可以控制处理节点,对共享存储中版本标识对应的目标数据进行加锁处理。

S709,在加锁状态下,控制处理节点,对共享存储中的版本标识对应的目标数据进行修改,或向共享存储写入版本标识对应的目标数据。

进而,在加锁状态下,控制处理节点,对共享存储中的版本标识对应的目标数据进行修改,或向共享存储写入版本标识对应的目标数据。由此,可以避免在处理节点对版本标识对应的目标数据进行修改或写入的情况下,其他数据库节点也对该目标数据进行读写等操作,由此避免数据不同步的问题。

上述S701至S709的具体过程可以参见上述方法实施例的描述,其实现原理和技术效果类似,在此不再赘述。

应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的基于数据库集群的数据处理方法的基于数据库集群的数据处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个基于数据库集群的数据处理装置实施例中的具体限定可以参见上文中对于数据处理方法的限定,在此不再赘述。

在一个实施例中,如图8所示,提供了一种基于数据库集群的数据处理装置,包括:

获取模块10,用于获取数据处理请求;

选择模块20,用于从数据库节点集群中,选择数据处理请求对应的处理节点;

处理模块30,用于控制处理节点,通过共享存储或处理节点的数据库服务,对数据处理请求对应的目标数据进行处理;其中,数据库节点集群中各数据库节点均能够对共享存储中的数据进行访问。

上述基于数据库集群的数据处理装置,在获取到数据处理请求的情况下,从数据库节点集群中,选择数据处理请求对应的处理节点,并控制处理节点,通过共享存储或处理节点的数据库服务,对数据处理请求对应的目标数据进行处理;其中,数据库节点集群中各数据库节点均能够对共享存储中的数据进行访问。上述方案,通过引入支持多个数据库节点同时进行访问的共享存储,实现了对数据库的共享功能的扩展,减少了数据库节点之间相互等待的时间,进而提高了数据库的数据处理效率。

在一个实施例中,若数据处理请求为数据查询请求,处理模块30包括:

第一获取单元,用于若数据处理请求对应的目标数据位于共享存储中,则控制处理节点,从共享存储中获取目标数据;

第二获取单元,用于若目标数据位于目标节点中,则控制处理节点,通过处理节点的数据库服务,从目标节点中获取目标数据。

在一个实施例中,第二获取单元用于:

若目标节点为数据库节点集群中的其他数据库节点,则控制处理节点,与其他数据库节点建立内部通信连接;在内部通信连接已建立的情况下,控制处理节点,通过处理节点的数据库服务,将目标数据从其他数据库节点复制到处理节点,并从处理节点中获取目标数据。

在一个实施例中,第一获取单元用于:

根据数据处理请求,确定版本标识;控制处理节点,从共享存储中获取版本标识对应的目标数据。

在一个实施例中,若数据处理请求为数据修改请求或数据写入请求,处理模块30还包括处理单元,处理单元用于:

根据数据处理请求,确定版本标识;控制处理节点,对共享存储中版本标识对应的目标数据进行加锁处理;在加锁状态下,控制处理节点,对共享存储中的版本标识对应的目标数据进行修改,或向共享存储写入版本标识对应的目标数据。

在一个实施例中,第一获取单元或处理单元用于:

根据数据处理请求的请求标识和时间戳,确定版本标识。

在一个实施例中,处理模块30可以用于:

获取处理节点的节点状态数据;若根据节点状态数据识别到处理节点为故障节点,则从节点集群中重新选择一个处理节点,并控制重新选择的处理节点,通过共享存储或处理节点的数据库服务,对数据处理请求对应的目标数据进行处理。

上述基于数据库集群的数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储响应数据、控制数据和日志数据等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据处理方法。

本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

获取数据处理请求;

从数据库节点集群中,选择数据处理请求对应的处理节点;

控制处理节点,通过共享存储或处理节点的数据库服务,对数据处理请求对应的目标数据进行处理;其中,数据库节点集群中各数据库节点均能够对共享存储中的数据进行访问。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

若数据处理请求对应的目标数据位于共享存储中,则控制处理节点,从共享存储中获取目标数据;若目标数据位于目标节点中,则控制处理节点,通过处理节点的数据库服务,从目标节点中获取目标数据。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

若目标节点为数据库节点集群中的其他数据库节点,则控制处理节点,与其他数据库节点建立内部通信连接;在内部通信连接已建立的情况下,控制处理节点,通过处理节点的数据库服务,将目标数据从其他数据库节点复制到处理节点,并从处理节点中获取目标数据。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

根据数据处理请求,确定版本标识;控制处理节点,从共享存储中获取版本标识对应的目标数据。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

根据数据处理请求,确定版本标识;控制处理节点,对共享存储中版本标识对应的目标数据进行加锁处理;在加锁状态下,控制处理节点,对共享存储中的版本标识对应的目标数据进行修改,或向共享存储写入版本标识对应的目标数据。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

根据数据处理请求的请求标识和时间戳,确定版本标识。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

获取处理节点的节点状态数据;若根据节点状态数据识别到处理节点为故障节点,则从节点集群中重新选择一个处理节点,并控制重新选择的处理节点,通过共享存储或处理节点的数据库服务,对数据处理请求对应的目标数据进行处理。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

获取数据处理请求;

从数据库节点集群中,选择数据处理请求对应的处理节点;

控制处理节点,通过共享存储或处理节点的数据库服务,对数据处理请求对应的目标数据进行处理;其中,数据库节点集群中各数据库节点均能够对共享存储中的数据进行访问。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

若数据处理请求对应的目标数据位于共享存储中,则控制处理节点,从共享存储中获取目标数据;若目标数据位于目标节点中,则控制处理节点,通过处理节点的数据库服务,从目标节点中获取目标数据。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

若目标节点为数据库节点集群中的其他数据库节点,则控制处理节点,与其他数据库节点建立内部通信连接;在内部通信连接已建立的情况下,控制处理节点,通过处理节点的数据库服务,将目标数据从其他数据库节点复制到处理节点,并从处理节点中获取目标数据。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

根据数据处理请求,确定版本标识;控制处理节点,从共享存储中获取版本标识对应的目标数据。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

根据数据处理请求,确定版本标识;控制处理节点,对共享存储中版本标识对应的目标数据进行加锁处理;在加锁状态下,控制处理节点,对共享存储中的版本标识对应的目标数据进行修改,或向共享存储写入版本标识对应的目标数据。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

根据数据处理请求的请求标识和时间戳,确定版本标识。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

获取处理节点的节点状态数据;若根据节点状态数据识别到处理节点为故障节点,则从节点集群中重新选择一个处理节点,并控制重新选择的处理节点,通过共享存储或处理节点的数据库服务,对数据处理请求对应的目标数据进行处理。

在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

获取数据处理请求;

从数据库节点集群中,选择数据处理请求对应的处理节点;

控制处理节点,通过共享存储或处理节点的数据库服务,对数据处理请求对应的目标数据进行处理;其中,数据库节点集群中各数据库节点均能够对共享存储中的数据进行访问。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

若数据处理请求对应的目标数据位于共享存储中,则控制处理节点,从共享存储中获取目标数据;若目标数据位于目标节点中,则控制处理节点,通过处理节点的数据库服务,从目标节点中获取目标数据。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

若目标节点为数据库节点集群中的其他数据库节点,则控制处理节点,与其他数据库节点建立内部通信连接;在内部通信连接已建立的情况下,控制处理节点,通过处理节点的数据库服务,将目标数据从其他数据库节点复制到处理节点,并从处理节点中获取目标数据。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

根据数据处理请求,确定版本标识;控制处理节点,从共享存储中获取版本标识对应的目标数据。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

根据数据处理请求,确定版本标识;控制处理节点,对共享存储中版本标识对应的目标数据进行加锁处理;在加锁状态下,控制处理节点,对共享存储中的版本标识对应的目标数据进行修改,或向共享存储写入版本标识对应的目标数据。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

根据数据处理请求的请求标识和时间戳,确定版本标识。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

获取处理节点的节点状态数据;若根据节点状态数据识别到处理节点为故障节点,则从节点集群中重新选择一个处理节点,并控制重新选择的处理节点,通过共享存储或处理节点的数据库服务,对数据处理请求对应的目标数据进行处理。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

相关技术
  • 基于区块链的分布式数据库集群处理方法及装置
  • 基于数据分析的理赔服务处理方法、装置和计算机设备
  • 基于机器学习的问答数据处理方法、装置和计算机设备
  • 基于满意度评价的数据处理方法、装置和计算机设备
  • 数据处理方法、装置、计算机设备及计算机可读存储介质
  • 数据库集群的故障容灾处理方法、装置和计算机设备
  • 基于数据库集群的数据处理方法、装置及电子设备
技术分类

06120116583310