一种新型数据库和方法技术

技术编号:26478645 阅读:19 留言:0更新日期:2020-11-25 19:22
一种新型数据库和方法,通过设置相互连接的一致性协调系统、主控系统、数据存储系统和客户端模块形成数据库整体架构,并将所述数据库整体架构构建在分布式文件系统上,使其成为既能够具备多类型、大数据、高吞吐、高扩展性特性,又能够具有传统数据库优良特性的新型数据库,具有十分重要的行业应用现实意义。

【技术实现步骤摘要】
一种新型数据库和方法
本专利技术涉及数据库技术,特别是一种新型数据库和方法,通过设置相互连接的一致性协调系统、主控系统、数据存储系统和客户端模块形成数据库整体架构,并将所述数据库整体架构构建在分布式文件系统上,使其成为既能够具备多类型、大数据、高吞吐、高扩展性特性,又能够具有传统数据库优良特性的新型数据库,具有十分重要的行业应用现实意义。
技术介绍
随着互联网对传统行业的强烈冲击和影响,对传统行业信息化应用模式造成了深刻影响,传统行业应用从互联网所倡导的开放和创新的思维模式汲取营养,不断针对传统行业应用进行改良与创新,不断发展增值应用,以及不断提出新型的服务模式,这一切使得传统行业信息化应用,正在朝着服务化、行业运营级别方向发展。在此过程中,相对于传统应用来说,创新应用以及创新应用模式的最大阻碍,是数据类型更加丰富多样,同时数据规模几何级数膨胀,无法很好的处理丰富多样的数据类型和超大规模的数据量,应用创新便无从谈起。面对上述现实情况,传统的关系型数据库无法满足这么大规模数据的高效存储与高并发读写需求。为了解决这个问题,提出了关系数据库分片集群的方案,它采用分片(sharding)的方式对扩容进行支持,但是所带来的问题是,扩容操作比较复杂,联合多个sharding表数据查询也很麻烦。关系数据库的分片方案分为垂直分片和水平分片,以用户、订单、库存的场景为例,说明关系数据库在应对大规模数据存储上的复杂性和固有缺陷。垂直分片的做法是将用户、订单、库存的信息分别存储在不同的数据库中,例如数据库A存储用户、订单的信息,数据库B存储库存的信息。当有新的订单生成时,需要将订单信息写入到A库中(插入新订单),将库存信息写入到B库中(更新库存),对两个库的操作需要保证原子性和一致性,即要么两个操作都成功,要么都失败,不能出现有新订单却没有减库存的情况,这种保障机制需要在应用系统中来控制和实现,两个数据库之间是无法互相保证的,而且将保障工作交给应用程序,无疑增加了应用程序的复杂度和工作量。随着业务规模的增加,垂直分片的方案很快会遇到新的瓶颈,需要对A、B两个数据库进行再次拆分,例如增加新的数据库C,用于存储订单信息,那么就需要将A库中的订单数据迁移到C库中,相应的,应用程序中的逻辑就需要重新改写,代价是巨大的。水平分片的做法是根据数据的某些属性,动态将数据分散存储到不同的数据库中,例如按照用户、订单、库存所属的地域,将华北地区的用户、订单、库存信息存储在A库中,将华南地区的用户、订单、库存信息存储在B库中。当需要查询某类商品的全国销量时,需要应用程序分别从不同的数据库中查询相关数据,然后再自行汇总计算。当用户跨地域下单时,也需要同时操作不同的数据库,并在应用程序端保证操作的原子性和一致性。当数据规模扩大时,需要按新的规则进行水平分片(例如按省份分片),同样会面临大规模的数据迁移,以及应用程序逻辑上的变更。随着云计算技术的兴起,解决了大规模数据的存储及处理问题,特别是对于结构化及半结构化数据,云存储是一种非常有效、经济的存储方式。针对数据的查询需求,一些公司以及研究机构纷纷开发云上的数据库系统,它们统称为NoSQL。NoSQL是指NoRelationship或NotOnlySQL(SQL是结构化查询语言的英文简称,这里代指关系数据库),用于存储和处理大规模结构化或非结构化数据,能够随着数据规模增大而进行水平扩展,目前已有许多种NoSQL数据库的实现,根据数据的存储方式,可以分为三个主要类型:Key-Value存储模式(即键值对存储模式)、文档模型存储模式、列族模型存储模式。这些NoSQL系统,大多侧重于高吞吐率和高可扩展性的设计,放弃了关系数据库的许多优良特性,如二级索引、事务、连接查询等,同时也不支持SQL访问。这些设计上的刻意侧重,以及针对行业应用开发支持功能上的舍弃,使得NoSQL无法满足许多具有严谨业务逻辑要求的应用需求,用户不能直接由RDBMS(关系数据库)迁移到NoSQL,这限制了NoSQL数据库技术在行业应用上的推广和使用。本专利技术人认识到,关系数据库的数据是存放在本地目录中(即数据是存放在安装数据库软件的那台计算机上),而一台计算机能够提供的存储空间有限,本地存储很难应对数据规模的增长。基于此,有必要借助文件系统的文件存储功能。数据库是运行在计算机操作系统中的一种软件程序,数据库的主要作用之一是存储数据,数据最终都要存放在文件系统中,即数据是存放在磁盘某些目录下的一个或多个文件中。如果要随时应对数据规模的增长,就需要能够随时对文件系统的存储空间进行扩容,由此可见,有必要将数据库构建在分布式文件系统上。分布式文件系统结构如图1所示,包括通过网络连接的节点1、节点2和节点3,节点1为本地节点,程序(用户)能够通过分布式文件系统在各个节点的磁盘上进行文件读写。当现有节点存储空间不足时,可以通过向分布式文件系统中添加新的节点来对存储空间进行扩容,例如图1中具有磁盘的新增节点4(网络计算机或者说联网计算机)。分布式文件系统(DistributedFileSystem)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点(可理解为一台计算机)相连。多个节点组成了一个大的文件系统,允许文件和存储空间通过网络在多台节点上分享,如图1所示,在程序与用户看来,让实际上是通过网络来访问文件的动作,就像是访问本地的磁盘一般,而实际上目录和文件可能被分散存储到不同的节点上,甚至单个文件会被拆分成多个文件块分别存储到不同的节点,程序与用户无需关心文件存储的细节。当现有节点存储空间不足时,可以通过向分布式文件系统中添加新的节点来对存储空间进行扩容(图1中的虚线部分),分布式文件系统支持扩容就相当于为程序和用户提供了近乎无限的存储空间,扩容的过程同样对程序和用户是透明的。有鉴于此,本专利技术人通过设置相互连接的一致性协调系统、主控系统、数据存储系统和客户端模块形成数据库整体架构,并将所述数据库整体架构构建在分布式文件系统上,使其成为既能够具备多类型、大数据、高吞吐、高扩展性特性,又能够具有传统数据库优良特性的新型数据库。本专利技术具有十分重要的行业应用现实意义,具备上述两种特性的新型数据库称为NewSQL数据库系统。
技术实现思路
本专利技术针对现有技术中存在的缺陷或不足,提供一种新型数据库和方法,通过设置相互连接的一致性协调系统、主控系统、数据存储系统和客户端模块形成数据库整体架构,并将所述数据库整体架构构建在分布式文件系统上,使其成为既能够具备多类型、大数据、高吞吐、高扩展性特性,又能够具有传统数据库优良特性的新型数据库,具有十分重要的行业应用现实意义。本专利技术的技术方案如下:一种新型数据库,其特征在于,包括构建在分布式文件系统之上的数据库整体架构,所述数据库整体架构包括相互连接的一致性协调系统、主控系统、数据存储系统和客户端模块,所述客户端模块供应用程序操作数据库使用,所述数据库整体架构通过文件系统模块与所述分布式文件系统连接,所述主控系统和所述数据存储系统分别通过一致性协调系统交互模块连本文档来自技高网
...

