|
关于什么是内存数据库,说法不一,但我们认为,内存数据库的定义不应涉及内存的大小、存取数据所需I/O 的多少、 数据何时进入及怎样才能留驻内存等这些具体的实现技术,而只包含数据库常驻内存(而不是磁盘)、事务(不是系统)的数据存取只涉及内存的意思。内存数据库是支持实时事务的最佳技术,其本质特征是其"主拷贝"或"工作版本"常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道。显然,它要求较大的内存量,但并不要求任何时刻整个数据库都能存放在内存,即内存数据库系统还是要处理I/O。 虽然如此,但它已不是传统磁盘数据库的概念, 传统数据库适用的数据结构、事务处理算法与优化、并发控制及恢复等技术对内存数据库不一定合适。
所以,实时内存数据库的设计应该打破传统磁盘数据库的设计观念,考虑内存直接快速存取的特点,以CPU和内存空间的高效利用为目标来重新设计开发各种策略与算法、技术、方法及机制。
实时事务要求系统能较准确地预报事务的运行时间,但对磁盘数据库而言,由于磁盘存取、内外存的数据传递、缓冲区管理、排队等待及锁的延迟等使得事务实际平均执行时间与估算的最坏情况执行时间相差很大,如果将整个数据库或其主要的"工作" 部分放入内存,使每个事务在执行过程中没有I/O, 则为系统较准确估算和安排事务的运行时间,使之具有较好的动态可预报性提供了有力的支持,同时也为实现事务的定时限制打下了基础。 |
|