SlideShare a Scribd company logo
1 of 16
Apache Cassandra
分散システムのツアー #2
Chris
2014/7/29
#m3dev
https://github.com/m3dev/distrib-systems-tour
Cassandra
● 分散 key-value store
o “schema-optional”
● Fault tolerance、可用性
o 自動レプリケート
o 単一障害点なし
● リニアにスケールする
● Eventual consistency
o チューニング可能
● 複数DC構成を考慮した設計
データ構成
● keyspace ≒ DB スキーマ
● column family ≒ DBテーブル
● unique primary key 必須
● 型あり:int, varchar, timestamp, uuid, ...
Column family: Users
123
Primary key
user_id
name
Chris
age
29
likes
ramen
dislikes
sushi
456
name
Bob
age
35
注意:SuperColumns
複数のk-vペアをまとめる「サーパーカラム」
もあるが、Deprecateされている
古いドキュメントやブログによく出るので、
無視してください
CQL (Cassandra Query Language)
CREATE KEYSPACE demo WITH REPLICATION =
{ 'class' : 'SimpleStrategy', 'replication_factor' : 1
};
USE demo;
CREATE TABLE users(
user_id int PRIMARY KEY,
name varchar,
age int,
likes varchar,
dislikes varchar);
CQL: INSERT
INSERT INTO users (user_id, name, age, likes, dislikes)
VALUES ( 123, 'chris', 29, 'ramen', 'sushi');
INSERT INTO users (user_id, name, age)
VALUES ( 456, 'bob', 35);
実は、INSERTもUPDATEもアトミックな UPSERT をする
例えば
INSERT INTO users (user_id, age)
VALUES ( 123, 30);
で上記のユーザ123のageは更新される
CQL: SELECT
SELECT * FROM users;
user_id | age | dislikes | likes | name
---------+-----+----------+-------+-------
123 | 30 | sushi | ramen | chris
456 | 35 | null | null | bob
(2 rows)
● レコードはPRIMARY KEYでソートされる
● レコード内のキーはアルファベット順でソートされる
クエリ制限(1)
● 任意のキーでクエリできない
o PRIMARY KEY、インデックスされたキーのみ
cqlsh:demo> SELECT * FROM users WHERE user_id = 123;
user_id | age | dislikes | likes | name
---------+-----+----------+-------+-------
123 | 30 | sushi | ramen | chris
cqlsh:demo> SELECT * FROM users WHERE name = 'chris';
Bad Request: No indexed columns present in by-columns
clause with Equal operator
クエリ制限(2)
● JOINができない
o アプリ側でJOINする、or
o materialized view作る(denormalization)
 クエリに対応するテーブルを作成する
 アプリ側でテーブル内容を常時更新する
SQL
select u.id, p.name
from user u join product p on u.product_id = p.id
CQL
select user_id, product_name from user_product
便利機能:counter型
CREATE TABLE page_views(
url varchar PRIMARY KEY, views counter);
UPDATE page_views
SET views = views + 1
WHERE url = ‘www.m3.com’;
便利機能:TTL
CREATE TABLE hoge(foo int PRIMARY KEY, bar varchar);
INSERT INTO hoge(foo, bar) VALUES (123, ‘abc’) USING TTL
10;
cqlsh:demo> select * from hoge;
foo | bar
-----+-----
123 | abc
10秒待つ。。。
cqlsh:demo> select * from hoge;
(0 rows)
Consistency levels
● 一貫性と可用性とのトレードオフ
● read, writeそれぞれチューニング可能
● クエリ単位でレベルを選べる
● ANY:ノード1台(どれでもいい)
● ALL:全ノード
● EACH_QUORUM:各データセンターにおいて
1台以上
● 。。。
Consistent hashing
66
33
99
token = hash(key) mod n
リニアにスケールする
● Netflix社がAWS上でベンチマークを取った
http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html
288台で
100万writes/s!!
ライブラリ
● Java
o DataStax driver
o Netflix Astyanax
● Scala
o Scqla
● Ruby
o cql-rb
● Node
o Helenus
o node-cassandra-cql
ハンズオン!
OSX: brew install cassandra
or, AWS上に稼働中のCassandra を使う
ec2-54-92-114-167.ap-northeast-
1.compute.amazonaws.com
https://github.com/m3dev/distrib-systems-tour

More Related Content

What's hot

当社のawsへの取組
当社のawsへの取組当社のawsへの取組
当社のawsへの取組Mercari Inc.
 
EC2に対するcloudwatchのアクション設定がポリシーで使えないときの代替策
EC2に対するcloudwatchのアクション設定がポリシーで使えないときの代替策EC2に対するcloudwatchのアクション設定がポリシーで使えないときの代替策
EC2に対するcloudwatchのアクション設定がポリシーで使えないときの代替策Daisuke Nagao
 
究極のバッチフレームワーク(予定)
究極のバッチフレームワーク(予定)究極のバッチフレームワーク(予定)
究極のバッチフレームワーク(予定)fumoto kazuhiro
 
