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

    文章

    6512

    浏览量

    87601
  • 模型
    +关注

    关注

    1

    文章

    2704

    浏览量

    47689
  • 代码
    +关注

    关注

    30

    文章

    4556

    浏览量

    66784

原文标题:PostgreSQL 正面临抉择

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

收藏 人收藏

    评论

    相关推荐

    如何理解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

    Edge Impulse的分类模型浅析

    Edge Impulse是一个应用于嵌入式领域的在线的机器学习网站,不仅为用户提供了一些现成的神经网络模型以供训练,还能直接将训练好的模型转换成能在单片机MCU上运行的代码,使用方便,容易上手。本文
    发表于 12-20 06:51

    进程有几种状态?

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

    Stage模型深入解读

    基于Stage模型开发应用,下面将会应用组件、进程模型线程模型、任务
    发表于 03-15 10:32

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

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

    pdf转换成word转换器下载

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

    线程好还是单线程好?单线程和多线程的区别 优缺点分析

    摘要:如今单线程与多线程已经得到普遍运用,那么到底多线程好还是单线程好呢?单线程和多线程的区别又
    发表于 12-08 09:33 8w次阅读

    线程服务器编程模型:如何正确使用mutex 和condition variable

    本文对多线程服务器的常用编程模型进行了一个详细的解读,本文中的多线程服务器是运行在 Linux 操作系统上网络应用程序。介绍了典型的单线程服务器编程
    的头像 发表于 02-19 08:29 6931次阅读
    多<b class='flag-5'>线程</b>服务器编程<b class='flag-5'>模型</b>:如何正确使用mutex 和condition variable

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

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

    AI大模型和小模型是什么?AI大模型和小模型的区别

      随着人工智能的不断发展和应用,机器学习模型的大小越来越成为一个重要的问题。在机器学习中,我们通常将模型分为两类:大模型和小模型。本文将介绍AI大
    发表于 08-08 16:55 5578次阅读

    卷积神经网络模型优缺点

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