テーブルサイズの不足に気付かなかったCode.org、生徒が書いたコードなどを失う 15
ストーリー by hylom
32ビットインデックス問題は忘れがちだよね…… 部門より
32ビットインデックス問題は忘れがちだよね…… 部門より
headless 曰く、
Code.orgがCode Studioで生徒の書いたコードや学習状況を記録するテーブルサイズの不足に気付かず、一時データが保存できない状況になっていたそうだ(Code.orgのブログ、Register)。
トラブルが発生したのは20日9時19分(PST)。これまでCode Studioのテーブルは32ビットインデックスを使用しており、40億行のデータしか保存できなかった。しかし、データがいっぱいになるまで気付かなかったのだという。そのため9時19分以降に生徒が書いたコードは保存されなくなり、学習の進捗状況も正しく表示されなくなったとのこと。Code Studioサイトも一時ダウンしていたそうだ。
問題に気付いたCode.orgでは64ビットインデックスの新しいテーブルに切り替えて10時33分に復旧したとのこと。ただし、9時19分~10時33分に生徒が作成したコードは復元できず、新しいテーブルへのデータ移行が完了するまで過去のデータが表示できない状態になった。一方、64ビットインデックスに変更したことで最大1,800京行、数百万年分のデータが保存可能になったとのことだ。
よくある話 (スコア:0)
語長が足りなくてロケット落ちた例もあるし、
他山の石としなくては
# といって富豪的に予約しまくるわけにもいかないんだよなぁ
Re:よくある話 (スコア:1)
普通保存ができなくなるとアラートなりエラーが出そうだけど、それにも気が付かなかったのかな。
あるいはそこで気がついてなんとかしたけど作業のタイムラグでなんぼか拾いきれなくなってたとか。
覆水盆に返らず (スコア:0)
対策:盆を大きくしました
# 零れそうな時期の早期警告とか予備の受け皿とかは。。。
Re: (スコア:0)
「こぼれたミルクを嘆いていてもどうしようもない」
いちいちチェックせずに、あふれるがまま。
そして、足りなくなったら買ってきて継ぎ足す、という戦略ですね。
数百万年 (スコア:0)
「640KBはすべての人にとって未来永劫充分なメモリだ」という格言(?)もあることだし、
その数百万年分(予定)のテーブルはどのくらいでいっぱいになるんだろうか。
Re: (スコア:0)
まぁ人間が書いてる分にはもつんじゃないですか
Re:数百万年 (スコア:1)
AIがディープラーニングでもして書き込み始めたら終わっちゃったりして。
Re:数百万年 (スコア:1)
そんときゃAIが直すよ
Re: (スコア:0)
インターネットのアドレス空間は32ビットで充分だ(ヴィントン・サーフ)の方が近いんでないかい。これから何かのサービスを始める人は、とりあえず64ビットにしときや。
Re: (スコア:0)
やっぱセガは未来を先取りしすぎてたんだな
# ♪ひゃくにじゅうはちびっと~ さんびゃくまんぽりご~ん
Re: (スコア:0)
そういったもんは可変対応しとけ、じゃないか?
♯コボラーの総攻撃受けるがw
ドラえもんかい! (スコア:0)
最大1,800京行、数百万年分のデータが保存可能になった
インデックスは作れるかもしれんが、これだけの実データはどこに行くんだ?
Re:ドラえもんかい! (スコア:1)
インデックスのキーの実装が単調加算のシリアル番号で、一度生成した番号はレコードを削除しても再利用しない設計だとすると、実データは今も32bit分ないのかもしれませんよ。(そのために桁溢れに気づくのが遅れた可能性もあります。件数だけ見てると32bit未満ですから)
4ビットインデックスに変更したことで最大1,800京行 (スコア:0)
インデックスだけでは中身を保存できないことには気づいていますよね? いくらなんでも
Re: (スコア:0)
インデックスには色んな意味があって、
この場合はRDBのインデックスのことじゃなくて、
行番号を表すインクリメンタルな数字のことだよ。