【技术保护点】
1.一种新型数据库,其特征在于,包括构建在分布式文件系统之上的数据库整体架构,所述数据库整体架构包括相互连接的一致性协调系统、主控系统、数据存储系统和客户端模块,所述客户端模块供应用程序操作数据库使用,所述数据库整体架构通过文件系统模块与所述分布式文件系统连接,与所述主控系统和所述数据存储系统分别通过一致性协调系统交互模块连接所述一致性协调系统,所述一致性协调系统通过客户端访问接口与客户端模块连接,所述数据存储系统通过请求处理模块分别与所述主控系统和所述客户端连接,所述主控系统通过外部接口模块与所述客户端模块连接。/n

【技术特征摘要】
1.一种新型数据库,其特征在于,包括构建在分布式文件系统之上的数据库整体架构,所述数据库整体架构包括相互连接的一致性协调系统、主控系统、数据存储系统和客户端模块,所述客户端模块供应用程序操作数据库使用,所述数据库整体架构通过文件系统模块与所述分布式文件系统连接,与所述主控系统和所述数据存储系统分别通过一致性协调系统交互模块连接所述一致性协调系统,所述一致性协调系统通过客户端访问接口与客户端模块连接,所述数据存储系统通过请求处理模块分别与所述主控系统和所述客户端连接,所述主控系统通过外部接口模块与所述客户端模块连接。


