关键词:
PostgreSQL存储引擎
多进程通讯机制
信号交互
数据库系统
存取效率
摘要:
近年来,随着互联网的迅速发展,数据库作为互联网各项服务的核心,越来越多的应用于互联网的各项业务中。当前流行的大型商业数据库应用系统中,数据量和数据复杂度越来越高,企业对数据库安全性、高效率的要求也越来越高。如何将目前具备的软硬件资源发挥最大效果,获得数据库高效率的数据处理能力,已成为国内外数据库研究领域中的一个重要的研究课题。PostgreSQL存储引擎原有通信机制采用的是多进程的方式,这种方式有很大的缺陷,在数据库实际使用过程中,存储引擎多进程的通信机制对数据库性能造成了非常大的影响,需要一种新的存储引擎通信方法来解决问题。\n 论文的主要工作是研究基于PostgreSQL数据库存储引擎多线程化改造的数据库性能优化。在本文中,重新对PostgreSQL的通信线程、通信函数以及核心信号量进行设计,提出一种使用线程池唤醒调用的方法替代PostgreSQL原有的多进程通讯机制,将客户端请求监听功能从服务进程中分离出来,用线程池中的主线程来监听客户命令,然后主线程唤醒子线程响应客户端请求,通过这种工作方式从而改变原有的通信机制。核心信号量类似于多线程通信中的全局变量,通信过程中的主要线程在交互过程中实际上是线程中的通信函数利用核心信号量进行信号交互。其次,利用线程池技术将PostgreSQL的串行操作改为并行操作,提高数据库的存取效率,同时利用多线程操作的高效性,极大减少数据库系统对系统资源的占用量,从而解决数据库启动大量进程占用大量系统资源的问题。\n 通过测试发现,改进后的数据库系统占用系统的资源更少,处理数据的效率更高、数据的I/O更快,在性能上比改进前的存储引擎有很大的提高,满足了PostgreSQL数据系统高性能的要求。