wal: add stubs for wal_retention_period
This commit adds a new configuration option wal_retention_period and function stubs for it. It's needed to avoid rebootstrap on anonymous replicas, as Tarantool doesn't save xlog for them. The new option takes a floating point number that sets the period for every xlog file during which this xlog file cannot be deleted by garbage collector. The default value is 0, which means no delay. The option can be set dynamically. Note: - The delay is applied after xlog closing - During instance restart delay becomes box.cfg.wal_retention_period - last modification time of xlog. - The minimum vclock (same as xlog file name) can be found with box.info.gc().wal_retention_vclock. The option value is stored and used in C code, so we define configuration callbacks in EE: cfg_set_wal_retention_period. Needed for tarantool/tarantool-ee#513 NO_DOC=experimental NO_CHANGELOG=experimental (cherry picked from commit e04c162e)
Showing
- src/box/CMakeLists.txt 6 additions, 1 deletionsrc/box/CMakeLists.txt
- src/box/box.cc 39 additions, 1 deletionsrc/box/box.cc
- src/box/box.h 2 additions, 0 deletionssrc/box/box.h
- src/box/gc.c 9 additions, 0 deletionssrc/box/gc.c
- src/box/lua/info.c 9 additions, 0 deletionssrc/box/lua/info.c
- src/box/lua/init.c 4 additions, 0 deletionssrc/box/lua/init.c
- src/box/lua/load_cfg.lua 10 additions, 0 deletionssrc/box/lua/load_cfg.lua
- src/box/lua/wal_retention_period.h 22 additions, 0 deletionssrc/box/lua/wal_retention_period.h
- src/box/retention_period.h 68 additions, 0 deletionssrc/box/retention_period.h
- src/box/wal.c 75 additions, 4 deletionssrc/box/wal.c
- src/box/wal.h 16 additions, 1 deletionsrc/box/wal.h
- src/box/xlog.c 51 additions, 12 deletionssrc/box/xlog.c
- src/box/xlog.h 38 additions, 2 deletionssrc/box/xlog.h
- src/trivia/config.h.cmake 1 addition, 0 deletionssrc/trivia/config.h.cmake
- test/box/box.lua 1 addition, 0 deletionstest/box/box.lua
Loading
Please register or sign in to comment