这里比较四个内存数据库系统情况,分别是Timesten、AltiBase、ExtremeDB、CacheDB(自研),需要说明的是,这是这段时间的粗略感性认识(并没有经过一段时间的使用,是换不来理性的客观认识)

一、市场与技术支持比较

项目

市场及应用领域比较

排行

Timesten

全球化,领域全面,金融领域有应用。

2

AltiBase

韩国及东南亚,分布较广,电信市场为主体

4

Extreme

全球化,领域全面,在国内的金融领域有大商所撮合系统、国际有印度证券风控系统

1

CacheDB

集中在电信、广电、监控领域。…

3

项目

金融领域和电信领域对数据库的要求特性比较

金融领域

数据的复杂度和量很高很大。传统应用对数据访问性能要求不高,近年来对性能要求在提高

电信领域

数据的复杂度较低,量很大,对数据访问性能要求一直都很高。

项目

市场及应用领域比较

排行

Timesten

市场老大,不见得会强力支持。

3

AltiBase

中国区的技术支持力量薄弱。

4

Extreme

感觉会提供更好的支持。

2

CacheDB

… …

1

二、数据库集成特性比较

项目

耦合特性比较

排行

Timesten

松耦合(独立的不同进程),可采用共享内存直连和CS两种模式进行访问。

3

AltiBase

松耦合(独立的不同进程),可采用共享内存直连和CS两种模式进行访问。

2

Extreme

紧耦合(作为一个库嵌入应用进程),可通过共享内存进行不同应用间的数据共享。

4

CacheDB

既支持紧耦合模式(小容量,作为一个库嵌入应用进程)、也支持松耦合模式(大容量,独立的不同进程,采用CS模式进行访问)

1

项目

接口特性比较

排行

Timesten

JDBC/ODBC/OCI,支持SQL交互

4

AltiBase

JDBC/ODBC/ACI,XDB支持API,支持SQL交互

3

Extreme

API,支持SQL交互

2

CacheDB

API,支持SQL交互

1

项目

系统复杂度

排行

Timesten

难管理

4

AltiBase

较易管理

2

Extreme

易管理

1

CacheDB

易管理

1

三、数据库通用特性比较

项目

表特性比较

排行

Timesten

行表;

2

AltiBase

行表

2

Extreme

行表、列表,还可并存

1

CacheDB

行表

3

项目

索引特性比较

排行

Timesten

T树、散列(静态,可通过语句动态调整),主/外键

2

AltiBase

B树、散列(静态,可通过语句动态调整),主/外键

2

Extreme

B树、散列(动态,但可能会影响应用的访问)、KD树、R树、前缀匹配树可以通过OID等实现

1

CacheDB

散列(静态,可修改配置重启生效,负载均衡模式下对业务不受影响),

T树(目前不支持范围查询,仅仅用在漫游号码分配应用中)

前缀匹配树(用作号码分析)

不支持主/外键

3

项目

视图

排行

Timesten

支持

1

AltiBase

只读

2

Extreme

不支持

3

CacheDB

只读,相比传统视图而言,功能更简单。

2

项目

事务特性比较(目前风控系统不需要事务)

排行

Timesten

支持事务模型,默认不立即提交。

1

AltiBase

支持事务模型,默认立即提交。

1

Extreme

支持事务模型,必须手工提交。(非事务系统操作麻烦一些)

2

CacheDB

不支持事务模型。

3

项目

序列特性比较(目前风控系统不需要序列)

排行

Timesten

支持

1

AltiBase

支持

1

Extreme

不清楚是否支持

2

CacheDB

不支持

2

项目

触发器特性比较。

如果紧耦合模式下,一般不需要,但从数据库复制数据到应用时应该支持。

松耦合模式下,应该要能支持(把部分计算的工作放在数据库后台,为的是减少通信量)

排行

Timesten

支持脚本性触发器或外挂C性驱动,但支持的特性不清楚

2

AltiBase

支持脚本性触发器,但支持的特性不清楚

2

Extreme

支持C性驱动,通过Event实现事件触发等。

2

CacheDB

支持C性驱动,紧耦合方式下,仅在数据库动态通知到应用时支持。松耦合模式下在应用修改时也支持(动态库架构)。

