浅谈数据库的分割技术
电信信息化部/周陈雄
关健词 读写分离分布,垂直分割,水平分割,虚拟化存储,wEB 缓存分割, 存储 CACHE 缓存分割
随着社会的日益进步, 各行业的运营支撑系统都面临着越来越大的压力, 承受着业务数 据量、访问并发数的飞速增长的双重巨大压力,在我们电信行业,同样面临着这样的难题, 是否有一套适合可行的方案来应对呢?
本文重点描述数据库的分割技术, 如果能适当的应用在生产中, 必然能极大减缓来自与 日俱增的业务量带来的巨大压力。
如何分割?我们可以从如下六个方面来考虑:
一、读写分离分布技术
由于数据库存在这样的特性, 索引可以提升查询的性能, 但却极大地影响了DML操作的性能。 面对此类矛盾很多人都很困惑, 其实我们可以对其进行分割, 将实时更新的数据库同步复制 到另外一个库中,该库以读操作为主,而索引则建立在只读库中,实现了最简单的读写分 离.当前计费应用中已经使用了该技术,采用的是 DSG 同步复制软件工具,取得了不错的 效果。 Myspace 公司早期(2004 年前后)只有 50 万用户时,数据库服务器无法满足当时的要 求.后来采用了三台 SQL SERVER 服务器,一个为主,所有数据向它提交,再由它复制到另 外两个库上,这样减少了压力,成功的度过了难关。
二、垂直分割技术
随着业务的发展,Myspace 公司在 2005 年用户达到了 200 万,存储成了最大的瓶颈. 此时该公司进行了第二次切割,对数据库采用垂直分割,分出多个数据库,不同数据库运行不同业务,这样极大的缓解了 IO,再次度过了难关。 在计费系统中, 也采用了这样的技术, 成功的将原有的数据库分离成账务 Cal、 统计 Stat、 计费 Bill 等多个数据库,也极大的缓解了 IO 的瓶颈,这也是成功的垂直切分技术的运用。
三、水平分割技术
Myspace 公司随着业务的飞速发展,很快在 2006 年实现了千万用户的飞速增长.这个 时候,由于业务量过于庞大,被切割出的每一个单独的业务难以避免产生了IO 瓶颈,这个时侯水平分割技术得以应用。Myspace 公司对所有的用户进行了水平分割,平均一个数据库保 存了多个用户及对应信息, 多的数据库用户数达到近 200 万个。 这样数据库无形中又被进行 了进一步的切割了, 变的更细小了, 无论是访问响应还是数据迁移, 都得到了极大的提升, Myspace 公司再次度过了难关! 当前电信诸多项目并未在水平切割上做太多的规划,实际上我们可以借鉴 Myspace 公 司的成功案例, 尝试将水平切割技术可以应用到我们电信项目中, 成为应对缓解数据库压力 的利器之一。
四、虚拟化存储技术
水平分割可以解决数据库主机的性能问题, 但是还可能存在这样的一种情况, 就是被切 割的数据库及用户可能存在有的访问量大, 有的访问量小的不均匀情况。 这个时侯我们可以 考虑引进现在新的存储技术,比如虚拟化存储技术,比较著名的有 3PARdata 的虚拟存储技术,让存储统一管理负载均衡。
五、WEB 缓存分割技术
Myspace 公司在 2008 年用户数终于突破了亿的大关,这个时候他们引进了新的技术,那就是数据缓存层技术,在 WEB 和数据库服务器之间做了一次分割,增加了一个能存储频繁 访问内容的数据库副本,这样极大地减少了访问的量,原先 1000 个用户查询同一数据,需查询数据库 1000 次,现在也许只需要 1 次。WEB 缓存切割成功地支撑住了过亿用户访问量的巨大压力。 当前网管项目组中通过自我编程的方式进行 WEB 缓存,并取得了不错的效果,这种思想正是切割技术的体现。
六、存储 CACHE 缓存分割技术
为了进一步提升在数据库方面的支撑能力, 最后 Myspace 公司在数据库和物 理存储中再次做了切割,引入了存储的多层 CACHE 机制,数据库在写入到多层 CACHE 后,交互就算完成,这样极大的减少了 IO 操作。而 CACHE 层面由于存在 断电的危险,所以,在除了不断电设备外,还做了多个 CACHE 镜像,保证了安全 性。 七、结束语 数据库的切割技术是一种重要的设计思想.Myspace 公司当前的月访问量达 400 亿,甚至超过了 YAHoo 公司,在成功引入并实施了这些切割技术后,依然运 行高效平稳! 我们电信项目组也有使用了相关的部分切割技术,并且取得了不错的效果。但是 随着业务发展的趋势, 仅仅当前采用的切割技术是不够的.不过相信我们只要有 这方面的良好意识, 能借鉴 Myspace 等公司的成功案例,就一定能在将来应对飞 速增长数据量的压力方面打个漂亮战.当然,光有分割的思想意识是不够的,实 施方面还有着相当的难度,无论开发、维护、业务需求、总体架构等各方面都需 综合考虑,任重而道远!