[硬件类型版本]:RedFlag Asianux release 7.6.1911
[数据库版本号]:gsql ((openGauss 2.0.1 build 24cdd19c)compiled at 2021-09-07 20:41:31 commit 0 last mr)
[测试环境]:一主四备,两同步备两异步备
[被测功能]:逻辑复制
[测试类型]:可靠性测试
[测试步骤]:1:创建30个逻辑复制槽
2:tpcc导入20仓数据
3:执行tpcc20分钟,10并发
4:备机开启30个会话,每个会话开启一个逻辑复制槽,每个会话的复制槽不一样
5:观察每个会话的复制槽的解码
[预期结果]:每个复制槽可以正常解码
[实际结果]:出现连接失败的报错,wal_sender_timeout默认参数值较小
Hey @wang_xun934809, Welcome to openGauss Community.
All of the projects in openGauss Community are maintained by @opengauss-bot.
That means the developers can comment below every pull request or issue to trigger Bot Commands.
Please follow instructions at https://gitee.com/opengauss/community/blob/master/contributors/command.en.md to find the details.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
/assign @pengjiong
@wang_xun934809 请问下
4:备机开启30个会话,每个会话开启一个逻辑复制槽,每个会话的复制槽不一样
这个步骤中,是通过什么命令开启会话的?是用自己编写的应用通过 START_REPLICATION 流复制的方式还是通过执行sql pg_logical_slot_get_changes的方式获取逻辑解码的内容?另外,提示 wal_sender_timeout 的数据库日志也麻烦贴下
和提单人员沟通,补充部分信息:
如果 wal_sender_timeout 是默认参数(默认6s),且执行 pg_recvlogical 时,没有通过 -s 参数指定心跳间隔(默认10s)的话,不需要任何压力和并发即可复现。
修复该问题后,在wal_sender_timeout 为6s,pg_recvlogical 未指定-s参数时(默认10s),参考issue的复现步骤,没有再出现解码失败的问题,不过由于年代久远,很多参数配置未知,不确定是否和issue场景一致,本地测试时的配置如下。
tpcc:
warehouses=20
loadWorkers=10
terminals=10
runTxnsPerTerminal=0
runMins=30
limitTxnsPerMin=300
terminalWarehouseFixed=true
newOrderWeight=45
paymentWeight=43
orderStatusWeight=4
deliveryWeight=4
stockLevelWeight=4
openGauss-server:
(GaussDB Kernel V500R001C20 build 051c208a) compiled at 2022-09-16 16:04:49 commit 0 last mr on aarch64-unknown-linux-gnu, compiled by g++ (GCC) 7.3.0, 64-bit
postgres=# select name,setting,unit from pg_settings where name like '%wal%';
name | setting | unit
------------------------------+-----------+------
max_wal_senders | 35 |
wal_block_size | 8192 |
wal_buffers | 2048 | 8kB
wal_file_init_num | 10 |
wal_keep_segments | 16 |
wal_level | logical |
wal_log_hints | on |
wal_receiver_buffer_size | 65536 | kB
wal_receiver_connect_retries | 1 |
wal_receiver_connect_timeout | 2 | s
wal_receiver_status_interval | 5 | s
wal_receiver_timeout | 6000 | ms
wal_segment_size | 2048 | 8kB
wal_sender_timeout | 6000 | ms
wal_sync_method | fdatasync |
wal_writer_cpu | -1 |
wal_writer_delay | 200 | ms
walsender_max_send_size | 8192 | kB
30 pg_recvlogical并发,不同的复制槽:
postgres=# select count(*) from pg_stat_activity where application_name='pg_recvlogical';
count
-------
30
(1 row)
postgres=# select * from pg_replication_slots ;
slot_name | plugin | slot_type | datoid | database | active | xmin | catalog_xmin | restart_lsn | dummy_standby
-----------+----------------+-----------+--------+--------------+--------+------+--------------+-------------+---------------
slot1 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot2 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot3 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot4 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot5 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot6 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot7 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot8 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot9 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot0 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot11 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot12 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot13 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot14 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot15 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot16 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot17 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot18 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot19 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot10 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot21 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot22 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot23 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot24 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot25 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot26 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot27 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot28 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot29 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
slot20 | mppdb_decoding | logical | 16405 | benchmarksql | t | | 45998 | 0/A9F60170 | f
(30 rows)
tpcc结果:
11:10:36,352 [Thread-7] INFO jTPCC : Term-00,
11:10:36,352 [Thread-7] INFO jTPCC : Term-00,
11:10:36,353 [Thread-7] INFO jTPCC : Term-00, Measured tpmC (NewOrders) = 133.7
11:10:36,353 [Thread-7] INFO jTPCC : Term-00, Measured tpmTOTAL = 299.96
11:10:36,353 [Thread-7] INFO jTPCC : Term-00, Session Start = 2022-09-17 10:40:34
11:10:36,353 [Thread-7] INFO jTPCC : Term-00, Session End = 2022-09-17 11:10:36
11:10:36,353 [Thread-7] INFO jTPCC : Term-00, Transaction Count = 9009
经CCB评审,问题不合入2.0.0分支,合入3.0.0分支及master:
!2178:修复逻辑解码 waiting_for_ping_response 设置错误的问题
!2200:【回合】修复逻辑解码 waiting_for_ping_response 设置错误的问题
已验收,每个复制槽可以正常解码
tpcc:
opengauss:
gaussdb (openGauss 3.1.0 build a31f86e5) compiled at 2022-10-18 20:10:11 commit 0 last mr
tpccdb=# select * from pg_get_replication_slots();
slot_name | plugin | slot_type | datoid | active | xmin | catalog_xmin | restart_lsn | dummy_standby | confirmed_flush
-------------+----------------+-----------+--------+--------+------+--------------+-------------+---------------+-----------------
test_slot28 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
dn_6002 | | physical | 0 | t | | | 0/AAC00150 | f |
dn_6003 | | physical | 0 | t | | | 0/AAC00150 | f |
test_slot30 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
dn_6004 | | physical | 0 | t | | | 0/AAC00150 | f |
test_slot12 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot15 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot3 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot2 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot10 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot22 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
dn_6005 | | physical | 0 | t | | | 0/AAC00150 | f |
test_slot5 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot19 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot18 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot1 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot14 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot27 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot11 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot24 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot23 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot16 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot4 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot17 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot6 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot20 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot25 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot7 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot13 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot8 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot9 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot26 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot29 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
test_slot21 | mppdb_decoding | logical | 15705 | t | | 58912 | 0/AAC00060 | f | 0/AAC00150
(34 rows)
tpccdb=# select * from pg_replication_slots ;
slot_name | plugin | slot_type | datoid | database | active | xmin | catalog_xmin | restart_lsn | dummy_standby | confirmed_flush
-------------+----------------+-----------+--------+----------+--------+------+--------------+-------------+---------------+-----------------
test_slot28 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
dn_6002 | | physical | 0 | | t | | | 0/AABFFEF8 | f |
dn_6003 | | physical | 0 | | t | | | 0/AABFFEF8 | f |
test_slot30 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
dn_6004 | | physical | 0 | | t | | | 0/AABFFEF8 | f |
test_slot12 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot15 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot3 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot2 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot10 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot22 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
dn_6005 | | physical | 0 | | t | | | 0/AABFFEF8 | f |
test_slot5 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot19 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot18 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot1 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot14 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot27 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot11 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot24 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot23 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot16 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot4 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot17 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot6 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot20 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot25 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot7 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot13 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot8 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot9 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot26 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot29 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
test_slot21 | mppdb_decoding | logical | 15705 | postgres | t | | 58912 | 0/AABFFEA8 | f | 0/AABFFEF8
(34 rows)
tpcc结果:
登录 后才可以发表评论