はてなキーワードは形態を変えないと厳しいかも

まとめ。

キーワードによる負荷は対象ダイアリー数*語彙数と考えられる。ハード拡張速度は線形であり、語彙増加*人数増加の速度に追いつかない可能性がある。
はてなグループを使う、あるいはキーワードのカテゴリ分けを細かくする事で負荷を低減できる可能性がある。ユーザとしては、特殊性の高い語彙は積極的にグループに移していくべきだろう。
はてなはもはや単一のコミュニティとして「キーワードでつながる」事のできない規模になってしまったのではないのではないか。

はじめに

これまでの長いキーワードを優先する「最長優先」処理は、処理内容が複雑となりシステムに負荷が高いため、最も左に現れた最も長いキーワードを優先する「最左最長優先」の処理に変更させて頂く事を検討していますが、本件についてはアンケートを行いたいと思います。ご意見をお聞かせください。

負荷の高そうなシステムな気はしていたが、そこまで逼迫していたか。
以下、キーワードシステムは変わらないと存続できないという仮説を提示し、新たなシステムの可能性について触れる。

サーバ増設は無駄

処理能力の限界というととりあえずハード増設しろやという事になるが、そう単純な話ではない。キーワード処理の中身を知らないので大雑把な推定になるが、

  • 文中からキーワードにマッチする単語を探す計算量は、キーワード数に比例する
  • キーワード処理する対象の文章量はユーザ数に比例する
  • キーワードの増加速度はユーザ数に比例する
  • ユーザ数は時間に比例する

と仮定すれば、キーワード処理の負荷というのは時間の3乗で増えていく。ユーザ数は実際にはもうちょい速いと思うから、一般にはキーワード処理の負荷は指数関数的に増えていく、位の表現にしておいた方が無難か。
一方、サーバ増強に必要なはてなの資産は、基本的にはユーザ数に比例した速度でしか増えないはずである。y=xのグラフがy=x^2のグラフにすぐに置いていかれる事をイメージすれば分かりやすいか。
だから、サーバ増設はこの問題の解決にはならない。はてなが十分な資産を持っているのなら、ユーザ数が頭打ちになるラインまで増設しちゃえば対応可能だけど。

キーワード処理対象の限定

ここで、キーワードじゃなくてグループキーワードを使う事を考える。現状だと、アニメのサブキャラとか果てはネトゲのダンジョン名までキーワードに入っているが、これは明らかにやりすぎなんじゃなかろうか、という話。
使う人が明らかに限定されていそうなワードはグループのキーワードにしてしまって、ユーザはそれを使うようにすればいい*1。こうすれば、関係ないユーザの日記更新の際にそのワードとのマッチング処理が行なわれる事も無くなって、処理を軽くする事ができるはず。
もし比較的閉鎖的なコミュニティの住人で、他のキーワードとリンクする気が無いのなら、グループダイアリーを使って、共通キーワード自動リンクは解除、とするとさらに負荷は低くなるはず。例えば、ネトゲのプレイ日記をつけてるなら、そのネトゲのキーワード満載のグループを作って、一般キーワードリンク切ってそこに引きこもるとか。

現実的予想

実際は、はてながキーワードのカテゴリ分けを細かくして、ユーザに登録数を絞ってもらうように要求する可能性もある。けど、既存語彙の分類しなおしは人力でするしかない上に、どの程度のユーザが設定をいじってくれるのかも疑問。

キーワードでつながる面白ブログ

以下、メタな与太話。
はてなダイアリーは「キーワードでつながる面白ブログ」として始まったが、ユーザ数が膨れ上がるに従って、ユーザの多様性も増していった。その中には、自分とほとんど重ならない語彙の世界でブログをつけている人も多いだろう。すべての人と「つながる」事はできない。
学校の同じクラスの仲間にはシンパシーを感じられても、宇宙船地球号(笑)乗組員として同じレベルで世界全体の人に共感できる人はいないだろう。人があるコミュニティの中全体と共感を持つ事が可能なのは、そのコミュニティの規模が小さい場合だけだ。
物理的な処理量以前の問題として、こういうところでも「限界」が来ているのかも知れない。

書き余した内容

しかし、専門語彙をグループに分離し、一般的語彙だけをキーワードにしたとして、それって楽しいんだろうか。コアなワードで他のユーザと「つながる」からこそキーワードは楽しいのではないか。

追記:草稿をそのまま上げてしまい、引用文の挿入を忘れてました。ので追加

*1:グループキーワードは、グループに参加していなくともダイアリー設定からリンクをする事ができる。ちなみに当日記ではg:mohicanのキーワードをリンクする設定にしてます