一种数据库系统技术方案

技术编号:10552459 阅读:110 留言:0更新日期:2014-10-22 10:48
本发明专利技术实施例提供一种数据库系统,包括:数据库服务器组,包含多个数据库服务器,用于运行逻辑数据库管理单元;逻辑数据库管理单元,用于管理一个逻辑表,逻辑表包括多个子表,每一个子表具有子表编号,各个子表分散在不同的物理库单元上;物理库单元,具有库标识,用于存放多个子表;数据存取单元,用于根据选定的存取方式和分区键计算出目标物理库单元,以及在该目标物理库单元中应当存放的目标子表,访问目标物理库单元中的目标子表。增加新的物理库以及对逻辑表进行拆分,拆分之后单一物理库的容量会降低,能够容纳的表单也更多,满足了扩容要求。

【技术实现步骤摘要】
【专利摘要】本专利技术实施例提供一种数据库系统,包括:数据库服务器组,包含多个数据库服务器,用于运行逻辑数据库管理单元;逻辑数据库管理单元,用于管理一个逻辑表,逻辑表包括多个子表,每一个子表具有子表编号,各个子表分散在不同的物理库单元上;物理库单元,具有库标识,用于存放多个子表;数据存取单元,用于根据选定的存取方式和分区键计算出目标物理库单元,以及在该目标物理库单元中应当存放的目标子表,访问目标物理库单元中的目标子表。增加新的物理库以及对逻辑表进行拆分,拆分之后单一物理库的容量会降低,能够容纳的表单也更多,满足了扩容要求。【专利说明】一种数据库系统
本专利技术涉及数据库技术,特别是指一种数据库系统。
技术介绍
数据库中数据的不断增长以及频繁被访问,给数据库服务器带来了越来越大的访 问压力,这会导致在CPU、内存或者硬盘处出现瓶颈,数据库因而运行缓慢甚至宕机。解决的 方法通常是对数据库服务器进行扩容,购买小型机、高端存储硬件,高端数据库软件以及授 权许可(License)数量。 大型商业关系数据库的一些表数据往往增长较快,扩容的技术主要包括:数据库 垂直切分和表水平切分。 表水平切分,将表中的数据按照一定规则切分成不同的数据文件,变小的数据文 件会提高访问速度。若单台小型机由于业务增长成为了瓶颈,采用垂直切分将业务切分开, 把部分业务转入到新的小型机和高端存储,以及购买新的授权许可来运行业务。各大数据 库厂商推出的云数据库服务器也能解决扩展性问题,但成本很高。 现有技术存在如下问题:扩容过程中,需要购买对应数量的小型机,高端存储硬件 以及授权许可,这导致需要的费用极高而无法承受。
技术实现思路
本专利技术要解决的技术问题是提供一种数据库系统,解决现有技术中需要购买小型 机、高端存储以及授权许可对数据库进行扩容,导致费用极高的缺陷。 为解决上述技术问题,本专利技术的实施例提供一种数据库系统,包括:数据库服务器 组,包含多个数据库服务器,用于运行逻辑数据库管理单元;逻辑数据库管理单元,用于管 理一个逻辑表,逻辑表包括多个子表,每一个子表具有子表编号,各个子表分散在不同的物 理库单元上;物理库单元,具有库标识,用于存放多个子表;数据存取单元,用于根据选定 的存取方式和分区键计算出目标物理库单元,以及在该目标物理库单元中应当存放的目标 子表,访问目标物理库单元中的目标子表。 所述的系统中,还包括:方式选择单元,用于选择HASH取模方式、区间分区方式或 者一致性HASH方式存取数据,并将所选定的存取方式通知所述数据存取单元。 所述的系统中,数据存取单元包括访问处理模块,以及HASH取模存放单元和HASH 取模读取单元;访问处理模块,用于获取访问请求中包含的分区键。 所述的系统中,HASH取模存放单元和HASH取模读取单元中均包括:第一类型计算 模块,用于当分区键是整数型时,对分区键进行移位,对移位之后的分区键采用物理库数量 取模,得到应当访问的目标物理库的库标识;对分区键采用子表数量取模,得到的余数是应 当访问的目标子表的子表编号。 所述的系统中,HASH取模存放单元和HASH取模读取单元中均包括:第二类型计 算模块,用于当分区键是字符型时,对分区键进行城际Hash运算得到初始Hash值,对初始 Hash值移位操作,对移位之后的Hash值采用物理库数量取模得到库标识,再对初始Hash值 采用子表数量取模得到子表编号。 所述的系统中,HASH取模存放单元和HASH取模读取单元中均包括:第三类型计算 模块,用于当分区键是日期型时,对分区键采用时间函数转换得到一个整数,然后按整数型 的方式计算。 所述的系统中,数据存取单元还包括:一致性HASH存放单元和一致性HASH读取单 元;一致性HASH存放单元和一致性HASH读取单元中均包括:哈希模块,用于根据分区键计 算出分区键哈希值,以及,对物理库名称进行Hash取值得到物理库名称哈希值,将物理库 名称哈希值分布在一个圆环上;识别模块,用于将分区键哈希值放置在所述圆环上,根据分 区键哈希值在圆环上的位置找到对应的目标物理库。 所述的系统中,识别模块包括:顺时针处理模块,用于将分区键哈希值放置于圆环 上两个物理库名称哈希值之间,顺时针找到距离分区键哈希值最近的物理库名称哈希值, 该物理库名称哈希值对应的是目标物理库。 所述的系统中,还包括:区间分区单元,用于根据分区键与物理库单元之间的对应 关系计算出目标物理库,其中,分区键不同的取值对应着不同的物理库单元。 所述的系统中,还包括:应用服务器组,所述数据存取单元位于应用服务器组。 本专利技术的上述技术方案的有益效果如下:增加新的物理库以及对逻辑表进行拆 分,拆分之后单一物理库的容量会降低,能够容纳的表单也更多,满足了扩容要求,单台普 通PC服务器也能够支持其正常运行并处理访问。 【专利附图】【附图说明】 图1表示数据库访问系统的示意图; 图2表示一种对数据库服务器扩容的方法的流程示意图。 【具体实施方式】 为使本专利技术要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具 体实施例进行详细描述。 本专利技术中采用基于PC的廉价服务器扩容如图1所示的数据库系统,该数据库系统 中: 用户终端,具体可以是计算机或者移动终端等,负责发起访问请求,访问请求涉及 的操作可以是查询,新增,修改,删除等。 应用服务器组,是访问请求的接入点,一个组中有多个应用服务器进行负载均衡, 其中一个应用服务器接收到访问请求后执行业务逻辑,根据访问请求的上下文分析以及决 定具体处理该访问请求的数据库服务器。 数据库,实施例中提到的数据库,不作特别说明,即是指逻辑库。 逻辑库,指一个虚拟的库,后端可以对应N个物理库单元。一个逻辑库中可以包含 多个逻辑表。 逻辑表,属于某个逻辑库,可以对应到N个物理库单元上,在一个物理库单元上在 拆分Μ张表,即一个逻辑表实际上存在N*M张子表。 分区键(Userid),用于做分区设定的字段,即实现分库分表运算的一个字段,该 字段是必须具有的一个字段,可以是整型,字符型或者日期型,访问请求中应当包含该分区 键。 数据库服务器组,一个数据库服务器组是一个节点,包括多个数据库服务器,一个 节点采用数据库服务器组而不是仅有一个数据库服务器,以主从结构保证对数据库的正常 访问,避免了单个数据库服务器可能出现的访问故障。 -个数据库数据量的大小以及每张表单的大小直接影响数据库的相关性能,拆分 数据库是为了消除单个数据库服务器的性能瓶颈,拆分表单的目的是提升进行各种的操作 的性能。 本专利技术实施例提供一种数据库系统,如图2所示,包括: 数据库服务器组,包含多个数据库服务器,用于运行逻辑数据库管理单元; 逻辑数据库管理单元,用于管理一个逻辑表,逻辑表包括多个子表,每一个子表具 有子表编号,各个子表分散在不同的物理库单元上; 物理库单元,具有库标识,用于存放多个子表; 数据存取单元,用于根据选定的存取方式和分区键计算出目标物理库单元,以及 在该目标物理库单元中应当存放的目标子表,访问目标物本文档来自技高网
...
一种数据库系统

【技术保护点】
一种数据库系统,其特征在于,包括:数据库服务器组,包含多个数据库服务器,用于运行逻辑数据库管理单元;逻辑数据库管理单元,用于管理一个逻辑表,逻辑表包括多个子表,每一个子表具有子表编号,各个子表分散在不同的物理库单元上;物理库单元,具有库标识,用于存放多个子表;数据存取单元,用于根据选定的存取方式和分区键计算出目标物理库单元,以及在该目标物理库单元中应当存放的目标子表,访问目标物理库单元中的目标子表。

【技术特征摘要】

【专利技术属性】
技术研发人员:杭国强白琳陈芨王钢张慧芳陈昌文王继伟
申请(专利权)人:中国移动通信集团广东有限公司
类型:发明
国别省市:广东;44

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

1