论文部分内容阅读
主存数据库是数据库技术的一个分支,一般指将整个数据库存放于主存之中,通过简化操作、精简代码来缩短系统的响应时间,增加系统的吞吐量。它特别适用于一大类实时应用系统。传统的基于硬盘的数据库即使全部放入主存中也不是主存数据库,因为这些数据库系统是针对磁盘特性进行设计的,而非针对内存特性设计的。执行同样的操作,两者有很大的差别,主存数据库比使用大内存的传统数据库系统响应速度要快很多。本文在对主存数据库技术进行学习与探讨的基础上,给出了一个主存数据库系统的原型。在该原型系统中实现对于数据库结构的定义、对象存储格式定义,日志类型、日志记录格式的定义,以及数据库对象标识OID的分配管理等。在该原型系统中着重对主存数据库系统中基于日志的恢复及T树的实现技术展开工作。WAL(Write Ahead Logging)是指当执行检查点时,相应的日志记录刷新到稳定存储器前,不允许对数据库做实际的更新。WAL使编码复杂,对于系统的性能影响很大。原型系统中实现了乒乓检查点策略,使得该系统不受WAL规则约束,更易于实现,代码更精简,操作执行时间更短。T树是主存数据库技术中重要的索引树结构,原型系统中不但使用T树来做索引结构而且采用T树进行数据库自由空间管理。另外,原型系统中采用了原子操作、混合日志、数据库空间伪释放、成组提交、两趟扫描恢复、同步加载等方面的技术。在本文的最后给出了对该原型系统性能的简单测试与分析。