https://www.youtube.com/watch?v=6R1WhWkh6pg
2 comments | 1 point | by WazanovaNews 約3時間前 edited
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
昨日の「ブロックチェーンをもう一段深く理解する」のポイントは、リスクをゼロにすることが別の次元の問題を生み出してしまう、もしくはコスト的に不可能なときに、ゼロに近い確率に下げることで前に進もうというところ。その考え方と共通しているなという点で興味深かったです。