1

项目

数据类型比较

排行

Timesten

与Oracle一样

3

AltiBase

支持C数据类型和扩展类型

2

Extreme

支持所有的C数据类型,还支持时间,变长数据类型及大文件数据类型如,string,vector,blob。

1

CacheDB

仅支持C数据类型

1

项目

查询特性比较(无条件查询、条件查询<索引查询、非索引查询,定值查询、范围查询>、分段查询<游标>、分组查询、排序查询、模糊查询)

排行

Timesten

都支持

1

AltiBase

都支持

1

Extreme

都支持,可以通过API和SQL等模式进行排序查询,另外也还要落实大量的排序字段对系统性能的冲击(这个需要根据应用场景进行测试,因素包括事务大小,环境信息等)。

2

CacheDB

不支持分组查询、排序查询、模糊查询、范围查询

目前模糊查询的具体需求还不清楚,如果只是正则表达式模式,还是比较好加的。

增强范围查询的能力较难,范围查询支持后,分组排序查询就不是难点。

4

四、数据库持久特性比较

项目

纯内存表

排行

Timesten

支持

1

AltiBase

支持

1

Extreme

支持

1

CacheDB

支持

1

项目

部分字段持久化

排行

Timesten

不支持

4

AltiBase

不支持

4

Extreme

不支持

4

CacheDB

支持

1

项目

本地文件持久化

排行

Timesten

支持

1

AltiBase

支持

1

Extreme

支持

1

CacheDB

支持

1

项目

数据库持久化

排行

Timesten

支持Oracle,其它数据库的持久化,需要应用自行扩展

2-2

AltiBase

支持HDB持久化(性能较好),但HDB接受程度需要打问号。

其它数据库的持久化,需要应用自行扩展

3-1

Extreme

不支持,需要应用自行扩展

4-4

CacheDB

支持Oracle、MySql、SyBase无缝集成。尤其是Oracle和MySql

1-2

第一个排行是指支持的能力,第二个排行指支持的性能

项目

数据库部分列加载

排行

Timesten

支持

1

AltiBase

不支持

4

Extreme

X

4

CacheDB

支持

1

项目

数据库部分行加载

排行

Timesten

支持,还能进行动态换出

1

AltiBase

不支持

4

Extreme

X

4

CacheDB

支持,不能进行动态换出

2

项目

数据库故障对系统的影响

排行

Timesten

无影响,有本地CheckPoint文件和增量日志

1

AltiBase

无影响,压根不从数据库读。

XDB+HDB配合下,是很好的模式,但是任然需要应用干预。

2

Extreme

无影响,有本地数据库文件和redo,undo日志

4

CacheDB

无影响,有本地备份文件和增量日志

1

项目

数据库变更对应用的反向复制

排行

Timesten

需要另外的组件,其它特性不清楚

3

AltiBase

无需另外的组件,利用复制特性实现,其它特性不清楚

1

Extreme

可以根据项目提供

4

CacheDB

需要另外的组件,可触发应用,便于做处理

2

项目

数据入库特性

排行

Timesten

同步日志

2

AltiBase

同步日志,采用复制特性实现

1

Extreme

同步日志

4

CacheDB

同步日志,

2

项目

高频数据持久化策略(均没有入库的优化方案)

排行

Timesten

无特别方案

4

AltiBase

无特别方案

4

Extreme

无特别方案

3

CacheDB

目前高频数据采用本地保存的策略

1

五、数据库部署特性比较

项目

主备方案

排行

Timesten

支持,但需要应用层总裁

4

AltiBase

无,需要应用管理

1

Extreme

无,需要应用管理

1

CacheDB

无,需要应用管理

1

项目

均衡方案

排行

Timesten

支持,但不支持持久化

4

AltiBase

支持,复制模型较复杂,最多32个节点

2

Extreme

支持,无节点限制

1

CacheDB

支持,最多16个节点

1

项目

本地表支持情况

排行

Timesten

不清楚,从演示情况看,没有体现出来

4

AltiBase

支持,因为复制是基于表级别的

2

Extreme

支持,同时支持distributed特性,scatter和gather方式

1

CacheDB

支持,

1

项目

数据复制模型

排行

Timesten

