0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

从进程模型转换成线程模型的优缺点

数据分析与开发 来源:数据分析与开发 2023-06-25 10:12 次阅读

面向进程模型是一种数据库系统的架构模型,核心思想是将不同的数据库服务分配给不同的进程,每个进程独立运行,相互之间通过进程间通信(IPC)进行协作。这种模型被广泛应用于数据库系统中,例如 PostgreSQL 数据库系统。 正如上文所说,进程模型使得 PostgreSQL 可以将不同的服务分配给多个进程独立运行,每个进程负责不同的任务,例如查询处理、并发控制、锁管理等。进程模型还可以可以保证系统的稳定性和可靠性。当一个进程出现问题时,不会影响到其他进程的正常运行,从而提高了系统的可用性。 这样的特点使得 PostgreSQL 可以同时处理大量的并发请求,提高了系统的性能和响应速度;除此之外,PostgreSQL 还可以很容易地进行水平扩展,增加更多的节点以应对更高的负载。不过与此同时,也让 PostgreSQL 面对着管理和维护成本相对较高、需要较为复杂的进程间通信和协调机制、需要消耗更多的系统资源等缺点。 6 月初,Heikki Linnakangas 发布了将 PostgreSQL 转为线程模型的提案。 线程模型是一种数据库系统的架构模型,与面向进程模型类似,它是将不同的数据库服务分配给不同的线程,每个线程独立运行,相互之间通过线程间通信进行协作。线程模型在一些轻量级的数据库系统中得到广泛应用,例如 SQLite。 线程模型与进程模型的最大区别在于,线程模型中所有的线程共享同一个进程的地址空间,每个线程有自己的堆栈,共享代码段和数据段。这意味着线程之间可以直接访问同一份内存,因此线程间通信的成本相对较低,不过这也意味着线程间的数据共享可能会带来安全性问题。 从进程模型转换成线程模型的优缺点: 优点

更轻量级:线程模型相对于进程模型更加轻量级,可以更加高效地使用系统资源,尤其是在单机上运行多个实例时,线程模型可以将多个实例运行在同一个进程中,减少了系统调用和进程间通信带来的开销。

更高的响应速度:线程模型中线程之间的通信成本相对较低,因此在高并发场景下具有更高的响应速度。

更少的内存占用:线程模型中线程共享同一份地址空间,因此可以避免进程模型中同一份代码和数据被多个进程重复加载到内存的问题,节省了系统内存占用。

缺点

安全性问题:线程之间共享同一份内存,可能会带来安全性问题,例如数据竞争和锁竞争等。

可靠性问题:线程模型中一个线程崩溃可能会影响到整个进程的稳定性和可靠性。

多线程编程难度较大:线程之间的通信需要进行同步和互斥,编写多线程程序的难度相对较大。

PostgreSQL 开发者、EnterpriseDB 高级数据库架构师 Andres Freund 指出:

我认为原有流程模型开始产生诸多限制,这个问题在大型设备上体现得尤其明显。跨进程上下文切换所带来的开销,原本就比在同一进程内的不同线程间切换要更高 —— 我估计这种开销还将持续提升。面对大量连接,整个体系最终一定会因 TLB 未命中而浪费大量时间。这是进程模型无法跨进程共享 TLB 的天然属性造成的必然结果。

目前这还仅仅只是一项提议,并且由于 PostgreSQL 被广泛用于生产环境,转换到线程模型的过程需要非常谨慎。开发团队需要在不影响现有生产环境的情况下测试新的线程模型,以确保其稳定性和可靠性。即便这个提议通过,这个转化过程肯定也是无法通过单一版本彻底完成,从网上的各方评价来看,目前大多数人都支持这项提议。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6867

    浏览量

    88799
  • 模型
    +关注

    关注

    1

    文章

    3158

    浏览量

    48701
  • 代码
    +关注

    关注

    30

    文章

    4741

    浏览量

    68324

