论文部分内容阅读
随着电力行业信息化程度不断普及,电力系统对现场数据的实时处理的需求日渐提高,催生了支持实时性的高性能数据库的诞生。内存容量的增加和成本的降低,使基于内存的高性能实时数据库成为主流技术趋势。内存数据库的数据主要存储在内存中,数据的读写都在内存中完成,没有因磁盘I/O带来很大的开销。因此,在海量数据的处理过程中,事务并发控制的好坏直接决定了数据处理性能的高低。本文的目标就是研究内存数据库事务并发控制技术,设计一套适合于内存数据库事务管理的方案,以满足电力行业海量数据处理的需求。由于电力行业现场采集数据到达时刻极不均衡,具有较强的突发性,这给事务的并发控制带来了空前的挑战。本文通过分析现有事务并发控制技术,包括两阶段加锁协议、树形多粒度锁、意向锁、动态多粒度锁和死锁检测等,提出了本文要解决的问题:多核环境下高突发性事务流的并发控制问题。通过对多核环境下高突发性事务流的并发控制问题的深入分析,本文基于现有的自主开发的内存数据库——CacheDB的构架,设计了一套适合电力行业应用的事务管理功能模块,包括事务管理器、事务调度器和锁管理器。该方案综合了意向锁和动态多粒度锁的优点,事务冲突多时,采用并发能力强的行级锁;事务冲突少时,采用加锁开销小的表级锁,很大程度地提高了系统的总体性能。此外,本文对传统的动态多粒度锁机制进行了改进,重点考虑了锁的相容及开销情况,优化了事务冲突的判决机制;针对动态多粒度锁,优化了现有的死锁检测机制,尽可能的减少不必要的死锁检测动作。为了验证CacheDB事务管理方案的可行性,本文对闩和动态多粒度锁进行了仿真测试。测试结果显示,采用意向锁和动态多粒度锁相结合的事务并发控制设计方案,在数据到达不均衡条件下,系统总体事务处理性能得到明显提高。