一、关系型数据库系统理论知识

1.1 学习笔记

数据库系统概念读书笔记-引言
数据库系统概念读书笔记-关系数据库
数据库系统概念读书笔记-数据库发展史(上)
数据库系统概念读书笔记-数据库发展史(中)
数据库系统概念读书笔记-数据库发展史(下)
数据库系统概念读书笔记-数据库未来发展趋势(上)
数据库系统概念读书笔记-数据库未来发展趋势(下)
数据仓库书籍推荐:太实用了,速速奔走相告

转载数据库系统概念读书笔记——分库分表
深度剖析分库分表最强辅助Sharding Sphere
ShardingSphere与openGauss的化学反应.pdf
openGauss X ShardingSphere,分布式方案的另一种最佳实践
Sharding-jdbc结合mybatis实现分库分表功能

数据库系统概念-两阶段锁

事务性质说明实现方法
Atomic:记录事务做过的所有更改,更改可以回滚一个事务要么全做,要么全不做并发控制、故障恢复
Consistent:执行更改时做逻辑检查/支持在应用层面,通过完整性约束保证数据一致SQL的完整性约束(主键约束、外键约束等)
Isolated:锁并发控制,多版本并发控制不同的事务之间不会互相影响并发控制
Duable:将更改落盘事务在提交之后,它对数据库的改变不会消失故障恢复

PostgreSQL数据库针对DDL语句采用两阶段锁技术,而针对DML语句则采用多版本控制技术MVCC。PostgreSQL数据库的故障恢复采用WAL日志的方式来实现,目前主要支持Redo日志,通过Redo日志和MVCC可以保证事务读写的一致性。

1.2学习资料

斯坦福的数据库课程
卡内基梅隆 数据库导论 2018

一起学PolarDB - 第22期 - 为什么高并发数据写入吞吐无法达到磁盘极限
https://www.bilibili/video/BV1mr4y167xb?spm_id_from=333.999.0.0
PolarDB及其分布式文件系统PolarFS的架构实现

二、SQL

SQL标准简介

转载数据库安全——SQLMap使用攻略及技巧分享
转载数据库安全——SQLMap源码简析(一)

三、PostgreSQL

3.1 学习笔记

Redhat 7下安装PostgreSQL 10
PostgreSQL学习笔记-系统概述
PostgreSQL导入SQL文件报错invalid byte sequence for encoding
PostgreSQL数据库between and以及日期的使用
PostgreSQL Replication之第一章 理解复制概念一

PostgreSQL数据库大数据存储方式——TOAST机制上手

PostgreSQL serializable read only deferrable事务的用法背景

PostgreSQL升级之pg_upgrade升级一 拷贝
PostgreSQL升级之pg_upgrade升级二 链接

案例分析PostgreSQL数据库——Pigsty
案例分析PostgreSQL数据库——Pigsty configure
案例分析PostgreSQL数据库——Pigsty pg_exporter
案例分析PostgreSQL数据库——Pigsty grafana dashboards
案例分析PostgreSQL数据库——Pigsty grafana Ansible

分库分表 PostgreSQL的分布式架构——PL/Proxy
转载 PostgreSQL的三种经典分布式架构对比

3.1.1 DBA

3.1.1.1 数据库优化

对象优化:碎片整理、大表分区、数据归档、索引优化
SQL优化:TOP SQL采集、关键SQL分析、优化建议
合规性检查:配置(OS、数据库、可用性、容量)、应用(表结构、索引、TOP SQL)
配置优化:OS(裸设备/文件系统、多路径软件、OS参数【进程调度/CPU调度、时区与语言、VM、ULIMIT、TCP/UDP】)、数据库(会话/进程、共享内存、REDO/CHECKPOINT、UNDO、并发控制/锁)、中间件(数据库连接池、高可用切换)

3.2 源码分析笔记

笔记读书笔记-PostgreSQL数据库内核分析 简介
笔记读书笔记-PostgreSQL数据库内核分析 系统表
原创 PostgreSQL数据库集簇
原创 PostgreSQL数据库源码安装第一步——configure脚本分析(环境检测)
原创 PostgreSQL数据库源码安装第一步——configure脚本分析(初始化)
原创 PostgreSQL数据库源码安装第一步——EXEC_BACKEND用于何处
原创 PostgreSQL数据库集簇初始化——后端接口postgres.bki文件
原创 PostgreSQL数据库集簇初始化——initdb初始化数据库(命令行参数处理)
原创 PostgreSQL数据库集簇初始化——initdb初始化数据库(检查系统配置文件)
initialize_data_directory
原创 PostgreSQL数据库集簇初始化——initdb初始化数据库整体流程
原创 PostgreSQL数据库集簇初始化——initdb初始化数据库(设置中断信号处理函数)
原创 PostgreSQL数据库集簇初始化——initdb初始化数据库(创建数据目录)
原创 PostgreSQL数据库集簇初始化——initdb初始化数据库(测试平台相关配置设置)
原创 PostgreSQL数据库集簇初始化——initdb初始化数据库(创建配置文件)
原创 PostgreSQL数据库集簇初始化——initdb初始化数据库(bootstrap_template1)
原创 PostgreSQL数据库集簇初始化——initdb初始化数据库(数据库template1)
原创 PostgreSQL数据库集簇初始化——initdb初始化数据库(数据库初始设置一)
原创Postgresql数据库新增一张系统表
原创Postgresql数据库新增一张系统表二

