著录项信息
专利名称 | 一种分布式数据库平台的应用方法和系统 |
申请号 | CN201310645980.6 | 申请日期 | 2013-12-03 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2014-03-12 | 公开/公告号 | CN103631924A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | TCL集团股份有限公司 | 申请人地址 | 广东省惠州市鹅岭南路6号TCL工业大厦8楼技术中心
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | TCL集团股份有限公司 | 当前权利人 | TCL集团股份有限公司 |
发明人 | 廖召正 |
代理机构 | 深圳中一专利商标事务所 | 代理人 | 张全文 |
摘要
本发明适用于数据库技术领域,提供了一种分布式数据库平台的应用方法和系统,包括:接收创建数据库的请求,请求的节点类型包括关系节点和数据节点;根据所述创建数据库的请求,在满足请求条件的节点中创建关系节点对应的数据库和数据节点对应的数据库,所述关系节点对应的数据库存储于内存中,所述数据节点对应的数据库存储于外存中。本发明通过将存储量小、操作量大的关系节点对应的数据库存储于内存中,将存储量大、操作量小的数据节点对应的数据库存储于外存中,由此大大提高了数据存储的灵活性,有效管理分布式数据库平台的节点资源,从而集成数量众多的节点,很好地保证了集群节点的容量规划、高可用性和均衡负载。
1.一种分布式数据库平台的应用方法,其特征在于,包括:
接收在所述分布式数据库平台上创建数据库的请求,所述创建数据库的请求包括请求创建的数据库名、请求的节点类型和请求创建的数据库的大小,所述请求的节点类型包括关系节点和数据节点;
根据所述创建数据库的请求,查找满足请求条件的节点,在所述满足请求条件的节点中创建数据库,所述数据库包括关系节点对应的数据库和数据节点对应的数据库,所述关系节点对应的数据库存储于内存中,所述数据节点对应的数据库存储于外存中;
分别在所述关系节点对应的数据库与所述数据节点对应的数据库中创建数据表,创建的所述数据表包括数据表名,所述数据表包括1个以上字段,所述字段包括字段名;
根据接收的数据库名、数据表名、字段名以及插入请求,在所述关系节点对应的数据库或者所述数据节点对应的数据库中的与接收的所述数据库名与所述数据表名对应的数据表中插入记录。
2.如权利要求1所述的应用方法,其特征在于,所述方法还包括:
将所述记录区分为关系型记录和信息型记录,所述关系型记录包括应用业务之间的关系数据,所述信息型记录包括应用业务的详细信息数据;
在所述关系节点对应的数据库中创建的数据表为关系型记录对应的数据表;
在所述数据节点对应的数据库中创建的数据表为信息型记录对应的数据表。
3.如权利要求1所述的应用方法,其特征在于,所述方法还包括:
当创建的所述数据库所在的节点的已用存储量超过预设溢出值时,在一个新的节点上复制创建的所述数据库的结构,以自动扩展创建的所述数据库;
所述根据接收的数据库名、数据表名、字段名以及插入请求,在所述关系节点对应的数据库或者所述数据节点对应的数据库中的与接收的所述数据库名与所述数据表名对应的数据表中插入记录具体为:
根据接收的数据库名、数据表名、字段名以及插入请求,在所述关系节点对应的数据库或者所述数据节点对应的数据库中的与接收的所述数据库名与所述数据表名对应的所述新的节点中插入记录。
4.如权利要求1所述的应用方法,其特征在于,所述方法还包括:
根据接收的数据库名、数据表名以及查找请求,分别在所述关系节点对应的数据库与所述数据节点对应的数据库中的与接收的所述数据库名与所述数据表名对应的数据表中查找记录。
5.如权利要求3所述的应用方法,其特征在于,所述方法还包括:
根据接收的数据库名、数据表名以及查找请求,建立与所述数据库对应的节点的数量匹配个数的线程,通过所述线程在所述数据库对应的节点中的与接收的所述数据库名与所述数据表名对应的数据表中查找记录。
6.一种分布式数据库平台系统,其特征在于,包括:
数据库创建请求接收模块,用于接收在所述分布式数据库平台上创建数据库的请求,所述创建数据库的请求包括请求创建的数据库名、请求的节点类型和请求创建的数据库的大小,所述请求的节点类型包括关系节点和数据节点;
数据库创建模块,用于根据所述创建数据库的请求,查找满足请求条件的节点,在所述满足请求条件的节点中创建数据库,所述数据库包括关系节点对应的数据库和数据节点对应的数据库,所述关系节点对应的数据库存储于内存中,所述数据节点对应的数据库存储于外存中;
数据表创建模块,用于分别在所述关系节点对应的数据库与所述数据节点对应的数据库中创建数据表,创建的所述数据表包括数据表名,所述数据表包括1个以上字段,所述字段包括字段名;
插入记录模块,用于根据接收的数据库名、数据表名、字段名以及插入请求,在所述关系节点对应的数据库或者所述数据节点对应的数据库中的与接收的所述数据库名与所述数据表名对应的数据表中插入记录。
7.如权利要求6所述的系统,其特征在于,所述系统还包括记录区分模块,所述记录区分模块用于:
将所述记录区分为关系型记录和信息型记录,所述关系型记录包括应用业务之间的关系数据,所述信息型记录包括应用业务的详细信息数据;
在所述关系节点对应的数据库中创建的数据表为关系型记录对应的数据表;
在所述数据节点对应的数据库中创建的数据表为信息型记录对应的数据表。
8.如权利要求6所述的系统,其特征在于,所述系统还包括:
数据库自动扩展模块,用于当创建的所述数据库所在的节点的已用存储量超过预设溢出值时,在一个新的节点上复制创建的所述数据库的结构,以自动扩展创建的所述数据库;
所述插入记录模块具体用于:
根据接收的数据库名、数据表名、字段名以及插入请求,在所述关系节点对应的数据库或者所述数据节点对应的数据库中的与接收的所述数据库名与所述数据表名对应的所述新的节点中插入记录。
9.如权利要求6所述的系统,其特征在于,所述系统还包括:
查找记录模块,用于根据接收的数据库名、数据表名以及查找请求,分别在所述关系节点对应的数据库与所述数据节点对应的数据库中的与接收的所述数据库名与所述数据表名对应的数据表中查找记录。
10.如权利要求8所述的系统,其特征在于,所述系统还包括:
查找记录模块,用于根据接收的数据库名、数据表名以及查找请求,建立与所述数据库对应的节点的数量匹配个数的线程,通过所述线程在所述数据库对应的节点中的与接收的所述数据库名与所述数据表名对应的数据表中查找记录。
一种分布式数据库平台的应用方法和系统\n技术领域\n[0001] 本发明属于数据库技术领域,尤其涉及一种分布式数据库平台的应用方法和系统。\n背景技术\n[0002] 随着云计算技术产品、解决方案的不断成熟,云计算迅速推广普及,已成为许多重要领域的主流IT(Internet Technology,信息技术)应用模式。在云服务器项目中,应用服务器作为一个大规模的服务器,在其日常的使用管理中涉及海量的数据以及频繁的数据操作,对软件系统提出了高实时性的要求。\n[0003] 作为免费的大型关系型数据库,MySQL以其优秀的特性在许多云服务器项目中都被用作数据存储服务器。为了应对大数据量的存储请求、并行和负载均衡等,云服务器对数据库存储提出了分布式的需求,现有技术中,对MySQL服务器组进行分表分库、负载均衡、集群的方案都已经有很多切实可行方案,但是,这些方案无法避免频繁的磁盘存取操作,而相比于内存操作,磁盘存取操作的效率要低很多。\n[0004] 由于内存缓冲区对于数据访问的重要性,NoSQL开始盛行,NoSQL以其灵活的数据模型,以及高性能、易扩展等优点获取了大量用户的青睐。虽然NoSQL有着更高的性能,但是内存容量小,尤其对于部署一套通用平台的一组数据库服务器,考虑性价比,廉价的机器对应的内存空间并不足以用来加载全部数据。\n[0005] 综上所述,现有的数据存储灵活性差。\n发明内容\n[0006] 本发明实施例的目的在于提供一种分布式数据库平台的应用方法,旨在解决现有的数据存储灵活性差的问题。\n[0007] 本发明实施例是这样实现的,一种分布式数据库平台的应用方法,包括:\n[0008] 接收在所述分布式数据库平台上创建数据库的请求,所述创建数据库的请求包括请求创建的数据库名、请求的节点类型和请求创建的数据库的大小,所述请求的节点类型包括关系节点和数据节点;\n[0009] 根据所述创建数据库的请求,查找满足请求条件的节点,在所述满足请求条件的节点中创建数据库,所述数据库包括关系节点对应的数据库和数据节点对应的数据库,所述关系节点对应的数据库存储于内存中,所述数据节点对应的数据库存储于外存中;\n[0010] 分别在所述关系节点对应的数据库与所述数据节点对应的数据库中创建数据表,创建的所述数据表包括数据表名,所述数据表包括1个以上字段,所述字段包括字段名;\n[0011] 根据接收的数据库名、数据表名、字段名以及插入请求,在所述关系节点对应的数据库或者所述数据节点对应的数据库中的与接收的所述数据库名与所述数据表名对应的数据表中插入记录。\n[0012] 本发明实施例的另一目的在于提供一种分布式数据库平台系统,包括:\n[0013] 数据库创建请求接收模块,用于接收在所述分布式数据库平台上创建数据库的请求,所述创建数据库的请求包括请求创建的数据库名、请求的节点类型和请求创建的数据库的大小,所述请求的节点类型包括关系节点和数据节点;\n[0014] 数据库创建模块,用于根据所述创建数据库的请求,查找满足请求条件的节点,在所述满足请求条件的节点中创建数据库,所述数据库包括关系节点对应的数据库和数据节点对应的数据库,所述关系节点对应的数据库存储于内存中,所述数据节点对应的数据库存储于外存中;\n[0015] 数据表创建模块,用于分别在所述关系节点对应的数据库与所述数据节点对应的数据库中创建数据表,创建的所述数据表包括数据表名,所述数据表包括1个以上字段,所述字段包括字段名;\n[0016] 插入记录模块,用于根据接收的数据库名、数据表名、字段名以及插入请求,在所述关系节点对应的数据库或者所述数据节点对应的数据库中的与接收的所述数据库名与所述数据表名对应的数据表中插入记录。\n[0017] 本发明实施例通过将存储量小、操作量大的关系节点对应的数据库存储于内存中,将存储量大、操作量小的数据节点对应的数据库存储于外存中,由此大大提高了数据存储的灵活性,有效管理分布式数据库平台的节点资源,从而集成数量众多的节点,实现了集群节点的数据库服务,很好地保证了集群节点的容量规划、高可用性和均衡负载。\n附图说明\n[0018] 图1是本发明实施例提供的分布式数据库平台的应用方法的实现流程图;\n[0019] 图2是本发明实施例提供的分布式数据库平台系统的系统框图。\n具体实施方式\n[0020] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。\n[0021] 本发明实施例通过将存储量小、操作量大的关系节点对应的数据库存储于内存中,将存储量大、操作量小的数据节点对应的数据库存储于外存中,由此大大提高了数据存储的灵活性,有效管理分布式数据库平台的节点资源,从而集成数量众多的节点,实现了集群节点的数据库服务,很好地保证了集群节点的容量规划、高可用性和均衡负载。\n[0022] 图1示出了本发明实施例提供的分布式数据库平台的应用方法的实现流程图。参照图1,该方法包括步骤S101-S104,其中:\n[0023] 在步骤S101中,接收在所述分布式数据库平台上创建数据库的请求,所述创建数据库的请求包括请求创建的数据库名、请求的节点类型和请求创建的数据库的大小,所述请求的节点类型包括关系节点和数据节点。\n[0024] 在本发明实施例中,每个项目要在分布式数据库平台上创建数据库,需要向分布式数据库平台系统提交申请,分布式数据库平台系统提供接口,接收DBA(Database Administrator,数据库管理员)发来的在分布式数据库平台上创建数据库的请求。\n[0025] 在步骤S102中,根据所述创建数据库的请求,查找满足请求条件的节点,在所述满足请求条件的节点中创建数据库,所述数据库包括关系节点对应的数据库和数据节点对应的数据库,所述关系节点对应的数据库存储于内存中,所述数据节点对应的数据库存储于外存中。\n[0026] 作为本发明的一个实施例,分布式数据库平台系统包括分布式关系节点管理模块和分布式数据节点管理模块。分布式关系节点管理模块根据创建关系节点对应的数据库的请求创建的数据库的大小,查找满足请求条件的关系节点,在满足请求条件的关系节点中创建关系节点对应的数据库。分布式数据节点管理模块根据创建数据节点对应的数据库的请求创建的数据库的大小,查找满足请求条件的数据节点,在满足请求条件的数据节点中创建数据节点对应的数据库。\n[0027] 分布式关系节点管理模块记录现有的关系节点资源的描述情况,包括有多少个关系节点,分别是哪些关系节点,关系节点的IP(Internet Protocol,网际协议)地址,有哪些关系节点已用,有哪些关系节点未用,关系节点已用的内存资源大小,关系节点可用的内存资源大小,已创建的关系节点对应的数据库及其对应的分布式关系节点链表,已创建的关系节点对应的数据库正在使用的关系节点以及该关系节点的序号。分布式关系节点管理模块根据请求创建的关系节点对应的数据库的大小来分配关系节点资源。\n[0028] 分布式数据节点管理模块记录现有的数据节点资源的描述情况,包括有多少个数据节点,分别是哪些数据节点,数据节点的IP地址,有哪些数据节点已用,有哪些数据节点未用,数据节点已用的物理容量大小,数据节点可用的物理容量大小,已创建的数据节点对应的数据库及其对应的分布式数据节点链表,已创建的数据节点对应的数据库正在使用的数据节点以及该数据节点的序号。分布式数据节点管理模块根据请求创建的数据节点对应的数据库的大小来分配数据节点资源。\n[0029] 需要说明的是,节点的序号指的是,在数据库对应的分布式节点链表中的节点的序号,每个数据库对应的分布式节点链表中的节点序号从1开始递增。\n[0030] 下面对创建关系节点对应的数据库时分布式关系节点管理模块如何分配关系节点资源进行说明:\n[0031] 分布式关系节点管理模块根据请求创建的关系节点对应的数据库的大小做容量规划,在分布式关系节点管理模块记录的关系节点资源中,计算每个关系节点待用的内存资源大小。关系节点待用的内存资源大小=关系节点可用的内存资源大小×预设溢出百分比。其中预设溢出百分比=预设溢出值÷关系节点总的内存资源大小。筛选出关系节点待用的内存资源大小大于请求创建的关系节点对应的数据库的关系节点,然后在筛选出的关系节点中选取待用的内存资源大小最小的关系节点为最佳关系节点,在该最佳关系节点中创建关系节点对应的数据库。在关系节点中创建数据库后,在对应的分布式关系节点管理模块中更新最佳关系节点的使用信息,以及数据库对应的分布式关系节点链表信息。\n[0032] 如果请求创建的关系节点对应的数据库的大小超过所有关系节点待用的内存资源大小,则需要自动扩容。关系节点待用的内存资源大小=关系节点可用的内存资源大小×预设溢出百分比。取关系节点待用的内存资源大小最大的关系节点为第一关系节点,在该第一关系节点中创建关系节点对应的数据库。在分布式关系节点管理模块中更新该第一关系节点的使用信息,以及数据库对应的分布式关系节点链表信息,并标记第一关系节点的序号为1。请求创建的关系节点对应的数据库的剩余大小=请求创建的关系节点对应的数据库的大小-(第一关系节点可用的内存资源大小×预设溢出百分比),运用前述方法对请求创建的关系节点对应的数据库的剩余大小部分选择关系节点,依次选择出第二关系节点、第三关系节点等,在此不再赘述。在该数据库对应的分布式关系节点链表中,第二关系节点的序号为2,第三关系节点的序号为3,以此类推。\n[0033] 创建数据节点对应的数据库时分布式数据节点管理模块分配数据节点资源的方法与创建关系节点对应的数据库时分布式关系节点管理模块分配关系节点资源的方法相同。\n[0034] 在本发明实施例中,关系节点对应的数据库采用Redis,Redis是众多NoSQL产品中的其中一种使用广泛的产品。数据节点对应的数据库采用MySQL。另外,可以用NoSQL之Handler Socket作为插件,直接操作MySQL数据库。\n[0035] 在步骤S103中,分别在所述关系节点对应的数据库与所述数据节点对应的数据库中创建数据表,创建的所述数据表包括数据表名,所述数据表包括1个以上字段,所述字段包括字段名。\n[0036] 在步骤S104中,根据接收的数据库名、数据表名、字段名以及插入请求,在所述关系节点对应的数据库或者所述数据节点对应的数据库中的与接收的所述数据库名与所述数据表名对应的数据表中插入记录。\n[0037] 进一步地,所述方法还包括:\n[0038] 将所述记录区分为关系型记录和信息型记录,所述关系型记录包括应用业务之间的关系数据,所述信息型记录包括应用业务的详细信息数据;\n[0039] 在所述关系节点对应的数据库中创建的数据表为关系型记录对应的数据表;\n[0040] 在所述数据节点对应的数据库中创建的数据表为信息型记录对应的数据表。\n[0041] 在本发明实施例中,用户预先对待存储的数据进行分类,确定待存储的数据是属于应用业务之间的关系数据还是应用业务的详细信息数据,应用业务之间的关系数据对应关系型记录,应用业务的详细信息数据对应信息型记录。在接收到插入请求时,根据待存储的数据的类型的不同,来确定请求插入记录的数据库类型。关系型记录对应应用业务之间的关系数据,特征是存储量小,但是操作量很大;信息型记录对应应用业务的详细信息数据,特征是存储量大,但操作量小,行记录包含的字段很多,且字段的内容很大。\n[0042] 关系型记录主要是以对或者对的形式存在,如前所述,关系型记录一般存储量小,但是操作量很大,适合加载到内存中。作为NoSQL数据库,Redis是一种内存数据库,执行增删改查的速度很快。Redis以纯内存的方式存储关系型记录,在系统启动时将关系型记录直接加载到内存中运行。同时,在同个节点上运行着Backend同步进程,Backend同步进程负责在DML(Data Manipulation Language,数据操纵语言)更改Redis内存数据时,将变更后的内存数据写到物理硬盘中,以解决数据丢失的问题。一般,Redis自带物理Backend功能,或者Backend数据库可以选用TC(Tokyo Cabinet)来存储。这样,重启的时候,Redis可以很快地把关系型记录加载到内存。信息型记录的存储量大,操作量小,不适合存储在内存中,而存储在外存储器中。\n[0043] 需要说明的是,该分布式数据库平台系统定义了ID(Identity,序列号)唯一性算法。分布式关系节点管理模块和分布式数据节点管理模块统称为分布式管理模块。若一个节点的节点序号为A,存储容量为N,例如N=1,000,000,000,则该节点中的记录的起始ID为(A-1)×N。每增加一个记录,ID递增1。在实际应用中,对每个数据库创建维护数据表,维护数据表的字段包括数据表名、节点名和ID。\n[0044] 优选地,所述方法还包括:\n[0045] 当创建的所述数据库所在的节点的已用存储量超过预设溢出值时,在一个新的节点上复制创建的所述数据库的结构,以自动扩展创建的所述数据库;\n[0046] 步骤S104所述根据接收的数据库名、数据表名、字段名以及插入请求,在所述关系节点对应的数据库或者所述数据节点对应的数据库中的与接收的所述数据库名与所述数据表名对应的数据表中插入记录具体为:\n[0047] 根据接收的数据库名、数据表名、字段名以及插入请求,在所述关系节点对应的数据库或者所述数据节点对应的数据库中的与接收的所述数据库名与所述数据表名对应的所述新的节点中插入记录。\n[0048] 在实际应用中,许多项目在云服务器的架设中面对海量数据需要开发数据库,当海量数据的负载超出了单台服务器的承受能力时,需要考虑如何自动扩展服务器。需要说明的是,在本发明实施例中,节点相当于服务器。在本发明实施例中,维护一个线程定时检查,当一个节点的已用存储量超过预设溢出值时,自动申请一个新的节点,并在这个新的节点上复制创建的数据库的数据表结构,以自动扩展创建的数据库。自动扩展完成后,在数据库对应的分布式节点链表中添加新的节点名,并为该新的节点分配序号。假定该新的节点的上一个节点的序号为K,则该新的节点的序号为K+1。当上述操作完成后,切换插入记录的操作到新的节点。也就是说,该新的节点对应于该数据库正在使用的节点。\n[0049] 进一步地,所述方法还包括:\n[0050] 根据接收的数据库名、数据表名以及查找请求,分别在所述关系节点对应的数据库与所述数据节点对应的数据库中的与接收的所述数据库名与所述数据表名对应的数据表中查找记录。\n[0051] 作为本发明的一个实施例,分布式数据库平台系统通过Redis Key GPS(Redis关键值定位)模块定位关系型记录所在的节点,通过MySQL Key GPS(MySQL关键值定位)模块定位信息型记录所在的节点。\n[0052] 本发明实施例为单个数据库查找的情况。根据DBA发来的数据库名、数据表名和ID,通过Redis Key GPS和MySQL Key GPS判断ID的区间,从而确定节点名,从而定位到节点,再在该节点的指定数据库的指定数据表中查找到指定记录。\n[0053] 通过Redis Key GPS查找关系型记录的流程为:\n[0054] 1、Redis Key GPS访问分布式关系节点管理模块,获取请求查找的关系型记录所存储于的目标关系节点的信息;\n[0055] 2、连接目标关系节点;\n[0056] 3、在目标关系节点中查找关系型记录。\n[0057] 需要说明的是,关系型记录存储信息型记录的ID,如果需要查找关系型记录对应的信息型记录的详细信息,则进行信息型记录的查找。\n[0058] 通过MySQL Key GPS查找信息型记录的流程为:\n[0059] 1、MySQL Key GPS访问分布式数据节点管理模块,获取请求查找的信息型记录所存储于的目标数据节点的信息;\n[0060] 2、Handler Socket直连目标数据节点;\n[0061] 3、获取信息型记录的详细信息。\n[0062] 需要说明的是,数据库中的数据的删除、更新也要先通过Redis Key GPS和MySQL Key GPS的定位。\n[0063] 通过Redis Key GPS更新或者删除关系型记录的流程为:\n[0064] 1、Redis Key GPS访问分布式关系节点管理模块,获取请求更新或者删除的关系型记录所存储于的目标关系节点的信息;\n[0065] 2、连接目标关系节点;\n[0066] 3、在目标关系节点中更新或者删除关系型记录。\n[0067] 需要说明的是,如果需要更新或者删除关系型记录对应的信息型记录的详细信息,则进行信息型记录的更新或者删除。\n[0068] 通过MySQL Key GPS更新或者删除信息型记录的流程为:\n[0069] 1、MySQL Key GPS访问分布式数据节点管理模块,获取请求更新或者删除的信息型记录所存储于的目标数据节点的信息;\n[0070] 2、Handler Socket直连目标数据节点;\n[0071] 3、更新或者删除信息型记录的详细信息。\n[0072] 进一步地,所述方法还包括:\n[0073] 根据接收的数据库名、数据表名以及查找请求,建立与所述数据库对应的节点的数量匹配个数的线程,通过所述线程在所述数据库对应的节点中的与接收的所述数据库名与所述数据表名对应的数据表中查找记录。\n[0074] 本发明实施例为多个数据库跨库查找的情况。在这里,数据库对应的分布式节点链表中的节点序号不小于2且该数据库正在使用的节点序号大于1。需要说明的是,该数据库正在使用的节点序号相当于该数据库对应的分布式节点链表中已使用的节点的个数。在这里,根据数据库对应的节点链表中的已使用的节点的个数,建立与已使用的节点的个数匹配数量的线程,通过各个线程分别在各个已使用的节点上查找,再合并结果值,从而保证当一个数据库切分到多个节点后数据的正确高效访问。\n[0075] 优选地,MySQL集群方案选择MySQL Replication(MySQL复制)的双主多从方案,HA(High Availability,高可用)选择keepalived和mysql-mmm,LB(Load Balancing,负载均衡)选用LVS(Linux Virtual Server,Linux虚拟节点),故障转移用keepalived和mysql-mmm监控并实现。\n[0076] 优选地,Redis集群方案选择主从复制方案,HA选择keepalived。由于Redis在内存操作,因此无需负载均衡。\n[0077] 需要说明的是,本发明实施例提供的分布式数据库平台是基础平台,项目组只需要在此基础平台上做数据库的二次开发,把数据区分为关系型记录和信息型记录,然后在关系节点和数据节点分别操作。\n[0078] 本发明实施例通过将存储量小、操作量大的关系节点对应的数据库存储于内存中,将存储量大、操作量小的数据节点对应的数据库存储于外存中,由此大大提高了数据存储的灵活性,有效管理分布式数据库平台的节点资源,从而集成数量众多的节点,实现了集群节点的数据库服务,很好地保证了集群节点的容量规划、高可用性和均衡负载。\n[0079] 图2示出了本发明实施例提供的分布式数据库平台系统的系统框图,为了便于说明,仅示出了与本实施例相关的部分。\n[0080] 参照图2,一种分布式数据库平台系统,包括:\n[0081] 数据库创建请求接收模块21,接收在所述分布式数据库平台上创建数据库的请求。\n[0082] 所述创建数据库的请求包括请求创建的数据库名、请求的节点类型和请求创建的数据库的大小,所述请求的节点类型包括关系节点和数据节点。\n[0083] 数据库创建模块22,根据所述创建数据库的请求,查找满足请求条件的节点,在所述满足请求条件的节点中创建数据库,所述数据库包括关系节点对应的数据库和数据节点对应的数据库,所述关系节点对应的数据库存储于内存中,所述数据节点对应的数据库存储于外存中。\n[0084] 数据表创建模块23,分别在所述关系节点对应的数据库与所述数据节点对应的数据库中创建数据表,创建的所述数据表包括数据表名,所述数据表包括1个以上字段,所述字段包括字段名。\n[0085] 插入记录模块24,根据接收的数据库名、数据表名、字段名以及插入请求,在所述关系节点对应的数据库或者所述数据节点对应的数据库中的与接收的所述数据库名与所述数据表名对应的数据表中插入记录。\n[0086] 进一步地,所述系统还包括记录区分模块,所述记录区分模块用于:\n[0087] 将所述记录区分为关系型记录和信息型记录,所述关系型记录包括应用业务之间的关系数据,所述信息型记录包括应用业务的详细信息数据;\n[0088] 在所述关系节点对应的数据库中创建的数据表为关系型记录对应的数据表;\n[0089] 在所述数据节点对应的数据库中创建的数据表为信息型记录对应的数据表。\n[0090] 进一步地,所述系统还包括:\n[0091] 数据库自动扩展模块,当创建的所述数据库所在的节点的已用存储量超过预设溢出值时,在一个新的节点上复制创建的所述数据库的结构,以自动扩展创建的所述数据库;\n[0092] 所述插入记录模块24具体用于:\n[0093] 根据接收的数据库名、数据表名、字段名以及插入请求,在所述关系节点对应的数据库或者所述数据节点对应的数据库中的与接收的所述数据库名与所述数据表名对应的所述新的节点中插入记录。\n[0094] 进一步地,所述系统还包括:\n[0095] 查找记录模块,用于根据接收的数据库名、数据表名以及查找请求,分别在所述关系节点对应的数据库与所述数据节点对应的数据库中的与接收的所述数据库名与所述数据表名对应的数据表中查找记录。\n[0096] 进一步地,所述系统还包括:\n[0097] 查找记录模块,用于根据接收的数据库名、数据表名以及查找请求,建立与所述数据库对应的节点的数量匹配个数的线程,通过所述线程在所述数据库对应的节点中的与接收的所述数据库名与所述数据表名对应的数据表中查找记录。\n[0098] 本发明实施例通过将存储量小、操作量大的关系节点对应的数据库存储于内存中,将存储量大、操作量小的数据节点对应的数据库存储于外存中,由此大大提高了数据存储的灵活性,有效管理分布式数据库平台的节点资源,从而集成数量众多的节点,实现了集群节点的数据库服务,很好地保证了集群节点的容量规划、高可用性和均衡负载。\n[0099] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
法律信息
- 2018-08-31
- 2015-01-21
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201310645980.6
申请日: 2013.12.03
- 2014-03-12
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-12-19
|
2012-08-23
| | |
2
| |
2013-07-03
|
2011-12-31
| | |
3
| |
2010-10-06
|
2010-02-26
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |