refactor: 턴 경계와 12턴 묶음을 보존하는 2배속 복구 구현

This commit is contained in:
2026-09-06 10:04:33 +00:00
parent 63da0921cb
commit d3443ec7f5
53 changed files with 1467 additions and 160 deletions
@@ -0,0 +1,18 @@
ALTER TABLE "turn_daemon_lease" ADD COLUMN "clock_ready" BOOLEAN NOT NULL DEFAULT FALSE;
ALTER TABLE "world_state"
ADD COLUMN "clock_recovery_start_tick" BIGINT,
ADD COLUMN "clock_recovery_end_tick" BIGINT,
ADD COLUMN "clock_recovery_start_wall_at" TIMESTAMP(3),
ADD CONSTRAINT "world_state_turn_recovery_window_check" CHECK (
("clock_recovery_start_tick" IS NULL AND "clock_recovery_end_tick" IS NULL AND "clock_recovery_start_wall_at" IS NULL)
OR (
"clock_recovery_start_tick" IS NOT NULL AND "clock_recovery_end_tick" IS NOT NULL AND "clock_recovery_start_wall_at" IS NOT NULL
AND "clock_recovery_start_tick" BETWEEN -9007199254740991 AND 9007199254740991
AND "clock_recovery_end_tick" BETWEEN -9007199254740991 AND 9007199254740991
AND "clock_recovery_start_tick" % 36000000 = 0
AND "clock_recovery_end_tick" % 36000000 = 0
AND "clock_recovery_end_tick" - "clock_recovery_start_tick" BETWEEN 72000000 AND 792000000
AND ("clock_recovery_end_tick" - "clock_recovery_start_tick") % 72000000 = 0
)
);