forked from lei.chen/myxce
feat(ha-repl-hardening): standby snapshot receive handler (task 3.5c)
ha_handle_snapshot_chunk writes chunks to snap.part, on isLast verifies
total_size, atomic renames to snap-{lsn}.bin, loads via new
persist_load_snapshot wrapper, sets applied_lsn=checkpoint_lsn.
3 tests: 2-chunk assembly, size mismatch, null args. Wired into
myreq_handler OPCode_snapshotTransfer dispatch.
This commit is contained in:
parent
318098c727
commit
cbd91fca43
7 changed files with 361 additions and 2 deletions
|
|
@ -152,6 +152,11 @@ int persist_worker_hook_fun(int type, int situation, int detail,
|
|||
* negative errno on error (oversized payload, NULL arguments). */
|
||||
int apply_wal_entry(persist_t* p, const wal_entry_hdr_t* hdr, const void* payload);
|
||||
|
||||
/* Load a snapshot file from path, set p->checkpoint_lsn and p->current_lsn.
|
||||
* lsn hint is informational — the actual LSN is read from the file header.
|
||||
* Returns 0 on success, -errno or -EINVAL/-EIO on error. */
|
||||
int persist_load_snapshot(persist_t* p, const char* path, uint64_t lsn);
|
||||
|
||||
/* GC retention predicates (P0-5a / P0-8 / P0-13) */
|
||||
#include <stdbool.h>
|
||||
#include "xce/types.h"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue