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

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

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

エラーが発生しました。

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

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


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

PR
12/36

第12話「魔法が消えていく世界」

 最初は数字の変化だった。


 魔法の発動記録——ある地域で成功率が落ちていた。三日前から少しずつ、気にならない程度に。あのとき気づいていれば、と今になって思う。魔王城周辺の劣化パターンを追いかけていて、この変化を見落としていた。


「ノード、魔法APIのエラーログを全部出してくれ」


「えーと……今日の分ですか」


「一週間分だ」


 ウィンドウに数字が流れてきた。


 一週間前——成功率99.1%。ほぼ正常だ。


 五日前——97.3%。少し落ちている。


 三日前——91.8%。


 昨日——83.2%。


 今日の朝時点——71.4%。


 「……右肩下がりだ」


「えーと……はい。しかも、加速しています。昨日より今日の方が落ちる速度が速い」


 魔法の発動成功率が70%まで落ちている。残り30%は「発動を試みたが失敗した」だ。呪文を唱えて、何も起きない。魔力を込めて、反応がない。地上の魔法使いたちが今どんな状態にあるか、想像したくなかった。


 どこかで、今まさに失敗している人間がいる。


          * * *


 北部の森の中で、フィオナは術式を組み直した。


 三回目だった。呪文を唱えるたびに魔力は流れる。ただ、それが「形」にならない。いつもなら手の先で収束するはずの熱が、途中で散ってしまう。


「……理解できませんわ」


 一人で、ノートに向かいながら言った。


 魔力は出ている。術式も正確だ。なのに発動しない。原因が見当たらない——自分のせいではない、ということだけはわかる。昨日から、パーティ内の他の魔法使いも同じことを言っていた。


「フィオナ!」


 アリアが木立の奥から顔を出した。「大丈夫? また失敗した?」


「……三回目ですわ」 フィオナは眉を寄せた。「何かが、おかしい。魔法そのものじゃなくて、魔力の通り道が——詰まっているような感覚があります。正確な言葉では表せないのですけど」


「私も少し感じる」 アリアが頷いた。「さっき光魔法を使おうとしたら、出力が半分くらいしか出なかった」


 カイルが近づいてきた。大盾を背負ったまま、腕を組んでいる。「で、どのくらいまずいんだ」


「今の状態で戦闘になったら……攻撃魔法の信頼性が50%以下です」 フィオナがノートを閉じた。「術式ミスじゃないのに失敗する。それが一番厄介ですわ」


「……じゃあ、魔法に頼れない戦い方で行くか」


「カイル」


「盾はあるだろ」 カイルが淡々と言った。「心配するな」


 アリアが少し笑った。「あなた、そういうとこ好きよ」


「……別に心配してねぇよ。ただ事実を言っただけだ」


 カイルがそっぽを向いた。


          * * *


 問題は、魔法APIが落ちることそのものより、落ち方にあった。


 ダッシュボードを見ると、失敗した発動リクエストが、失敗しながらも何度も再試行されていた。魔法使いが「もう一度試みる」たびに、すでに過負荷になっている処理系に追加のリクエストが積み重なっていく。


 壊れているドアを繰り返し叩き続けるようなものだ。ドアは開かない。でも叩くたびに、周囲の壁に振動が伝わる。


 このまま放置すれば、魔法APIの過負荷が隣接する処理にも波及する。スキル発動、ステータス反映、最悪の場合は勇者の戦闘支援にまで——


「まずいな」


「えーと……どうしますか」


「全部を守ろうとしない」


 俺は少し考えてから、方針を固めた。


 全部を同時に動かそうとするから、全部が一緒に沈む。一部の機能を意図的に落として、重要な機能を生き残らせる。完璧な状態を維持しようとするのをやめて、「何を最後まで動かし続けるか」だけを考える。


 前の世界ではそれを、段階的な機能縮小と呼んでいた。


「ノード、魔法の種類を整理してくれ。今の負荷がどこに集中しているか」


「わかりました。少し時間をください」


 俺は待つ間に、優先順位を考えた。


 魔法にはいくつか種類がある。攻撃魔法——これは大きなリソースを消費する。発動するたびに処理系への負荷が高い。回復魔法——攻撃魔法よりリソースが軽い。基礎的な支援魔法——最も軽量だ。


 ノードから結果が来た。


「えーと……攻撃魔法が全体の負荷の60%を占めています。回復魔法は20%、支援魔法は10%程度です」


「わかった。攻撃魔法の同時発動数に上限をつける。一人が連続して使える回数も制限する。回復魔法と支援魔法は制限しない」


 ノードが少し止まった。「……それをすると、攻撃魔法が今より使いにくくなりますが」


「わかってる。でも今のまま全部を動かし続けると、攻撃魔法も回復魔法も一緒に落ちる。どちらがいいかというと——戦闘中に回復魔法が止まる方が、人が死ぬ」


「……なるほど」


「攻撃が制限されても、回復が動いていれば生き残れる。攻撃が使えても、回復が落ちたら詰む」


 制限を設定した。


          * * *


 もう一つ、対処が必要なことがあった。


 失敗した発動リクエストへの再試行だ。魔法使いが諦めずに何度も試みるたびに、壊れた処理系に追加の負荷がかかり続ける。これを止めない限り、制限を設定しても焼け石に水だ。


 前の世界で使っていた制御を思い出した。


 電気が過剰に流れたとき、自動で回路を切断する安全装置がある。遮断することで、それ以上の損傷を防ぐ。サービスの世界でも同じ発想がある——異常なレスポンスが続いたとき、そのエンドポイントへのアクセスを自動で止める。復旧の余地を作るために、あえて遮断する。