原创 PG主程序模块(Main)——数据库PostgreSQL入口
原创 PG主程序模块(Main)——boot模式
原创 PostgreSQL数据库WAL——BootStrapXLOG
PG主程序模块(Main)——BootstrapModeMain
原创 PG主程序模块(Main)——single模式

PG数据结构概述:
原创 postgresql数据库数据结构——创建动态哈希表
原创 PostgreSQL数据库数据结构——动态哈希表实现
原创 PostgreSQL数据库数据结构——操作动态哈希表

3.2.1 PostMaster进程

原创 PG守护进程(Postmaster)——Postmaster总体流程
未完成 PG守护进程(Postmaster)——InitProcessGlobals

未完成 PG守护进程(Postmaster)——进程信号通信机制
原创 PostgreSQL数据库PMsignal——后端进程\Postmaster信号通信
原创 PG守护进程(Postmaster)——后台一等公民进程
原创 PG守护进程(Postmaster)——后台一等公民进程入口AuxiliaryProcessMain
原创 PG守护进程(Postmaster)——后台一等公民进程保活

原创 PG守护进程(Postmaster)——初始化GUC配置参数
原创 PG守护进程(Postmaster)——DefineCustomTypeVariable定义GUC参数
PG守护进程(Postmaster)——处理command-line选项
PG守护进程(Postmaster)——定位到合适配置文件和数据文件SelectConfigFiles
原创 PG守护进程(Postmaster)——checkDataDir、checkControlFile、ChangeToDataDir
PG守护进程(Postmaster)——CreateDataDirLockFile
原创 PG守护进程(Postmaster)——主进程文件postmaster.pid
原创 PG守护进程(Postmaster)——读取控制文件LocalProcessControlFile

原创 PG守护进程(Postmaster)——后台二等公民进程logical replication launcher注册(ApplyLauncherRegister)
PG守护进程(Postmaster)——process_shared_preload_libraries

转载 PG守护进程(Postmaster)——创建监听端口
原创 PG守护进程(Postmaster)——建立共享内存和信号量reset_shared(PostPortNumber)

原创 PG守护进程(Postmaster)——初始化pipe用于在postmaster挂掉之后唤醒子进程InitPostmasterDeathWatchHandle
原创 PG守护进程(Postmaster)——RemovePgTempFiles删除old临时文件
原创 PG守护进程(Postmaster)——RemovePromoteSignalFiles和RemoveLogrotateSignalFiles
原创 PG守护进程(Postmaster)——PostgreSQL 12恢复配置总结

PG守护进程(Postmaster)——辅助进程SysLogger_Start
原创 PG守护进程(Postmaster)——辅助进程pgstat_init
PG守护进程(Postmaster)——辅助进程autovac_init

PG守护进程(Postmaster)——加载hba和ident文件load_hba和load_ident

PG守护进程(Postmaster)——向postmaster.pid输出状态以通知pg_ctl
PostgreSQL pg_ctl start超时分析

We’re ready to rock and roll
原创 PG守护进程(Postmaster)——后台一等公民进程StartupDataBase
PG守护进程(Postmaster)——StartupDataBase的信号处理函数
原创 PostgreSQL数据库头胎——后台一等公民进程StartupDataBase StartupXLOG函数恢复模式和目标
原创 PostgreSQL数据库头胎——后台一等公民进程StartupDataBase StartupXLOG函数初始化
原创 PostgreSQL数据库头胎——后台一等公民进程StartupDataBase 信号通知
原创 PostgreSQL数据库头胎——后台一等公民进程StartupDataBase StartupXLOG函数进入Recovery模式
原创 PostgreSQL数据库WAL——资源管理器RMGR
原创 PostgreSQL数据库WAL——备机回放checkpoint WAL

原创 PG守护进程(Postmaster)——后台二等公民进程第一波启动maybe_start_bgworkers
PG守护进程(Postmaster)——ServerLoop

PG守护进程(Postmaster)——退出机制ExitPostmaster和on_proc_exit

PostgreSQL数据库状态pmState——PM_STARTUP状态

未完成 PostgreSQL数据库独此一份数据结构——ProcGlobal后台/端进程记账本
原创PostgreSQL数据库独此一份数据结构——PROCARRAY创建

3.2.2 postgres子进程

PostgreSQL数据库客户端网络层——libpq PQconnectdbParams和PQconnectdb
PostgreSQL数据库客户端网络层——libpq 连接字符串和参数KV
PostgreSQL数据库客户端网络层——libpq 连接参数[翻译]
PostgreSQL数据库客户端网络层——pg_basebackup replication参数
PostgreSQL数据库网络层——libpq Event System
PostgreSQL数据库网络层——libpq Event例子解读
PostgreSQL数据库网络层——libpq Notice Processing
PostgreSQL数据库网络层——libpq Behavior in Threaded Programs
PostgreSQL数据库网络层——libpq前后端协议
PostgreSQL数据库客户端网络层——libpq PQconnectPoll
PostgreSQL数据库网络层——libpq协议连接建立阶段
PostgreSQL数据库网络层——libpq协议加密协商阶段
PostgreSQL数据库网络层——libpq协议认证协商阶段
PostgreSQL数据库网络层——libpq Canceling Requests in Progress
PostgreSQL数据库网络层——libpq客户端命令执行函数
PostgreSQL数据库网络层——libpq 查询协议PGQueryClass

