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

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

发明内容
本发明目的在于提供一种混合使用固态硬盘和传统硬盘的postgresql数据库集群系统,以及在这个框架之上对一些开源集群软件的改进方法,通过这些改进方法可以充分发挥固态硬盘的优势,充分利用固态硬盘的高速随机读能力,同时避免固态硬盘低速随机写的劣势,大幅度地提高数据库集群系统的性能,提高数据库集群系统的性价比,从而构建出低成本,高性能的数据库集群系统。为达到上述目标,本发明采用的具体技术方案如下一、一种混合使用固态硬盘和传统硬盘的postgresql数据库集群系统的构建框
^K O在本框架下的数据库集群系统中,包含一台查询分发服务器和若干台postgresql 数据库服务器,这些服务器处同处于一个局域网中,通过较高带宽的网络相互连接,在这些 postgresql数据库服务器中,有一台作为主服务器节点,其他的作为从服务器节点,主服务器节点使用传统硬盘,从服务器节点使用固态硬盘。在整个系统中,查询分发服务器负责接受和预处理用户的查询,并把这些查询分发到数据库集群中的具体的单个节点上。数据库主服务器节点上保存着最新的数据,从服务器节点使用数据复制集群软件实时地从主服务器节点上复制数据。在从服务器节点上引入固态硬盘以后,查询分发服务器就可以把写操作分发到主服务器节点上,把读操作分发到从服务器节点上,从而利用固态硬盘的高速随机读取能力, 达到较大的查询性能提升,同时把读写操作分布到不同的数据库服务器上也实现了数据库集群的负载均衡,更好地提升了数据库集群的性能。从服务器节点需要实时地从主服务器节点复制数据,在从服务器节点引入固态硬盘以后,需要对数据复制集群软件的复制策略进行调整,通过把复制时的随机写操作转化成连续写操作从而避免固态硬盘随机写速度较差的劣势,更好地利用了固态硬盘,使数据库集群的性能得到更大地提升。二、基于上述数据库集群框架的系统的开源集群软件改进方法在这个数据库集群系统中,查询预处理和分发服务器使用查询分发集群软件来完成任务,原有的开源的查询分发集群软件并没有针对有固体硬盘架构的系统做优化,本发明对这个集群软件进行一些改进,提出新的查询预处理和分配的方法,从而更好地利用现有的集群架构,提高数据库集群的性能。同时本发明也对数据复制集群软件的复制策略进行改进,提出一种新的有利于利用固态硬盘优势的复制策略。本方法对用户的查询进行分类,根据查询是否有磁盘写入操作,把用户查询分为写操作查询和读操作查询。在查询分发时,把写操作查询发送给主服务器节点,把读操作查询发给从服务器节点,由于从服务器节点上装有固体硬盘,能够提供高速的随机读性能,通过这种分配方式能够有效地利用固体硬盘的这个特性,提高数据库集群系统的响应速度。 同时,通过把写操作和读操作分离之后,能够更好地实现数据库集群系统的负载均衡,从而提高整个数据库集群系统的吞吐能力。除了对查询进行分类分发以外,本方法还对查询进行聚集操作,把查询尽可能地按用户进行聚集,使得同一用户的查询尽量集中在一起,并尽量地发送给同一个数据库服务器节点,这样就能利用数据的局部性,更好地提高单个用户的响应速度。除了提出了新的查询分配方法之外,本方法也对数据复制集群软件提出改进措施,提出一种新的数据复制策略。数据复制集群软件复制从主服务器节点向从服务器节点复制数据,以保持集群中各节点间的数据同步。在加入固态硬盘以后,复制数据时要避免固态硬盘的随机写的劣势,本方法通过对随机写进行排序,把它转化成连续写,从而避免固态硬盘的劣势,提高数据库集群系统的性能。


