基于PostgreSQL存储引擎的多线程化方法研究与实现

被引量 : 0次 | 上传用户:bgtbhu888
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
一个高效的存储引擎对数据库系统的性能提升具有重要意义。本论文针对开源数据库管理系统PostgreSQL已有存储引擎的结构上的缺陷,提出一种将多进程结构改造为多线程结构的解决方法。PostgreSQL是一个多进程的数据库管理系统,每当有用户连接到系统后,就创建一个新进程处理这个用户的连接,用户连接断开后该进程被销毁。进程的创建,调度和销毁的开销都很大,比线程的对应操作开销大很多,为了合理利用系统资源,应该使用多线程的结构。本文对存储引擎多进程结构改造为多线程结构所涉及的几个方面进行了分析与实现。对全局变量的改造提出线程本地存储等方法并讨论了方法之间的优劣,为线程控制改造引入Boost第三方库并设计了跨平台的替换方案,分析了进程通信机制采用的共享消息队列方法的原理,讨论了解决进程资源限制所使用的虚拟文件描述符机制。基于上述分析,对存储引擎多线程结构改造的具体实现进行了较为详细的论述。使用消息队列结合线程信息的方法实现了线程通信机制,将启动后台服务进程分离为启动存储引擎主线程和启动后台服务线程,把后台写进程改造成以线程方式启动,对其正常情况和异常情况下的实现流程做了较详尽的阐述。所有单线程和多线程测试用例在Windows和Linux平台下都通过,存储引擎多线程改造基本成功。本文研究结果表明,多线程结构的存储引擎能够节省系统资源、充分发挥多核处理器的计算能力,提升数据库系统整体性能,如果进一步实现事务与线程脱离,还可以大幅提高分布式数据库系统的吞吐量。
其他文献
数学是义务教育阶段的主要学科,其在开发学生逻辑运算能力与抽象思维方面起着至关重要的作用。然而,由于长期以来初中数学受传统教学思维的束缚,教师与学生在课堂教学上很难
为寻求适合晋西北黄土丘陵土壤特点的培肥途径 ,对长期不同施肥处理下土地生产力和土壤肥力的变化进行了研究 .结果表明 :连续施肥既能持续增产 ,又能提高土壤抗逆性 ;有机肥
随着信息技术的快速发展,物联网作为信息技术的重要组成部分,被许多国家所重视并逐渐上升为国家战略,物联网是未来国民经济发展的重要推动力。文章对我国物联网产业发展的现
王尔德在《作为艺术家的批评家》一文中反驳了批评依附于创作的观点,提出批评具有独立性与创造性,从而消解了批评与创作的界限。哈特曼的解构主义批评理论也赋予了批评以独立
本文根据白背飞虱自然种群生命表及捕食性天敌对白背飞虱种群各虫态的捕食作用讨论捕食性天敌对白背飞虱种群的控制作用。得到如下结果:捕食性天敌是影响白背飞虱种群密度的重
<正>从2006年至2013年,8年间我先后5次赴藏区开展汉藏文化交流活动,虽然每一次交流活动的主题不同,但是目的就一个,那就是增进汉藏一家亲,促进民族大团结,共同为发展和繁荣中
活血化淤法是治疗缺血性脑卒中的主要方法之一。文章从改善血液流变学、促进微循环、抑制兴奋性氨基酸毒性、调节血管内皮细胞分泌功能等几个方面综述了近年来活血化淤法治疗
目的分析无中线移位的重型颅脑外伤急性弥漫性脑肿胀患者的临床危险因素及手术治疗效果。方法收集2011年3月至2012年3月本院收治的60例无中线移位的重型颅脑外伤急性弥漫性脑
期刊