表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
世界が落ちる前に ~勇者が魔王と戦っている裏で、異世界がバグらないようにひとりで回してます。なお前任の神は辞めたそうです~  作者: あべのちょふ


この作品ページにはなろうチアーズプログラム参加に伴う広告が設置されています。詳細はこちら

PR
17/36

第17話「巻き戻すか、前に進むか」

 深層のコードを読み進めて、確信に変わった。


 終了判定の機能は、今も動いていた。


 深層の奥に埋め込まれた処理を辿っていくと、その構造が見えてきた。定期的に実行される判定処理。世界に一定の負荷をかけ、耐えられるかを試す。耐えられれば「存続」。耐えられなければ——「終了」。


 そしてこの判定処理は、住人が抵抗できる形で実行されていた。エルディアスが書いたコメントの通りだ。判定の負荷は「魔王」という姿をとり、住人は「勇者」を立てて抵抗する。勇者が魔王を倒せれば、世界は「まだ健全だ」と判定される。


 魔王は敵ではなかった。世界が生きているかを確かめる、定期実行の試験だった。


「ノード」


「はい」


「この判定処理、どのくらいの頻度で実行されている」


「えーと……」 ノードがコードの横に表示された実行ログを読んだ。「最初期は、数千年に一度でした。でも——実行間隔が、だんだん短くなっています」


「どのくらいまで」


「直近では、数十年に一度です。前回から今回までの間隔が、過去最短です」


 世界が劣化するにつれて、判定の頻度が上がっている。劣化が進むほど、「まだ動けるか」を確認する間隔が短くなる。そして、判定のたびに負荷も上がっている。


 つまり——勇者が魔王を倒しても、次の判定はもっと早く来る。もっと強い負荷で。いずれ、勇者が倒せない負荷が来る。


 これが、アリアたちが何度魔王を倒しても平和が続かない理由だ。勇者が命を賭けて魔王を倒す。束の間の平穏が訪れる。でも、すぐに次の魔王が復活する。もっと強くなって。


 アリアは知らない。自分が戦っている相手が「敵」ではなく「試験」だということを。自分が命がけで証明しているのは「世界がまだ生きている」ということだと。


「倒しても意味がない、ということか」


「倒すことで『存続』判定は出ます。でも、次の実行まで存続が先延ばしになるだけで——」


「根本的な解決にはならない」


「……はい」


 俺は深層のコードを見つめた。


 魔王を倒しても、世界の劣化は止まらない。判定は繰り返される。そしていつか、世界は判定に耐えられなくなる。


 問題は魔王ではない。世界が壊れかけていることそのものだ。


          * * *


 深層をさらに奥まで探った。エルディアスが残した処理の中に、もう一つの機能が見つかった。


 世界の状態を、ある時点でまるごと記録する機能。


 前の世界では、これを記録点と呼んでいた。データベースのある瞬間の状態をまるごと保存しておく。問題が起きたときに、その記録点まで世界を巻き戻せば、問題が起きる前の状態に戻せる。


「ノード、この記録点はいつのものだ」


「最新のものは、約三百年前です。エルディアス様が去る直前に作られたもののようです」


 三百年前。エルディアスが世界を去る直前。


 この記録点に世界を巻き戻せば、三百年前の世界の状態に復元できる。劣化が今ほど進んでいなかった時代。判定の間隔がまだ長かった時代。


 でも——。


「巻き戻したら、この三百年間に起きたことは全部消えるのか」


「えーと……」 ノードが少し間を置いた。「記録点より後のデータは、復元後の世界には存在しなくなります。住人の記録、経験、成長——三百年分が、なかったことになります」


 三百年分の住人の人生が消える。


 ミラの母親は三百年前にはまだ生まれていない。ミラも存在しない。アリアも、カイルも、フィオナも、リーゼルも。今の住人の大半は、この三百年の間に生まれた人間だ。


 巻き戻せば、彼らは最初からいなかったことになる。


「それだけじゃない」 俺は考えを整理した。「記録点の時点と、今の世界の間に、データの食い違いが起きる。三百年前の記録にはない住人、建物、道具、関係性——それらが消えた穴を、世界の基盤が埋めようとする。でも三百年分の穴は大きすぎる。整合性が取れなくなって、別の障害が連鎖的に起きる可能性がある」


 前の世界でも同じだった。古い記録点に復元すると、その間に更新されたデータとの間に齟齬が生じる。復元範囲が広いほど、不整合のリスクは大きくなる。三百年分は——大きすぎる。


「ノード」


「はい」


「選択肢は二つだ」


 俺は自分の考えを声に出した。


「一つ目。世界を三百年前に巻き戻す。劣化が進む前の状態に戻して、時間を稼ぐ。でも、三百年分の住人の人生が消える。データの不整合で別の障害が起きるリスクもある」


 巻き戻し。前の世界では、これをロールバックと呼んでいた。問題が起きたら、正常だった過去の状態に戻す。安全策だ。確実に動いていた時点に戻れる。でも、その間に積み上がったものは全部失われる。


 それに——巻き戻しても、根本原因は直っていない。世界の劣化は構造的な問題だ。三百年前に戻しても、同じ速度でまた劣化が進む。時間を稼ぐだけで、問題の先送りにすぎない。エルディアスがやったことと同じだ。


