美文网首页
Postgresql 两阶段提交性能差到什么程度?(三)

Postgresql 两阶段提交性能差到什么程度?(三)

作者: onmeiei | 来源:发表于2021-05-11 18:42 被阅读0次

    补测了一个复杂场景,即数据库存在流复制的情况下,普通事务提交和两阶段提交的性能差异是不是很大呢?

    Prepare Transaction的处理只会发生在主库上,从库根本就看不到两阶段的事务,理论上没有影响的。

    同步流复制

    首先,同步流复制情况下,仅测试20个并发,每个Batch为10的情况。

    普通事务耗时,2153393ms;两阶段耗时,2365860ms
    相对于没有同步流复制的情况,耗时都有增加,这个是预期内的。

    有无同步流复制的达成率,普通事务耗时增加8%,两阶段耗时增加13%。
    同步流复制情况下,普通事务对比两阶段的达成率为91%,达成率略有下降(无流复制情况下,达成率可以达到96%)。

    异步流复制

    再测试一下异步流复制的情况下,情况是否有所不同。
    同样仅测试一个场景(测试20个并发,每个Batch为10)

    普通事务耗时,2044819ms;两阶段耗时,2133728ms。

    有无同步流复制的达成率,普通事务耗时增加2.6%,两阶段耗时增加2.6%。
    异步流复制情况下,普通事务对比两阶段的达成率为96%,达成率完全一致。

    结论

    同步流复制,对普通事务和两阶段事务的影响略有不同,同步流复制对两阶段事务的影响略大(需要抓一下流量包,看看具体有什么不同,因为理论上是一致的才对)

    而异步流复制,对普通事务和两阶段事务的影响是一样的。

    相关文章

      网友评论

          本文标题:Postgresql 两阶段提交性能差到什么程度?(三)

          本文链接:https://www.haomeiwen.com/subject/ejjndltx.html