extreme_rto
【环境】
recovery_parse_workers=2
recovery_redo_workers=2
hot_standby=off
特性理解:
1)让多线程并行回放
2)事务和heap分别并行
3)需要等待的(如checkpoint),做同步逻辑
【调试】
1)启动13个线程,根据rmid分发到队列
rmid=8(备机)/或者事务,都分给REDO_TRXN_MNG
rmid=10(heap), 分给REDO_PAGE_MNG
2) 事务线程处理
3)page线程处理
2个page线程分工,按hash(页)来,保证同一页的在一个work里处理
4)线程同步
pageManager线程:PageManagerProcCreateTableSpace
如果parseState->isFullSync == true
pg_atomic_write_u32(&g_redoWorker->fullSyncFlag, 1);
pageWorker线程:
主循环里while(fullSyncFlag!=0) 阻塞等待
5)读xlog的三个线程
后面有机会在看