「二つ目。巻き戻さない。今の状態のまま、根本原因を直して前に進む。世界の劣化そのものをどうにかする方法を探す」


 前に進む。前の世界では、これをロールフォワードと呼んでいた。過去に戻るのではなく、問題を直しながら前に進む。リスクは高い。根本原因を直せる保証はない。でも、今あるものを失わずに済む。


 どちらを選ぶか。


 安全な過去に戻るか。不確実な未来に進むか。


 前の世界では、この判断を何度も迫られた。大きな障害が起きたとき、巻き戻すか、直しながら進むか。正解は状況による。巻き戻した方がいいこともある。根本原因を直す時間がないとき。被害が拡大し続けているとき。


 でも今回は——。


「ノード、お前はどう思う」


 ノードが長い間黙った。


「えーと……わたしは」


 また間があった。


「わたしは、エルディアス様が去ったとき、何もできませんでした。止めることも、一緒に行くこともできなかった。あの方は巻き戻す記録点を残して去った。戻れるようにして。でも——」


「でも?」


「戻ったら、悠真さんが来てからのことも、なくなりますよね」


「……ああ」


「わたしが直してもらったことも。ダンジさんやセレスさんやカルクさんと一緒に働いたことも。悠真さんに『大丈夫か』って聞いてもらったことも——全部、なくなる」


 ノードの声が震えた。


「えーと……わたしの意見は、判断材料としては不十分かもしれません。感情的な理由しかないです。でも——わたしは、巻き戻したくない、です」


「感情的な理由でいい」


「……え?」


「前の世界で、一番いい判断を下すエンジニアがいた。あいつは、データと論理で選択肢を絞り込んだ後、最後は『これを選んだとき、自分が後悔しないか』で決めていた。データで選べないとき、最後に頼れるのは自分の判断だ」


 ノードが少し黙った。


「えーと……わたしの判断が、少しでも役に立ったなら……嬉しいです」


          * * *


 俺はダッシュボードに戻った。


 処理能力のゲージは97%。限界まで、あと数時間。地上では魔王軍の侵攻が続いている。アリアたちが戦い続けている。


 巻き戻すか。前に進むか。


 巻き戻せば、今の危機は消える。三百年前の安定した世界に戻れる。でも、ミラは消える。アリアは消える。今、前線で盾を構えているカイルも、ノートに記録を取り続けるフィオナも、回復魔法を飛ばし続けるリーゼルも。


 消せない。


 あの子たちは数字じゃない。ミラが教えてくれた。数字の向こうに人がいる。花に水をやっている子がいる。「世界がちゃんと息してる気がする」と笑っている子がいる。


 巻き戻すということは、あの笑顔を「なかったこと」にするということだ。


「ノード」


「はい」


「俺も同じだ」


 俺は画面に向き直った。


「巻き戻さない。前に進む」


「……はい」


「根本原因を直す方法は、まだわからない。リスクは高い。失敗するかもしれない。でも——今あるものを捨てて安全な過去に逃げるのは、管理人のやることじゃない」


 前の世界でも、巻き戻しは最終手段だった。本当に手の打ちようがないときだけ使う。それ以外は——前に進む。壊れた部分を直しながら、走り続ける。


 エルディアスは、この選択を迫られて——逃げた。逃げたことを責めるつもりはない。でも、俺は逃げない。


 管理人は前に進む。


 ダッシュボードの処理能力ゲージが、98%を指した。あと数時間。でも、怖くはなかった。怖いけど、止まるよりはましだ。


 前に進む。根本原因を直す。世界の劣化を止める方法を見つける。


 今はまだ、どうすればいいかわからない。でも、わからないなら調べればいい。調べてもわからないなら、試せばいい。試して失敗したら、また調べればいい。


 それが、管理人の仕事だ。


「ノード、まず深層のリソースを使って、処理能力の余裕を確保する方法を探す。それから、世界の劣化の根本原因を調べる。同時並行だ」


「……わかりました。何から始めますか」


「まずはログを見よう」


 ノードが少し笑った気がした。


「……はい。まずは、ログからですね」


お読みいただきありがとうございます。


【今回のIT用語】

ロールバック:障害が起きたとき、正常に動いていた過去の状態に戻す操作です。データベースのスナップショット(ある時点の状態をまるごと保存したもの)から復元することで実現します。確実に動いていた時点に戻れるため安全ですが、復元後の世界と現在の間でデータ不整合が起きるリスクがあります。復元範囲が広いほど、その危険は大きくなります。


ロールフォワード:過去に戻るのではなく、問題の根本原因を修正しながら前に進む選択です。ロールバックが「安全策」なら、ロールフォワードは「挑戦」です。今あるデータや状態を保持したまま修復するため、失うものは少ない——ただし、根本原因を直せなければ状況が悪化するリスクも背負います。悠真が「管理人は前に進む」と言ったのは、SREの現場でもよくある判断——「壊れたまま走る」覚悟の決断でした。


次話「勇者と管理人」もよろしくお願いします。

感想・ブックマークいただけると励みになります。

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

↑ページトップへ