摘要

内存数据库的发展如火如荼,将所有数据放在内存中处理,省去了许多软件层面的开销,提高了事务性能。。。

然而,当数据量超出可用内存时,内存数据库的问题就会暴露出来。。。

Anti-Caching的设计理念规避了这样的弱点,它主要是利用workload对数据库数据访问的冷热不均衡性质,将热的数据留在内存中,将冷的数据弹出到磁盘中。这样一来,就可以避免粗粒度的数据弹出与寻回以及造成系统暂停的对用户透明的虚拟页交换。

然而,Anti-Caching目前采用固定的参数配置,不具备灵活性。根据我们的实验观察,针对不同的workload特征,固定参数设置并不能满足高性能的需要。而人工调节参数费时费力,且很难取得理想的效果。

因此,我们提出了自适应数据弹出的设计,将其加入到Anti-Caching中,以期取得在任何时间段内,Anti-Caching都能表现出高性能的优势。

我们设计并实现了四组自适应调节方法,做了丰富的实验进行分析。通过实验我们得出,自适应调节后Anti-Caching的性能可以达到?到?倍的显著提升,并且。。。在xx的自适应调节方法下,Anti-Caching能够取得最佳效果。

背景

内存数据库 VS 磁盘数据库

H-Store 概要

Anti-Caching

基本框架

数据存储

数据弹出

事务执行

数据回取

动机

实验观察:Anti-Caching固定参数设置的局限性

同一YCSB Benchmark下的不同Eviction参数组性能对比

同一Eviction参数组下的不同YCSB Benchmark性能对比

同一Eviction参数组下YCSB Benchmark发生剧变时的性能对比

瓶颈分析

对用户透明的虚拟页交换

长数据弹出开销

频繁的数据回取过程

典型案例

Anti-Caching功能启动

用户不应该对此负责。。。

弹出阈值设计

阈值设置地过高过低可能出现的问题。。。

固定阈值可能存在的问题。。。

弹出大小设计

弹出过大,浪费了空间容量。。。

弹出过小,容易超出内存。。。

弹出检查设计

区间过小,CPU暂停开销增大。。。

区间过大,容易超出内存。。。

Adaptive Eviction

基本思路

四种策略

实验设计

Benchmarks

系统设置

实验结果与分析

总结与思考

我们所做的贡献可以归纳如下:

第一,观察出现有Anti-Caching的问题瓶颈所在并进行了深入的分析;

第二,提出了Adaptive Eviction的理念,且进一步在H-Store中设计并实现了四种策略;

第三,开展了丰富翔实的实验,我们的方案要比baseline提升xx倍,其中xx方法尤为出色,提升了xx倍,而空间开销则可忽略不计。