Xlog无锁刷新与并行Page回放

42 阅读1分钟

Xlog无锁刷新与并行Page回放

图 2 Xlog lock less Design

本特性对WalInsertLock进行优化,利用LSN(Log Sequence Number)及LRC(Log Record Count)记录了每个backend线程的拷贝进度,取消WalInsertLock机制。在backend线程将日志拷贝至WalBuffer时,不用对WalInsertLock进行争抢,可直接进行日志拷贝操作。并利用专用的WalWriter写日志线程,不需要backend线程自身来保证xlog的Flush。通过以上优化,取消WalInsertLock争抢及WalWriter专用磁盘写入线程,在保持原有XLog功能不变的基础上,可进一步提升系统性能。针对Ustore Inplace update WAL log写入和Ustore DML operation并行回放分发进行优化。通过利用prefix和suffix来减少update WAL log的写入。通过把回放线程分多个类型来解决Ustore DML WAL大多都是多页面回放的问题。同时把Ustore的数据页面回放分为按照blkno去分发以更好的提高并行回放的并行程度。