2.根据权利要求1所述的新型数据库,其特征在于,所述应用程序采用SQL语句通过所述客户端模块进行数据库操作,所述SQL语句中设置有包括列组名称描述项或列组名称句子成分以适配列式数据库中列式存储模型的列组设置;所述列式存储模型为包括所述列组的多级结构,所述SQL语句能够适配列式数据库中列式存储模型的多级列组结构;所述SQL语句具有以下功能设置:支持动态列作为静态字段和/或作为值的转换方法以适配列式存储模型中的列既能够作为字段也能够作为值的使用方式,支持动态列查询。


3.根据权利要求1所述的新型数据库,其特征在于,所述数据库整体架构为分布式集群模式;所述一致性协调系统、主控系统、数据存储系统均为分布式集群模式;所述数据存储系统的分布式集群采用多活模式,所述主控系统的分布式集群采用一主多备模式;所述数据存储系统的数据存储采用列式存储模型,所述数据存储系统针对数据查询采用匹配不同存储层次的分层扫描器查找目标数据。


4.根据权利要求1所述的新型数据库,其特征在于,所述一致性协调系统的分布式集群采用Paxos算法以保证被操作数据状态的一致性,所述分布式集群包括一个领导者节点,分别与所述领导者节点连接的若干个观察者节点,以及分别与所述领导者节点连接的若干个跟随者节点,所述领导者节点、观察者节点和跟随者节点组成集群共同对外提供服务,对于多进程访问共享资源进行协调和保证数据状态的一致性;或者,所述主控系统包括指令执行模块,策略模块,所述一致性协调系统交互模块,所述文件系统模块,以及所述外部接口模块,所述指令执行模块分别互连于所述策略模块、所述一致性协调系统交互模块、所述文件系统模块和所述外部接口模块,所述外部接口模块与外部访问请求进行交互,所述文件系统模块与分布式文件系统交互,所述一致性协调系统交互模块与一致性协调系统进行交互;或者,所述数据存储系统包括请求处理模块,一致性协调系统交互模块,预写日志模块,数据缓存模块,分区管理模块,以及文件系统模块,所述请求处理模块互连着预写日志模块、数据缓存模块、分区管理模块、主控系统和客户端模块,所述一致性协调系统交互模块分别互连着分区管理模块和一致性协调系统,所述文件系统模块分别互连着预写日志模块、分区管理模块和分布式文件系统,所述分区管理模块包括若干个表分区;或者,所述客户端模块用于用户或应用程序与数据库集群通讯、发起请求和接收结果,所述客户端模块包括连接池和API应用程序接口,应用程序通过所述API实现数据库操作,所述连接池分别连接所述API、所述一致性协调系统、所述主控系统和所述数据存储系统。


5.根据权利要求1所述的新型数据库,其特征在于,所述一致性协调系统交互模块中的集群状态管理工具用于执行主控系统集群的一主多备模式,当主控系统软件被部署到多个节点上并启动后,所述集群状态管理工具通过所述一致性协调系统的分布式锁机制选定一个节点为活动节点,保证只有这一个节点上的主控系统对外提供服务,其他节点均为备用的就位节点,当主控系统活动节点被所述一致性协调系统的故障发现机制确认发生故障,所述集群状态管理工具重新选定活动节点并通过所述指令执行模块完成故障迁移;或者,所述一致性协调系统交互模块中的数据存储系统管理工具用于执行数据存储系统集群的多活模式,所述多活模式中的多个活动节点的信息被存储在所述一致性协调系统中,当其中某一个活动节点被所述一致性协调系统的故障发现机制确认发生故障,所述数据存储系统管理工具调用所述指令执行模块进行故障处理,所述故障处理包括将发生故障的数据存储系统中的数据托管到其他正常的数据存储系统中;或者,所述一致性协调系统交互模块中的负载均衡管理工具通过调用所述指令执行模块管理被触发的对数据存储系统集群所进行的负载均衡工作,所述负载均衡工作包括对表分区进行重新分配,所述重新分配是按照负载均衡策略将表分区托管到不同的数据存储系统中,所述负载均衡工作的触发来自所述策略模块的主动触发或来自所述外部接口模块的外部触发,在所述负载均衡工作的过程中,所述负载均衡管理工具使用从所述一致性协调系统获取的分布式锁防止在负载均衡过程中再次发生负载均衡...

【专利技术属性】
技术研发人员:赵欣
申请(专利权)人:深圳市赢时胜信息技术股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1