• Amit Kapila's avatar
    Execute invalidation messages for each XLOG_XACT_INVALIDATIONS message · d7eb52d7
    Amit Kapila authored
    during logical decoding.
    
    Prior to commit c55040cc we have no way of knowing the invalidations
    before commit. So, while decoding we use to execute all the invalidations
    at each command end as we had no way of knowing which invalidations
    happened before that command. Due to this, transactions involving large
    amounts of DDLs use to take more time and also lead to high CPU usage. But
    now we know specific invalidations at each command end so we execute only
    required invalidations.
    
    It has been observed that decoding of a transaction containing truncation
    of a table with 1000 partitions would be finished in 1s whereas before
    this patch it used to take 4-5 minutes.
    
    Author: Dilip Kumar
    Reviewed-by: Amit Kapila and Keisuke Kuroda
    Discussion: https://postgr.es/m/CANDwggKYveEtXjXjqHA6RL3AKSHMsQyfRY6bK+NqhAWJyw8psQ@mail.gmail.com
    d7eb52d7
reorderbuffer.h 17.7 KB