Awsルーキーの考えたcdp
Awsルーキーの考えたcdpAwsルーキーの考えたcdp
Awsルーキーの考えたcdpMikawa Kouta
 
EC-CUBEの設計思想について
EC-CUBEの設計思想についてEC-CUBEの設計思想について
EC-CUBEの設計思想についてKentaro Ohkouchi
 
cronからjobschedulerにマイグレーションする方法
cronからjobschedulerにマイグレーションする方法cronからjobschedulerにマイグレーションする方法
cronからjobschedulerにマイグレーションする方法賢 秋穂
 
Migr8.rb チュートリアル
Migr8.rb チュートリアルMigr8.rb チュートリアル
Migr8.rb チュートリアルkwatch
 
Pg14_sql_standard_function_body
Pg14_sql_standard_function_bodyPg14_sql_standard_function_body
Pg14_sql_standard_function_bodykasaharatt
 

What's hot (11)

当社のawsへの取組
当社のawsへの取組当社のawsへの取組
当社のawsへの取組
 
EC2に対するcloudwatchのアクション設定がポリシーで使えないときの代替策
EC2に対するcloudwatchのアクション設定がポリシーで使えないときの代替策EC2に対するcloudwatchのアクション設定がポリシーで使えないときの代替策
EC2に対するcloudwatchのアクション設定がポリシーで使えないときの代替策
 
究極のバッチフレームワーク(予定)
究極のバッチフレームワーク(予定)究極のバッチフレームワーク(予定)
究極のバッチフレームワーク(予定)
 
Awsルーキーの考えたcdp
Awsルーキーの考えたcdpAwsルーキーの考えたcdp
Awsルーキーの考えたcdp
 
T2micro
T2microT2micro
T2micro
 
EC-CUBEの設計思想について
EC-CUBEの設計思想についてEC-CUBEの設計思想について
EC-CUBEの設計思想について
 
cronからjobschedulerにマイグレーションする方法
cronからjobschedulerにマイグレーションする方法cronからjobschedulerにマイグレーションする方法
cronからjobschedulerにマイグレーションする方法
 
Ansible入門
Ansible入門Ansible入門
Ansible入門
 
Migr8.rb チュートリアル
Migr8.rb チュートリアルMigr8.rb チュートリアル
Migr8.rb チュートリアル
 
Mysql casial01
Mysql casial01Mysql casial01
Mysql casial01
 
Pg14_sql_standard_function_body
Pg14_sql_standard_function_bodyPg14_sql_standard_function_body
Pg14_sql_standard_function_body
 

Similar to Tour of distributed systems 2 - Cassandra

Chugoku db 20th-postgresql-10-pub
Chugoku db 20th-postgresql-10-pubChugoku db 20th-postgresql-10-pub
Chugoku db 20th-postgresql-10-pubToshi Harada
 
ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報Kazuki Takai
 
AWS Black Belt Techシリーズ AWS Command Line Interface
AWS Black Belt Techシリーズ  AWS Command Line InterfaceAWS Black Belt Techシリーズ  AWS Command Line Interface
AWS Black Belt Techシリーズ AWS Command Line InterfaceAmazon Web Services Japan
 
SugarCRM meets Azure
SugarCRM meets AzureSugarCRM meets Azure
SugarCRM meets AzureToshiya TSURU
 
Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4Ransui Iso
 
KOF2015 PostgreSQL 9.5
KOF2015 PostgreSQL 9.5KOF2015 PostgreSQL 9.5
KOF2015 PostgreSQL 9.5Toshi Harada
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみたA 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみたGoAzure
 
Infrastructure as code for azure
Infrastructure as code for azureInfrastructure as code for azure
Infrastructure as code for azureKeiji Kamebuchi
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門Sho A
 
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたAwsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたSunao Tomita
 
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンAzure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンKazuyuki Miyake
 
Ntt tx-study-postgre sql-10
Ntt tx-study-postgre sql-10Ntt tx-study-postgre sql-10
Ntt tx-study-postgre sql-10Toshi Harada
 
Rails SQL Injection Examplesの紹介
Rails SQL Injection Examplesの紹介Rails SQL Injection Examplesの紹介
Rails SQL Injection Examplesの紹介Hiroshi Tokumaru
 
MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理Shinya Sugiyama
 
20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-publicAmazon Web Services Japan
 
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築Kazuki Takai
 
SQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのかSQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのかyancya
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンKazuyuki Miyake
 

Similar to Tour of distributed systems 2 - Cassandra (20)

Chugoku db 20th-postgresql-10-pub
Chugoku db 20th-postgresql-10-pubChugoku db 20th-postgresql-10-pub
Chugoku db 20th-postgresql-10-pub
 
ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報
 
AWS Black Belt Techシリーズ AWS Command Line Interface
AWS Black Belt Techシリーズ  AWS Command Line InterfaceAWS Black Belt Techシリーズ  AWS Command Line Interface
AWS Black Belt Techシリーズ AWS Command Line Interface
 
