论文部分内容阅读
数据库对象(表或者索引)的空间管理是数据库系统的关键问题,当数据库进行插入时,需要在对象的物理空间中寻找一个可用的页面,这个查找过程既要保证高性能,又要尽可能利用好有限的物理空间。在当前的商业数据库系统中,通常使用空闲空间链表或者页面空闲空间位图等物化数据结构来达到这一目标。 然而随着计算机CPU数目和内存容量的飞速增长,数据库系统所承受的并发负载与日俱增。在高并发的在线事务型应用系统中,当对一个对象产生高并发的插入操作时,传统的数据结构和搜索算法已经不能满足实际需求,往往会产生对同一页面的资源争夺而引起并发瓶颈,或是物理空间的快速浪费。 在本文中,我们提出了一种新的数据库对象空间管理方法3LSM(3-LayerSpaceManagement)。3LSM方法使用了三层结构来管理数据库对象的空间:在线程级缓存中,对线程私有的页面进行管理,以降低对并发资源的访问;在全局缓存中,通过多入口结构降低全局缓存的并发冲突,通过对页面的轮询分配,消除对同一页面的竞争;在物理存储空间级别,使用异步搜索的策略,通过后台线程来将物理页面装载到全局缓存中。 3LSM方法充分考虑了时间和空间上可能产生的瓶颈,使数据库对象空间管理在高并发环境中有良好的延展性。通过基于TPC-C事务的模拟实验,我们证明了相比传统的对象空间管理算法,3LSM方法在高并发环境下,随着并发负载的增加,吞吐率以接近线性的方式增长;尽管3LSM方法的空间利用率不如传统的对象空间管理方法,但两者的差距较小。