TimesTen和solidDB比较
同步自我的个人博客http://seodashi.sinaapp.com/timesten_soliddb_compare.html
需求:
最近在用C#编写一个桌面应用程序,要完成实时交易功能,哪种内存数据库最好的?
调研:
调研了一下,很难有合适的数据库解决这个问题。要看缓存的数据的类型,一种是处理过程中的中间数据,一种是数据库的缓存,或者是两种数据的混合。还 要看这些数据是否要与其他客户端共享。还要看这些缓存是否需要一个查询解析器。还要看是否需要处理实时的外部消息来更新这部分缓存数据。
最终可供选择的数据库有:普通的非关系型数据库(NO-SQL),Sybase ASE 15的内存数据库功能,Oracle的TimesTen和IBM的SolidDB。
比较:
TimesTen:
TimesTen 是oracle出品的内存数据库(In-Memory Database)。
优点:
- 有商业公司的技术支持,技术响应快速
- High transaction throughput 高事务吞吐量
- Standard SQL, no application rewrite 支持标准sql语句查询
- Persistent and recoverable 可持久化和可恢复到内存中
- High availability and no data loss 高可用性,并且无数据丢失
缺点:
对于很多公司来说价格很贵 ($41,500.00 / Processor).
SolidDB:
solidDB 6.3是IBM产品 DB2 v9.5 中的一个组件。
下面是两个产品的比较:
Functionality | IBM solidDB 6.3 | Oracle TimesTen 11g |
---|---|---|
SQL Support | Large subset of SQL92 and selected features of SQL98 and SQL2003 | SQL-92 |
Stored procedures | Subset of DB2 SQL PL | PL/SQL |
IMDB as a secondary cache to RDBMS | DB2, Microsoft SQL Server, Oracle DB, IDS, Sybase | Oracle DB |
OS supported | Windows, Unix/Linux, Solaris, AIX, HP | Windows, Unix/Linux, HP, Solaris, AIX |
API | JDBC, ODBC, solidDB SA, CLI | JDBC, ODBC, JMS/XLA, CLI |
结论:
操作速度比较
- 查询操作两家的内存数据库都比各自的RMDBS快5倍。
- 插入和删除操作分别比各自的RMDBS快2倍和4倍。
可扩展性
横向扩展性就是说向资源池增加节点后就能相应的增加数据负载。这需要数据库有查询路由功能,能奖查询路由到数据所在的节点上。
solidDB在透明查询中,首先奖节点增加到两个,然后将模式设置为HA HotStandby模式。不支持其他方式的数据分区。
TimesTen较为高级,有Cache Grid机制来提供横向扩展。
参考文献:
1.http://bigdatamatters.com/bigdatamatters/2009/12/oracle_ibm_database_comparison.html