SugarCRM meets Azure
SugarCRM meets AzureSugarCRM meets Azure
SugarCRM meets Azure
 
Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4
 
KOF2015 PostgreSQL 9.5
KOF2015 PostgreSQL 9.5KOF2015 PostgreSQL 9.5
KOF2015 PostgreSQL 9.5
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
Embulk 20150411
Embulk 20150411Embulk 20150411
Embulk 20150411
 
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみたA 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
 
Infrastructure as code for azure
Infrastructure as code for azureInfrastructure as code for azure
Infrastructure as code for azure
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門
 
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたAwsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
 
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンAzure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
 
Ntt tx-study-postgre sql-10
Ntt tx-study-postgre sql-10Ntt tx-study-postgre sql-10
Ntt tx-study-postgre sql-10
 
Rails SQL Injection Examplesの紹介
Rails SQL Injection Examplesの紹介Rails SQL Injection Examplesの紹介
Rails SQL Injection Examplesの紹介
 
MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理
 
20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public
 
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
 
SQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのかSQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのか
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
 

More from Chris Birchall

Scala.js & friends: SCALA ALL THE THINGS
Scala.js & friends: SCALA ALL THE THINGSScala.js & friends: SCALA ALL THE THINGS
Scala.js & friends: SCALA ALL THE THINGSChris Birchall
 
Tour of Distributed Systems 3 - Apache Kafka
Tour of Distributed Systems 3 - Apache KafkaTour of Distributed Systems 3 - Apache Kafka
Tour of Distributed Systems 3 - Apache KafkaChris Birchall
 
Guess the Country - Playing with Twitter Streaming API
Guess the Country - Playing with Twitter Streaming APIGuess the Country - Playing with Twitter Streaming API
Guess the Country - Playing with Twitter Streaming APIChris Birchall
 
Tour of distributed systems 1 - ZooKeeper
Tour of distributed systems 1 - ZooKeeperTour of distributed systems 1 - ZooKeeper
Tour of distributed systems 1 - ZooKeeperChris Birchall
 
ScalaCache: simple caching in Scala
ScalaCache: simple caching in ScalaScalaCache: simple caching in Scala
ScalaCache: simple caching in ScalaChris Birchall
 
Load testing with gatling
Load testing with gatlingLoad testing with gatling
Load testing with gatlingChris Birchall
 
Debugging and Testing ES Systems
Debugging and Testing ES SystemsDebugging and Testing ES Systems
Debugging and Testing ES SystemsChris Birchall
 
Phone Home: A client-side error collection system
Phone Home: A client-side error collection systemPhone Home: A client-side error collection system
Phone Home: A client-side error collection systemChris Birchall
 
Branching Strategies: Feature Branches vs Branch by Abstraction
Branching Strategies: Feature Branches vs Branch by AbstractionBranching Strategies: Feature Branches vs Branch by Abstraction
Branching Strategies: Feature Branches vs Branch by AbstractionChris Birchall
 

More from Chris Birchall (11)

Scala.js & friends: SCALA ALL THE THINGS
Scala.js & friends: SCALA ALL THE THINGSScala.js & friends: SCALA ALL THE THINGS
Scala.js & friends: SCALA ALL THE THINGS
 
Rust 超入門
Rust 超入門Rust 超入門
Rust 超入門
 
Tour of Distributed Systems 3 - Apache Kafka
Tour of Distributed Systems 3 - Apache KafkaTour of Distributed Systems 3 - Apache Kafka
Tour of Distributed Systems 3 - Apache Kafka
 
Guess the Country - Playing with Twitter Streaming API
Guess the Country - Playing with Twitter Streaming APIGuess the Country - Playing with Twitter Streaming API
Guess the Country - Playing with Twitter Streaming API
 
Tour of distributed systems 1 - ZooKeeper
Tour of distributed systems 1 - ZooKeeperTour of distributed systems 1 - ZooKeeper
Tour of distributed systems 1 - ZooKeeper
 
ScalaCache: simple caching in Scala
ScalaCache: simple caching in ScalaScalaCache: simple caching in Scala
ScalaCache: simple caching in Scala
 
Hydra
HydraHydra
Hydra
 
Load testing with gatling
Load testing with gatlingLoad testing with gatling
Load testing with gatling
 
Debugging and Testing ES Systems
Debugging and Testing ES SystemsDebugging and Testing ES Systems
Debugging and Testing ES Systems
 
Phone Home: A client-side error collection system
Phone Home: A client-side error collection systemPhone Home: A client-side error collection system
Phone Home: A client-side error collection system
 
Branching Strategies: Feature Branches vs Branch by Abstraction
Branching Strategies: Feature Branches vs Branch by AbstractionBranching Strategies: Feature Branches vs Branch by Abstraction
Branching Strategies: Feature Branches vs Branch by Abstraction
 

Recently uploaded

UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Recently uploaded (7)

UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

Tour of distributed systems 2 - Cassandra