Netflix: 結果整合性の許容範囲は広がってしかるべき

https://www.youtube.com/watch?v=6R1WhWkh6pg

2 comments | 3 points | by WazanovaNews 2年以上前 edited


Jshiike 2年以上前 | ▲upvoteする | link

Cassandra Day Silicon Valley 2014でのChristos Kalantzis (Cloud DB Engineering Manager, Netflix) の講演。

  • 10年前を思い出してほしい、データの書込みは1台のマスターに、読込みは複数のスレーブで担いスケールさせていた。ウェブサービスでよく使われていた手法だが、レプリが完全に行われないケースはありえた。
  • Cassandraの場合は、大量のデータ処理でも結果整合性の遅延は極短く、信頼性高く、かつデータ修復機能もある。チューニングできるシステム。
  • Netflixでの実験:
  • - 二箇所のデータセンタで、Cassandra 1.1.7のクラスタを48ノード用意。
  • - Cassandraクラスタで、データセンタあたり50K/秒、全体で100K/秒のオペレーションを実施。
  • - 一つのデータセンタで百万件の書込みを実行。
  • - 別のデータセンタで、同じ百万件のデータを読込み。
  • - データは全件読込み成功。
  • 結果整合性を否定する悲観的ソフトウェアデザインは遅延を招き、99.9%のユーザのユーザエクスペリエンスに影響する。結果整合性を許容する楽観的なソフトウェアデザインで、万が一のエッジケースの対処を考えておけばよい。
  • Netflixのサイトのプレイリストに掲載されている映画をクリックして、「その映画はありません。」という表示になってしまう可能性が1%あったとしても、Netflixを退会しようという動機にはならない。
  • 小売業の在庫管理システムだからといって、結果整合性を許容できないわけではない。Amazonの在庫管理システムは結果整合性を採用している。ごく稀に、サイト上で購入完了したものが、「実は在庫がなかったので、お詫びに割引クーポンを受取りください。」というメールがくることがある。
  • (米国の) 銀行は、小切手を利用できるという時点で、そもそも結果整合性を前提とした仕組み。もらった小切手が後で換金できなかったとわかることがある。自分は銀行にも長く勤務したが、銀行はお金を支払うときも結果整合性になるケースがある。銀行は各支店ごとにミニメインフレームをもつ仕組みになっていて、バッチ処理している。(よって、本当の残高がわかる前に支払をしてしまって、バッチ処理後に)口座残高がマイナスになることはある。
  • Cassandraを使えば、結果整合性をもっと許容できるケースは多いはず。エンジニアは、Cassandraを使ってProof of Conceptをつくり、経営者 / 上司 / プロダクト部門を説得しよう。ユーザエクスペリエンスがあがるということで理解を得よう。もし納得してくれなかったら?多分働いている会社が悪い。Netflixは採用中です!

#netflix #cassandra

Jshiike 2年以上前 | ▲upvoteする | link

昨日の「ブロックチェーンをもう一段深く理解する」のポイントは、リスクをゼロにすることが別の次元の問題を生み出してしまう、もしくはコスト的に不可能なときに、ゼロに近い確率に下げることで前に進もうというところ。その考え方と共通しているなという点で興味深かったです。

Back