摘要:
从整体上理解postregres结构
整体架构:
postregres做了哪些功能分割
- background writer模块
- walwriter 模块
- stats collector 模块
- checkpointer 模块
- logical replication launcher 模块
如何做整体上的功能分割的
- 使用多进程
- 为何要使用多进程的方式
- 进程和线程在linux中有哪些区别?
- 进程间有哪些通信方式?
- 线程间有哪些通信方式?
- redis 6.0如何使用多线程的?
- 哪些业务使用了分离的线程?
- 线程间如何同步的?
如何使用多进程通信的
- 使用共享内存
- 除了共享内存,还有哪些进程间通信方式
- 如何对共享内存采取锁控制的
- 守护进程注册信号处理函数
- posix有哪些锁?
- linux内核有哪些锁?
- postres如何实现自己的锁?
- 如何使用信号量的?
- 为什么要使用信号量?
- 如何使用linux的CAS的?
- gcc的CAS如何实现的?
客户端连接使用了独立的进程
- 为什么客户端连接要使用独立的进程?而非线程或者更小的上下文?
- 客户端会话需要保持哪些东西?
- 如果客户端不使用独立的进程,还有哪些实现方式?
- redis使用了单线程和会话控制,使用场景上有什么不同?
- ACID事务特性与客户端保持的变量有哪些关系?
- ACID事务特性与postgres整体的属性控制有哪些关系?