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的三个线程

后面有机会在看

posted @ 2022-03-16 20:47  stupidstan2019  阅读(50)  评论(3编辑  收藏  举报