mirror of
https://github.com/neondatabase/neon.git
synced 2025-12-23 06:09:59 +00:00
Register custom xlog reader callbacks for on-demand WAL download in StartupDecodingContext (#9007)
## Problem See https://github.com/neondatabase/neon/issues/8931 On-demand WAL download are not set in all cases where WAL is accessed by logical replication ## Summary of changes Set customer xlog reader handles in StartupDecodingContext Related changes in Postgres modules: https://github.com/neondatabase/postgres/pull/495 https://github.com/neondatabase/postgres/pull/496 https://github.com/neondatabase/postgres/pull/497 https://github.com/neondatabase/postgres/pull/498 ## Checklist before requesting a review - [ ] I have performed a self-review of my code. - [ ] If it is a core feature, I have added thorough tests. - [ ] Do we need to implement analytics? if so did you add the relevant metrics to the dashboard? - [ ] If this PR requires public announcement, mark it with /release-notes label and add several sentences in this section. ## Checklist before merging - [ ] Do not forget to reformat commit message to not include the above checklist --------- Co-authored-by: Konstantin Knizhnik <knizhnik@neon.tech>
This commit is contained in:
committed by
GitHub
parent
b22a84a7bf
commit
770ac34ae6
@@ -421,9 +421,7 @@ _PG_init(void)
|
||||
|
||||
pg_init_libpagestore();
|
||||
pg_init_walproposer();
|
||||
WalSender_Custom_XLogReaderRoutines = NeonOnDemandXLogReaderRoutines;
|
||||
LogicalFuncs_Custom_XLogReaderRoutines = NeonOnDemandXLogReaderRoutines;
|
||||
SlotFuncs_Custom_XLogReaderRoutines = NeonOnDemandXLogReaderRoutines;
|
||||
Custom_XLogReaderRoutines = NeonOnDemandXLogReaderRoutines;
|
||||
|
||||
InitUnstableExtensionsSupport();
|
||||
InitLogicalReplicationMonitor();
|
||||
|
||||
27
test_runner/regress/test_ondemand_wal_download.py
Normal file
27
test_runner/regress/test_ondemand_wal_download.py
Normal file
@@ -0,0 +1,27 @@
|
||||
from fixtures.neon_fixtures import NeonEnv
|
||||
|
||||
|
||||
def test_on_demand_wal_download(neon_simple_env: NeonEnv):
|
||||
env = neon_simple_env
|
||||
ep = env.endpoints.create_start(
|
||||
branch_name="main",
|
||||
endpoint_id="primary",
|
||||
config_lines=[
|
||||
"max_wal_size=32MB",
|
||||
"min_wal_size=32MB",
|
||||
"neon.logical_replication_max_snap_files=10000",
|
||||
],
|
||||
)
|
||||
|
||||
con = ep.connect()
|
||||
cur = con.cursor()
|
||||
cur.execute("CREATE TABLE t(pk bigint primary key, payload text)")
|
||||
cur.execute("ALTER TABLE t ALTER payload SET STORAGE external")
|
||||
cur.execute("select pg_create_logical_replication_slot('myslot', 'test_decoding', false, true)")
|
||||
cur.execute("insert into t values (generate_series(1,100000),repeat('?',10000))")
|
||||
|
||||
ep.stop("fast")
|
||||
ep.start()
|
||||
con = ep.connect()
|
||||
cur = con.cursor()
|
||||
cur.execute("select pg_replication_slot_advance('myslot', pg_current_wal_insert_lsn())")
|
||||
2
vendor/postgres-v14
vendored
2
vendor/postgres-v14
vendored
Submodule vendor/postgres-v14 updated: e54af35045...aeecd27b1f
2
vendor/postgres-v15
vendored
2
vendor/postgres-v15
vendored
Submodule vendor/postgres-v15 updated: 29bf1f04a5...544620db4c
2
vendor/postgres-v16
vendored
2
vendor/postgres-v16
vendored
Submodule vendor/postgres-v16 updated: b7e9ac3eb9...3cc152ae2d
2
vendor/postgres-v17
vendored
2
vendor/postgres-v17
vendored
Submodule vendor/postgres-v17 updated: a05dc1378d...e5d795a1a0
8
vendor/revisions.json
vendored
8
vendor/revisions.json
vendored
@@ -1,18 +1,18 @@
|
||||
{
|
||||
"v17": [
|
||||
"17.2",
|
||||
"a05dc1378dd822276dc99cb5e888f905d3527597"
|
||||
"e5d795a1a0c25da907176d37c905badab70e00c0"
|
||||
],
|
||||
"v16": [
|
||||
"16.6",
|
||||
"b7e9ac3eb9c5f43c443ebc76ddf06d5038c9bb34"
|
||||
"3cc152ae2d17b19679c7102486bdb94677705c02"
|
||||
],
|
||||
"v15": [
|
||||
"15.10",
|
||||
"29bf1f04a5628618b4c7972fed6f87065e3750ce"
|
||||
"544620db4ca6945be4f1f686a7fbd2cdfb0bf96f"
|
||||
],
|
||||
"v14": [
|
||||
"14.15",
|
||||
"e54af3504513b1f44c0e0f68791a0d6d4210e948"
|
||||
"aeecd27b1f0775b606409d1cbb9c8aa9853a82af"
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user