欢迎来到天天文库
浏览记录
ID:33163645
大小:877.93 KB
页数:55页
时间:2019-02-21
《基于postgresql存储引擎的多线程化方法研究与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、分类号学号M201076018学校代码10487密级硕士学位论文基于PostgreSQL存储引擎的多线程化方法研究与实现学位申请人许:彦学科专业:软件工程指导教师:高建生副教授答辩日期:2012.5.17AThesisSubmittedinPartialFulfillmentoftheRequirementsfortheDegreefortheMasterofEngineeringResearchandImplementationontheMethodsofChangingPostgreSQLStorageEnginetoMutil-threadsStru
2、ctureCandidate:XuYanMajor:SoftwareEngineeringSupervisor:Assoc.Prof.GaoJianshengHuazhongUniversityofScienceandTechnologyWuhan430074,P.R.ChinaMay,2012华中科技大学硕士学位论文摘要一个高效的存储引擎对数据库系统的性能提升具有重要意义。本论文针对开源数据库管理系统PostgreSQL已有存储引擎的结构上的缺陷,提出一种将多进程结构改造为多线程结构的解决方法。PostgreSQL是一个多进程的数据库管理系统,每当有用户
3、连接到系统后,就创建一个新进程处理这个用户的连接,用户连接断开后该进程被销毁。进程的创建,调度和销毁的开销都很大,比线程的对应操作开销大很多,为了合理利用系统资源,应该使用多线程的结构。本文对存储引擎多进程结构改造为多线程结构所涉及的几个方面进行了分析与实现。对全局变量的改造提出线程本地存储等方法并讨论了方法之间的优劣,为线程控制改造引入Boost第三方库并设计了跨平台的替换方案,分析了进程通信机制采用的共享消息队列方法的原理,讨论了解决进程资源限制所使用的虚拟文件描述符机制。基于上述分析,对存储引擎多线程结构改造的具体实现进行了较为详细的论述。使用消息队
4、列结合线程信息的方法实现了线程通信机制,将启动后台服务进程分离为启动存储引擎主线程和启动后台服务线程,把后台写进程改造成以线程方式启动,对其正常情况和异常情况下的实现流程做了较详尽的阐述。所有单线程和多线程测试用例在Windows和Linux平台下都通过,存储引擎多线程改造基本成功。本文研究结果表明,多线程结构的存储引擎能够节省系统资源、充分发挥多核处理器的计算能力,提升数据库系统整体性能,如果进一步实现事务与线程脱离,还可以大幅提高分布式数据库系统的吞吐量。关键词:PostgreSQL存储引擎多进程结构多线程结构I华中科技大学硕士学位论文Abstract
5、Anefficientstorageenginehasimportantsignificancetotheperformanceofdatabasesystems.Inthisthesis,proposedasolutionofchangingPostgreSQLstorageenginefrommutil-processesstructuretomutil-threadsstructureforitsstructuraldefects.PostgreSQLisamutil-processesdatabasemanagementsystem,whenthe
6、reisauserconnectstothesystem,anewprocesswillbecreatedtohandletheuser'sconnectionandtheprocesswillbedestroyedaftertheuserdisconnectsfromthesystem.Processcreation,scheduling,anddestructioncostmuchoperatingsystemresourcethancorrespondingthreadoperation.Inordertotherationaluseofsystem
7、resources,weshouldusethemulti-threadsstructure.Inthispaper,analyzeandimplementseveralaspectsinvolvedinchangingPostgreSQLstorageenginefrommutil-processesstructuretomutil-threadsstructure.Proposedthreadlocalstoragemethodsforglobalvariablesanddiscusstheprosandconsbetweenthemethods,us
8、eBoostthird-partylibrariesanddesi
此文档下载收益归作者所有