【そうさへんかん、オーティー】

操作変換(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の操作と競合したとき、互いの操作を変換して整合性を保つんだよ。
← 用語集にもどる