Overhaul: O(N) => O(1). * 1000 unique-host-get-3-pages causes 3000 writes => 1000 writes + 2000 reads. * Four crawler-get-300-pages causes 1200 writes => 4 writes + 1196 reads. * 100 online plugin in a page causes 100 writes => 1 write + 99 caches
従来のonlineプラグインにボトルネック(常時ファイルに書き込む、ファイルロックの待ち行列が発生しやすい、再呼び出し時の動作が重い)がありそうでしたので、作り直しました。
O(N): 負荷は総アクセス数(ユニークユーザー数 x 平均アクセス数)に比例する * ユニークなホスト 1000 台がそれぞれ 3 ページにアクセスした場合、 3000 回のファイル書き込みが発生する * 4 台のWebクローラーが300ページにアクセスした場合、 1200 回のファイル書き込みが発生する * onlineプラグインを100個設置すると 100 回のファイル書き込みが発生する
O(1): 負荷はユニークユーザー数に比例する * ユニークなホスト 1000 台がそれぞれ 3 ページにアクセスした場合、 1000 回のファイル書き込み(と2000回のファイル読み込み)が発生する * 4 台のWebクローラーが300ページにアクセスした場合、 4 回のファイル書き込み(と1196回のファイル読み込み)が発生する * onlineプラグインを100個設置すると 1 回のファイル書き込み(と99回のメモリ上のキャッシュ参照)が発生する