图1是数据库集群系统整体框架图。图2是查询预处理和分发优化的工作流程图。图3是数据复制优化的工作流程图。
具体实施例方式下面结合附图及具体实施方式
对本发明作进一步的描述如图1所示,给出了整个数据库集群系统的整体框架图。在这个数据库集群中包含一台查询分发服务器和若干台装有postgresql数据库的数据库服务器,这些服务器处于同一个局域网中,彼此通过较高带宽的网络相互连接,在这些postgresql数据库服务器中,有一台作为主服务器节点,其他的若干台作为从服务器节点,主服务器节点使用传统硬盘,从服务器节点使用固态硬盘。在整个数据库集群系统中,查询分发服务器负责接受和预处理用户的查询,并把这些查询分发到数据库集群中的具体的单个节点上。数据库主服务器节点上保存着最新的数据,从服务器节点使用数据复制集群软件实时地从主服务器节点上复制数据。本发明对这个数据库集群系统中的查询分发集群软件和数据复制集群软件进行优化,充分利用固态硬盘的优势,来提高数据库集群的性能。具体的来说,本发明对查询分发集群软件进行一些优化,提出新的查询预处理和分配的方法,从而更好地利用现有的集群架构,提高数据库集群的性能。同时本发明也对数据复制集群软件的复制策略进行优化, 提出一种新的有利于利用固态硬盘优势的复制策略。如图2所示,给出了经过优化以后的查询预处理和分发的工作流程,其详细描述如下201当有用户查询进来时,对这个查询进行一些预处理,然后根据预先定义好的规则对这个查询进行分类,分为包含写操作的查询或者只有只读操作的查询。202判断用户的查询是写操作还是读操作。根据查询类型的不同,查询将被发往不同的服务器节点上进行处理。203如果用户的查询是写操作,则将这个查询发往主服务器节点,因为主服务节点负责保存最新的数据,所有的更新操作都要保证发生在主服务器节点上。204如果用户的查询是读操作,则将这个查询发往从服务器节点,因为从服务器节点上装有固态硬盘,随机读性能很高,同时这样也可以实现负载均衡,在发往具体的从服务器节点之前要进行用户聚集判断,尽量把同一用户的查询发往同一个从服务器节点。205如果这个查询属于一个新的用户,则将这个查询发往当前最空闲的从服务器节点,这样可以均衡服务器节点的负载。206如果这个查询属于之前的某个用户,则将这个查询发往那个用户曾经连接过的那个从服务器节点,这样就把同一个用户的查询聚集到了同一个服务器节点上,很好地利用了数据的局部性,提高了查询的响应速度,从而提高了整个数据库集群的性能。如图3所示,给出了服务器节点间的数据复制操作优化后的流程图,其详细描述如下301在主服务节点上有一个后台线程循环地判断一定周期内主服务器上的数据是否有更新,这个周期是一个配置参数,可以根据系统要求的不同进行不同的设定,如果在这个周期内数据有更新,则需要把这些更新的数据复制到所有的从服务器节点上,如果周期内没有数据更新,则不作任何处理,循环进入下一个判断周期。302如果在一个周期内存在数据更新,在将这些数据复制到从服务器节点之前, 要对这个数据复制操作进行优化。首先对复制所要产生的随机写IO操作进行排序,把它们转化成一串连续写操作,然后再把这个连续写操作实际地写入从节点服务器,通过把随机写操作转化为连续写操作,有效地避免了固态硬盘的慢速随机写缺陷,从而提高了整个数据库集群系统的性能。303随机写排序转化成连续写之后,把这些连续写操作发往每个从服务器节点, 进行具体的数据同步。本发明解决了如何充分利用随固态硬盘的优劣势来优化数据库集群系统性能的问题,具有的有益效果是1)通过对数据库集群中查询分发策略的调整,更好地实现了数据库集群系统的负载均衡,提高了数据库集群系统的性能。2)通过把读操作分配给装有固态硬盘的从服务器节点,充分利用了固态硬盘的快速随机读优势,提高了数据库集群系统的响应速度。3)对用户的查询进行聚集分类,使同一用户的查询尽可能分发给同一个服务器节点,充分利用数据的局部性,从而提高数据库集群系统对单个用户的响应速度。4)对服务器节点间的数据复制操作进行优化,把数据复制操作所产生的随机写转化成连续写,避免固态硬盘的慢速随机写劣势,从而提高数据库集群系统的性能。5)本发明虽然针对的是postgresql数据库集群系统,但是其中的系统框架和优化方法适用于由一般数据库组成的集群系统,具有充分的可移植性。虽然附图和前述说明给出了本发明的实施例。但可以理解的是,本领域技术人员将理解可以将这种组件中的一个或多个组件很好地组合成单个功能组件。在替换方案中, 特定的组件可以分成多个功能组件,或反之。同时,本发明的范围并不受这些特定实例的限制。多种变化都是可能的,例如结构等上的差异,而无论其是否在说明书中被清晰地给出。 本发明的范围至少与所附权利要求给出的范围一样宽。
权利要求
1.一种混合使用固态硬盘和传统硬盘的postgresql数据库集群系统,所述数据库集群系统,包含一台查询分发服务器;和多台postgresql数据库服务器,其中,上述这些服务器处同处于一个局域网中并通过较高带宽的网络相互连接,其特征在于,在所述postgresql数据库服务器中,有一台作为主服务器节点,其他的作为从服务器节点,且所述主服务器节点使用传统硬盘,而从服务器节点使用固态硬盘,此外,所述查询分发服务器负责接受和预处理用户的查询,并把这些查询分发到所述数据库集群系统中的具体的单个节点上。
2.根据权利要求1所述的数据库集群系统,其特征在于所述查询服务器上的查询分发集群软件把写操作分发到所述主服务器节点上,把读操作发布到所述从服务器节点上,从而利用固态硬盘的高速随机读取能力,达到较大的查询性能提升,同时把读写操作分布到不同的数据库服务器上以实现了数据库集群的负载均
3.根据权利要求1所述的数据库集群系统,其特征在于在所述数据库集群系统中对数据复制集群软件的复制策略进行调整,通过把复制时的随机写操作转化成连续写操作从而避免固态硬盘随机写速度较差的劣势。
4.一种应用于根据权利1-3中任意一个中所述的数据库集群系统上的查询分发优化方法,所述方法包括对用户的查询进行分类,根据查询是否有磁盘写入操作,把用户查询分为写操作查询和读操作查询;在查询分发时,把写操作查询发送给主服务器节点,把读操作查询发给从服务器节点, 由于从服务器节点上装有固体硬盘,能够提供高速的随机读性能;通过把写操作和读操作分离之后,能够更好地实现数据库集群系统的负载均衡,从而提高整个数据库集群系统的吞吐能力。
5.根据权利要求4的查询分发优化方法,其还包括步骤对查询进行聚集操作,把查询尽可能地按用户进行聚集,使得同一用户的查询尽量集中在一起,并尽量地发送给同一个数据库服务器节点,这样就能利用数据的局部性,更好地提高单个用户的响应速度。
6.一种应用于根据权利1-3中任意一个中所述的数据库集群系统上的数据复制优化方法,所述方法包括数据复制集群软件从主服务器节点向从服务器节点复制数据,以保持集群中各节点间的数据同步;在加入固态硬盘以后,通过对随机写进行排序,把它转化成连续写,从而避免固态硬盘的劣势,提高数据库集群系统的性能。
全文摘要
本发明公开一种混合使用固态硬盘和传统硬盘的postgresql数据库集群系统的构建框架和基于该系统的优化方法。所述集群系统中包含一台装有用于查询分发的集群软件的查询分发服务器和若干台装有postgresql数据库的数据库服务器,这些服务器处同处于一个局域网中,通过较高带宽的网络相互连接,在这些postgresql数据库服务器中,有一台作为主服务器节点,其他的作为从服务器节点,主服务器节点使用传统硬盘,从服务器节点使用固态硬盘,其中查询分发服务器负责接受和预处理用户的查询,并把这些查询分发到数据库集群中的具体的单个节点上。本优化方法对查询分发集群软件进行一些改进,提出新的查询预处理和分配的方法,从而更好地利用现有的集群架构,提高数据库集群的性能。同时本优化方法也对数据复制集群软件的复制策略进行改进,提出一种新的有利于利用固态硬盘优势的复制策略。
文档编号G06F17/30GK102521389SQ20111043667
公开日2012年6月27日 申请日期2011年12月23日 优先权日2011年12月23日
发明者何清法, 冯柯, 徐昶, 毛云青, 王嘉春, 蒋志勇, 顾云苏, 饶路 申请人:天津神舟通用数据技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1