PG服务进程(Postgres)——InitPostmasterChild
原创 –>PG服务进程(Postgres)——Latch机制
PG服务进程(Postgres)——ClosePostmasterPorts
PG服务进程(Postgres)——BackendInitialize
原创 –>PostgreSQL数据库网络层——libpq服务端顶层接口
原创 –>PostgreSQL数据库网络层——ProcessStartupPacket处理启动包
原创 PostgreSQL数据库网络层——libpq服务端网络通信方法
原创 PostgreSQL数据库网络层——libpq服务端 pqformat
PG服务进程(Postgres)——BackendRun
–>PG服务进程(Postgres)——PostgresMain
原创 ---->PG服务进程(Postgres)——InitStandaloneProcess
---->PG服务进程(Postgres)——InitializeGUCOptions
---->PG服务进程(Postgres)——process_postgres_switches
原创 ---->PostgreSQL数据库信号处理——kill backend
未完成 ---->PG服务进程(Postgres)——BaseInit
未完成 ---->PG服务进程(Postgres)——InitProcess
未完成 ---->PG服务进程(Postgres)——InitPostgres
原创 ------>PostgreSQL数据库安全——用户标识和认证
未完成 ---->PG服务进程(Postgres)——BeginReportingGUCOptions向客户端汇报GUC
未完成 ---->PG服务进程(Postgres)——process_session_preload_libraries
未完成 ---->PG服务进程(Postgres)——向前端发送后端cancellation
未完成 ---->PG服务进程(Postgres)——创建MessageContext和RowDescriptionContext
未完成 ---->PG服务进程(Postgres)——local_sigjmp_buf

原创 PG服务进程(Postgres)——循环等待处理查询
原创 –>PG服务进程(Postgres)——idle告诉前端准备好接受查询
原创 –>PG服务进程(Postgres)——ReadCommand
–>PG服务进程(Postgres)——重新加载配置

PostgreSQL数据库网络层——服务端回送结果

原创 PG服务进程(Postgres)——PG进程拥有的私有资源
原创 PG服务进程(Postgres)——WaitEventSet

3.2.2.1 MemoryContext

原创 PG内存上下文管理(MemoryContext)——内存上下文树
原创 PG内存上下文管理(MemoryContext)——AllocSetContext:抽象类MemoryContext的实现

3.2.2.2 Cache

原创 PG高速缓冲区(Cache)——系统表元组缓冲区SysCache初始化
原创 PG高速缓冲区(Cache)——系统表元组缓冲区SysCache访问
原创 PG高速缓冲区(Cache)——catcache构筑SysCache数据结构关系的骨干
未完成PostgreSQL数据库SI Message——Cache同步

3.2.3 SQL

3.2.3.1 Parser和Optimizer

PostgreSQL数据库查询——exec_simple_query函数分析
Parser
pg_parse_query -> raw_parser 返回原始语法树
PostgreSQL数据库查询——parser.c things start here
原创 PostgreSQL数据库查询——scan.l分析 break query into tokens
PostgreSQL数据库查询——scansup.c handle escapes in input strings
PostgreSQL数据库查询——gram.y parse the tokens and produce a “raw” parse tree
PostgreSQL数据库查询——原始语法树

pg_analyze_and_rewrite 完成原始语法树到查询语法树的转换以及依据规则的改写
PostgreSQL数据库查询——analyze.c分析 top level of parse analysis for optimizable queries
原创 PostgreSQL数据库查询——parse_analyze对不同语句进行transform
parse_agg.c handle aggregates, like SUM(col1), AVG(col2), …
parse_clause.c handle clauses like WHERE, ORDER BY, GROUP BY, …
parse_coerce.c handle coercing expressions to different data types
parse_collate.c assign collation information in completed expressions
parse_cte.c handle Common Table Expressions (WITH clauses)
parse_expr.c handle expressions like col, col + 3, x = 3 or x = 4
parse_func.c handle functions, table.column and column identifiers
parse_node.c create nodes for various structures
parse_oper.c handle operators in expressions
parse_param.c handle Params (for the cases used in the core backend)
parse_relation.c support routines for tables and column handling
parse_target.c handle the result list of the query
parse_type.c support routines for data type handling
parse_utilcmd.c parse analysis for utility commands (done at execution time)
公共函数src/common/keywords.c
原创 PostgreSQL数据库查询——pg_rewrite_query对语句进行重写
原创 PostgreSQL数据库查询——QueryRewrite
PostgreSQL数据库查询——应用所有非select规则RewriteQuery
PostgreSQL数据库查询——应用所有RIR规则fireRIRrules
PostgreSQL数据库查询优化——查询树

Optimizer
pg_plan_queries -> pg_plan_query -> planner -> standard_planner