「ノード、エラーが続いている魔法リクエストに対して——失敗が一定回数続いたら、その後しばらくは試行自体を止める制御を入れたい」


「えーと……試行を止める、というのは」


「今すぐ失敗する処理を何度もリトライするより、少し待ってから再挑戦した方がいい。その待ち時間の間に、処理系が回復できる」


「……それ、魔法使いさんから見たら「しばらく魔法が使えない」になりますよね」


「そうだ。ただ、使えない時間が決まっている。完全に止まるより、「少し待てばまた使える」方がいい」


「……わかりました。設定します」


 前の世界では、これを回路遮断器と呼んでいた。壊れた状態を守りながら回復を待つ——消極的に見えるが、連鎖崩壊を止めるための能動的な判断だ。


 設定を入れた。


          * * *


 北部の森の中で、フィオナは三度目の呪文を唱えてから、ノートに記録を書き込んだ。


 失敗。


 でも、今度は違う感覚があった。術式が途中で止まる感じではなく——「少し待て」という感じ。拒絶ではなく、保留だ。


「……おかしいですわね」 フィオナが独りごちた。「今のは、失敗じゃなかった気がします」


「どういうこと?」 アリアが振り返った。


「発動しなかったのは同じです。でも——さっきとは、詰まり方が違う。前は何かが壊れている感じでしたが、今は……何かが整理されている、みたいな」


「難しくてよくわからないけど」 カイルが腕を組んだ。「状況は良くなってるってこと?」


「……そう思いますわね」 フィオナが少し考えてから言った。「少し待ってから試してみます」


 二分ほど待ってから、フィオナは再度呪文を唱えた。


 光が、手の先に集まった。


 完全ではない。出力は通常の60%程度だ。でも——発動した。


「……動きましたわ」


 小声で言ってから、フィオナはノートに書き込んだ。「待つと回復する。断続的な制限状態。原因は不明——でも、意図的に見える」


 意図的。


 フィオナはその言葉を書いた後、少し手を止めた。


 誰かが、何かをしている。


          * * *


「アリア」 カイルが言った。「これで作戦は変わるか」


「変わる」 アリアが頷いた。「フィオナの魔法は使えないときがある。だから——前提にしない」


「私は構いませんわよ」 フィオナが静かに言った。「カイルの盾があれば、私が動けない時間を繋いでもらえます」


「……俺の盾があれば十分だって言っただろ」 カイルが少し照れたように言った。「そういうことだ」


「アリアは?」 リーゼルが小さく手を上げた。「あたしの回復は大丈夫みたい。あたしはいつもどおり動けます」


「うん」 アリアが仲間を一人ずつ見た。「私は、魔法がなくても戦える。最初から剣が本業だから」


 誰かが笑った。それから全員が少し笑った。


「じゃあ行くか」


 カイルが盾を構えた。


          * * *


 ダッシュボードで、俺は数字を眺めていた。


 魔法APIの成功率——71.4%から、設定変更後二時間で79.3%まで回復していた。まだ正常値ではない。でも、下がり続けていた数字が下げ止まった。


 回復魔法の成功率は93.1%を維持している。攻撃魔法は制限がかかっているが、壊滅はしていない。


「ノード」


「はい」


「根本原因は何だと思う」


 ノードが少し間を置いた。「えーと……魔法APIへの負荷が増えていることは確かです。でも、なぜ負荷が増えているかは……」


「魔王城の方角から来ているパターンと、時系列が重なるか調べてくれ」


「……わかりました。先日の分析と合わせます」


 俺はダッシュボードを眺めた。


 今日やったのは、根本を直したわけではない。壊れ始めているものを、なるべく長く持たせる形に整えただけだ。魔法が使えなくなること自体は止められていない。地上の魔法使いたちはまだ不便な状態にある。


 でも——フィオナが「待つと回復する」と記録してくれた。アリアは「魔法なしで戦える」と決めた。カイルは盾を構えた。


 地上で、世界は動き続けている。


 それで、今日は十分だ。


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


【今回のIT用語】

グレースフルデグレード:システムが完全に正常でなくなったとき、全機能を落とすのではなく「重要な機能だけを生き残らせる」戦略です。今回、悠真が攻撃魔法を制限して回復魔法を守ったのがこれです。「完璧な状態か、全停止か」ではなく、段階的に機能を落としながら最後まで核心を守る——そのための設計思想です。


サーキットブレーカー:直訳すると「回路遮断器」。電気で過電流が流れたとき自動で回路を切断する安全装置と同じ発想で、ソフトウェアでは「壊れているAPIへの繰り返しアクセスを自動で止める」仕組みのことです。失敗が続いたら一定時間アクセスを止めて回復を待つ——消極的に見えますが、連鎖崩壊を防ぐための能動的な判断です。フィオナが「少し待ったら発動した」と感じたのは、この仕組みが動いていたためです。


次話「管理人、地上に立つ」もよろしくお願いします。

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

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

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

↑ページトップへ