内容


超级数据库:最大和最快

向边缘生存者学习

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分:

敬请期待该系列的后续内容。

此内容是该系列的一部分:

敬请期待该系列的后续内容。

阅读本文的交互式数字版格式!(英文)

称某物大或快时,立刻要面对一个问题:“和什么比?”小公司所谓的“大型”数据库面对每年 28 PB 的速度增长的国家级数据储存库而言是那么的微不足道,为电子商务站点处理事务的所谓“快速”数据库,与用于执行股市交易、访问时间以毫秒计的数据库相比不值一提。

但是,即使您公司无意追求最大或最快的数据库,管理那种数据库的一些经验教训仍适用于您的环境。可以肯定,这一领域中的趋势必将流向各种规模的数据库。

超大的定义

随着创建的数据量不断增长,为了容纳这些数据,公共和企业数据库也在不断扩张。就在 4 年前,WinterCorp 评定世界最大的数据库是超过 100 TB 的数据仓库。在这项评选的 10 年历史当中,Yahoo! 的一个数据库是首个超过 100 TB 的系统。

但是,如今要存储多得多的数字信息,“超大”数据库的定义是什么? 没有标准的定义,单纯的大小不再是唯一的评判标准,而只是一个因素。一种比较可行的定义来自 Robert Hollebeek 博士,他是宾西法尼亚大学的物理学教授,与人共创了 National Scalable Cluster Project,多次因在分布式集群系统和数据挖掘方面的工作获得国际大奖。Hollebeek 说,在 5 年前,一个 TB 级数据库就可以算是“超大”数据库,但是,如今的数据库必须是 PB 级的才可以称之为超大。“另一种定义是,如果一个数据库的索引即使是超级计算机或计算机集群的 TB 级物理内存都无法容纳,那么可以称之为超大数据库,”他说。需要那么多索引的数据库的确称得上超大,这种数据库的性能和数据库管理是个很大的问题。

Hollebeek 说,当存放数据所需的硬件总量已成问题时,这样的数据库也可称之为超大数据库:“当您有数千个磁盘单元,或者放并行计算机的架子摆满整个房间时,就变得难以管理了。”

Confederacion Espanola de Cajas de Ahorros(CECA)是西班牙储蓄银行联合会,它的 IBM Information Champion Manuel Gomez Burriel 也认为,易管理性可以将通常意义的“大型”数据与超大数据库区分开来。“通常的管理任务在规定的时间内已经无法完成,” Gomez 说道。恢复一个损坏的数据库需要数小时的时间,然而可用的时间只有数分钟。性能也会受影响, 因为数据库实在太大,数据库中的任何有效部分都无法装入内存中的缓存。仅仅是响应应用程序对数据的请求就会带来难以接受的 CPU 开销。

数据库的肖像

仔细研究一个非常大的数据库,可以从中得出一些教训,这些教训同样适用于其他大的或不那么大的数据库。Hollebeek 是 National Digital Mammography Archive(NDMA)的技术主管,NDMA 是为容纳一个以每年 28 PB 的速度增长的数据库而设计的系统。NDMA 由 美国国立卫生研究院(National Institutes of Health)资助,它建立了一个分布式系统网格,用于医疗记录和图像的存储。 该系统存储乳房摄影检查、MRI 扫描等组成一个“病例”的相关文件,每个病例可能占 1 GB,而这样的病例有数百万个。 除了解决存储和访问大量数据的问题外,NDMA 还必须处理与存储在分布在不同地理位置的系统上的密封式(siloed)数据相关的问题——这是全球企业都存在的一个相同的问题。 为了与四家参与该项目的研究医院建立连接,NDMA 在每家医院安装了加密的、安全的线路和“接入点(point of presence)”,它们是用于加密文件和使用专用网络协议有效发送大块数据的硬件。

“我们的项目规模非常大,而且不能丧失任何医疗数据。我们需要稳定的、高度可靠的技术,这种技术还必须真正快速,并且可以并行,因为系统的结构基于构建并行计算机集群。” Hollebeek 说,“它必须能够容错,因为索引表崩溃或消失是不可容忍的。” NDMA 使用了 IBM DB2 Parallel Edition 软件来存储 数据库索引。NDMA 将实际图像数据存储在并行磁盘矩阵上的平面文件数据库中,由那里用于操作系统(此处为 Linux)的本地文件系统管理。

来自 NDMA 的教训

根据他在 NDMA 方面的工作经验,Hollebeek 提出了关于处理通过广域网(WAN)连接的超大数据库的几点建议:

  • 注意通过网络(无论是 Internet 还是私有网)发送大量数据的问题。要寻找高效地发送大量数据的方法,例如 在发送和接收位置安装接入点,或者使用发送大型(多 MB)数据块的协议。
  • 不要改变接收的数据的格式。无损的压缩虽好,但是为了在大型数据库中节省少量的空间而重新格式化和存储接收的数据,会导致更多问题,实属不值。例如,对于医疗数据,如果在更改格式时出错,并导致数据不可用,那么就是特别严重的问题。
  • 一旦索引表再也无法装入内存,数据库的性能就会直线下降,所以应该尽量升级内存,以便存放那些表。 然后,利用数据中的任何并行结构,通过聚集有效地增加容量。如果不行,则为索引再建立索引。

超快的定义