统计信息
原创 PG守护进程(Postmaster)——辅助进程PgStat主流程
原创 PG守护进程(Postmaster)——辅助进程PgStat统计消息
原创 PostgreSQL数据库统计信息——统计信息系统表
翻译 PostgreSQL数据库统计信息——analyze命令
原创 PostgreSQL数据库统计信息——analyze大致流程
原创 PostgreSQL数据库统计信息——analyze执行函数
原创 PostgreSQL数据库统计信息——analyze流程对不同表的处理
原创 PostgreSQL数据库统计信息——查找继承子表find_all_inheritors
原创 PostgreSQL数据库统计信息——examine_attribute单列预分析
原创 PostgreSQL数据库统计信息——analyze统计信息收集
原创 PostgreSQL数据库统计信息——acquire_sample_rows采样函数
原创 PostgreSQL数据库统计信息——计算统计数据
原创 PostgreSQL数据库统计信息——acquire_inherited_sample_rows采样函数
原创 PostgreSQL数据库统计信息——compute_scalar_stats计算统计数据

3.2.3.2 Executor

PortalRun
  PORTAL_ONE_SELECT\PORTAL_ONE_RETURNING\PORTAL_ONE_MOD_WITH\PORTAL_UTIL_SELECT
    FillPortalStore
       PORTAL_ONE_RETURNING\PORTAL_ONE_MOD_WITH
           PortalRunMulti
       PORTAL_UTIL_SELECT
           PortalRunUtility
    PortalRunSelect  
  PORTAL_MULTI_QUERY
    PortalRunMulti
      ProcessQuery
      PortalRunUtility
        ProcessUtility

原创PostgreSQL数据库查询执行——PORTAL_ONE_SELECT策略
原创PostgreSQL数据库查询执行——InitPlan函数分析
原创PostgreSQL数据库查询执行——PORTAL_ONE_SELECT策略二

PORTAL_MULTI_QUERY
PostgreSQL数据库查询执行——ProcessQuery
原创PostgreSQL数据库查询执行——PortalRunUtility
原创PostgreSQL数据库查询执行——ProcessUtility
原创PostgreSQL数据库查询执行——standard_ProcessUtility
原创PostgreSQL数据库查询执行——T_TransactionStmt
原创PostgreSQL数据库查询执行——T_VariableSetStmt
原创PostgreSQL数据库查询执行——ProcessUtilitySlow
https://www.jianshu/p/a6b72216cd46

原创PostgreSQL数据库查询执行——节点间元组传递TupleTableSlot
原创PostgreSQL数据库查询执行——控制节点Result
原创PostgreSQL数据库查询执行之物化节点——临时tuple存储Tuplestore概述

3.2.4 Stone

3.2.4.1 Table Access Manager

src/backend/access/common
原创PostgreSQL数据库RelationAM——relation related routines
未完成PostgreSQL数据库RelationAM——RelationData
src/backend/access/table
原创 PostgreSQL数据库TableAM——Table Access Method
原创 PostgreSQL数据库TableAM——GetTableAmRoutine函数
原创 PostgreSQL数据库可插拔存储引擎——pg_am系统表
原创 PostgreSQL数据库TableAM——Table scan callbacks
src/backend/access/heap
原创PostgreSQL数据库TableAM——HeapAM TupleTableSlot类型
原创PostgreSQL数据库TableAM——HeapAM Parallel table scan
未完成PostgreSQL数据库TableAM——HeapAM表操作
原创PostgreSQL数据库TableAM——systable操作
原创PostgreSQL数据库TableAM——ZheapAM

src/backend/access/index
原创PostgreSQL数据库index——Index Access Method
原创PostgreSQLPostgreSQL数据库index——索引类型简介
PostgreSQL btree索引原理和应用场景

3.2.4.2 Buffer Manager

原创 PostgreSQL数据库共享内存——概览
原创 PostgreSQL数据库共享内存——开拓者CreateSharedMemoryAndSemaphores函数
原创 PostgreSQL数据库共享内存——参数shared_memory_type
原创 PostgreSQL数据库共享内存——相关C函数
PostgreSQL数据库共享内存——小管家InitShmemIndex函数
原创 PostgreSQL数据库动态共享内存管理器——dynamic shared memory segment

src/backend/storage/buffer
原创PostgreSQL数据库缓冲区管理器——概述
原创 PostgreSQL数据库缓冲区管理器——本地缓冲区管理
原创PostgreSQL数据库缓冲区管理器——Buffer Pool初始化
PostgreSQL数据库缓冲区管理器——freelist
PostgreSQL数据库缓冲区管理器——共享缓冲区查询
PostgreSQL数据库缓冲区管理器——共享缓冲区替换策略
PostgreSQL数据库缓冲区管理器——锁
PostgreSQL数据库缓冲区管理器——BgWriter进程刷脏页
原创PostgreSQL数据库扩展包——pg_buffercache使用

3.2.4.3 Storage Manager

原创 PG虚拟文件描述符(VFD)机制——FD LRU池:postgresql-8.4.1/src/backend/storage/file/fd.c
原创 PG虚拟文件描述符(VFD)机制——FD LRU池二:postgresql-8.4.1/src/backend/storage/file/fd.c
原创 PG虚拟文件描述符(VFD)机制——封装的文件接口:postgresql-8.4.1/src/backend/storage/file/fd.c
原创 PG目录操作封装——dirent一:postgresql-8.4.1\src\port\dirent.c
原创 PG存储介质管理器(SMGR)——存储管理器类型:postgresql-8.4.1/src/backend/storage/smgr
原创PG存储介质管理器(SMGR)——磁盘管理器:postgresql-8.4.1/src/backend/storage/md

