|
原帖由 datamann 于 2008-3-10 11:43 发表 ![]()
Ken: 内存中保存数据和磁盘中保存数据一样,最方便的都是在文件系统上。很多操作系统上有RAM Disk工具,比如Windows XP上、Linux上有。使用这些工具后,XP上有内存盘的盘符,象普通磁盘一样可用;Linux上在/dev下面有新磁盘设备,mount过来就象普通磁盘一样用了。这样,磁盘数据库稍加改变,就很方便地变成了“内存数据库”。我这里之所以加上引号,是因为这种所谓的“内存数据库”实际上只是磁盘数据库的一个变种而已。
比这种光天化日下公然挂羊头卖狗肉进一步的是把盘符隐藏起来,普通用户就难以分辨了。这种“内存数据库”的真名叫内存盘数据库。
这种内存盘数据库比磁盘好处是研发工作量低、性能可以提高5倍左右。缺点是实时性差。
eXtremeDB完全是另一个思路,可以说是到今天为止还是革命性的思路,就是完全劈开文件系统,用实时操作系统的技术存储数据。这样,eXtremeDB内存数据库的底层相当于一个小的实时操作系统。大概的做法是这样:
1-eXtremeDB获得内存:裸机上用户直接指定、单进程OS上OS分配物理内存、多进程(如AIX、HP-UX、Windows等)分配经MMU映射内存,这在eXtremeDB上是用
mco_db_open(dbname, db_dictionary, start_memory, db_size, page_size)
一条语句实现的
2- eXtremeDB内核把这些内存资源按管理单元形成资源池,供数据库存储数据使用。这部分就是我刚才说的“操作系统技术”。实时操作系统中最复杂的内容就是这个了。
3- 应用程序直接通过API或间接通过API(本地SQL API、远程ODBC客户端等都会转成本地API)访问数据库是,eXtremeDB内核通过db_dictionary访问内存资源。
这个是eXtremeDB数据库的核心内容了。要想确切了解其中的细节,超过我对它的了解了。恐怕只有其Vendor能够说明白。
关于安全问题:内存数据库也关注安全,企业数据库也关心性能。但内存数据库(应该叫实时数据库)是性能优先、兼顾安全;企业数据库是安全优先、兼顾性能。
[/B]实时操作系统的技术[/B]存储数据
恩,这是旧技术新的使用方法... |
|