forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commitf95d53e

Amit Kapila
Fix the logical replication timeout during large transactions.
The problem is that we don't send keep-alive messages for a long timewhile processing large transactions during logical replication where wedon't send any data of such transactions. This can happen when the tablemodified in the transaction is not published or because all the changesgot filtered. We do try to send the keep_alive if necessary at the end ofthe transaction (via WalSndWriteData()) but by that time thesubscriber-side can timeout and exit.To fix this we try to send the keepalive message if required afterprocessing certain threshold of changes.Reported-by: Fabrice ChapuisAuthor: Wang wei and Amit KapilaReviewed By: Masahiko Sawada, Euler Taveira, Hou Zhijie, Hayato KurodaBackpatch-through: 10Discussion:https://postgr.es/m/CAA5-nLARN7-3SLU_QUxfy510pmrYK6JJb=bk3hcgemAM_pAv+w@mail.gmail.com1 parent8bbf846 commitf95d53e
File tree
4 files changed
+98
-9
lines changed- src
- backend/replication
- logical
- pgoutput
- include/replication
4 files changed
+98
-9
lines changedLines changed: 27 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
746 | 746 |
| |
747 | 747 |
| |
748 | 748 |
| |
| 749 | + | |
749 | 750 |
| |
750 | 751 |
| |
751 | 752 |
| |
| |||
773 | 774 |
| |
774 | 775 |
| |
775 | 776 |
| |
| 777 | + | |
776 | 778 |
| |
777 | 779 |
| |
778 | 780 |
| |
| |||
808 | 810 |
| |
809 | 811 |
| |
810 | 812 |
| |
| 813 | + | |
811 | 814 |
| |
812 | 815 |
| |
813 | 816 |
| |
| |||
839 | 842 |
| |
840 | 843 |
| |
841 | 844 |
| |
| 845 | + | |
842 | 846 |
| |
843 | 847 |
| |
844 | 848 |
| |
| |||
879 | 883 |
| |
880 | 884 |
| |
881 | 885 |
| |
| 886 | + | |
882 | 887 |
| |
883 | 888 |
| |
884 | 889 |
| |
| |||
923 | 928 |
| |
924 | 929 |
| |
925 | 930 |
| |
| 931 | + | |
926 | 932 |
| |
927 | 933 |
| |
928 | 934 |
| |
| |||
967 | 973 |
| |
968 | 974 |
| |
969 | 975 |
| |
| 976 | + | |
970 | 977 |
| |
971 | 978 |
| |
972 | 979 |
| |
| |||
1012 | 1019 |
| |
1013 | 1020 |
| |
1014 | 1021 |
| |
| 1022 | + | |
1015 | 1023 |
| |
1016 | 1024 |
| |
1017 | 1025 |
| |
| |||
1062 | 1070 |
| |
1063 | 1071 |
| |
1064 | 1072 |
| |
| 1073 | + | |
| 1074 | + | |
1065 | 1075 |
| |
1066 | 1076 |
| |
1067 | 1077 |
| |
| |||
1102 | 1112 |
| |
1103 | 1113 |
| |
1104 | 1114 |
| |
| 1115 | + | |
| 1116 | + | |
1105 | 1117 |
| |
1106 | 1118 |
| |
1107 | 1119 |
| |
| |||
1129 | 1141 |
| |
1130 | 1142 |
| |
1131 | 1143 |
| |
| 1144 | + | |
1132 | 1145 |
| |
1133 | 1146 |
| |
1134 | 1147 |
| |
| |||
1159 | 1172 |
| |
1160 | 1173 |
| |
1161 | 1174 |
| |
| 1175 | + | |
1162 | 1176 |
| |
1163 | 1177 |
| |
1164 | 1178 |
| |
| |||
1196 | 1210 |
| |
1197 | 1211 |
| |
1198 | 1212 |
| |
| 1213 | + | |
1199 | 1214 |
| |
1200 | 1215 |
| |
1201 | 1216 |
| |
| |||
1239 | 1254 |
| |
1240 | 1255 |
| |
1241 | 1256 |
| |
| 1257 | + | |
| 1258 | + | |
1242 | 1259 |
| |
1243 | 1260 |
| |
1244 | 1261 |
| |
| |||
1286 | 1303 |
| |
1287 | 1304 |
| |
1288 | 1305 |
| |
| 1306 | + | |
| 1307 | + | |
1289 | 1308 |
| |
1290 | 1309 |
| |
1291 | 1310 |
| |
| |||
1325 | 1344 |
| |
1326 | 1345 |
| |
1327 | 1346 |
| |
| 1347 | + | |
1328 | 1348 |
| |
1329 | 1349 |
| |
1330 | 1350 |
| |
| |||
1369 | 1389 |
| |
1370 | 1390 |
| |
1371 | 1391 |
| |
| 1392 | + | |
1372 | 1393 |
| |
1373 | 1394 |
| |
1374 | 1395 |
| |
| |||
1409 | 1430 |
| |
1410 | 1431 |
| |
1411 | 1432 |
| |
| 1433 | + | |
1412 | 1434 |
| |
1413 | 1435 |
| |
1414 | 1436 |
| |
| |||
1457 | 1479 |
| |
1458 | 1480 |
| |
1459 | 1481 |
| |
| 1482 | + | |
| 1483 | + | |
1460 | 1484 |
| |
1461 | 1485 |
| |
1462 | 1486 |
| |
| |||
1501 | 1525 |
| |
1502 | 1526 |
| |
1503 | 1527 |
| |
| 1528 | + | |
1504 | 1529 |
| |
1505 | 1530 |
| |
1506 | 1531 |
| |
| |||
1549 | 1574 |
| |
1550 | 1575 |
| |
1551 | 1576 |
| |
| 1577 | + | |
| 1578 | + | |
1552 | 1579 |
| |
1553 | 1580 |
| |
1554 | 1581 |
| |
|
Lines changed: 48 additions & 6 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
91 | 91 |
| |
92 | 92 |
| |
93 | 93 |
| |
| 94 | + | |
| 95 | + | |
94 | 96 |
| |
95 | 97 |
| |
96 | 98 |
| |
| |||
558 | 560 |
| |
559 | 561 |
| |
560 | 562 |
| |
561 |
| - | |
| 563 | + | |
562 | 564 |
| |
563 | 565 |
| |
564 | 566 |
| |
| |||
597 | 599 |
| |
598 | 600 |
| |
599 | 601 |
| |
600 |
| - | |
| 602 | + | |
601 | 603 |
| |
602 | 604 |
| |
603 | 605 |
| |
| |||
611 | 613 |
| |
612 | 614 |
| |
613 | 615 |
| |
614 |
| - | |
| 616 | + | |
615 | 617 |
| |
616 | 618 |
| |
617 | 619 |
| |
| |||
627 | 629 |
| |
628 | 630 |
| |
629 | 631 |
| |
630 |
| - | |
| 632 | + | |
631 | 633 |
| |
632 | 634 |
| |
633 | 635 |
| |
| |||
1360 | 1362 |
| |
1361 | 1363 |
| |
1362 | 1364 |
| |
| 1365 | + | |
| 1366 | + | |
1363 | 1367 |
| |
1364 | 1368 |
| |
1365 | 1369 |
| |
| |||
1592 | 1596 |
| |
1593 | 1597 |
| |
1594 | 1598 |
| |
| 1599 | + | |
| 1600 | + | |
1595 | 1601 |
| |
1596 | 1602 |
| |
1597 | 1603 |
| |
| |||
1655 | 1661 |
| |
1656 | 1662 |
| |
1657 | 1663 |
| |
| 1664 | + | |
| 1665 | + | |
1658 | 1666 |
| |
1659 | 1667 |
| |
1660 | 1668 |
| |
| |||
1847 | 1855 |
| |
1848 | 1856 |
| |
1849 | 1857 |
| |
1850 |
| - | |
| 1858 | + | |
1851 | 1859 |
| |
1852 | 1860 |
| |
1853 | 1861 |
| |
| |||
1868 | 1876 |
| |
1869 | 1877 |
| |
1870 | 1878 |
| |
1871 |
| - | |
| 1879 | + | |
1872 | 1880 |
| |
1873 | 1881 |
| |
1874 | 1882 |
| |
| |||
2361 | 2369 |
| |
2362 | 2370 |
| |
2363 | 2371 |
| |
| 2372 | + | |
| 2373 | + | |
| 2374 | + | |
| 2375 | + | |
| 2376 | + | |
| 2377 | + | |
| 2378 | + | |
| 2379 | + | |
| 2380 | + | |
| 2381 | + | |
| 2382 | + | |
| 2383 | + | |
| 2384 | + | |
| 2385 | + | |
| 2386 | + | |
| 2387 | + | |
| 2388 | + | |
| 2389 | + | |
| 2390 | + | |
| 2391 | + | |
| 2392 | + | |
| 2393 | + | |
| 2394 | + | |
| 2395 | + | |
| 2396 | + | |
| 2397 | + | |
| 2398 | + | |
| 2399 | + | |
| 2400 | + | |
| 2401 | + | |
| 2402 | + | |
| 2403 | + | |
| 2404 | + | |
| 2405 | + |
Lines changed: 21 additions & 3 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1482 | 1482 |
| |
1483 | 1483 |
| |
1484 | 1484 |
| |
| 1485 | + | |
| 1486 | + | |
1485 | 1487 |
| |
1486 | 1488 |
| |
1487 | 1489 |
| |
1488 | 1490 |
| |
| 1491 | + | |
| 1492 | + | |
| 1493 | + | |
| 1494 | + | |
1489 | 1495 |
| |
1490 | 1496 |
| |
1491 |
| - | |
1492 |
| - | |
| 1497 | + | |
| 1498 | + | |
1493 | 1499 |
| |
1494 | 1500 |
| |
1495 | 1501 |
| |
| |||
1515 | 1521 |
| |
1516 | 1522 |
| |
1517 | 1523 |
| |
1518 |
| - | |
| 1524 | + | |
1519 | 1525 |
| |
| 1526 | + | |
| 1527 | + | |
| 1528 | + | |
| 1529 | + | |
| 1530 | + | |
| 1531 | + | |
| 1532 | + | |
| 1533 | + | |
| 1534 | + | |
| 1535 | + | |
| 1536 | + | |
| 1537 | + | |
1520 | 1538 |
| |
1521 | 1539 |
| |
1522 | 1540 |
| |
|
Lines changed: 2 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
107 | 107 |
| |
108 | 108 |
| |
109 | 109 |
| |
| 110 | + | |
| 111 | + | |
110 | 112 |
| |
111 | 113 |
| |
112 | 114 |
| |
|
0 commit comments
Comments
(0)