3.2.4.4 Page

src/backend/storage/page
笔记PostgreSQL数据库数据页——Heap Table File

3.2.4.5 Lock

原创PostgreSQL数据库锁机制——SpinLock
原创PostgreSQL数据库锁机制——自旋锁浅析
原创PostgreSQL数据库锁机制——SpinLock底层实现

原创PostgreSQL数据库锁机制——LWLock
未完成PostgreSQL数据库锁机制——常规锁
原创PostgreSQL数据库锁机制——FastPathStrongRelationLocks简介
未完成PostgreSQL数据库Imgr——Relation Lock

原创PostgreSQL数据库信号量机制— PGSemaphore底层原理

3.2.4.6 Transaction

原创PostgreSQL数据库事务系统——三层系统
未完成PostgreSQL数据库事务系统——三层系统举例
原创PostgreSQL数据库事务系统Upper Layer——BeginTransactionBlock
原创PostgreSQL数据库事务系统Middle Layer Layer——StartTransactionCommand
原创PostgreSQL数据库事务系统Low Layer——StartTransaction
PostgreSQL数据库事务系统Low Layer——记录GUC参数的值

原创PostgreSQL数据库事务系统Upper Layer——BeginImplicitTransactionBlock

原创PostgreSQL数据库并发事务——PROCARRAY创建
原创PostgreSQL数据库并发事务——PG9.6 PROCARRAY锁竞争优化

原创PostgreSQL数据库事务系统——获取事务ID
原创PostgreSQL数据库事务系统——pg_subtrans日志
原创PostgreSQL数据库事务系统——获取事务号
原创PostgreSQL数据库MVCC——快照简介一
原创PostgreSQL数据库并发事务——快照简介二
原创PostgreSQL数据库并发事务——GetSnapshotData函数
原创PostgreSQL数据库事务系统——Push\Pop快照
未完成PostgreSQL数据库并发事务——AssignTransactionId和GetSnapshotData调用者

原创PostgreSQL数据库事务系统Upper Layer——EndTransactionBlock
原创PostgreSQL数据库事务系统Middle Layer Layer——CommitTransactionCommand
未完成PostgreSQL数据库事务系统Low Layer——CommitTransaction
未完成PostgreSQL数据库并发事务——RecordTransactionCommit
原创PostgreSQL数据库并发事务——XactLogCommitRecord向XLOG添加记录
未完成PostgreSQL数据库事务系统Middle Layer Layer——AbortCurrentTransaction

原创PostgreSQL数据库事务系统——2PC

未完成PostgreSQL数据库事务系统——ResourceOwner

3.2.5 feature

3.2.5.1 extension

原创PostgreSQL数据库扩展包——新增方法和原理
原创PostgreSQL数据库扩展包——原理CreateExtension扩展控制文件解析
原创PostgreSQL数据库扩展包——原理get_extension_script_filename扩展SQL文件解析
PostgreSQL数据库扩展包——原理execute_extension_script解析sql文件

原创PostgreSQL数据库插件——pgaudit初始化
原创PostgreSQL数据库插件——定时任务pg_cron

翻译 The Internals of PostgreSQL——Foreign Data Wrappers
原创 postgresq通过外部表(fdw)连接greenplum
翻译 PostgreSQL数据库FDW——WIP PostgreSQL Sharding
pg_pathman

pg_timeout

PostgreSQL数据库查询监控技术——pg_stat_activity简介

3.2.5.2 recovery

原创 PostgreSQL数据库状态控制信息——pg_control文件之DBState一
PostgreSQL数据库状态控制信息——pg_control文件之DBState状态
原创 PostgreSQL数据库WAL——相关参数
未完成 PostgreSQL数据库WAL——简介
原创 PostgreSQL数据库WAL——初始化
原创 PostgreSQL数据库WAL——BootStrapXLOG

原创 PostgreSQL数据库WAL——XLogBeginInsert检查工作
原创 PostgreSQL数据库WAL——XLogRegisterData注册wal数据
PostgreSQL数据库WAL——XLogRegisterBlock
原创 PostgreSQL数据库WAL——XLogRegisterBuffer注册页面
原创 PostgreSQL数据库WAL——XLogRegisterBufData
PostgreSQL数据库WAL——XLogSetRecordFlags
原创 PostgreSQL数据库WAL——XLogInsert
–>原创 PostgreSQL数据库WAL——XLogRecordAssemble组装日志记录
–>PostgreSQL数据库WAL——XLogInsertRecord将日志记录写入WAL日志缓存
---->PostgreSQL数据库WAL——XLogInsertAllowed
---->PostgreSQL数据库WAL——ReserveXLogInsertLocation预留空间
---->PostgreSQL数据库WAL——ReserveXLogSwitch
---->PostgreSQL数据库WAL——CopyXLogRecordToWAL数据复制
–>PostgreSQL数据库WAL——XLogResetInsertion重置写入日志需要用的各种变量

