从20世纪80年代早期到中期,数据的关系模型已经主导了DBMS领域。此外,早期关系原型(System R和Ingres)的后代已经成为主要的商业关系dbms。因此,商业供应商出售的基本架构已经有20多年的历史了。与此同时,部署dbms的计算机有了巨大的进步。网格(刀片)取代了共享内存多处理器,CPU速度大大提高,主内存变得更大更快,磁盘变得更大(但在带宽增长方面落后于CPU)。
在同一时期,DBMS技术的几个新的主要应用已经出现,以补充rdbms最初设计的业务数据处理市场。这些数据包括数据仓库、半结构化数据和科学数据。
现在看来,在每个主要的DBMS市场上,rdbms的传统体系结构都可以被专门的实现大大击败(超过2550倍)。在数据仓库区域中,此实现似乎是一个编码的列存储。列存储是逐列表示数据,而不是传统的逐行表示数据。在列体系结构中,执行引擎必须只读取与当前查询相关的数据元素,而不是所有数据元素。此外,数据压缩在列存储中更有效,因为只压缩存储块上的一种类型的数据,而不是多个类型的数据。因此,从磁盘到主存的数据更少。此外,如果执行引擎操作的是压缩数据,那么复制就会减少,L2缓存的利用率就会提高。因此,CPU执行时间大大减少。这些节省已经在20世纪90年代的原始列商店(MonetDB和SybaseIQ)以及Vertica、Infobright和Paraccel等最近的商业产品中实现。
Boncz、Manegold和Kersten在这里提出的研究证明了这些优点,绝对值得一读。它着重于主存中的列执行和压缩,并补充了对数据仓库磁盘行为的其他分析。因此,它是最近一系列关于列存储实现技术(在VLDB和SIGMOD中)的论文的范例,感兴趣的读者可以从这些论文中获得其他分析。
在其他数据库市场(包括业务数据处理)中,专门的体系结构提供了类似的优势。分析这些领域早期原型的论文开始出现。在我看来,我们正在看到主要DBMS供应商销售的“一刀切”系统的“终结的开始”。我预计,在未来几十年里,专门的体系结构将在几个DBMS应用程序领域占据主导地位,这些领域的用户都是性能敏感的用户。另一方面,像MySQL、Postgres和Ingres这样的低端开源系统正在获得关注。
期待看到来自DBMS研究社区的探索专门体系结构方面的额外论文的狂潮。此外,最近有很多DBMS初创公司都有专门的实现,我预计还会有更多。
应该清楚的是,DBMS社区正处于从“旧的”到“新的”的过渡中。下一个十年应该是我们这一领域活跃的时期。
©2008 acm 0001-0782/08/1200 $5.00
允许为个人或课堂使用本作品的全部或部分制作数字或硬拷贝,但不得为盈利或商业利益而复制或分发,且副本在首页上附有本通知和完整的引用。以其他方式复制、重新发布、在服务器上发布或重新分发到列表,需要事先获得特定的许可和/或付费。
数字图书馆是由计算机协会出版的。版权所有©2008 ACM, Inc.