Japanese subtitles

← 07-29 Lock Contention

Get Embed Code
4 Languages

Showing Revision 2 created 03/12/2014 by Fran Ontanaya.

  1. 他に何かありますか?
  2. 今 大きな問題はロックコンテンションです
  3. Cassandraの話をした時も言いましたが
  4. 人気のあるsubredditのリンクに投票しようとすると
  5. いつもsubredditリストで
    ロックしてしまう現象が起きます
  6. 最近の例を挙げましょう
  7. 誰かが投票したキューを
  8. キュープロセッサが受け取ります
  9. 読み取り用のマシンがあって
  10. これらのアプリがキューの状況を書き出していて
  11. さらに他の多数のマシンがキューを
    読み出しているのですね
  12. このマシンはキューを取り出して
  13. リストを更新し 投票があったということを
  14. PostgreSQLとCassandraに記録しようとします
  15. この過程のどこかで
  16. ロックが多発しているのです
  17. 同時にたくさんの投票が行われるので
  18. 投票用のキュープロセッサを
    多数用意しているのですが
  19. これが多すぎたためお互いに競合し合って
    ロックを起こしてしまったのです
  20. キュープロセッサの数を制限すると
  21. 処理が速くなりました
  22. 速度のため数は必要だが 多すぎると今度はお互いに
  23. 競合して時間を使ってしまうんですね
  24. この問題を解決するために
  25. 今はCassandraのロックをできるだけ
  26. 排除しようと努力しています
  27. ロックは普遍のテーマですね
  28. Python自体にも問題があって
  29. 以前Amazonのサービスに変えた時マルチスレッドで
  30. 同時に2本のプログラムを走らせると問題が出たのです
  31. Pythonはデータ構造をロックするのに時間を要し
  32. 2つのスレッドが同じデータ構造に
    アクセスすると
  33. ネットワーク上のトラフィックを読み込む
    コンピュータの能力を遅くします
  34. それによりスレッドを切り替えるのに時間を要します
  35. それでネットワークとCPUの
    スラッシング問題を起こすのです
  36. これはPythonをシングルスレッドにして
  37. リクエストを一度に1つずつ
    処理するようにしたら解決しました
  38. 今でもそのようになっているはずです
  39. スレッドを使うことはあまりないですね
  40. アドサーバがスレッドを使うくらいです
  41. 1つのマシンで多くのプロセスを実行させるんですね
  42. OSが切り替えをしてくれるんです
  43. Linuxはそういう処理が得意ですね
  44. バックエンドでの実行を待つのに時間を使います
  45. 今日はありがとうございました
  46. あと1点つけ加えます
  47. 今日話題に上った主なもの すなわち
  48. memcached、Zookeeper、Cassandra
    Hadoop、AMQP、NGINX、HAProxyなどは
  49. すべてフリーソフトです
  50. 無料でこれだけのことができるのです
  51. お金をかけるのはハードのみでよく
  52. ソフトウエアはネット上で無料で公開されています
  53. Redditのコードも大部分はオープンソース化され
  54. オンラインでアクセス可能です
  55. URLは github.com/reddit です
  56. ここに書きますね
  57. サイトには今は
    私の名前は残っていないでしょうが
  58. このレッスンで見てきたコードを見つけられるでしょう
    パスワードやハッシュなどが
  59. 存在しているはずです
    一般的に使えます
  60. メーリングリストでも情報が得られます
  61. アーキテクチャの変更などが記述されているはずです
  62. ありがとうございました
  63. Redditの成長はすばらしいですね
  64. 大変な時代を乗り越えて
    成長させたことはすばらしいです
  65. あなたの功績ですよ
  66. 今回はこれで終わりです 次回お会いしましょう