MonetDB 主要特征

以列存储数据库内核

MonetDB是建立在规范的以列存储的数据库关系表示。它们是相当大的实体,达到几百兆,通过操作系统交换到内存,实现的时候使用的mmap文件内存映射,这对于一个内存能装满整个数据库的系统来说,速度非常地快,如果数据库非常的庞大,那就会导致系统不断地换页,甚至抖动。有必要时,压缩存回磁盘,压缩的效率也很好,因为以列存储,相似程度很高,压缩率自然会高,这需要CPU的时间,但同时节省磁盘的空间,时间换空间,这有待商议

高性能的系统

MonetDB擅长于数据库是热启动的应用,其实是数据库被用到的部分,大部分都可以存储在内存或者几个表的几个列就足够处理个别的请求。深入地利用cache-conscious 算法证明了这些设计决策的有效性。

接下来关注的MonetDB是以下的创新:

列存储:在传统中,关系数据库系统以行存储数据,方便整条记录的查询,而MonetDB使用的列存储,更好地利用CPU缓冲线去支持分析查询.

批量查询代数:如CISC对抗RISC思想应用于CPU的设计中,MonetDB的代数在传统关系集代数上尽可能简化,允许在现代硬件上有更加快速的实现。

有意识缓冲算法:这关键的一面,在于恰好地利用CPU缓冲和最优的内存访问模式,去突破内存瓶颈的限制。这叫做查询处理算法的一个新品种,我们将在根分区的散列连接中有详细的描述。

内存访问代价模型:因为优化的查询工作在有意识缓冲算法的环境下,我们发展了一个构建代价模型,把内存访问代价都考虑进来的方法学。为了工作在不同的计算机,使用自动校准技术,这些模型在运行时被参数化。

Comments