Larger-than-Memory Databases
背景
我们知道DRAM价格非常昂贵,且运行耗电量也非常大。
那么当内存数据库存储的信息更大了之后,我们就希望使用更加便宜的存储设备,希望改善DRAM带来的一些不利条件。
新技术
因此就产生了Larger-than-Memory Databases这种技术。即,允许内存中的DBMS存储/访问磁盘上的数据,而无需重新引入面向磁盘的DBMS的所有慢速缺点。
需要了解硬件访问方法
- 内存中存储 = 面向元组(从比特位上来解决问题)
- 磁盘存储 = 块定位(基于页的方式)
OLAP vs. OLTP
OLAP查询通常访问整个表。因此,DBMS不能利用任何面向磁盘的缓冲池,来处理事务或者减少工作量。
例如,你在内存中存储了zone map这类聚合函数的一些信息,而其他的数据有一部分在内存中,有一个部分在磁盘中。
当程序发现无法简单地用zone map中的聚合函数做统计信息的时候,还是一样地要扫描磁盘来获得数据。那么和面向磁盘的数据库没有区别。
因此这项技术是无法适用于OLAP的,它仅能够解决OLTP的问题。
对于OLTP的工作负载,总是可以将数据分成冷热两个部分。
- 之前的课堂上,我们可以假设txns将几乎总是访问