未完成 PostgreSQL数据库WAL——XLogSetAsyncXactLSN异步提交

未完成 PostgreSQL数据库WAL——RM_HEAP_ID日志记录动作

原创PostgreSQL数据库复制——Setting Up Asynchronous Replication
原创PostgreSQL数据库复制——walsender后端启动

原创PostgreSQL数据库复制——后台一等公民进程WalReceiver启动函数
原创PostgreSQL数据库复制——后台一等公民进程WalReceiver获知连接
原创PostgreSQL数据库复制——后台一等公民进程WalReceiver ready_to_display
原创PostgreSQL数据库复制——后台一等公民进程WalReceiver 提取信息
原创PostgreSQL数据库复制——后台一等公民进程WalReceiver 收发逻辑
原创PostgreSQL数据库复制——后台一等公民进程WalReceiver pg_stat_wal_receiver视图
原创PostgreSQL数据库复制——后台一等公民进程WalReceiver&startup交互

原创PostgreSQL数据库数据同步——pg_rewind概念
PostgreSQL数据库——pg_basebackup原理解析

Barman(开源)Barman备份方案介绍
Barman备份恢复迁移——Introduction

pg_rman
pg_probackup(开源)
pgBackRest(开源)PostgreSQL备份工具 pgBackRest使用详解

未完成 PostgreSQL数据库安全——基于角色的权限管理

转载 PostgreSQL 来自欧罗巴Patroni 为什么选择Patroni 系列 1
转载 PostgreSQL 来自欧罗巴Patroni 为什么选择ETCD 系列 2
转载 PostgreSQL 来自欧罗巴Patroni Patroni 安装 3
转载 PostgreSQL 来自欧罗巴Patroni Patroni 配置文件 4
转载 PostgreSQL 来自欧罗巴Patroni watchdog 汪汪汪 5
转载 PostgreSQL 来自欧罗巴Patroni ETCD DOWN OR PostgreSQL DOWN 记录 6
转载 PostgreSQL 来自欧罗巴Patroni Patroni 管理下的POSTGRESQL 怎么修改参数 7
转载 PostgreSQL 高可用Patroni和学习方法
转载 POSTGRESQL 高可用 Patroni VS Repmgr 到底哪家强(1)
转载 POSTGRESQL 高可用 Patroni VS Repmgr 到底哪家强(2) 更详细的指标
原创 PostgreSQL数据库高可用——patroni源码学习
原创 高可用环境下的Patroni & etcd
翻译 PostgreSQL数据库高可用——patroni介绍
翻译 PostgreSQL数据库高可用——patroni配置
原创 PostgreSQL数据库高可用patroni源码学习——abstract_main
翻译 PostgreSQL数据库高可用——patroni REST API
原创 PostgreSQL数据库高可用patroni源码学习——AbstractPatroniDaemon类
原创 PostgreSQL数据库高可用patroni源码学习——Patroni子类
翻译 PostgreSQL数据库高可用——patroni转换
原创 PostgreSQL数据库高可用——patroni RestApiServer
原创 PostgreSQL数据库高可用patroni源码学习——DCS类
原创 PostgreSQL数据库高可用patroni源码学习——PatroniLogger类
原创 PostgreSQL数据库高可用patroni源码学习——EtcdClient类
原创 PostgreSQL数据库高可用patroni源码学习——Etcd类
原创 PostgreSQL数据库高可用patroni源码学习——Ha类概述
原创 PostgreSQL数据库高可用——AsyncExecutor类

PostgreSQL的兼容性是很多系统的一个显著特征。这种兼容性是通过支持PostgreSQL的SQL方言(DuckDB)、通信协议(QuestDB、HyPer)或整个前端(Amazon Aurora、YugaByte、Yellowbrick)来实现的。大公司也加入了进来。谷歌在十月宣布他们在Cloud Spanner增加了PostgreSQL的兼容性。同样在10月,亚马逊宣布了Babelfish功能,可以将SQL Server查询转换为Aurora PostgreSQL。

3.2.7 postgres-xl

原创Postgres-xl GTM(全局事务管理器 Globale Transaction Manager)概念
原创Postgres-xl GTM(全局事务管理器 Globale Transaction Manager)GTM Master & Standby 启动流程
原创Postgres-xl GTM(全局事务管理器 Globale Transaction Manager)GTM Master & Standby 子线程
Postgres-xl GTM(全局事务管理器 Globale Transaction Manager)GTM Master & Standby Failover
原创Postgres-xl GTM(全局事务管理器 Globale Transaction Manager) Txn/Seq/Node 管理器
Postgres-xl GTM(全局事务管理器 Globale Transaction Manager)事务管理
Postgres-xl GTM(全局事务管理器 Globale Transaction Manager)快照管理
Postgres-xl GTM(全局事务管理器 Globale Transaction Manager)事务管理消息处理
Postgres-xl GTM(全局事务管理器 Globale Transaction Manager)Seq 管理器
翻译 Postgres-XL数据库GTM——GTM and Global Transaction Management
参考资料 Postgres-XC Dynamic Cluster Management

3.2.8 TBase

2017 Postgres大象会 TBase可靠性探究ppt

3.2.9 OpenGuass

