Upgrade to Pro — share decks privately, control downloads, hide ads and more …

cassandra 入門 2回目 #TechLunch

cassandra 入門 2回目 #TechLunch

2012/04/18(水) @ Livesense TechLunch
発表者:春日 太志

Livesense Inc.

April 23, 2014
Tweet

More Decks by Livesense Inc.

Other Decks in Technology

Transcript

  1. ⽬目次 Livesense  Inc. 2 1.  Eric  Brewerʼ’s  CAP  Theorem 2. 

    Network  Topology 3.  Gossip  Protocol 4.  Φ  Accrual  Failure  Detector 5.  Hinted  Hand  off 6.  Read  Repair 7.  設定可能な⼀一貫性 8.  Memtable、SSTable、Commit  Log 9.  Compaction 10. Tombstone 11. Bloom  Filter 12. Staged  Event  Driven  Architecture
  2. ⽬目次 Livesense  Inc. 3 1.  Eric  Brewerʼ’s  CAP  Theorem 2. 

    Network  Topology 3.  Gossip  Protocol 4.  Φ  Accrual  Failure  Detector 5.  Hinted  Hand  off 6.  Read  Repair 7.  設定可能な⼀一貫性 8.  Memtable、SSTable、Commit  Log 9.  Compaction 10. Tombstone 11. Bloom  Filter 12. Staged  Event  Driven  Architecture
  3. 1-‐‑‒2.  Eric  Brewerʼ’s  CAP  Theorem Livesense  Inc. 5 すべてのデータベースクライアントは どのような並列列な更更新時においても

    読み込みのクエリが同⼀一であれば 同じ結果しか返さない。 ⼀一貫性(Consistency) SELECT SUM(price) FROM order WHERE goods_id = 777; \127,000 \127,000
  4. 1-‐‑‒5.  Eric  Brewerʼ’s  CAP  Theorem Livesense  Inc. 8 C A

    P MySQL SQL  Server Postgres Neo4J    Bigtable    MongoDB    HBase Hypertable    Redis Dynamo Cassandra Voldemort CouchDB Riak
  5. ⽬目次 Livesense  Inc. 9 1.  Eric  Brewerʼ’s  CAP  Theorem 2. 

    Network  Topology 3.  Gossip  Protocol 4.  Φ  Accrual  Failure  Detector 5.  Hinted  Hand  off 6.  Read  Repair 7.  設定可能な⼀一貫性 8.  Memtable、SSTable、Commit  Log 9.  Compaction 10. Tombstone 11. Bloom  Filter 12. Staged  Event  Driven  Architecture
  6. 2.  Network  Topology Livesense  Inc. 10 Ring P2P P2P P2P

    P2P P2P P2P ・⾮非中央集中型 ・Master/Slaveなし ・P2P分散モデル
  7. ⽬目次 Livesense  Inc. 11 1.  Eric  Brewerʼ’s  CAP  Theorem 2. 

    Network  Topology 3.  Gossip  Protocol 4.  Φ  Accrual  Failure  Detector 5.  Hinted  Hand  off 6.  Read  Repair 7.  設定可能な⼀一貫性 8.  Memtable、SSTable、Commit  Log 9.  Compaction 10. Tombstone 11. Bloom  Filter 12. Staged  Event  Driven  Architecture
  8. ⽬目次 Livesense  Inc. 13 1.  Eric  Brewerʼ’s  CAP  Theorem 2. 

    Network  Topology 3.  Gossip  Protocol 4.  Φ  Accrual  Failure  Detector 5.  Hinted  Hand  off 6.  Read  Repair 7.  設定可能な⼀一貫性 8.  Memtable、SSTable、Commit  Log 9.  Compaction 10. Tombstone 11. Bloom  Filter 12. Staged  Event  Driven  Architecture
  9. 4.  Φ  Accrual  Failure  Detector Livesense  Inc. 14 ・ハートビートの応答による2択判定では曖昧 ・ノードの故障率率率「容疑レベル」をレポート

    ・死んでたら「有罪判定」を宣告 ・org.apache.cassandra.gms.FailureDetector #isAlive(InetAddress) #interpret(InetAddress) #report(InetAddress) ...ノードの⽣生存レポートを出⼒力力 ...Φ計算で出た故障レベルに基づいた⽣生死判定 ...ハートビートを受け取った際に実⾏行行
  10. ⽬目次 Livesense  Inc. 15 1.  Eric  Brewerʼ’s  CAP  Theorem 2. 

    Network  Topology 3.  Gossip  Protocol 4.  Φ  Accrual  Failure  Detector 5.  Hinted  Hand  off 6.  Read  Repair 7.  設定可能な⼀一貫性 8.  Memtable、SSTable、Commit  Log 9.  Compaction 10. Tombstone 11. Bloom  Filter 12. Staged  Event  Driven  Architecture
  11. 5.  Hinted  Hand  off Livesense  Inc. 16 ・落落ちたノードに書き込み予定だった情報を   他のノードがヒントとしてメモ ・落落ちたノードが復復活したらメモを受け渡す

    ・可⽤用性を損なわないようにするための仕組み 【⽋欠点】 ・停⽌止時間が⻑⾧長いと周りのノードがメモだらけ ・復復活と同時に⼤大量量のメモ受け渡しが発⽣生してしまう ※無効にしたり、処理理優先度度を下げたりできる
  12. ⽬目次 Livesense  Inc. 17 1.  Eric  Brewerʼ’s  CAP  Theorem 2. 

    Network  Topology 3.  Gossip  Protocol 4.  Φ  Accrual  Failure  Detector 5.  Hinted  Hand  off 6.  Read  Repair 7.  設定可能な⼀一貫性 8.  Memtable、SSTable、Commit  Log 9.  Compaction 10. Tombstone 11. Bloom  Filter 12. Staged  Event  Driven  Architecture
  13. ⽬目次 Livesense  Inc. 19 1.  Eric  Brewerʼ’s  CAP  Theorem 2. 

    Network  Topology 3.  Gossip  Protocol 4.  Φ  Accrual  Failure  Detector 5.  Hinted  Hand  off 6.  Read  Repair 7.  設定可能な⼀一貫性 8.  Memtable、SSTable、Commit  Log 9.  Compaction 10. Tombstone 11. Bloom  Filter 12. Staged  Event  Driven  Architecture
  14. 7-‐‑‒2.  設定可能な⼀一貫性(読み込み) Livesense  Inc. 21 ZERO ANY ONE QUORUM ALL

    設定不不可 設定不不可 最初のノードのデータを返す 最新であるとは限らない ⼤大半のノードが返答すると 最新のデータを返す 全ノードが返答すると最新のデータを返す 読み込み時のクエリに⼀一貫性を指定できる。
  15. 7-‐‑‒3.  設定可能な⼀一貫性(書き込み) Livesense  Inc. 22 ZERO ANY ONE QUORUM ALL

    即座に応答、⾮非同期、成功保証なし 最低1ノードへの書き込みを保証 ヒントもカウント 最低1ノードへの書き込みを保証 ⼤大半のノードへの書き込みを保証 全ノードへの書き込みを保証 書き込み時のクエリにも⼀一貫性を指定できる。
  16. ⽬目次 Livesense  Inc. 23 1.  Eric  Brewerʼ’s  CAP  Theorem 2. 

    Network  Topology 3.  Gossip  Protocol 4.  Φ  Accrual  Failure  Detector 5.  Hinted  Hand  off 6.  Read  Repair 7.  設定可能な⼀一貫性 8.  Memtable、SSTable、Commit  Log 9.  Compaction 10. Tombstone 11. Bloom  Filter 12. Staged  Event  Driven  Architecture
  17. 8-‐‑‒2.  Memtable、SSTable、Commit  Log Livesense  Inc. 25 Commit  Log ・Cassandraのすべての書き込み記録 ・更更新時に必ず最初に記録

    ・追記モードで記録 ・org.apache.cassandra.db.commitlog.CommitLog ・RowMutationオブジェクトをserializeして追記 ・commitlog_̲rotation_̲threshold_̲in_̲mbで   ファイルサイズ指定、デフォルトは128MB
  18. 8-‐‑‒3.  Memtable、SSTable、Commit  Log Livesense  Inc. 26 Memtable ・ColumnFamilyごとに1つのmemtableを持つ ・memtable_̲throughput_̲in_̲mbでメモリ上に   展開できる最⼤大サイズを指定

    ・memtable_̲operations_̲in_̲millionsでdiskへflash   される前に保持できるColumn数の閾値を指定 ・org.apache.cassandra.db.Memtable
  19. 8-‐‑‒4.  Memtable、SSTable、Commit  Log Livesense  Inc. 27 SSTable ・Memtableからflashされたデータファイル ・data/index/filterの3つのファイルで構成 ・Sorted

     String  Table  の略略で  Bigtable  から継承 ・⼀一度度flashされたら不不変となる ・追記モードでflashされる ・JSON形式でimport/exportが可能 ・Compactionでマージされ圧縮される
  20. ⽬目次 Livesense  Inc. 28 1.  Eric  Brewerʼ’s  CAP  Theorem 2. 

    Network  Topology 3.  Gossip  Protocol 4.  Φ  Accrual  Failure  Detector 5.  Hinted  Hand  off 6.  Read  Repair 7.  設定可能な⼀一貫性 8.  Memtable、SSTable、Commit  Log 9.  Compaction 10. Tombstone 11. Bloom  Filter 12. Staged  Event  Driven  Architecture
  21. 9.  Compaction Livesense  Inc. 29 ・データファイルの圧縮処理理 ・SSTableのデータがマージされる ・Key  のマージ ・Column

     の結合 ・データの削除 ・indexの再作成 ・org.apache.cassandra.db.compaction.CompactionManager
  22. ⽬目次 Livesense  Inc. 30 1.  Eric  Brewerʼ’s  CAP  Theorem 2. 

    Network  Topology 3.  Gossip  Protocol 4.  Φ  Accrual  Failure  Detector 5.  Hinted  Hand  off 6.  Read  Repair 7.  設定可能な⼀一貫性 8.  Memtable、SSTable、Commit  Log 9.  Compaction 10. Tombstone 11. Bloom  Filter 12. Staged  Event  Driven  Architecture
  23. ⽬目次 Livesense  Inc. 32 1.  Eric  Brewerʼ’s  CAP  Theorem 2. 

    Network  Topology 3.  Gossip  Protocol 4.  Φ  Accrual  Failure  Detector 5.  Hinted  Hand  off 6.  Read  Repair 7.  設定可能な⼀一貫性 8.  Memtable、SSTable、Commit  Log 9.  Compaction 10. Tombstone 11. Bloom  Filter 12. Staged  Event  Driven  Architecture
  24. ⽬目次 Livesense  Inc. 34 1.  Eric  Brewerʼ’s  CAP  Theorem 2. 

    Network  Topology 3.  Gossip  Protocol 4.  Φ  Accrual  Failure  Detector 5.  Hinted  Hand  off 6.  Read  Repair 7.  設定可能な⼀一貫性 8.  Memtable、SSTable、Commit  Log 9.  Compaction 10. Tombstone 11. Bloom  Filter 12. Staged  Event  Driven  Architecture
  25. 12.  Staged  Event  Driven  Architecture Livesense  Inc. 35 ・Cassandraの並⾏行行モデルはSEDAをベースにしている ・処理理をステージごとに細かく分割して並⾏行行実⾏行行

    ・ステージごとに動作するThreadが異異なる ・ステージに関連付けられたThread  Poolが実⾏行行を制御 ・java.util.concurrent.ExecutorService ・org.apache.cassandra.concurrent.StageManager