Altibase架构
内存管理
日志和恢复
事务处理
并发用户支持
查询处理
编程接口
复制
工具
应用领域
复杂查询性能
TPC-H查询
Cache优化
LDAP支持
GIS支持
存储过程
本地存储过程
选择性加载
元组查询执行
内建函数
MVCC
       
       
   

Cache 优化

概念
      数据和指令必须从内存中提取出来才能被CPU处理。CPU的处理速度按照摩尔定律已经大幅度的增加了,然而内存访问速度的提高速度却比较低。如下图所示CPU和内存速度的差异已经变得越来越大。

[CPU和内存之间的性能差异]

      理论上讲,1Ghz的CPU每秒可以处理10亿条指令。然而,内存访问的延迟使速度下降了10倍以上。CPU使用cache来解决这个问题。为了更好的改进性能Cache又分为L1 cache和L2 cache等。在实际中1Ghz的CPU使用L2 cache可以将整个性能提高两倍。因此,cache的使用可以最大限度的减少内存延迟造成的性能下降。

      所以,可以说带有cache的CPU的性能取决于cache有多大,cache是如何被优化的。不同的CPU有不同大小的cache和不同的cache优化机制。当设计一个软件时,如果考虑到cache的存在(cache优化)可以显著的改善软件的性能。因为Altibase DBMS在设计时就考虑到了它的cache架构,所以Altibase是一个高性能的DBMS解决方案。

Cache优化

[Cache架构]

      按照报告“Where Does Time Go?”,1999,VLDB,50%以上的CPU时间浪费在访问内存的延迟上。如果程序的设计考虑到cache的存在,整个性能可以提高20%到30%。但是,就像上面解释的,不同的CPU有不同的cache架构,所以cache优化不是一件很容易完成的工作。此外,不恰当的cache优化可能会导致频繁的上下文转换,甚至使整个处理速度降低。

      Cache优化最终的目的是增加cache的命中率。使用cache模拟器可以找出内存访问的瓶颈,帮助程序员更好地进行cache优化。

有多种情况会导致cache miss的发生
1. 必然miss(第一次加载) - 必然miss不能排除
2. 容量miss(数据的大小超过了cache的容量) - 通过精简数据结构解决
3. 冲突miss(两个不同的数据被分配到同一个cache行,会发生冲突) - 通过控制数据传输的地址解决

cache优化并发控制

      传统的B+-tree使用在索引节点加锁进行并发控制。这种方法增加了cache miss,避免在索引节点上加锁可以显著的减少cache miss。