7. ScyllaDB User Group Japan.
Slackに1行のメッセージから流れた(from木内)
• 李さん、こんなのがあるらしいよ!
• https://www.scylladb.com/
Topページをみると「The Real Time Big Database」
• Cassandra10倍速い,ノード毎に100万IOPS、オペレーションの99%が1ms、 Shrink
Nodes(1/5~1/10)
• うさん臭いなあ~
7
8. ScyllaDB User Group Japan.
ホワイトペーパのちょっと読んでみるも
• 高速である理由を説明する各種用語が難しい
• さらに、高速である必要性が理解できない
キーワードを調べながら数カ月が経った
• ScyllaDBは、計算資源をめぐるパラダイムのシフトを的確にとらえている
• 疑心暗鬼のところからある種の信念が芽生え始めた。 これは世の中のためになる!
8
https://www.scylladb.com/product/technology/
9. ScyllaDB User Group Japan.
計算資源をめぐって大変革が起きている
• 高コア数
• ラージメモリ(RAM)
• 高帯域のネットワーク
• 高スループットのストレージ
その理由は
• 計算資源の最大の買い手であるクラウドプロバイダーが求めている
• マルチディア、機械学習、AIなど廉価でリッチな計算資源のニーズが爆発的な増加している
9
32. ScyllaDB User Group Japan.
大雑把に言うと
• DISKは、高性能のSSDでも、同時並列に入出力できるIO数に臨界点が存在する。
• 最大同時実行数を超えたIOが発生すると、(IOキューをもっていても) 失速(ストール)を引き起こす。
OS依存の現在のアプリケーションでは制御できないし、OSが制御しているわけでもない。
DISK IO
32
33. ScyllaDB User Group Japan.
NVMe SSD
33
https://github.com/avikivity/diskplorer
←
まるで糞詰まりのような
現象である
デジタル世界なのに可笑
しいが、現実に起きてい
る
37. ScyllaDB User Group Japan. 37
区分 NoSQL
データベース KVS ドキュメントDB グラフDB
データモデル キーバリュー ワイドカラム ドキュメント グラフ
OSS ・Redis
・Memcachd
・Riak
・Cassandra
(Datastax)
・ScyllaDB
・HBase(Hdoop)
・MongoDB
・Couchbase
・Neo4j Community
商用製品 ・Oracle NoSQL DB ・ScyllaDB EE Neo4j EE
Oracle
クラウド ・Google Cloud
Databas
・Amazon
ElasticCache
・Azure Redis Cache
・Amazon
Dynamo DB
・Google
BigTable(HBase)
・Azure Cosmos(ド
キュメントAPP)
・IBM Cloudant
・AWS Neptune
・Azure Cosmos Graph
APP
出典:RDB技術者のためのNoSQLガイド,秀和システム,2016
38. ScyllaDB User Group Japan.
• マスタ―型(MongoDB)
• P2P型(Peer to Peer, マスターレス, ScyllaDB, Cassandra)
クラスタ―のアーキテクチャー
38
M
S S
コピー
01-30
01-30 01-30
01-05 06-10
11-15
16-2021-25
26-30
・ 1台のマスターと、複数レプリカで構成
・キャパシティーの拡張はスケールアップ
・論理的なデータ数制限はない
・スケールアウト(シャーディング)
01-05
06-10
01-05
26-30
06-10
11-15
11-15
16-20
16-20
21-25
21-25
01-05
・ノード間でクロスでN個のレプリカを持つ
・キャパシティの拡張は水平分散スケールアウト
・高可用性と拡張性の両方を満たす構造
・単一障害点(spof)がない
M
S S
M
S S
M
S S
・・・
40. ScyllaDB User Group Japan.
ビックデータ処理PFのツールマッピング
40
Real Time Process
Message Pool
画像/音声
File Store
Near Real Time
Process
Batch Process
Data Store
テキスト
GW
MQTT?
データマート
データレイク
データソース
Data Mart
Service
Queue
画像処理
65. ScyllaDB User Group Japan.
Scylla Beneifts
65
CassandraをJavaからC++でリプレース
C ++はしばしば1970年代のC言語に根ざした伝統的な命令型言語であると考えられているが、過
去数年間、完全に近代化されており、ラムダ、メタプログラミング、関数型プログラミングなど
の現代的パラダイムに移行している
66. ScyllaDB User Group Japan.
Scylla Beneifts
66
Cassandraに接続するために何を使用していても、現在の実装を利用し、IPアドレスを
Scyllaクラスタに変更するだけで動作する
88. ScyllaDB User Group Japan.
続き
88
マテリアライズド・ビューでキーには、パーティション・キーおよびクラスタリング・キーが存
在し、検索は、マテリアライズド・ビューを参照し、ダイレクトに行にアクセスする。
フェーズ(1)では、クエリはノード7
に到着し、ノード7はクエリのコーデ
ィネータとして機能する。ノードは、
索引付けされた列を問合せしているた
め、フェーズ(2)で、
「user@example.com」の索引表の行
を持つノード2の索引読取り表を発行
します。クエリは、フェーズ(3)で
使用されてインデックス付きテーブル
の内容を取得するユーザーIDのセット
を返します。
89. ScyllaDB User Group Japan.
ScyllaDB v2.0からパーティションのサブセットのみをキャッシュ
• パーティション全部を持ってこない
• 読み込みの無駄な増幅を回避
Row-granularity Population
89
https://www.scylladb.com/2018/07/26/how-scylla-data-cache-works/
90. ScyllaDB User Group Japan.
データはパーティション単位でキャッシュし、パージもパーティション単位
• 伝統的なCassandra実装
• これは遅延を誘発
従来では
90
91. ScyllaDB User Group Japan. 91
これでScyllaDBの高速性に関する主な箇所は
説明させて頂きました!
ScyllaDBは、日々進化しています。
次をお楽しみにしてください。