openGuassDB介绍及安装实践
openGauss数据库源码解析系列文章—— 事务机制源码解析(二)
华为GaussDB相比PostgreSQL做了哪些内核优化?
openGauss核心技术
GaussDB架构(上)
GaussDB架构(中)
GaussDB架构(下)
面向鲲鹏和昇腾的创新架构
openGauss SQL引擎 (上)
openGauss SQL引擎(下)——查询优化
openGauss执行器技术
openGauss存储技术(一)——行存储引擎
openGauss存储技术(二)——列存储引擎和内存引擎
openGauss事务机制(上)
openGauss事务机制(下)
openGauss安全(上)
openGauss安全(下)

openGauss源码解析
openGauss数据库源码解析系列文章–openGauss简介(一)
openGauss数据库源码解析系列文章——openGauss简介(二)
openGauss数据库源码解析系列文章——openGauss简介(三)
openGauss数据库源码解析系列文章——openGauss开发快速入门(一)
openGauss数据库源码解析系列文章——openGauss开发快速入门(二)
openGauss数据库源码解析系列文章——openGauss开发快速入门(三)
openGauss数据库源码解析系列文章——公共组件源码解析(上)
openGauss数据库源码解析系列文章——公共组件源码解析(下)
openGauss数据库源码解析系列文章——存储引擎源码解析(一)
openGauss数据库源码解析系列文章——存储引擎源码解析(二)
openGauss数据库源码解析系列文章——存储引擎源码解析(三)
openGauss数据库源码解析系列文章——存储引擎源码解析(四)
openGauss数据库源码解析系列文章——存储引擎源码解析(五)
openGauss数据库源码解析系列文章——存储引擎源码解析(六)
openGauss数据库源码解析系列文章—— 事务机制源码解析(一)
openGauss数据库源码解析系列文章—— 事务机制源码解析(二)
openGauss数据库源码解析系列文章—— SQL引擎源解析(一)
openGauss数据库源码解析系列文章—— SQL引擎源解析(二)
openGauss数据库源码解析系列文章—— 执行器解析(一)
openGauss数据库源码解析系列文章—— 执行器解析(二)
openGauss数据库源码解析系列文章—— 执行器解析(三)
openGauss数据库源码解析系列文章—— AI技术之“自调优”
openGauss数据库源码解析系列文章—— AI技术之“慢SQL发现”
openGauss数据库源码解析系列文章—— AI技术之“智能索引推荐
openGauss数据库源码解析系列文章—— AI技术之“指标采集、预测与异常检测”
openGauss数据库源码解析系列文章—— AI查询时间预测
openGauss数据库源码解析系列文章—— DeepSQL
openGauss数据库源码解析系列文章—— 角色管理
openGauss数据库源码解析系列文章—— 安全管理源码解析
openGauss数据库源码解析系列文章—— 对象权限管理
openGauss数据库源码解析系列文章—— 审计与追踪
openGauss数据库源码解析系列文章——数据安全技术(上)
openGauss数据库源码解析系列文章——数据安全技术(中)

3.2.10 Citus

3.2.11 AntDB

3.2.12 Yugabyte

3.2.13 Timescale

学习资料

PostgreSQL官方网站

Bruce-PostgreSQL社区大佬,核心组成员
德哥-周正中 阿里巴巴技术专家
王硕-阿里巴巴 技术专家
blog.itpub/6906
PostgreSQL学徒 熊灿灿
白鳝的洞穴
http://mysql.taobao/monthly/2017/04/04/
https://dbaplus/
AustinDatabases
闫宗帅 专注于MySQL、Aerospike、PostgreSQL数据库

图书简介:PostgreSQL实战

新闻

华为高斯数据库正式开源

Greenplum

学习笔记

读书笔记-Greenplum企业应用实战:简介
读书笔记-Greenplum企业应用实战:Greenplum架构
Centos7下安装Greenplum 6.8-配置系统
Centos7下安装Greenplum 6.8-安装
Centos7下安装Greenplum 6.8-创建数据存储区
Greenplum常用SQL——通过表名查找shema名
Greenplum常用SQL——通过表名查询列名、类型、是否具有序列

Profiling Query Compilation Time with GPORCA
HAWQ技术解析(一) —— HAWQ简介
HAWQ技术解析(二) —— 安装部署
HAWQ技术解析(三) —— 基本架构
HAWQ技术解析(四) —— 启动停止
HAWQ技术解析(五) —— 连接管理
HAWQ技术解析(六) —— 定义对象
HAWQ技术解析(八) —— 大表分区
HAWQ技术解析(十八) —— 问题排查
阿里实时数仓分布式事务Scale Out设计

Greenplum概念学习——节点分布模式:grouped、spread
Greenplum概念学习——在线扩容工具Gpexpand
Greenplum for kubernetes手册——译简介

GPkafka-Kafka数据导入GreenPlum实践
ADBPG&Greenplum成本优化之磁盘水位管理


原创 Greenplum数据库集簇初始化——Initdb概述
原创 Greenplum Python专用库gppylib学习——gplog
原创 Greenplum Python专用库gppylib学习——GpArray
原创 Greenplum Python专用库gppylib学习——base.py
原创 Greenplum Python工具库gpload学习——gpload类
原创 Greenplum Python工具库gpload学习——do_method_insert
原创 Greenplum Python工具库gpload学习——get_fast_match_exttable_query
原创 Greenplum数据库开发调试入门
原创 Greenplum数据库集簇初始化——BKI概述