原文标题:PostgreSQL 正面临抉择

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问如何将HSPICE和 IBIS两种模型怎么转换成TINA软件中用?

    TI网站里,给出了一些期间的HSPICE和IBIS模型,但是现有的仿真工具 只有TINA这种,请问如何将HSPICE和 IBIS两种模型怎么转换成TINA软件中用? 请高手给予解答。感谢!
    发表于 09-02 07:56

    如何理解MPC状态空间模型

    模型预测控制中,把状态空间模型转换成MPC状态空间模型,结果得到一个矩阵,如何去理解这个矩阵代表的意义?
    发表于 03-20 16:09

    inc格式的HSPICE模型怎么转换成ciir或sp或mod或lib或net格式的spice模型?

    inc格式的HSPICE模型怎么转换成ciir或sp或mod或lib或net格式的spice模型?需要spice模型,但只找到inc格式的hspice
    发表于 09-12 16:02

    SPICE模型有什么优缺点?如何合理的使用SPICE模型

    请问SPICE模型有什么优缺点?如何合理的使用SPICE模型
    发表于 04-13 06:59

    嵌入式的进程线程具有哪些优缺点

    :①进程拥有自己的PID和变量,独立的内存单元进行调度,执行(几乎)独立于父进程。②新线程拥有自己独立的栈(eg.局部变量),但与创建者共享全局变量、文件描述符、信号句柄、当前目录状态。③独立
    发表于 10-28 09:24

    DC-DC转换器的模型

    由字面意思可以得到直流转直流,可以直接按照下图的线性电源模型进行转换缺点:只能由高电压转换到低电压;由于存在上面的1Ω的电阻,效率低,所以人们制造了非线性的电源
    发表于 11-17 08:18

    进程有几种状态?

    文章目录操作系统进程线程什么是进程?什么是线程进程线程有什么区别?何时使用多
    发表于 12-24 07:16

    OpenHarmony应用模型的构成要素分析

    。 OpenHarmony应用模型的构成要素包括:应用组件、应用进程模型、应用线程模型、应用任务管理
    发表于 04-24 10:26

    pdf转换成word转换器下载

    此压缩文件里面包含二款转换工具:pdf转换成word转换器与word转换成pdf转换器。用户可以选择,将文件
    发表于 09-18 09:17 110次下载
    pdf<b class='flag-5'>转换成</b>word<b class='flag-5'>转换</b>器下载

    编译原理的角度看C语言如何转换成汇编语言的?

    编译原理的角度看C语言是如何转换成汇编语言的?
    的头像 发表于 02-25 15:52 2596次阅读
    <b class='flag-5'>从</b>编译原理的角度看C语言如何<b class='flag-5'>转换成</b>汇编语言的?

    深度分析RNN的模型结构,优缺点以及RNN模型的几种应用

    强大的Bert模型家族,都是站在RNN的肩上,不断演化、变强的。 这篇文章,阐述了RNN的方方面面,包括模型结构,优缺点,RNN模型的几种应用,RNN常使用的激活函数,RNN的缺陷,以
    的头像 发表于 05-13 10:47 2.4w次阅读
    深度分析RNN的<b class='flag-5'>模型</b>结构,<b class='flag-5'>优缺点</b>以及RNN<b class='flag-5'>模型</b>的几种应用

    进程线程的区别以及优缺点

    执行,多核 CPU 可以同一时间点有多个进程在执行。 2、多进程、多线程优缺点 一个进程进程
    的头像 发表于 07-21 11:02 1332次阅读

    卷积神经网络模型优缺点

    卷积神经网络模型优缺点  卷积神经网络(Convolutional Neural Network,CNN)是一种图像、视频、声音和一系列多维信号中进行学习的深度学习模型。它在计算机
    的头像 发表于 08-21 17:15 4267次阅读

    数学建模神经网络模型优缺点有哪些

    、预测分析等。然而,神经网络模型也存在一些优缺点。本文将详细分析神经网络模型优缺点。 一、优点 强大的非线性拟合能力 神经网络模型具有强大
    的头像 发表于 07-02 11:36 793次阅读

    AI大模型与小模型优缺点

    在人工智能(AI)的广阔领域中,模型作为算法与数据之间的桥梁,扮演着至关重要的角色。根据模型的大小和复杂度,我们可以将其大致分为AI大模型和小模型。这两种
    的头像 发表于 07-10 10:39 2357次阅读