可以说,postmaster是PostgreSQL服务器端的总代理了。
通过它,把客户端的请求转给新生成的postgres 进程。

postmaster.c 的代码注释中有如下的描述:

When a request message is received, we now fork() immediately.The child process performs authentication of the request, and
then becomes a backend if successful.This allows the auth code to be written in a simple single-threaded style
(as opposed to the crufty "poor man's multitasking" code that used to be needed).
More importantly, it ensures that blockages in non-multithreaded libraries
like SSL or PAM cannot cause denial of service to other clients.

这个fork的方式是,只要有请求进来了,就fork一个进程。然后,认证什么的都有这个进程自己来搞定。然后提出请求的客户端和这个postgres进程之间,该干嘛就干嘛。每一对 客户端/postgres进程 和其他的 客户端/postgres进程之间互不干扰。

想想看,这么做确实有它的好处:
认证部分的代码可以尽量简化,不需要考虑锁定机制什么的。处理效率比较高,也没有排队什么的。

另外,如果一个postgres进程崩溃了,也不会影响另一个。

本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/archive/2012/07/19/2599235.html,如需转载请自行联系原作者

PostgreSQL的postmaser的fork的学习体会相关推荐

  1. 操作系统学习体会之进程管理篇

    计算机基础知识的学习中,操作系统则是重中之重.继对微机原理和计算机组成原理的基础知识了解和学习后,对硬件和基础原理的理论有了初步的了解,结合在所在公司的项目中开发应用的经历和体会,进行了操作系统的学习 ...

  2. c#学习体会:使用 ref 和 out 传递数组

    c#学习体会:使用 ref 和 out 传递数组(downmoon),希望与大家分享1.与 所有的 out 参数一样,在使用数组类型的 out 参数前必须先为其赋值,即必须由接受方为其赋值. 例如: ...

  3. 小学生计算机课学生心得,【小学信息技术学习体会13篇】_小学信息技术学习体会范文大全_2021年小学信息技术学习体会_东城教研...

    小学信息技术学习体会 大家都对小学信息技术学习体会特别关注,东城教研特别为大家整理了一些有关小学信息技术学习体会的内容,其中,培养学生的创新意识和创造能力.下面就结合我的教学实践,谈谈我的几点体会.一 ...

  4. 近期爬虫学习体会以及爬豆瓣Top250源码实战

    近期爬虫学习体会以及爬豆瓣Top250源码实战 我是在B站https://www.bilibili.com/video/BV12E411A7ZQ?p=25里学习的,至今已经可以手写爬豆瓣Top250代 ...

  5. Office计算机心得,OFFICE心得学习体会.ppt

    OFFICE心得学习体会.ppt 会专61001 唐林 21 会专61001 唐林 21 会专61001 唐林 21 记在大一结束前 * 会专61001 唐林 21 * 我学word 我学习计算机,就 ...

  6. JavaOOP(面向对象)学习体会

    JavaOOP(面向对象)学习体会 类和对象的概念 类:具体相同特征和行为的事物的抽象 对象:万事万物皆对象 类是对象的类型! 对象是类的实例 ! 封装 //特征---->属性(特性)Strin ...

  7. PostgreSQL数据库之国际化语言支持学习总结

    目 录 学习参考书籍.网站或博文: PostgreSQL本国语言支持 官方文档,点击前往 GNU gettext官方文档 GNU gettext简介 PostgreSQL数据库之国际化语言支持学习总结 ...

  8. 决策树总结(个人学习体会)

    决策树总结(个人学习体会) 算法定义 决策树:是一种监督学习(Supervised Learning)方法,通过不断对某个属性进行判断得到一个分支最终形成决策树,这个决策树能够对新的数据进行正确的分类 ...

  9. 【学习体会】Lighttools8.4.0:设置虚拟相机+仿真结果3D显示

    *关于Lighttools8.4.0软件的安装教程,详见我的另一篇博文:[软件安装]win10下Lighttools8.4.0(64)光学系统建模软件的安装教程 *关于Lighttools8.4.0软 ...

最新文章

  1. 2020-12-13
  2. 总结JavaScript常用数组操作方法,包含ES6方法
  3. Creating my own systemd service files on Fedora 16(x86_64)
  4. win10无法装载iso文件_win 10如何装载和弹出ISO映像文件
  5. 避免CRM_IB 013 error message
  6. linux 查看握手时间,实战:tcpdump抓包分析三次握手四次挥手
  7. 自定义Hibernate Validator规则注解
  8. plsql 连接数据库无法解析指定的连接标识符
  9. LINUX SHELL安装deb命令
  10. [3]⾃自定义视图、视图控制器
  11. 使用python判断文件是否是excel格式
  12. WIN10合并磁盘扩展区是灰色的
  13. Python: PS 图像特效 — 模糊玻璃
  14. 红米9A android版本,红米9a和红米9哪一款手机好?有什么区别存在?
  15. scroll lock键 和 sandy bridge
  16. 网站微信扫码授权登录
  17. word批注怎么删除计算机名字,Word在添加批注时姓名会出现匿名注释如何删除
  18. 深度学习寿命预测技术路线
  19. prompt learning 提示学习初步心得及示例 代码
  20. VCS产生vpd波形文件

热门文章

  1. discuz x2.5 DIY模块模板语法详解
  2. 【读书笔记】the TeXBook 1
  3. 蓝桥杯第六届国赛JAVA真题----奇怪的数列
  4. 减治法在查找算法中的应用(JAVA)--快速查找
  5. 计算机寄存器及标志位详解
  6. 如何安装php5.5,源码安装php5.5
  7. html富文本编辑器插件_vue中使用vuequilleditor富文本编辑器
  8. arduino char*转string_Java 中 String 类的常用方法汇总
  9. PHP7不能用string类名,解决thinkphp php7 Cannot use ‘String’ as class name as it is reserved...
  10. java filedialog 打开文件_java 用文件对话框打开文件