原创 Greenplum数据库数据分片策略Hash分布——执行器行为
原创 Greenplum数据库数据分片策略Hash分布——GUC gp_use_legacy_hashops
原创 Greenplum数据库数据分片策略Hash分布——计算哈希值和映射segment
原创 GreenPlum数据库网络层——集群节点状态信息CdbComponents
原创 GreenPlum数据库网络层——Segment空闲后端进程IdleQE

原创 Greenplum数据库源码学习——FTS简介
原创 Greenplum数据库源码学习——FTS Pull模型
原创 Greenplum数据库源码学习——FTS进程触发轮询
原创 Greenplum数据库源码学习——FTS进程ftsConnect函数
原创 Greenplum数据库源码学习——FTS进程ftsPoll\Send\Receive
原创 Greenplum数据库源码学习——FTS进程processRetry
原创 Greenplum数据库源码学习——FTS进程processResponse
原创 Greenplum数据库源码学习——FTS HandleFtsWalRepProbe函数
原创 Greenplum数据库源码学习——FTS HandleFtsWalRepPromote函数
原创 Greenplum数据库源码学习——FTS HandleFtsWalRepSyncRepOff函数
原创 Greenplum数据库源码学习——FTS进程系列总结
原创 Greenplum数据库统计信息——analyze命令
原创 Greenplum数据库统计信息——auto-analyze特性
原创 Greenplum数据库统计信息——分布式采样

Greenplum数据库源码学习——BackgroundWorker框架

未完成Greenplum数据库分布式事务系统——Simple LRU
未完成Greenplum数据库分布式事务系统——Distributed Log

原创 Greenplum数据库外部表——Scan执行节点
原创 Greenplum数据库外部表——external_getnext获取元组
原创 Greenplum数据库外部表——fileam封装
原创 Greenplum数据库外部表——url_curl创建销毁
原创 Greenplum数据库外部协议——GPHDFS实现协议
原创 Greenplum数据库外部协议——Define EXTPROTOCOL
原创 Greenplum数据库外部协议——GPHDFS gphdfs_fopen
HashData数据库外部表——GPHDFS实现简介

排障 Greenplum数据库故障分析——UDP Packet Lost(packet reassembles failed)
排障 Greenplum数据库故障分析——UDP Packet Lost(packet reassembles failed)二
排障 Greenplum数据库故障分析——使用 systemtap 分析 lwlock 锁竞争情况
排障 Greenplum数据库故障分析——semop(id=2000421076,num=11) failed: invalid argument
排障 Greenplum数据库故障分析——能对数据库base文件夹进行软连接嘛?
排障 Greenplum数据库故障分析——版本升级后gpstart -a为何返回失败
排障 Greenplum数据库源码分析——Standby Master操作工具分析
排障 Greenplum数据库故障分析——利用GDB调试多线程core文件

gpperformance
Linux下使用Sigar 获取磁盘信息

学习资料

图书简介:Greenplum从大数据战略到实现

MySQL

学习笔记

Window下MySQL 8.0重新设置密码
Windows 下的MySQL 5.5的卸载配置备份还原
MySQL学习笔记-初级操作
MySQL必知必会读书笔记
Java学习笔记一MySQL数据库与JDBC编程
Java学习笔记一JDBC Template使用一

MySQL MGR原理及集群搭建

NewSQL数据库TiDB到底是什么?
TiDB 源码阅读系列文章(二)初识 TiDB 源码

mysql源码解读——源码介绍
mysql源码解读二 —— 基本框架和流程
mysql源码解读 —— 网络服务源码
mysql源码解读 — 线程池和线程
mysql源码解读 — 线程的具体创建
mysql源码分析——VIO数据结构
mysql源码分析——THD数据结构
mysql源码解读——内存管理MEM_ROOT
mysql源码解读——内存管理之底层数据库

怒肝四个月MYSQL源码,我总结出这篇MYSQL协议
【Mysql源码分析】mysql协议分析(一)

学习资料

SQLite

在 Windows 上安装 SQLite
Python操作SQLite

MongoDB

ubuntu 16.04 安装MongoDB 4.2 Community Edition
MongoDB单机版本安装

MongoDB权威指南读书笔记——概念
MongoDB 数据库创建与删除
MongoDB权威指南读书笔记——CRUD
MongoDB分布式集群架构——主从复制、副本集、分片

远程连接mongodb时,27017端口连接不上的解决办法
MongoDB数据库利用模式进行构建-多态和属性

Python使用MongoDB
Python使用MongoDB一
MongoDB Python Drivers
PyMongo 官方教程

Java使用MongoDB
MongoDB SpringDataMongoDB 查询指南简介

数据库服务器硬件

云服务器带外管理-从IPMI到RedFish

Linux块设备驱动

文件系统

linux 同步IO: sync、fsync与fdatasync

计算机存储硬件

计算机存储—大话存储II读书
磁盘阵列-FUJITSU Storage ETERNUS DX100 S3

更多推荐

关系型数据库学习手记——初见倾心PostgreSQL、MySQL、SQLite、MongoDB