第17話「巻き戻すか、前に進むか」
深層のコードを読み進めて、確信に変わった。
終了判定の機能は、今も動いていた。
深層の奥に埋め込まれた処理を辿っていくと、その構造が見えてきた。定期的に実行される判定処理。世界に一定の負荷をかけ、耐えられるかを試す。耐えられれば「存続」。耐えられなければ——「終了」。
そしてこの判定処理は、住人が抵抗できる形で実行されていた。エルディアスが書いたコメントの通りだ。判定の負荷は「魔王」という姿をとり、住人は「勇者」を立てて抵抗する。勇者が魔王を倒せれば、世界は「まだ健全だ」と判定される。
魔王は敵ではなかった。世界が生きているかを確かめる、定期実行の試験だった。
「ノード」
「はい」
「この判定処理、どのくらいの頻度で実行されている」
「えーと……」 ノードがコードの横に表示された実行ログを読んだ。「最初期は、数千年に一度でした。でも——実行間隔が、だんだん短くなっています」
「どのくらいまで」
「直近では、数十年に一度です。前回から今回までの間隔が、過去最短です」
世界が劣化するにつれて、判定の頻度が上がっている。劣化が進むほど、「まだ動けるか」を確認する間隔が短くなる。そして、判定のたびに負荷も上がっている。
つまり——勇者が魔王を倒しても、次の判定はもっと早く来る。もっと強い負荷で。いずれ、勇者が倒せない負荷が来る。
これが、アリアたちが何度魔王を倒しても平和が続かない理由だ。勇者が命を賭けて魔王を倒す。束の間の平穏が訪れる。でも、すぐに次の魔王が復活する。もっと強くなって。
アリアは知らない。自分が戦っている相手が「敵」ではなく「試験」だということを。自分が命がけで証明しているのは「世界がまだ生きている」ということだと。
「倒しても意味がない、ということか」
「倒すことで『存続』判定は出ます。でも、次の実行まで存続が先延ばしになるだけで——」
「根本的な解決にはならない」
「……はい」
俺は深層のコードを見つめた。
魔王を倒しても、世界の劣化は止まらない。判定は繰り返される。そしていつか、世界は判定に耐えられなくなる。
問題は魔王ではない。世界が壊れかけていることそのものだ。
* * *
深層をさらに奥まで探った。エルディアスが残した処理の中に、もう一つの機能が見つかった。
世界の状態を、ある時点でまるごと記録する機能。
前の世界では、これを記録点と呼んでいた。データベースのある瞬間の状態をまるごと保存しておく。問題が起きたときに、その記録点まで世界を巻き戻せば、問題が起きる前の状態に戻せる。
「ノード、この記録点はいつのものだ」
「最新のものは、約三百年前です。エルディアス様が去る直前に作られたもののようです」
三百年前。エルディアスが世界を去る直前。
この記録点に世界を巻き戻せば、三百年前の世界の状態に復元できる。劣化が今ほど進んでいなかった時代。判定の間隔がまだ長かった時代。
でも——。
「巻き戻したら、この三百年間に起きたことは全部消えるのか」
「えーと……」 ノードが少し間を置いた。「記録点より後のデータは、復元後の世界には存在しなくなります。住人の記録、経験、成長——三百年分が、なかったことになります」
三百年分の住人の人生が消える。
ミラの母親は三百年前にはまだ生まれていない。ミラも存在しない。アリアも、カイルも、フィオナも、リーゼルも。今の住人の大半は、この三百年の間に生まれた人間だ。
巻き戻せば、彼らは最初からいなかったことになる。
「それだけじゃない」 俺は考えを整理した。「記録点の時点と、今の世界の間に、データの食い違いが起きる。三百年前の記録にはない住人、建物、道具、関係性——それらが消えた穴を、世界の基盤が埋めようとする。でも三百年分の穴は大きすぎる。整合性が取れなくなって、別の障害が連鎖的に起きる可能性がある」
前の世界でも同じだった。古い記録点に復元すると、その間に更新されたデータとの間に齟齬が生じる。復元範囲が広いほど、不整合のリスクは大きくなる。三百年分は——大きすぎる。
「ノード」
「はい」
「選択肢は二つだ」
俺は自分の考えを声に出した。
「一つ目。世界を三百年前に巻き戻す。劣化が進む前の状態に戻して、時間を稼ぐ。でも、三百年分の住人の人生が消える。データの不整合で別の障害が起きるリスクもある」
巻き戻し。前の世界では、これをロールバックと呼んでいた。問題が起きたら、正常だった過去の状態に戻す。安全策だ。確実に動いていた時点に戻れる。でも、その間に積み上がったものは全部失われる。
それに——巻き戻しても、根本原因は直っていない。世界の劣化は構造的な問題だ。三百年前に戻しても、同じ速度でまた劣化が進む。時間を稼ぐだけで、問題の先送りにすぎない。エルディアスがやったことと同じだ。
「二つ目。巻き戻さない。今の状態のまま、根本原因を直して前に進む。世界の劣化そのものをどうにかする方法を探す」
前に進む。前の世界では、これをロールフォワードと呼んでいた。過去に戻るのではなく、問題を直しながら前に進む。リスクは高い。根本原因を直せる保証はない。でも、今あるものを失わずに済む。
どちらを選ぶか。
安全な過去に戻るか。不確実な未来に進むか。
前の世界では、この判断を何度も迫られた。大きな障害が起きたとき、巻き戻すか、直しながら進むか。正解は状況による。巻き戻した方がいいこともある。根本原因を直す時間がないとき。被害が拡大し続けているとき。
でも今回は——。
「ノード、お前はどう思う」
ノードが長い間黙った。
「えーと……わたしは」
また間があった。
「わたしは、エルディアス様が去ったとき、何もできませんでした。止めることも、一緒に行くこともできなかった。あの方は巻き戻す記録点を残して去った。戻れるようにして。でも——」
「でも?」
「戻ったら、悠真さんが来てからのことも、なくなりますよね」
「……ああ」
「わたしが直してもらったことも。ダンジさんやセレスさんやカルクさんと一緒に働いたことも。悠真さんに『大丈夫か』って聞いてもらったことも——全部、なくなる」
ノードの声が震えた。
「えーと……わたしの意見は、判断材料としては不十分かもしれません。感情的な理由しかないです。でも——わたしは、巻き戻したくない、です」
「感情的な理由でいい」
「……え?」
「前の世界で、一番いい判断を下すエンジニアがいた。あいつは、データと論理で選択肢を絞り込んだ後、最後は『これを選んだとき、自分が後悔しないか』で決めていた。データで選べないとき、最後に頼れるのは自分の判断だ」
ノードが少し黙った。
「えーと……わたしの判断が、少しでも役に立ったなら……嬉しいです」
* * *
俺はダッシュボードに戻った。
処理能力のゲージは97%。限界まで、あと数時間。地上では魔王軍の侵攻が続いている。アリアたちが戦い続けている。
巻き戻すか。前に進むか。
巻き戻せば、今の危機は消える。三百年前の安定した世界に戻れる。でも、ミラは消える。アリアは消える。今、前線で盾を構えているカイルも、ノートに記録を取り続けるフィオナも、回復魔法を飛ばし続けるリーゼルも。
消せない。
あの子たちは数字じゃない。ミラが教えてくれた。数字の向こうに人がいる。花に水をやっている子がいる。「世界がちゃんと息してる気がする」と笑っている子がいる。
巻き戻すということは、あの笑顔を「なかったこと」にするということだ。
「ノード」
「はい」
「俺も同じだ」
俺は画面に向き直った。
「巻き戻さない。前に進む」
「……はい」
「根本原因を直す方法は、まだわからない。リスクは高い。失敗するかもしれない。でも——今あるものを捨てて安全な過去に逃げるのは、管理人のやることじゃない」
前の世界でも、巻き戻しは最終手段だった。本当に手の打ちようがないときだけ使う。それ以外は——前に進む。壊れた部分を直しながら、走り続ける。
エルディアスは、この選択を迫られて——逃げた。逃げたことを責めるつもりはない。でも、俺は逃げない。
管理人は前に進む。
ダッシュボードの処理能力ゲージが、98%を指した。あと数時間。でも、怖くはなかった。怖いけど、止まるよりはましだ。
前に進む。根本原因を直す。世界の劣化を止める方法を見つける。
今はまだ、どうすればいいかわからない。でも、わからないなら調べればいい。調べてもわからないなら、試せばいい。試して失敗したら、また調べればいい。
それが、管理人の仕事だ。
「ノード、まず深層のリソースを使って、処理能力の余裕を確保する方法を探す。それから、世界の劣化の根本原因を調べる。同時並行だ」
「……わかりました。何から始めますか」
「まずはログを見よう」
ノードが少し笑った気がした。
「……はい。まずは、ログからですね」
お読みいただきありがとうございます。
【今回のIT用語】
ロールバック:障害が起きたとき、正常に動いていた過去の状態に戻す操作です。データベースのスナップショット(ある時点の状態をまるごと保存したもの)から復元することで実現します。確実に動いていた時点に戻れるため安全ですが、復元後の世界と現在の間でデータ不整合が起きるリスクがあります。復元範囲が広いほど、その危険は大きくなります。
ロールフォワード:過去に戻るのではなく、問題の根本原因を修正しながら前に進む選択です。ロールバックが「安全策」なら、ロールフォワードは「挑戦」です。今あるデータや状態を保持したまま修復するため、失うものは少ない——ただし、根本原因を直せなければ状況が悪化するリスクも背負います。悠真が「管理人は前に進む」と言ったのは、SREの現場でもよくある判断——「壊れたまま走る」覚悟の決断でした。
次話「勇者と管理人」もよろしくお願いします。
感想・ブックマークいただけると励みになります。




