Redian新闻
>
PostgreSQL正面临抉择

PostgreSQL正面临抉择

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

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

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

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

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

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

PostgreSQL 开发者、EnterpriseDB 高级数据库架构师 Andres Freund 指出:
我认为原有流程模型开始产生诸多限制,这个问题在大型设备上体现得尤其明显。跨进程上下文切换所带来的开销,原本就比在同一进程内的不同线程间切换要更高 —— 我估计这种开销还将持续提升。面对大量连接,整个体系最终一定会因 TLB 未命中而浪费大量时间。这是进程模型无法跨进程共享 TLB 的天然属性造成的必然结果。
目前这还仅仅只是一项提议,并且由于 PostgreSQL 被广泛用于生产环境,转换到线程模型的过程需要非常谨慎。开发团队需要在不影响现有生产环境的情况下测试新的线程模型,以确保其稳定性和可靠性。即便这个提议通过,这个转化过程肯定也是无法通过单一版本彻底完成,从网上的各方评价来看,目前大多数人都支持这项提议。
相关链接:https://lwn.net/ml/pgsql-hackers/[email protected]/


往期推荐



马斯克承认“家丑”,去年大裁员给自己挖了坑
特斯拉竟有马斯克专属模式,可无视安全规定
也许只有Python之父才能救得了Rust



这里有最新开源资讯、软件更新、技术干货等内容

点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
MySQL 巨坑:永远不要在 MySQL 中使用 UTF-8!!一张表,了解大奖的世界正面开战!Coles官宣mini Costco系列,不用会员卡,最多可省70%!Gas Explosion in Northwest China Restaurant Leaves 31 Dead文革记忆 -- 红小兵追疯子硬核观察 #1037 PostgreSQL 超过 MySQL 成为开发者首选数据库MyBatis 动态 SQL 最全教程,这样写 SQL 太爽了!ClickHouse和PostgreSQL:“数据天堂”中的好搭档传Meta正与Magic Leap谈判以获得AR技术授权;“Quest 3”标签在Quest Store中短暂亮相分布式PostgreSQL基准测试:Azure Cosmos DB、CockroachDB和YugabyteDB这将是一场灾难?37年历史的PostgreSQL数据库将进行重大架构变更Chinese Man Uses ChatGPT To Create Fake News, Arrested一条SQL如何被MySQL架构中的各个组件操作执行的?Java 近期新闻:JNoSQL 1.0、Liberica NIK 23.0、Micronaut 4.0-RC2、KCDCEstablished Chinese Apparel Brands Struggle to Stay AfloatHow Korea Quietly Reshaped Chinese Pop Culture空巢日记摘要2005PostgreSQL 正面临抉择Redis和MySQL双写一致性如何保证?这个方案够优雅!16 年等待,再见 SQL Boy,这一次数据库交互形态彻底被颠覆了!欧盟或金砖?武契奇称或将面临抉择Young Graduates Are Selling Their Knowledge on the Streets阿里一面:MySQL 单表数据最大不要超过多少行?为什么?都快想退休了,才发现/觉得我入错行了!Chinese Climbers Scale Everest, Tragedy and Daring Rescue EnsueHurun China Metaverse Companies with the Greatest Potential 2023申请中的重要抉择 | Podcast精华 Part 1Chinese University Streamlines Student Marriages, Sparks Debate图文结合带你搞懂GreatSQL体系架构“消灭那些组织武装暴动的人!”普京刚刚讲话,俄罗斯民族的命运正面临抉择,最新消息汇总→为什么Uber的底层存储从Postgres换成MySQL了?4 种 MySQL 同步 ES 方案How China’s Greatest Ever Film Was Rescued From Oblivion川普或以独立人身份参选在 MySQL 中处理时间 | Linux 中国
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。