V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
YanSeven
V2EX  ›  PostgreSQL

postgresql 多进程改多线程

  •  
  •   YanSeven · 2 天前 · 1554 次点击
    pg 是多进程模型的,那么我有如下几个问题:

    1. 在现在的软件实践中,总体而言,大型基础软件的多线程模型是否比多进程更有优势。
    2. pg 有必要改成多线程模型吗。
    3. pg 官方有讨论过改多线程模型吗。
    4. pg 如果要改的话,哪一块儿是有必要改的,哪一块儿是没必要改的。
    5. pg 如果要改的话,哪一块儿是好改的,哪一块儿是不好改的。
    5. 改完之后,除了有个“噱头”用来写宣传文章,真的有收益吗。性能上,运维上,兼容性上有价值吗。
    5 条回复    2025-12-19 10:49:40 +08:00
    codehz
        1
    codehz  
       2 天前   ❤️ 2
    为什么这种 1 秒钟就能搜索到的内容要放在这里问。。。
    https://wiki.postgresql.org/wiki/Multithreading
    YanSeven
        2
    YanSeven  
    OP
       2 天前
    @codehz 感谢
    crazzy
        3
    crazzy  
       2 天前   ❤️ 3
    你问这些问题,大概率证明你思考了,但是却只思考了一点点。我是想回答又不想回答你,但是我既然准备回复你,就不做无意义回复。


    进程、线程、协程甚至于 goroutine 都是并发模型,不同的模型因为实现机制不同,在不同的场景下各有优劣,并不是绝对的优劣势。

    例如,进程的上下文切换开销大,线程的上下文切换开销小,那么单纯考虑上下文切换开销,我们就选择多线程模型吗?为什么不考虑协程或 goroutine ?

    PostgreSQL 选择多进程模型是因为在它最初开始开发的时候,线程在各个操作系统中是一个很新颖的东西,而进程却很成熟了,没得选。

    对于数据库这种有很多共享数据的软件,从理论上多线程就比多进程有优势,所以后期很多数据库都是多线程模型。


    - 有没有讨论过改、有没有必要改;要学会自己收集信息,邮件列表是公开的,不回答
    - 在一定要改动的情况下,必要和非必要、好改和不好改的区分;在你没有阅读过源码、了解其生态的情况下,仅有一个答案有什么意义?不回答
    - 改成多线程模型后的收益;这个问题问的,你可能都没有深入的使用过 PostgreSQL ,也不了解并发模型,可能你就是制造一个噱头来提问的吧...
    YanSeven
        4
    YanSeven  
    OP
       2 天前
    @crazzy 感谢回复!我在一个和数据库相关的边缘团队里面供职才不久,目前听到上头的人在讨论做 pg 的二开改动,所以有次疑问,如您精准的判断,我对 pg 的认识仍然是皮毛。由于用 ai 用多了,所以打字的时候不自觉的就把提问加的啰嗦了,已经检索到相关的社区讨论了。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   826 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:39 · PVG 04:39 · LAX 12:39 · JFK 15:39
    ♥ Do have faith in what you're doing.