仅仅TCP,数据库级别复制

4

AltiBase

仅仅TCP,表级别复制

3

Extreme

主播、单播TCP、管道、单播UDP,表级别复制

1

CacheDB

主播或单播TCP,数据库级别复制

1

项目

部分字段或部分记录的复制支持

排行

Timesten

全表复制

4

AltiBase

全表复制

4

Extreme

全表复制

4

CacheDB

支持部分复制

1

六、数据库一致性特性比较

项目

数据库一致性策略

排行

Timesten

支持事务,支持全同步方式(性能低),也支持异步模式

2

AltiBase

支持事务,支持全同步方式(性能低),也支持异步模式

3

Extreme

支持事务,支持全同步方式(性能低),也支持异步模式

1

CacheDB

不支持事务,采用异步方式,允许系统暂时的不一致

1

项目

数据库冲突补救

排行

Timesten

4

AltiBase

4

Extreme

可以通过mvcc的事务管理器进行冲突回滚,操作遵守ACID性

4

CacheDB

有单独的组件,进行不同节点数据的一致性检查(包括与持久性数据库系统之间),并提供策略让应用恢复数据,原则是“错,也要错成一致”

1

七、数据库性能特性比较

项目

数据库性能特性比较

排行

Timesten

有公司做过比较测试

4

AltiBase

2

Extreme

从公开的测试数据来看,性能比AltiBase还快,官方网站上有1TB+的数据测试报告,内包含,join,子查询。http://www.mcobject.com/index.cfm?fuseaction=download&pageid=657&sectionid=154

1

CacheDB

没有做过纯内存表的测试,从均衡测试情况来看,性能应该与Extreme相当

2

八、综合比较(没加权重)

(1)没有加权的统计,并不一定能说明什么问题。

统计

1

2

3

4

Timesten

9

8

4

10

AltiBase

8

10

4

9

Extreme

12

6

2

11

CacheDB

19

7

4

1

(2)从应用市场来看,Extreme无疑占据较大优势,无论从市场占有率还是在金融领域的应用,都是相当不错的。

(3)从数据库与应用集成特性来看,CacheDB和Extreme的集成难度最小、AltiBase稍高、Timesten最大。

(4)从数据库通用特性来看,Extreme、AltiBase、Timesten都差不多,CacheDB因为不支持范围查询(虽有T树索引),而相对较弱。

(5)从持久性上看,CacheDB无疑排在首位。Extreme不具备数据库持久化能力,需要应用层做工作【工作量应该很大】,如果接受HDB的持久化模式,在持久化性能上应该最好,否则也和Extreme一样。另外还有一个重要特性CacheDB可以支持临时字段。

(6)从分布式模式上看,CacheDB无疑排在首位。其次是Extreme,再就是AltiBase,Timesten最差。

(7)从数据一致性上看,强一致性的AltiBase、Timesten无疑性能低,所以用处不大,非强一致性的模式下,CacheDB提供了一致性补救措施。

(8)从性能上看,无疑Extreme和CacheDB都占据头号位置,而Timesten最差。

综合来看:

(1)      如果CacheDB支持了范围查询,无疑是首选。

(2)      如果ExtremeDB支持了Oracle数据库的持久化,无疑是首选。

(3)      如果大家能接受AltiBase的私有磁盘数据库系统,或者支持Oracle数据库系统,无疑是首选。

(4)      如果上面都不满足,那就只能选择Timesten。

