Dear hackers, > 1. I think testing the scenario where the shm_mq buffer is full > between the leader and parallel apply worker would require a large > amount of data and then also there is no guarantee. How about having a > developer GUC [1] force_apply_serialize which allows us to serialize > the changes and only after commit the parallel apply worker would be > allowed to apply it? > > I am not sure if we can reliably test the serialization of partial > changes (like some changes have been already sent to parallel apply > worker and then serialization happens) but at least we can test the > serialization of complete xacts and their execution via parallel apply > worker.
I agreed for adding the developer options, because the part that LA serialize changes and PAs read and apply them might be complex. I have reported some bugs around here. One idea: A threshold(integer) can be introduced as the developer GUC. LA skips to send data or jumps to serialization part to PA via shm_mq_send() when it has sent more than (threshold) times. This may be able to test the partial-serialization case. Default(-1) means no-op, and 0 means all changes must be serialized. Best Regards, Hayato Kuroda FUJITSU LIMITED