feat: persistence hook functions wired to WAL write on AFTER_EVENT (P0-6)
Implements persist_job_hook_fun, persist_queue_hook_fun, and persist_worker_hook_fun — AFTER_EVENT hooks that write WAL entries whenever state mutations occur in the controller. - detail_to_wal_type() maps all 15 HOOK_DETAIL_* values to WAL types; unknown details return 0 and are silently skipped - HOOK_DETAIL_JOB_NEW uses the sync replication path (WAL_JOB_SUBMIT); all others use persist_wal_async - P0 payload: 4-byte detail value; full Cap'n Proto serialization in Task 15 - Hook signature matches hook_fn_t exactly: int fn(int type, int situation, int detail, void* cls, va_list ap) - Added <stdarg.h> to persist.h for va_list; added hook.h and xce/cluster_def.h includes to persist.c - 18 new unit tests in test_persist_hooks.c covering all 15 detail→WAL mappings, skip-on-unknown, and sequential LSN advancement
This commit is contained in:
parent
045d9e3287
commit
6f3b98c6b5
5 changed files with 500 additions and 0 deletions
|
|
@ -74,6 +74,7 @@ controller_unit_test_src = [
|
|||
'testsuite/test_persist_checkpoint.c',
|
||||
'testsuite/test_persist_recovery.c',
|
||||
'testsuite/test_hooks.c',
|
||||
'testsuite/test_persist_hooks.c',
|
||||
'persist.c',
|
||||
]
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue