【そうさへんかん、オーティー】
操作変換(OT) とは?
💡 バラバラに動かした手が、最後には同じ文書を描く
📌 このページのポイント
Google Docsで複数人が同時に書き込めるのって、どんな仕組みなの?
その核心にあるのが操作変換(OT)だよ。ユーザーAとBが同時に編集したとき、互いの操作が競合しないよう「変換」して整合性を保つアルゴリズムなんだ。
「変換」ってどういうこと?具体例で教えてほしいの!
「Hello」という文書でAが位置2に「X」を挿入、Bが位置3の「l」を削除したとしよう。AのサーバーにBの削除が届いたとき、Aが挿入した分だけ位置をずらして「位置4の削除」に変換する。こうして両方の変更が正しく反映されるんだ。
位置がずれるだけで解決できるなんて、シンプルに見えるね!
単純な挿入・削除は比較的シンプルだけど、3人以上の同時編集や複合操作では変換関数が急激に複雑になるよ。実装バグで文書が壊れる事故も歴史的に起きてきたんだ。
それが最近CRDTに移行してる理由なの?
そうだよ。CRDTは変換関数を使わずにデータ構造レベルで競合を吸収するから、OTより実装が安全で分散システムとの相性もいいんだ。ただ、OTも枯れた技術として今も現役で多くのシステムで動いているよ。
まとめ:ざっくりこれだけ覚えればOK!
「操作変換(OT)」って出てきたら「共同編集で同時変更の競合をアルゴリズムで解決する技術」と思えればだいたいOK!
📖 おまけ:英語の意味
「OT (Operational Transformation)」 = 操作変換
💬 "Operational"は「操作(挿入・削除)」の意。ユーザーAの操作がユーザーBの操作と競合したとき、互いの操作を変換して整合性を保つんだよ。