各大内存数据库系统对比相关推荐

  1. Android各种大内存脚本对比(app2sd,a2sd,a2sd+,d2sd,CronMod,Mound2SD)

    APP2SD 官方Android2.2系统以上基本都支持,就是把程序的apk文件存入sd卡,不同于其他脚本的是sd卡不需要ext分区,app会装到sd卡上的".android_secure& ...

  2. JVM优化之调整大内存分页(LargePage)

    转自:http://cjjwzs.iteye.com/blog/1059381 本文将从内存分页的原理,如何调整分页大小两节内容,向你阐述LargePage对JVM的性能有何提升作用,并在文末点明了大 ...

  3. PostgreSQL Huge Page 使用建议 - 大内存主机、实例注意

    标签 PostgreSQL , Linux , huge page , shared buffer , page table , 虚拟地址 , 物理地址 , 内存地址转换表 背景 当内存很大时,除了刷 ...

  4. linux大内存拷贝优化,Linux 下基础设施及系统网络优化

    基础设施优化 CPU 优化 多级缓存 充分利用 cache 是 CPU 调优的重要手段,由于是底层优化作用范围广. 性能分析利器--Perf 参数学习 提升 cache 命中率 缓存命中: CPU 要 ...

  5. ptmalloc、tcmalloc与jemalloc内存分配器对比分析

    目录 背景介绍 ptmalloc 系统向看ptmalloc内存管理 用户向看ptmalloc内存管理 线程中内存管理 Chunk说明 tcmalloc 系统向看tcmalloc内存管理 用户向看tcm ...

  6. FastDB 高效率的内存数据库系统

    FastDB 高效率的内存数据库系统 简介 FastDB 是一个高效率的内存数据库系统,具有实时性能和方便的 C++ 接口.FastDB 并不支持客户端/ 服务器结构,所有使用FastDB 数据库的应 ...

  7. java基础巩固-宇宙第一AiYWM:为了维持生计,大数据Hadoop之HDFS分布式文件系统(HDFS读写流程、主从集群两种问题“单点故障”及“压力过大内存受限”、HDFS的架构设计)~整起

    Hadoop之HDFS 目录 一.大数据 二.HADOOP 三.HDFS 1.HDFS基本概念 2.HDFS的架构设计 3.HDFS自己对于上面两种数据持久化技术的实现: 4.HDFS读写流程 5.H ...

  8. 一条SQL能占多大内存?

    初学计算机时,我经常琢磨的一个问题是:一个进程到底能吃多大内存,能把系统内存吃完? 学了数据库后,我又开始问自己类似的问题,一条 SQL 能把数据库内存全部吃完? 假设数据库系统内存 有128GB,全 ...

  9. 大内存时代虚拟内存现在还有用吗

    但凡用过Windows的人,大多听说过"虚拟内存"这四个字.尤其在当年物理内存还普遍偏低的年代,虚拟内存几乎成了每一个玩电脑的人都曾摆弄过 的东东.不过随着硬件技术不断发展,内存价 ...

最新文章

  1. 【高并发】面试官:说说缓存最关心的问题?有哪些类型?回收策略和算法?...
  2. UDP通讯C++实现
  3. Spring5源码 - 09 循环依赖解读
  4. java interface泛型_java – 使用泛型和接口实现组合
  5. loadrunner常用函数总结
  6. OpenStack推出最新版本Newton,显著提升单一云平台 对虚拟化、裸机和容器的管理...
  7. Ubuntu18.04上手配置入门指南
  8. dfmea文件_技术干货合集「失效分析、PFMEA DFMEA关系、文件结果化」
  9. 浅析Secondary NameNode与namenode
  10. ping命令两种返回信息的区别
  11. nps内网穿透工具学习
  12. 关于H.265/HEVC视频压缩标准相较H.264/AVC节省50%左右的带宽方案的推荐
  13. 干货|如何轻松安装和永久激活photoshop cs6
  14. mac android studio Waiting for application to come online解决方案
  15. 微星极光授权使用步骤
  16. CentOS7安装MySQL8.0和Nginx
  17. 黑苹果EFI文件,戴尔DELL-OptiPlex-7060and7070-Catalina
  18. ROS入门WIKI学习记录
  19. Python tkinter -- 第14章 列表框(Listbox)属性
  20. (转)Burp Suite 的一些插件

热门文章

  1. 18.Redis系列之AOF方式持久化
  2. 编程比赛 介绍 入门 及 学习路线
  3. OM1、OM2、OM3、OM4、OM5 和 OS1、OS2 光纤
  4. Matlab 数组中逗号、分号
  5. 【虚拟机装黑苹果(第二弹)】Win10/macOS环境下制作黑苹果安装U盘(能被Vmware虚拟机识别)
  6. Hbase简介(上篇)
  7. std::map与std::unordered_map
  8. 华人运通高端车销量难及蔚小理,处在第二梯队何时能加速上位?
  9. SPI极性与相位简介
  10. SolidWorks 操作视频 | 流体分析结果演示