一种混合使用固态硬盘和传统硬盘的postgresql数据库集群系统及其优化方法技术方案

技术编号:7473601 阅读:414 留言:0更新日期:2012-07-03 04:14
本发明专利技术公开一种混合使用固态硬盘和传统硬盘的postgresql数据库集群系统的构建框架和基于该系统的优化方法。所述集群系统中包含一台装有用于查询分发的集群软件的查询分发服务器和若干台装有postgresql数据库的数据库服务器,这些服务器处同处于一个局域网中,通过较高带宽的网络相互连接,在这些postgresql数据库服务器中,有一台作为主服务器节点,其他的作为从服务器节点,主服务器节点使用传统硬盘,从服务器节点使用固态硬盘,其中查询分发服务器负责接受和预处理用户的查询,并把这些查询分发到数据库集群中的具体的单个节点上。本优化方法对查询分发集群软件进行一些改进,提出新的查询预处理和分配的方法,从而更好地利用现有的集群架构,提高数据库集群的性能。同时本优化方法也对数据复制集群软件的复制策略进行改进,提出一种新的有利于利用固态硬盘优势的复制策略。

【技术实现步骤摘要】

本专利技术涉及一般的由普通服务器组成的数据库集群系统,特别是涉及一种在数据库集群系统中使用固态硬盘并对整个系统进行优化的方法。
技术介绍
数据库集群系统把集群技术与数据库系统相结合,由一组完整的、自治的计算处理单元(节点),每个节点均有独自的CPU、内存以及磁盘等硬件资源,运行独立的操作系统和自治的数据库系统,通过高速专用网络或者商业通用网络互连,彼此协同计算,作为统一的数据库系统提供并行事务处理服务。数据库集群系统强调集群系统的协作与并行处理,其核心思想是通过多机并行处理来隐藏对数据库性能影响较大的延迟以获得高并行处理性能,突破传统的单机上的数据库系统所固有的性能瓶颈限制。数据库集群系统以高性能、高可用性和高可扩展性为目标,充分利用多处理器平台的工作能力,主要在OLTP的典型应用环境中提供更快的响应时间与更大的事务吞吐量。在大型的应用中,以甲骨文公司的oracle rac数据库集群系统和IBM公司的 purescale数据库集群系统比较普遍,但是要使用这两个集群系统无论从硬件上或者软件上都需要极大的投入,成本极高。所以,有很多企业和组织也倾向于使用低成本的开源数据库集群系统,只需要一些普通的服务器和免费的开源软件就可以搭建出性能不错的数据集群系统。比较常见的开源集群系统是使用开源查询分发集群软件和数据复制集群软件以及开源数据库postgresql构建的数据库集群系统。数据分发集群软件主要负责客户端查询的预处理和分发,数据复制集群软件负责集群节点间的数据复制和同步。由于是非共享磁盘架构,需要在节点间通过复制的方式传递数据,所以这种数据库集群对磁盘的性能要求较高,而目前固态硬盘在科研和商业领域都比较受青睐,大有替代传统硬盘的趋势,因此在这种数据库集群中引入固态硬盘可以大幅度地提高数据库集群的性能。固态硬盘是一种新型的电介质硬盘,与传统硬盘相比,它由磁介质存储改为电介质存储而且不需要机械装置,所以固态硬盘没有传统硬盘的寻道时间和延迟时间,可以提供非常高的随机读取能力,是公认的下一代主流存储设备。但是固态硬盘也存在一些缺陷, 相比于较强的随机读,连续读,连续写能力,固态硬盘的随机写能力就显得很弱,跟传统硬盘差不多,因为固态硬盘的随机写会带来大量的擦除操作,而连续写可以将擦除操作带来的影响降到最低,所以使用固态硬盘的应用系统应该针对固态硬盘的特点做一些特殊的配置,来发挥固态硬盘的优势以提高应用系统的性能,不能沿用之前的使用传统硬盘的方式来使用固态硬盘。其次,固态硬盘的存储成本较高,同等存储容量的固态硬盘要比传统硬盘贵很多,因此在大型应用系统中完全使用固态硬盘来代替传统硬盘也不太现实,只能在一些关键存储节点上使用固态硬盘,从而以最小的代价来提高系统的性能。在这种技术背景下,在廉价的开源数据库集群中引入固态硬盘,应该可以大幅度地提高系统的性能,所以如何改进数据库集群系统,如何使用好固态硬盘,利用其读取速度上的优势,避免其缺陷,更好地提高数据库集群系统的性能是一个具有重要意义值得深入研究的技术问题,是构建出低成本,高性能的数据库集群系统的关键。
技术实现思路
本专利技术目的在于提供一种混合使用固态硬盘和传统硬盘的postgresql数据库集群系统,以及在这个框架之上对一些开源集群软件的改进方法,通过这些改进方法可以充分发挥固态硬盘的优势,充分利用固态硬盘的高速随机读能力,同时避免固态硬盘低速随机写的劣势,大幅度地提高数据库集群系统的性能,提高数据库集群系统的性价比,从而构建出低成本,高性能的数据库集群系统。为达到上述目标,本专利技术采用的具体技术方案如下一、一种混合使用固态硬盘和传统硬盘的postgresql数据库集群系统的构建框^K O在本框架下的数据库集群系统中,包含一台查询分发服务器和若干台postgresql 数据库服务器,这些服务器处同处于一个局域网中,通过较高带宽的网络相互连接,在这些 postgresql数据库服务器中,有一台作为主服务器节点,其他的作为从服务器节点,主服务器节点使用传统硬盘,从服务器节点使用固态硬盘。在整个系统中,查询分发服务器负责接受和预处理用户的查询,并把这些查询分发到数据库集群中的具体的单个节点上。数据库主服务器节点上保存着最新的数据,从服务器节点使用数据复制集群软件实时地从主服务器节点上复制数据。在从服务器节点上引入固态硬盘以后,查询分发服务器就可以把写操作分发到主服务器节点上,把读操作分发到从服务器节点上,从而利用固态硬盘的高速随机读取能力, 达到较大的查询性能提升,同时把读写操作分布到不同的数据库服务器上也实现了数据库集群的负载均衡,更好地提升了数据库集群的性能。从服务器节点需要实时地从主服务器节点复制数据,在从服务器节点引入固态硬盘以后,需要对数据复制集群软件的复制策略进行调整,通过把复制时的随机写操作转化成连续写操作从而避免固态硬盘随机写速度较差的劣势,更好地利用了固态硬盘,使数据库集群的性能得到更大地提升。二、基于上述数据库集群框架的系统的开源集群软件改进方法在这个数据库集群系统中,查询预处理和分发服务器使用查询分发集群软件来完成任务,原有的开源的查询分发集群软件并没有针对有固体硬盘架构的系统做优化,本专利技术对这个集群软件进行一些改进,提出新的查询预处理和分配的方法,从而更好地利用现有的集群架构,提高数据库集群的性能。同时本专利技术也对数据复制集群软件的复制策略进行改进,提出一种新的有利于利用固态硬盘优势的复制策略。本方法对用户的查询进行分类,根据查询是否有磁盘写入操作,把用户查询分为写操作查询和读操作查询。在查询分发时,把写操作查询发送给主服务器节点,把读操作查询发给从服务器节点,由于从服务器节点上装有固体硬盘,能够提供高速的随机读性能,通过这种分配方式能够有效地利用固体硬盘的这个特性,提高数据库集群系统的响应速度。 同时,通过把写操作和读操作分离之后,能够更好地实现数据库集群系统的负载均衡,从而提高整个数据库集群系统的吞吐能力。除了对查询进行分类分发以外,本方法还对查询进行聚集操作,把查询尽可能地按用户进行聚集,使得同一用户的查询尽量集中在一起,并尽量地发送给同一个数据库服务器节点,这样就能利用数据的局部性,更好地提高单个用户的响应速度。除了提出了新的查询分配方法之外,本方法也对数据复制集群软件提出改进措施,提出一种新的数据复制策略。数据复制集群软件复制从主服务器节点向从服务器节点复制数据,以保持集群中各节点间的数据同步。在加入固态硬盘以后,复制数据时要避免固态硬盘的随机写的劣势,本方法通过对随机写进行排序,把它转化成连续写,从而避免固态硬盘的劣势,提高数据库集群系统的性能。附图说明图1是数据库集群系统整体框架图。图2是查询预处理和分发优化的工作流程图。图3是数据复制优化的工作流程图。具体实施例方式下面结合附图及具体实施方式对本专利技术作进一步的描述如图1所示,给出了整个数据库集群系统的整体框架图。在这个数据库集群中包含一台查询分发服务器和若干台装有postgresql数据库的数据库服务器,这些服务器处于同一个局域网中,彼此通过较高带宽的网络相互连接,在这些postgresql数据库服务器中,有一台作为主服务器节点,其他的若干台作为从服务器节点,主服务器节点使用传统硬盘,本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:毛云青徐昶冯柯何清法顾云苏王嘉春饶路蒋志勇
申请(专利权)人:天津神舟通用数据技术有限公司
类型:发明
国别省市:

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

1
相关领域技术