和超大的定义一样,超快的定义也随着技术不断确立新的极限而改变。 “我们通常以每秒事务量之类的指标来度量数据库的速度,也许每秒一百万个事务算得上快。但是,随着新技术的诞生, 术语“事务”定义的只是一种非常普通的数据库访问,”Application Development and Deployment IDC 研究副总裁 Carl Olofson 说,“在将来,还会有其他类型的、使数据库与内存之间的差别变得模糊的数据库访问。到那时,pull 数据可能需要某种重定向的内存访问,而不是真正绑定到数据库,然后开始一个事务。显然那样会非常快。” Olofson 还从更广泛的意义上定义“快”:“任何系统的目标都是确保数据库不拖累应用程序,因此可以以应用程序运行的速度返回数据。”

Gomez 以类似的方式定义超快:“快到足以按照与客户协定的服务品质协议(SLA)交付信息。”他还补充道:“最快的数据库能够尽可能直接从内存中访问信息块。我们的一个支付系统应用程序使用具有 Fast Path Solution 和企业存储子系统的 IMS,以提供每个事务少于 20 毫秒的响应时间的速度,为获取客户端所需信息,它最多访问 14 个数据库。”

一秒的延时太长了

自动柜员机(ATM)使用的财务系统虽然称得上快,但是现在也落伍了。“最近,您可能需要等待一秒左右才能看到账户余额,”Olofson 说,“过去来说还算很好,但是现在只能算一般。”如今,当专家谈论高速数据库交互时,他们指的是通信系统,在此系统中,当连接一个呼叫时,一个系统立即查找客户的账户,确定客户的服务类型,使系统知道如何路由该呼叫,提供哪些可用特性,这些都是在无线环境中完成的,而且任何人的账户随时会改变。

另一种需要超快速度的应用程序是金融服务行业由投资组合驱动的算法交易。“一家公司可能有数百个账户,每个账户有一个稍微不同的投资组合,因此每个账户有不同的规则来决定采取哪种交易,”Olofson 说,“当收到价格时,必须在几毫秒内应用这些规则,系统能否提供这种速度决定着管理这些账户的成败。”

如此超快的速度需要有高度响应的后端数据库,这通常需要分层的系统或数据库。在很多情况下,后端数据库实际上是大型主机数据库,例如 IBM 基于大型主机的分层 DBMS IMS。在这些分层解决方案中,有一个内存中的数据库缓存功能,作为后端数据库的前端。最先投资那些分层解决方案的是那些需要超快系统的客户。

即将到来的速度提升技术

对速度的需求从未中止,供应商继续开发新的方式来加快数据库性能。一种逐渐流行的策略是解决数据传输链上通常最慢的部分:硬盘驱动器。诸如 IBM solidDB 之类的内存中缓存解决方案将数据库从相对较慢的硬盘驱动器转移到相对较快的 RAM,大大提升响应速度。要更深入了解 solidDB,请参阅本期的“solidDB 与速度的奥秘”。

另一种有希望的解决方案是固态硬盘(solid-state drive,SSD)或闪存(flash memory),它是主存与磁盘存储器之间的中间层,但是当成本降下来的时候可以成为数据库的主要存储介质。 (参阅本期的“释放用于 DB2 工作负载的固态硬盘的价值”关于如何用 SSD 最大化 DB2 性能的讨论。)

除了硬件从以磁盘为中心转移到以内存和处理器为中心的数据管理外,一些用于解决不同数据库工作负载的灵活的技术也在开发中。传统方式将数据存储为记录,成为表中的行,而新的数据管理器将使用索引矩阵指向的 columnar 数据库和数据池,为内部存储提供更高程度的灵活性。从访问数据的应用程序的角度看,那样的储存库与传统的关系数据库一样,但是它可以扩展,从而像对象数据库、XML 数据库、多值数据库或多维数据库那样工作。

最后,一些开发人员正在采用一种称作“流处理(stream processing)”的完全不同的方法,该方法在收集数据的过程中就处理和分析数据,而不是等到数据完全停留在数据库中之后。IBM InfoSphere Streams 正是采用这种方法,从而支持监视同时发生的数据流,并提供几乎即时的分析,这种分析将随着新数据的到来不断精化。要更仔细地研究现实中正在使用的 InfoSphere Streams,请参阅 2009 年 IBM Data Management 第 3 期中的“更加智能:提高 Galway Bay 的 IQ”。

显然,在超大和超快数据库领域,客户需要不断推动技术发展。无论需要存储和检索多少数据,速度需要多快,很多公司都在开发新的产品,使之成为可能。就像语言、时尚和艺术那样,今天所谓的极限明日将变得平庸。


相关主题

  • 通过访问 developerWorks 中国 Information Management 专区的 DB2 9 技术资源中心 获得更多 DB2 9 相关的文章、教程和多媒体课件等学习资源。
  • 通过访问 IBM SolidDB 产品专题, 获得更多 IBM 内存数据库产品相关的文章、教程和多媒体课件等学习资源。
  • 通过访问 DB2 V9.7 信息中心 ,了解 DB2 V9.7 的基本概述。
  • 通过访问 DB2 最佳实践专题,了解 DB2 全方位的管理、开发相关的最佳技术资源。
  • 现在可以免费使用 DB2 。下载 DB2 Express-C,这是为社区提供的 DB2 Express Edition 的免费版本,它提供了与 DB2 Express Edition 相同的核心数据特性,为构建和部署应用程序奠定了坚实的基础。
  • 下载 IM 软件试用版,体验信息管理软件强大的功能。

评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=477625
ArticleTitle=超级数据库:最大和最快
publish-date=03252010