内存数据库研究实录

1 Berkely DB:开源嵌入式数据库(和应用相同的地址空间,可以显示设置为只内存数据库),支持复制(1master > read only replica),支持hashbtreerecord numberqueue 4种存储方式,透明支持事务隔离,恢复,多用户锁(如果不需要,还可以禁止锁和日志机制),其完全基于key – value对来管理记录(key value可以是定长或变长字符串,key value也可以直接是任何数据结构,不必转换成DB指定的格式),Berkely DB不是关系数据库!(不通过sql,而是api来访问,不支持索引也不自动维护它们!),不是OO数据库,不是网络数据库,甚至不是数据库服务器(最近开始支持rpc 访问)!

MySQL使用Berkely DB做事务表实现。

主要目的:“fast, reliable, transaction-protected record storage

cc++,等接口

 

 

2 Fast DB:开源嵌入式数据库(本地硬盘和内存存储),个人的,支持索引,支持cli和网络访问,但主要也是api访问(使用一种类SQL语句),支持hashbtree索引

delphic++等接口

 

 

3 Oracle Times ten:通过api访问,支持复制,自动ODBC同步等各种功能,但要付费,主要是c++接口(TTClass),另外也可以使用ODBCJDBC

最关键的是:Cache Group可以cache远程oracle数据库的部分表,times ten可以透明地和应用一起工作(主要的odbc api接口都可以透明工作)。但使用“Cache Connect to Oracle Cache Administrator”连接到oracle 9i时,9i好像不支持这个特性:(

 

 

本地times ten和远端oracle之间有4cache group

²        只读(refresh是自动的)

²        同步(flush自动, refresh手动)

²        异步(在两边异步commit,所以效率较高,但可靠性稍低,而且支持在主oracle停机的时候本地提交)

²        用户管理

数据从times ten写到oracleflushpropagate,反过来叫loadrefreshautorefresh

 

另外也可以在times ten创建表和索引视图等,它一般以ODBC的形式提供接口,但直接生成index不允许用hash,只能在生成表的时候使用hash或主键的方式指定,如:

CREATE TABLE Customer

(custID INT NOT NULL PRIMARY KEY,

)

UNIQUE HASH ON custID PAGES = 30; /*hash的桶数是30*/

 

Times ten允许设置为无盘模式运行

RAM policyIn Use第一个连接到来时载入,InUse with RamGracealwaysmanual

永久数据区(表,索引)和临时数据区(锁,游标等)一旦载入就不能改变

 

总之,应用通过ODBCTTClass连到times ten(瘦ODBC客户端,通过本地或远程,tcp/ip或共享内存的方式连到times ten服务器),times ten可以通过ODBC连到Oracle 10g,在windows平台,可以通过ODBC连到第三方ODBC管理器 (使用TTClass取代OLE DB/ADO之类的第三方中间件),times ten服务器是自动启动的独立过程(数据管理系统服务,开放一个1rr02的端口用于连接),应用程序->client dsn->server dsn

²        直接连接(最快,内存级,使用共享库连接,windows上是tten60.lib

²        驱动管理器连接(windows上用系统的odbc32.lib库,这时其实可以连第三方ODBC

²        非直接连接(c/s模式,主要用于应用驻留在与times ten data store不同的主机上,最慢,windows上用ttcl60.lib

同时,生成TTClass(带源码,可以自己编译这个库)时也可以指定生成上面3种中的哪一种TTClass

 

TTClassODBCc++封装,用于高性能的应用

支持连接池技术(TTConnectionPool,用于多线程应用),应用日志功能(TTGlobal),预准备带参SQL语句(TTCmd,还负责其他具体的sql语句执行包括带和不带结果集的),ODBC连接器(TTConnection),错误报告(TTStatus),TTCatolog用来管理表列和索引(只能读配置数据)

可用XLA实现表改变的通知功能(比如有客户端插入了数据到下载配置表)

 

TptbmAS证明了Timesten部署在应用服务器里面的可能性。

 

4 apache derby

Java实现的嵌入式数据库(就象eclipse,是由IBM捐献给开源社区),可以用来伴随J2EE使用

 

 

5 ExtremeDB

商业实时嵌入数据库,可以全内存操作,可以远程同步oracle,不提供源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值