並列WALで期待される効果
メモリ周り(WAL内部の競合緩和)
ログレコード挿入時のロックの競合緩和
ログバッファ書き込み時のロックの競合緩和
IO周り(並列IOによるストレージ帯域の活用)
ログの書き込み先を複数ファイルに分散させる
並列WAL(1)
worker1
WAL
Buffer
WAL
Buffer
L
衝突が発生
worker2 workerN
L
L
L
L
worker1 worker2 workerN
L
LL
L
衝突が発生しない
5
並列WALで期待される効果
メモリ周り(WAL内部の競合緩和)
ログレコード挿入時のロックの競合緩和
ログバッファ書き込み時のロックの競合緩和
IO周り(並列IOによるストレージ帯域の活用)
ログの書き込み先を複数ファイルに分散させる
並列WAL(2)
worker1
WAL
Buffer
WAL
Buffer
worker2 workerN
L
L
L L
worker1 worker2 workerN
L
LL
L
write要求 write要求…
worker1による
write完了待ち
write write write6
write要求 write要求
各workerが独立に
writeしてよい