SlideShare una empresa de Scribd logo
1 de 65
Descargar para leer sin conexión
Who wants to be a Cassandra Millionaire?
40-minutes of best practice - getting you ready for certification
@VictorFAnjos
Toronto Cassandra Day
2© 2015. All Rights Reserved. @VictorFAnjos
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
Welcome to
Who Wants to be a
Cassandra
Millionaire
50:50
@VictorFAnjos
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
@VictorFAnjos
5© 2015. All Rights Reserved.
A: NAS / SAN
C: DAS SATA
B: SSD
D: DAS SCSI
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
This storage
medium allows for
best performance.
@VictorFAnjos
6© 2015. All Rights Reserved.
@VictorFAnjos
A: NAS / SAN
C: DAS SATA
B: SSD
D: DAS SCSI
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
@VictorFAnjos
This storage
medium allows for
best performance.
Installation and considerations
how to store the datastore
Storage Area Network Solid State Drive
7© 2015. All Rights Reserved.
@VictorFAnjos
Installation and considerations
how to store the datastore
Local (DAS), iSCSI, Fiber Channel
8© 2015. All Rights Reserved.
@VictorFAnjos
● AVOID network storage like the plague
● Direct Attached Storage FTW
● Disk latency is a HUGE deal for performance
Installation and considerations
how to store the datastore
9© 2015. All Rights Reserved. 9
@VictorFAnjos
SATA/SAS DAS
PCIe/NVMe DAS
Installation and considerations
how to store the datastore
10© 2015. All Rights Reserved.
@VictorFAnjos
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
@VictorFAnjos
12© 2015. All Rights Reserved.
@VictorFAnjos
A: ZFS
C: Ext4
B: Btrfs
D: F2FS
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
When using SSDs,
this filesystem type
is best.
@VictorFAnjos
13© 2015. All Rights Reserved.
@VictorFAnjos
A: ZFS
C: Ext4
B: Btrfs
D: F2FS
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
When using SSDs,
this filesystem type
is best.
@VictorFAnjos
Congratulations!
You’ve Reached
the 1,000 ops/s
Milestone!
Congratulations!Congratulations!
@VictorFAnjos
Installation and considerations
i can’t believe it’s not btrfs
15© 2015. All Rights Reserved.
@VictorFAnjos
● easiest to use ext4 (it’s on most linux
distros), but F2FS get 5-10% gains in write
performance
● if NOT using F2FS, make sure to TRIM
● multiple disks → use RAID0
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
@VictorFAnjos
17© 2015. All Rights Reserved.
@VictorFAnjos
A: 0
C: Equal to HEAP
B: ½ of HEAP
D: EQUAL TO RAM
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
This is the
sweetspot for SWAP
when using C*
@VictorFAnjos
18© 2015. All Rights Reserved.
@VictorFAnjos
A: 0
C: Equal to HEAP
B: ½ of HEAP
D: EQUAL TO RAM
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
This is the
sweetspot for SWAP
when using C*
@VictorFAnjos
Installation and considerations
to swap or not to swap
19© 2015. All Rights Reserved.
@VictorFAnjos
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
@VictorFAnjos
21© 2015. All Rights Reserved.
@VictorFAnjos
A: 64G
C: 16G
B: 32G
D: 8G
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
Having 64G of RAM
means you should
optimize to have
___G of HEAP.
@VictorFAnjos
22© 2015. All Rights Reserved.
@VictorFAnjos
A: 64G
C: 16G
B: 32G
D: 8G
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
@VictorFAnjos
Having 64G of RAM
means you should
optimize to have
___G of HEAP.
Installation and considerations
how much heap?
23© 2015. All Rights Reserved.
@VictorFAnjos
http://docs.datastax.com/en/cassandra/1.2/cassandra/operations/ops_tune_jvm_c.html
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
@VictorFAnjos
25© 2015. All Rights Reserved.
@VictorFAnjos
A: EC2Snitch
C: Simple Snitch
B: Dynamic Snitch
D: Property File Snitch
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
Definitely DO NOT
use this snitch in
Multi-DC
environments.
@VictorFAnjos
26© 2015. All Rights Reserved.
@VictorFAnjos
A: EC2Snitch
C: Simple Snitch
B: Dynamic Snitch
D: Property File Snitch
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
@VictorFAnjos
Definitely DO NOT
use this snitch in
Multi-DC
environments.
Installation and considerations
son of a snitch
27© 2015. All Rights Reserved.
@VictorFAnjos
Installation and considerations
son of a snitch
28© 2015. All Rights Reserved.
@VictorFAnjos
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
@VictorFAnjos
30© 2015. All Rights Reserved.
@VictorFAnjos
A: Synchronous AND Full Queries
C: Synchronous AND Prepared Statements
B: Asynchronous AND Prepared Statements
D: Asynchronous AND Full Queries
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
To reduce latency
and wire time to my
app, I should opt
for.
@VictorFAnjos
31© 2015. All Rights Reserved.
@VictorFAnjos
A: Synchronous AND Full Queries
C: Synchronous AND Prepared Statements
B: Asynchronous AND Prepared Statements
D: Asynchronous AND Full Queries
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
To reduce latency
and wire time to my
app, I should opt
for.
@VictorFAnjos
Achieving performance through code/drivers
should I stay or should I go
32© 2015. All Rights Reserved.
@VictorFAnjos
● Client writes to any Cassandra node
● Coordinator node replicates to other nodes
(in local and remote Data Center)
● Local write acks returned to coordinator
● Client gets ack when enough total nodes
are committed
● Data written to internal commit log disks
● When data arrives, remote node replicates
data
MULTI DC
● Ack direct to source region coordinator
● Remote copies written to commit log disks
lf a node or region goes offline, hinted
handoff completes the write when the
node comes back up (as long as there are
enough nodes to satisfy consistency level).
Achieving performance through code/drivers
should I stay or should I go
33© 2015. All Rights Reserved.
@VictorFAnjos
Prepare ONCE...
Bind and Execute multiple times.
Achieving performance through code/drivers
should I stay or should I go
34© 2015. All Rights Reserved.
@VictorFAnjos
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
@VictorFAnjos
36© 2015. All Rights Reserved.
@VictorFAnjos
A: 1 / 1 = 1
C: 2 * 1 = 2
B: 2 / 1 = 2
D: 2 / 2 + 1 = 2
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
With RF=2 and
CL=Quorum, operations
failed when 1 node went
down because of this.
@VictorFAnjos
37© 2015. All Rights Reserved.
@VictorFAnjos
A: 1 / 1 = 1
C: 2 * 1 = 2
B: 2 / 1 = 2
D: 2 / 2 + 1 = 2
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
With RF=2 and
CL=Quorum, operations
failed when 1 node went
down because of this.
@VictorFAnjos
Congratulations!
You’ve Reached
the 32,000 ops/s
Milestone!
Congratulations!Congratulations!
@VictorFAnjos
Achieving performance through code/drivers
when friends aren’t enough
39© 2015. All Rights Reserved.
@VictorFAnjos
Replication Factor = 3
Insert into a cluster of size 6 with
consistency Quorum
Two nodes in token range must be
present for write to succeed
Achieving performance through code/drivers
when friends aren’t enough
40© 2015. All Rights Reserved.
@VictorFAnjos
What happens now?
Cannot achieve consistency level QUORUM
Cannot achieve consistency level QUORUM
Cannot achieve consistency level QUORUM
Cannot achieve consistency level QUORUM
Nodes in partition key DOWN
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
@VictorFAnjos
42© 2015. All Rights Reserved.
@VictorFAnjos
A: Truth table
C: CAP Theorem
B: Brewer’s Theorem
D: Entropy
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
This mathematical and
CS concept helps when
data modeling for query
optimization.
@VictorFAnjos
43© 2015. All Rights Reserved.
@VictorFAnjos
A: Truth table
C: CAP Theorem
B: Brewer’s Theorem
D: Entropy
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
@VictorFAnjos
This mathematical and
CS concept helps when
data modeling for query
optimization.
Data modelling, CQLSH and more
the truth shall set you free
44© 2015. All Rights Reserved.
@VictorFAnjos
Motivated by CS, Math, Engineering
Allows for creating building blocks
that yield a single output
More complex truth tables can arise
Data modelling, CQLSH and more
the truth shall set you free
45© 2015. All Rights Reserved.
@VictorFAnjos
How about searching for username?
And what about full_name?
user_stream
← ← ← Partition Key → → →
user_id username full_name
1 0 0
0 1 0
0 0 1
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
@VictorFAnjos
47© 2015. All Rights Reserved.
@VictorFAnjos
A: Reads / Batches
C: Writes / Deletes
B: Writes / Batches
D: Reads / Deletes
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
A shift in paradigms,
what should you
maximize and reduce for
best performance.
@VictorFAnjos
48© 2015. All Rights Reserved.
@VictorFAnjos
A: Reads / Batches
C: Writes / Deletes
B: Writes / Batches
D: Reads / Deletes
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
@VictorFAnjos
A shift in paradigms,
what should you
maximize and reduce for
good performance.
Data modelling, CQLSH and more
do the write thing
49© 2015. All Rights Reserved.
@VictorFAnjos
Data modelling, CQLSH and more
do the write thing
50© 2015. All Rights Reserved.
@VictorFAnjos
memtable --- < 100ns
commit log --- ~ 1 ms
DELETES / TTL cause compactions
Data modelling, CQLSH and more
do the write thing
51© 2015. All Rights Reserved.
@VictorFAnjos
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
@VictorFAnjos
53© 2015. All Rights Reserved.
@VictorFAnjos
A: ACID
C: Rollback
B: Vector
D: Sharding
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
To not hit a 2B record
limit (per row), this
RDBMS borrowed term
can still makes sense.
@VictorFAnjos
54© 2015. All Rights Reserved.
@VictorFAnjos
A: ACID
C: Rollback
B: Vector
D: Sharding
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
To not hit a 2B record
limit (per row), this
RDBMS borrowed term
can still makes sense.
@VictorFAnjos
Data modelling, CQLSH and more
sit on this and rotate
55© 2015. All Rights Reserved.
@VictorFAnjos
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
@VictorFAnjos
57© 2015. All Rights Reserved.
@VictorFAnjos
A: Batches
C: Secondary Indexes
B: Synchronous
D: MySQL
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
Many say to use
sparingly, I would say,
avoid like the plague.
@VictorFAnjos
58© 2015. All Rights Reserved.
@VictorFAnjos
A: Batches
C: Secondary Indexes
B: Synchronous
D: MySQL
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
@VictorFAnjos
Many say to use
sparingly, I would say,
avoid like the plague.
Performance must-haves
never be second best
59© 2015. All Rights Reserved.
@VictorFAnjos
writes are distributed among the cluster
each partition key refers to one exact
position in which to get a row
but what do we do when we don’t have exactly
the right type of index to specify a query
CREATE TABLE users (
user varchar,
email varchar,
state varchar,
PRIMARY KEY (user));
-- OPTION 1 : create an index
CREATE INDEX idxUBS on users (state);
-- OPTION 2 : create another table (store data twice)
CREATE TABLE usersByState (
state varchar,
user varchar,
PRIMARY KEY (state, user));
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
@VictorFAnjos
61© 2015. All Rights Reserved.
@VictorFAnjos
A: UDT
C: JSON
B: Lightweight Transactions
D: Hinted handoff
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
This addition to C* can
help with ACID like
transactions, at a bit of a
performance hit.
@VictorFAnjos
62© 2015. All Rights Reserved.
@VictorFAnjos
A: UDT
C: JSON
B: Lightweight Transactions
D: Hinted handoff
50:50
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1 Million
500,000
250,000
125,000
64,000
32,000
16,000
8,000
4,000
2,000
1,000
500
300
200
100
This recent addition to
C* now helps with ACID
like transactions, at a bit
of a performance hit.
@VictorFAnjos
Performance must-haves
slimfast agreement
63© 2015. All Rights Reserved.
@VictorFAnjos
Prepares a proposal that is sent to a number of Acceptors.
Waits on a an acknowledgement (in form of promise) from Acceptors.
Sends accept message to Quorum of Acceptors with new value to commit.
Returns success? completion to client.
Determines if proposal is newer than what it has seen.
Acknowledges/agree with its own highest proposal value seen AND the
current value (of what is to be set).
Receive message to commit new value.
Accept and return on successful commit of value.
64© 2015. All Rights Reserved.
@VictorFAnjos
Performance must-haves
slimfast agreement
Thank you

Más contenido relacionado

La actualidad más candente

Live traffic capture and replay in cassandra 4.0
Live traffic capture and replay in cassandra 4.0Live traffic capture and replay in cassandra 4.0
Live traffic capture and replay in cassandra 4.0Vinay Kumar Chella
 
Introduction to Apache Cassandra™ + What’s New in 4.0
Introduction to Apache Cassandra™ + What’s New in 4.0Introduction to Apache Cassandra™ + What’s New in 4.0
Introduction to Apache Cassandra™ + What’s New in 4.0DataStax
 
Azure + DataStax Enterprise Powers Office 365 Per User Store
Azure + DataStax Enterprise Powers Office 365 Per User StoreAzure + DataStax Enterprise Powers Office 365 Per User Store
Azure + DataStax Enterprise Powers Office 365 Per User StoreDataStax Academy
 
Cassandra serving netflix @ scale
Cassandra serving netflix @ scaleCassandra serving netflix @ scale
Cassandra serving netflix @ scaleVinay Kumar Chella
 
Backup and Recovery in MySQL Cluster
Backup and Recovery in MySQL ClusterBackup and Recovery in MySQL Cluster
Backup and Recovery in MySQL Clusterpriyanka_sangam
 
Scalablity and benchmark in mysql performance
Scalablity and benchmark in mysql performanceScalablity and benchmark in mysql performance
Scalablity and benchmark in mysql performanceAmrendra Kumar
 
Lessons learned from scaling YARN to 40K machines in a multi tenancy environment
Lessons learned from scaling YARN to 40K machines in a multi tenancy environmentLessons learned from scaling YARN to 40K machines in a multi tenancy environment
Lessons learned from scaling YARN to 40K machines in a multi tenancy environmentDataWorks Summit
 
Building and running cloud native cassandra
Building and running cloud native cassandraBuilding and running cloud native cassandra
Building and running cloud native cassandraVinay Kumar Chella
 
Beginning Operations: 7 Deadly Sins for Apache Cassandra Ops
Beginning Operations: 7 Deadly Sins for Apache Cassandra OpsBeginning Operations: 7 Deadly Sins for Apache Cassandra Ops
Beginning Operations: 7 Deadly Sins for Apache Cassandra OpsDataStax Academy
 
Building Scalable, Real Time Applications for Financial Services with DataStax
Building Scalable, Real Time Applications for Financial Services with DataStaxBuilding Scalable, Real Time Applications for Financial Services with DataStax
Building Scalable, Real Time Applications for Financial Services with DataStaxDataStax
 
Performance tuning - A key to successful cassandra migration
Performance tuning - A key to successful cassandra migrationPerformance tuning - A key to successful cassandra migration
Performance tuning - A key to successful cassandra migrationRamkumar Nottath
 
Fraud Detection for Israel BigThings Meetup
Fraud Detection  for Israel BigThings MeetupFraud Detection  for Israel BigThings Meetup
Fraud Detection for Israel BigThings MeetupGwen (Chen) Shapira
 
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...Amazon Web Services
 
A glimpse of cassandra 4.0 features netflix
A glimpse of cassandra 4.0 features   netflixA glimpse of cassandra 4.0 features   netflix
A glimpse of cassandra 4.0 features netflixVinay Kumar Chella
 
Maintaining Consistency Across Data Centers (Randy Fradin, BlackRock) | Cassa...
Maintaining Consistency Across Data Centers (Randy Fradin, BlackRock) | Cassa...Maintaining Consistency Across Data Centers (Randy Fradin, BlackRock) | Cassa...
Maintaining Consistency Across Data Centers (Randy Fradin, BlackRock) | Cassa...DataStax
 
How to Bulletproof Your Scylla Deployment
How to Bulletproof Your Scylla DeploymentHow to Bulletproof Your Scylla Deployment
How to Bulletproof Your Scylla DeploymentScyllaDB
 
Safer restarts, faster streaming, and better repair, just a glimpse of cassan...
Safer restarts, faster streaming, and better repair, just a glimpse of cassan...Safer restarts, faster streaming, and better repair, just a glimpse of cassan...
Safer restarts, faster streaming, and better repair, just a glimpse of cassan...Vinay Kumar Chella
 

La actualidad más candente (20)

Live traffic capture and replay in cassandra 4.0
Live traffic capture and replay in cassandra 4.0Live traffic capture and replay in cassandra 4.0
Live traffic capture and replay in cassandra 4.0
 
Introduction to Apache Cassandra™ + What’s New in 4.0
Introduction to Apache Cassandra™ + What’s New in 4.0Introduction to Apache Cassandra™ + What’s New in 4.0
Introduction to Apache Cassandra™ + What’s New in 4.0
 
Azure + DataStax Enterprise Powers Office 365 Per User Store
Azure + DataStax Enterprise Powers Office 365 Per User StoreAzure + DataStax Enterprise Powers Office 365 Per User Store
Azure + DataStax Enterprise Powers Office 365 Per User Store
 
Cassandra serving netflix @ scale
Cassandra serving netflix @ scaleCassandra serving netflix @ scale
Cassandra serving netflix @ scale
 
Backup and Recovery in MySQL Cluster
Backup and Recovery in MySQL ClusterBackup and Recovery in MySQL Cluster
Backup and Recovery in MySQL Cluster
 
Scalablity and benchmark in mysql performance
Scalablity and benchmark in mysql performanceScalablity and benchmark in mysql performance
Scalablity and benchmark in mysql performance
 
Lessons learned from scaling YARN to 40K machines in a multi tenancy environment
Lessons learned from scaling YARN to 40K machines in a multi tenancy environmentLessons learned from scaling YARN to 40K machines in a multi tenancy environment
Lessons learned from scaling YARN to 40K machines in a multi tenancy environment
 
Building and running cloud native cassandra
Building and running cloud native cassandraBuilding and running cloud native cassandra
Building and running cloud native cassandra
 
Beginning Operations: 7 Deadly Sins for Apache Cassandra Ops
Beginning Operations: 7 Deadly Sins for Apache Cassandra OpsBeginning Operations: 7 Deadly Sins for Apache Cassandra Ops
Beginning Operations: 7 Deadly Sins for Apache Cassandra Ops
 
Building Scalable, Real Time Applications for Financial Services with DataStax
Building Scalable, Real Time Applications for Financial Services with DataStaxBuilding Scalable, Real Time Applications for Financial Services with DataStax
Building Scalable, Real Time Applications for Financial Services with DataStax
 
Running Galera Cluster on Microsoft Azure
Running Galera Cluster on Microsoft AzureRunning Galera Cluster on Microsoft Azure
Running Galera Cluster on Microsoft Azure
 
How to deploy Apache Spark 
to Mesos/DCOS
How to deploy Apache Spark 
to Mesos/DCOSHow to deploy Apache Spark 
to Mesos/DCOS
How to deploy Apache Spark 
to Mesos/DCOS
 
Performance tuning - A key to successful cassandra migration
Performance tuning - A key to successful cassandra migrationPerformance tuning - A key to successful cassandra migration
Performance tuning - A key to successful cassandra migration
 
Data Stores @ Netflix
Data Stores @ NetflixData Stores @ Netflix
Data Stores @ Netflix
 
Fraud Detection for Israel BigThings Meetup
Fraud Detection  for Israel BigThings MeetupFraud Detection  for Israel BigThings Meetup
Fraud Detection for Israel BigThings Meetup
 
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
 
A glimpse of cassandra 4.0 features netflix
A glimpse of cassandra 4.0 features   netflixA glimpse of cassandra 4.0 features   netflix
A glimpse of cassandra 4.0 features netflix
 
Maintaining Consistency Across Data Centers (Randy Fradin, BlackRock) | Cassa...
Maintaining Consistency Across Data Centers (Randy Fradin, BlackRock) | Cassa...Maintaining Consistency Across Data Centers (Randy Fradin, BlackRock) | Cassa...
Maintaining Consistency Across Data Centers (Randy Fradin, BlackRock) | Cassa...
 
How to Bulletproof Your Scylla Deployment
How to Bulletproof Your Scylla DeploymentHow to Bulletproof Your Scylla Deployment
How to Bulletproof Your Scylla Deployment
 
Safer restarts, faster streaming, and better repair, just a glimpse of cassan...
Safer restarts, faster streaming, and better repair, just a glimpse of cassan...Safer restarts, faster streaming, and better repair, just a glimpse of cassan...
Safer restarts, faster streaming, and better repair, just a glimpse of cassan...
 

Destacado

Introduction to data modeling with apache cassandra
Introduction to data modeling with apache cassandraIntroduction to data modeling with apache cassandra
Introduction to data modeling with apache cassandraPatrick McFadin
 
Production Ready Cassandra (Beginner)
Production Ready Cassandra (Beginner)Production Ready Cassandra (Beginner)
Production Ready Cassandra (Beginner)DataStax Academy
 
Coursera's Adoption of Cassandra
Coursera's Adoption of CassandraCoursera's Adoption of Cassandra
Coursera's Adoption of CassandraDataStax Academy
 
Introduction to .Net Driver
Introduction to .Net DriverIntroduction to .Net Driver
Introduction to .Net DriverDataStax Academy
 
Spark Cassandra Connector: Past, Present and Furure
Spark Cassandra Connector: Past, Present and FurureSpark Cassandra Connector: Past, Present and Furure
Spark Cassandra Connector: Past, Present and FurureDataStax Academy
 
Lessons Learned with Cassandra and Spark at the US Patent and Trademark Office
Lessons Learned with Cassandra and Spark at the US Patent and Trademark OfficeLessons Learned with Cassandra and Spark at the US Patent and Trademark Office
Lessons Learned with Cassandra and Spark at the US Patent and Trademark OfficeDataStax Academy
 
Using Event-Driven Architectures with Cassandra
Using Event-Driven Architectures with CassandraUsing Event-Driven Architectures with Cassandra
Using Event-Driven Architectures with CassandraDataStax Academy
 
Successful Software Development with Apache Cassandra
Successful Software Development with Apache CassandraSuccessful Software Development with Apache Cassandra
Successful Software Development with Apache CassandraDataStax Academy
 
Getting Started with Graph Databases
Getting Started with Graph DatabasesGetting Started with Graph Databases
Getting Started with Graph DatabasesDataStax Academy
 
Cassandra: One (is the loneliest number)
Cassandra: One (is the loneliest number)Cassandra: One (is the loneliest number)
Cassandra: One (is the loneliest number)DataStax Academy
 
Analytics with Spark and Cassandra
Analytics with Spark and CassandraAnalytics with Spark and Cassandra
Analytics with Spark and CassandraDataStax Academy
 
Cassandra Data Maintenance with Spark
Cassandra Data Maintenance with SparkCassandra Data Maintenance with Spark
Cassandra Data Maintenance with SparkDataStax Academy
 
Client Drivers and Cassandra, the Right Way
Client Drivers and Cassandra, the Right WayClient Drivers and Cassandra, the Right Way
Client Drivers and Cassandra, the Right WayDataStax Academy
 
Introduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph DatabaseIntroduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph DatabaseDataStax Academy
 
Tales From The Front: An Architecture For Multi-Data Center Scalable Applicat...
Tales From The Front: An Architecture For Multi-Data Center Scalable Applicat...Tales From The Front: An Architecture For Multi-Data Center Scalable Applicat...
Tales From The Front: An Architecture For Multi-Data Center Scalable Applicat...DataStax Academy
 
Cassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart LabsCassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart LabsDataStax Academy
 
Symantec: Cassandra Data Modelling techniques in action
Symantec: Cassandra Data Modelling techniques in actionSymantec: Cassandra Data Modelling techniques in action
Symantec: Cassandra Data Modelling techniques in actionDataStax Academy
 
Seattle C* Meetup: Hardening cassandra for compliance or paranoia
Seattle C* Meetup: Hardening cassandra for compliance or paranoiaSeattle C* Meetup: Hardening cassandra for compliance or paranoia
Seattle C* Meetup: Hardening cassandra for compliance or paranoiazznate
 

Destacado (20)

Introduction to data modeling with apache cassandra
Introduction to data modeling with apache cassandraIntroduction to data modeling with apache cassandra
Introduction to data modeling with apache cassandra
 
Production Ready Cassandra (Beginner)
Production Ready Cassandra (Beginner)Production Ready Cassandra (Beginner)
Production Ready Cassandra (Beginner)
 
Coursera's Adoption of Cassandra
Coursera's Adoption of CassandraCoursera's Adoption of Cassandra
Coursera's Adoption of Cassandra
 
New features in 3.0
New features in 3.0New features in 3.0
New features in 3.0
 
Introduction to .Net Driver
Introduction to .Net DriverIntroduction to .Net Driver
Introduction to .Net Driver
 
Spark Cassandra Connector: Past, Present and Furure
Spark Cassandra Connector: Past, Present and FurureSpark Cassandra Connector: Past, Present and Furure
Spark Cassandra Connector: Past, Present and Furure
 
Playlists at Spotify
Playlists at SpotifyPlaylists at Spotify
Playlists at Spotify
 
Lessons Learned with Cassandra and Spark at the US Patent and Trademark Office
Lessons Learned with Cassandra and Spark at the US Patent and Trademark OfficeLessons Learned with Cassandra and Spark at the US Patent and Trademark Office
Lessons Learned with Cassandra and Spark at the US Patent and Trademark Office
 
Using Event-Driven Architectures with Cassandra
Using Event-Driven Architectures with CassandraUsing Event-Driven Architectures with Cassandra
Using Event-Driven Architectures with Cassandra
 
Successful Software Development with Apache Cassandra
Successful Software Development with Apache CassandraSuccessful Software Development with Apache Cassandra
Successful Software Development with Apache Cassandra
 
Getting Started with Graph Databases
Getting Started with Graph DatabasesGetting Started with Graph Databases
Getting Started with Graph Databases
 
Cassandra: One (is the loneliest number)
Cassandra: One (is the loneliest number)Cassandra: One (is the loneliest number)
Cassandra: One (is the loneliest number)
 
Analytics with Spark and Cassandra
Analytics with Spark and CassandraAnalytics with Spark and Cassandra
Analytics with Spark and Cassandra
 
Cassandra Data Maintenance with Spark
Cassandra Data Maintenance with SparkCassandra Data Maintenance with Spark
Cassandra Data Maintenance with Spark
 
Client Drivers and Cassandra, the Right Way
Client Drivers and Cassandra, the Right WayClient Drivers and Cassandra, the Right Way
Client Drivers and Cassandra, the Right Way
 
Introduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph DatabaseIntroduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph Database
 
Tales From The Front: An Architecture For Multi-Data Center Scalable Applicat...
Tales From The Front: An Architecture For Multi-Data Center Scalable Applicat...Tales From The Front: An Architecture For Multi-Data Center Scalable Applicat...
Tales From The Front: An Architecture For Multi-Data Center Scalable Applicat...
 
Cassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart LabsCassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart Labs
 
Symantec: Cassandra Data Modelling techniques in action
Symantec: Cassandra Data Modelling techniques in actionSymantec: Cassandra Data Modelling techniques in action
Symantec: Cassandra Data Modelling techniques in action
 
Seattle C* Meetup: Hardening cassandra for compliance or paranoia
Seattle C* Meetup: Hardening cassandra for compliance or paranoiaSeattle C* Meetup: Hardening cassandra for compliance or paranoia
Seattle C* Meetup: Hardening cassandra for compliance or paranoia
 

Similar a Traveler's Guide to Cassandra

Ficstar Software: Cassandra Installation to Optimization
Ficstar Software: Cassandra Installation to OptimizationFicstar Software: Cassandra Installation to Optimization
Ficstar Software: Cassandra Installation to OptimizationDataStax Academy
 
Who wants to be a Cassandra Millionaire
Who wants to be a Cassandra MillionaireWho wants to be a Cassandra Millionaire
Who wants to be a Cassandra MillionaireVictor Anjos
 
地域版IoT共創ラボで地方を元気に!関西企業コラボによる働く現場のDX事例
地域版IoT共創ラボで地方を元気に!関西企業コラボによる働く現場のDX事例地域版IoT共創ラボで地方を元気に!関西企業コラボによる働く現場のDX事例
地域版IoT共創ラボで地方を元気に!関西企業コラボによる働く現場のDX事例IoTビジネス共創ラボ
 
Get More for Less with the New Cisco Catalyst 6840-X Series Switch
Get More for Less with the New Cisco Catalyst 6840-X Series SwitchGet More for Less with the New Cisco Catalyst 6840-X Series Switch
Get More for Less with the New Cisco Catalyst 6840-X Series SwitchCisco Enterprise Networks
 
mega-himel-2019-latest
mega-himel-2019-latestmega-himel-2019-latest
mega-himel-2019-latestrobert Tiin
 
Actividad # 1
Actividad # 1Actividad # 1
Actividad # 1piolo11
 
【TECH×GAME COLLEGE#32】ゼロからリアルタイムサーバーを作るまで
【TECH×GAME COLLEGE#32】ゼロからリアルタイムサーバーを作るまで【TECH×GAME COLLEGE#32】ゼロからリアルタイムサーバーを作るまで
【TECH×GAME COLLEGE#32】ゼロからリアルタイムサーバーを作るまでtechgamecollege
 
Circuitos Eléctricos por James S. Kang.pdf
Circuitos Eléctricos por James S. Kang.pdfCircuitos Eléctricos por James S. Kang.pdf
Circuitos Eléctricos por James S. Kang.pdfSANTIAGO PABLO ALBERTO
 
Building a Cost-effective Mining Rig by Michael Carter (BitsBeTrippin)
Building a Cost-effective Mining Rig by Michael Carter (BitsBeTrippin)Building a Cost-effective Mining Rig by Michael Carter (BitsBeTrippin)
Building a Cost-effective Mining Rig by Michael Carter (BitsBeTrippin)Hashers United
 
Cataloge ge 2.industrial components_dienhathe.com-1_record_plus
Cataloge ge 2.industrial components_dienhathe.com-1_record_plusCataloge ge 2.industrial components_dienhathe.com-1_record_plus
Cataloge ge 2.industrial components_dienhathe.com-1_record_plusDien Ha The
 
Cataloge ge 2.industrial components-1_record_plus
Cataloge ge 2.industrial components-1_record_plusCataloge ge 2.industrial components-1_record_plus
Cataloge ge 2.industrial components-1_record_plusDien Ha The
 
Cataloge ge 2.industrial components-1_record_plus
Cataloge ge 2.industrial components-1_record_plusCataloge ge 2.industrial components-1_record_plus
Cataloge ge 2.industrial components-1_record_plusThuan Kieu
 
Exponential Millionaire Game
Exponential Millionaire GameExponential Millionaire Game
Exponential Millionaire Gamesteve swan
 
Mobile and App-Based Technology for Libraries
Mobile and App-Based Technology for LibrariesMobile and App-Based Technology for Libraries
Mobile and App-Based Technology for LibrariesDavid King
 
RE-FRAC OF SHALE WELLS USING ARTIFICIAL INTELLIGENCE
RE-FRAC OF SHALE WELLS USING ARTIFICIAL INTELLIGENCERE-FRAC OF SHALE WELLS USING ARTIFICIAL INTELLIGENCE
RE-FRAC OF SHALE WELLS USING ARTIFICIAL INTELLIGENCEiQHub
 
Examining Malware with Python
Examining Malware with PythonExamining Malware with Python
Examining Malware with Pythonmrphilroth
 
Portfolio_OneSheet_RP
Portfolio_OneSheet_RPPortfolio_OneSheet_RP
Portfolio_OneSheet_RPRobert Pagan
 
Earning Mate Presentation
Earning Mate PresentationEarning Mate Presentation
Earning Mate PresentationMahipK2
 

Similar a Traveler's Guide to Cassandra (20)

Ficstar Software: Cassandra Installation to Optimization
Ficstar Software: Cassandra Installation to OptimizationFicstar Software: Cassandra Installation to Optimization
Ficstar Software: Cassandra Installation to Optimization
 
Who wants to be a Cassandra Millionaire
Who wants to be a Cassandra MillionaireWho wants to be a Cassandra Millionaire
Who wants to be a Cassandra Millionaire
 
地域版IoT共創ラボで地方を元気に!関西企業コラボによる働く現場のDX事例
地域版IoT共創ラボで地方を元気に!関西企業コラボによる働く現場のDX事例地域版IoT共創ラボで地方を元気に!関西企業コラボによる働く現場のDX事例
地域版IoT共創ラボで地方を元気に!関西企業コラボによる働く現場のDX事例
 
Get More for Less with the New Cisco Catalyst 6840-X Series Switch
Get More for Less with the New Cisco Catalyst 6840-X Series SwitchGet More for Less with the New Cisco Catalyst 6840-X Series Switch
Get More for Less with the New Cisco Catalyst 6840-X Series Switch
 
mega-himel-2019-latest
mega-himel-2019-latestmega-himel-2019-latest
mega-himel-2019-latest
 
Active Portfolio Management
Active Portfolio ManagementActive Portfolio Management
Active Portfolio Management
 
Actividad # 1
Actividad # 1Actividad # 1
Actividad # 1
 
【TECH×GAME COLLEGE#32】ゼロからリアルタイムサーバーを作るまで
【TECH×GAME COLLEGE#32】ゼロからリアルタイムサーバーを作るまで【TECH×GAME COLLEGE#32】ゼロからリアルタイムサーバーを作るまで
【TECH×GAME COLLEGE#32】ゼロからリアルタイムサーバーを作るまで
 
Circuitos Eléctricos por James S. Kang.pdf
Circuitos Eléctricos por James S. Kang.pdfCircuitos Eléctricos por James S. Kang.pdf
Circuitos Eléctricos por James S. Kang.pdf
 
Building a Cost-effective Mining Rig by Michael Carter (BitsBeTrippin)
Building a Cost-effective Mining Rig by Michael Carter (BitsBeTrippin)Building a Cost-effective Mining Rig by Michael Carter (BitsBeTrippin)
Building a Cost-effective Mining Rig by Michael Carter (BitsBeTrippin)
 
Cataloge ge 2.industrial components_dienhathe.com-1_record_plus
Cataloge ge 2.industrial components_dienhathe.com-1_record_plusCataloge ge 2.industrial components_dienhathe.com-1_record_plus
Cataloge ge 2.industrial components_dienhathe.com-1_record_plus
 
Cataloge ge 2.industrial components-1_record_plus
Cataloge ge 2.industrial components-1_record_plusCataloge ge 2.industrial components-1_record_plus
Cataloge ge 2.industrial components-1_record_plus
 
Cataloge ge 2.industrial components-1_record_plus
Cataloge ge 2.industrial components-1_record_plusCataloge ge 2.industrial components-1_record_plus
Cataloge ge 2.industrial components-1_record_plus
 
Exponential Millionaire Game
Exponential Millionaire GameExponential Millionaire Game
Exponential Millionaire Game
 
Mobile and App-Based Technology for Libraries
Mobile and App-Based Technology for LibrariesMobile and App-Based Technology for Libraries
Mobile and App-Based Technology for Libraries
 
PICkit 2 Programmer device support list
PICkit 2 Programmer device support listPICkit 2 Programmer device support list
PICkit 2 Programmer device support list
 
RE-FRAC OF SHALE WELLS USING ARTIFICIAL INTELLIGENCE
RE-FRAC OF SHALE WELLS USING ARTIFICIAL INTELLIGENCERE-FRAC OF SHALE WELLS USING ARTIFICIAL INTELLIGENCE
RE-FRAC OF SHALE WELLS USING ARTIFICIAL INTELLIGENCE
 
Examining Malware with Python
Examining Malware with PythonExamining Malware with Python
Examining Malware with Python
 
Portfolio_OneSheet_RP
Portfolio_OneSheet_RPPortfolio_OneSheet_RP
Portfolio_OneSheet_RP
 
Earning Mate Presentation
Earning Mate PresentationEarning Mate Presentation
Earning Mate Presentation
 

Más de DataStax Academy

Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craftForrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craftDataStax Academy
 
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache CassandraIntroduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache CassandraDataStax Academy
 
Cassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingCassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingDataStax Academy
 
Cassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stackCassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stackDataStax Academy
 
Data Modeling for Apache Cassandra
Data Modeling for Apache CassandraData Modeling for Apache Cassandra
Data Modeling for Apache CassandraDataStax Academy
 
Production Ready Cassandra
Production Ready CassandraProduction Ready Cassandra
Production Ready CassandraDataStax Academy
 
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & PythonCassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & PythonDataStax Academy
 
Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1DataStax Academy
 
Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2DataStax Academy
 
Standing Up Your First Cluster
Standing Up Your First ClusterStanding Up Your First Cluster
Standing Up Your First ClusterDataStax Academy
 
Real Time Analytics with Dse
Real Time Analytics with DseReal Time Analytics with Dse
Real Time Analytics with DseDataStax Academy
 
Introduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache CassandraIntroduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache CassandraDataStax Academy
 
Enabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseEnabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseDataStax Academy
 
Advanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache CassandraAdvanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache CassandraDataStax Academy
 
Apache Cassandra and Drivers
Apache Cassandra and DriversApache Cassandra and Drivers
Apache Cassandra and DriversDataStax Academy
 

Más de DataStax Academy (18)

Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craftForrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
 
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache CassandraIntroduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
 
Cassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingCassandra 3.0 Data Modeling
Cassandra 3.0 Data Modeling
 
Cassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stackCassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stack
 
Data Modeling for Apache Cassandra
Data Modeling for Apache CassandraData Modeling for Apache Cassandra
Data Modeling for Apache Cassandra
 
Coursera Cassandra Driver
Coursera Cassandra DriverCoursera Cassandra Driver
Coursera Cassandra Driver
 
Production Ready Cassandra
Production Ready CassandraProduction Ready Cassandra
Production Ready Cassandra
 
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & PythonCassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
 
Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1
 
Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2
 
Standing Up Your First Cluster
Standing Up Your First ClusterStanding Up Your First Cluster
Standing Up Your First Cluster
 
Real Time Analytics with Dse
Real Time Analytics with DseReal Time Analytics with Dse
Real Time Analytics with Dse
 
Introduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache CassandraIntroduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache Cassandra
 
Cassandra Core Concepts
Cassandra Core ConceptsCassandra Core Concepts
Cassandra Core Concepts
 
Enabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseEnabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax Enterprise
 
Advanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache CassandraAdvanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache Cassandra
 
Advanced Cassandra
Advanced CassandraAdvanced Cassandra
Advanced Cassandra
 
Apache Cassandra and Drivers
Apache Cassandra and DriversApache Cassandra and Drivers
Apache Cassandra and Drivers
 

Último

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 

Último (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Traveler's Guide to Cassandra

  • 1. Who wants to be a Cassandra Millionaire? 40-minutes of best practice - getting you ready for certification @VictorFAnjos Toronto Cassandra Day
  • 2. 2© 2015. All Rights Reserved. @VictorFAnjos
  • 5. 5© 2015. All Rights Reserved. A: NAS / SAN C: DAS SATA B: SSD D: DAS SCSI 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 This storage medium allows for best performance. @VictorFAnjos
  • 6. 6© 2015. All Rights Reserved. @VictorFAnjos A: NAS / SAN C: DAS SATA B: SSD D: DAS SCSI 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 @VictorFAnjos This storage medium allows for best performance.
  • 7. Installation and considerations how to store the datastore Storage Area Network Solid State Drive 7© 2015. All Rights Reserved. @VictorFAnjos
  • 8. Installation and considerations how to store the datastore Local (DAS), iSCSI, Fiber Channel 8© 2015. All Rights Reserved. @VictorFAnjos ● AVOID network storage like the plague ● Direct Attached Storage FTW ● Disk latency is a HUGE deal for performance
  • 9. Installation and considerations how to store the datastore 9© 2015. All Rights Reserved. 9 @VictorFAnjos SATA/SAS DAS PCIe/NVMe DAS
  • 10. Installation and considerations how to store the datastore 10© 2015. All Rights Reserved. @VictorFAnjos
  • 12. 12© 2015. All Rights Reserved. @VictorFAnjos A: ZFS C: Ext4 B: Btrfs D: F2FS 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 When using SSDs, this filesystem type is best. @VictorFAnjos
  • 13. 13© 2015. All Rights Reserved. @VictorFAnjos A: ZFS C: Ext4 B: Btrfs D: F2FS 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 When using SSDs, this filesystem type is best. @VictorFAnjos
  • 14. Congratulations! You’ve Reached the 1,000 ops/s Milestone! Congratulations!Congratulations! @VictorFAnjos
  • 15. Installation and considerations i can’t believe it’s not btrfs 15© 2015. All Rights Reserved. @VictorFAnjos ● easiest to use ext4 (it’s on most linux distros), but F2FS get 5-10% gains in write performance ● if NOT using F2FS, make sure to TRIM ● multiple disks → use RAID0
  • 17. 17© 2015. All Rights Reserved. @VictorFAnjos A: 0 C: Equal to HEAP B: ½ of HEAP D: EQUAL TO RAM 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 This is the sweetspot for SWAP when using C* @VictorFAnjos
  • 18. 18© 2015. All Rights Reserved. @VictorFAnjos A: 0 C: Equal to HEAP B: ½ of HEAP D: EQUAL TO RAM 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 This is the sweetspot for SWAP when using C* @VictorFAnjos
  • 19. Installation and considerations to swap or not to swap 19© 2015. All Rights Reserved. @VictorFAnjos
  • 21. 21© 2015. All Rights Reserved. @VictorFAnjos A: 64G C: 16G B: 32G D: 8G 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 Having 64G of RAM means you should optimize to have ___G of HEAP. @VictorFAnjos
  • 22. 22© 2015. All Rights Reserved. @VictorFAnjos A: 64G C: 16G B: 32G D: 8G 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 @VictorFAnjos Having 64G of RAM means you should optimize to have ___G of HEAP.
  • 23. Installation and considerations how much heap? 23© 2015. All Rights Reserved. @VictorFAnjos http://docs.datastax.com/en/cassandra/1.2/cassandra/operations/ops_tune_jvm_c.html
  • 25. 25© 2015. All Rights Reserved. @VictorFAnjos A: EC2Snitch C: Simple Snitch B: Dynamic Snitch D: Property File Snitch 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 Definitely DO NOT use this snitch in Multi-DC environments. @VictorFAnjos
  • 26. 26© 2015. All Rights Reserved. @VictorFAnjos A: EC2Snitch C: Simple Snitch B: Dynamic Snitch D: Property File Snitch 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 @VictorFAnjos Definitely DO NOT use this snitch in Multi-DC environments.
  • 27. Installation and considerations son of a snitch 27© 2015. All Rights Reserved. @VictorFAnjos
  • 28. Installation and considerations son of a snitch 28© 2015. All Rights Reserved. @VictorFAnjos
  • 30. 30© 2015. All Rights Reserved. @VictorFAnjos A: Synchronous AND Full Queries C: Synchronous AND Prepared Statements B: Asynchronous AND Prepared Statements D: Asynchronous AND Full Queries 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 To reduce latency and wire time to my app, I should opt for. @VictorFAnjos
  • 31. 31© 2015. All Rights Reserved. @VictorFAnjos A: Synchronous AND Full Queries C: Synchronous AND Prepared Statements B: Asynchronous AND Prepared Statements D: Asynchronous AND Full Queries 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 To reduce latency and wire time to my app, I should opt for. @VictorFAnjos
  • 32. Achieving performance through code/drivers should I stay or should I go 32© 2015. All Rights Reserved. @VictorFAnjos ● Client writes to any Cassandra node ● Coordinator node replicates to other nodes (in local and remote Data Center) ● Local write acks returned to coordinator ● Client gets ack when enough total nodes are committed ● Data written to internal commit log disks ● When data arrives, remote node replicates data MULTI DC ● Ack direct to source region coordinator ● Remote copies written to commit log disks lf a node or region goes offline, hinted handoff completes the write when the node comes back up (as long as there are enough nodes to satisfy consistency level).
  • 33. Achieving performance through code/drivers should I stay or should I go 33© 2015. All Rights Reserved. @VictorFAnjos Prepare ONCE... Bind and Execute multiple times.
  • 34. Achieving performance through code/drivers should I stay or should I go 34© 2015. All Rights Reserved. @VictorFAnjos
  • 36. 36© 2015. All Rights Reserved. @VictorFAnjos A: 1 / 1 = 1 C: 2 * 1 = 2 B: 2 / 1 = 2 D: 2 / 2 + 1 = 2 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 With RF=2 and CL=Quorum, operations failed when 1 node went down because of this. @VictorFAnjos
  • 37. 37© 2015. All Rights Reserved. @VictorFAnjos A: 1 / 1 = 1 C: 2 * 1 = 2 B: 2 / 1 = 2 D: 2 / 2 + 1 = 2 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 With RF=2 and CL=Quorum, operations failed when 1 node went down because of this. @VictorFAnjos
  • 38. Congratulations! You’ve Reached the 32,000 ops/s Milestone! Congratulations!Congratulations! @VictorFAnjos
  • 39. Achieving performance through code/drivers when friends aren’t enough 39© 2015. All Rights Reserved. @VictorFAnjos Replication Factor = 3 Insert into a cluster of size 6 with consistency Quorum Two nodes in token range must be present for write to succeed
  • 40. Achieving performance through code/drivers when friends aren’t enough 40© 2015. All Rights Reserved. @VictorFAnjos What happens now? Cannot achieve consistency level QUORUM Cannot achieve consistency level QUORUM Cannot achieve consistency level QUORUM Cannot achieve consistency level QUORUM Nodes in partition key DOWN
  • 42. 42© 2015. All Rights Reserved. @VictorFAnjos A: Truth table C: CAP Theorem B: Brewer’s Theorem D: Entropy 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 This mathematical and CS concept helps when data modeling for query optimization. @VictorFAnjos
  • 43. 43© 2015. All Rights Reserved. @VictorFAnjos A: Truth table C: CAP Theorem B: Brewer’s Theorem D: Entropy 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 @VictorFAnjos This mathematical and CS concept helps when data modeling for query optimization.
  • 44. Data modelling, CQLSH and more the truth shall set you free 44© 2015. All Rights Reserved. @VictorFAnjos Motivated by CS, Math, Engineering Allows for creating building blocks that yield a single output More complex truth tables can arise
  • 45. Data modelling, CQLSH and more the truth shall set you free 45© 2015. All Rights Reserved. @VictorFAnjos How about searching for username? And what about full_name? user_stream ← ← ← Partition Key → → → user_id username full_name 1 0 0 0 1 0 0 0 1
  • 47. 47© 2015. All Rights Reserved. @VictorFAnjos A: Reads / Batches C: Writes / Deletes B: Writes / Batches D: Reads / Deletes 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 A shift in paradigms, what should you maximize and reduce for best performance. @VictorFAnjos
  • 48. 48© 2015. All Rights Reserved. @VictorFAnjos A: Reads / Batches C: Writes / Deletes B: Writes / Batches D: Reads / Deletes 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 @VictorFAnjos A shift in paradigms, what should you maximize and reduce for good performance.
  • 49. Data modelling, CQLSH and more do the write thing 49© 2015. All Rights Reserved. @VictorFAnjos
  • 50. Data modelling, CQLSH and more do the write thing 50© 2015. All Rights Reserved. @VictorFAnjos memtable --- < 100ns commit log --- ~ 1 ms DELETES / TTL cause compactions
  • 51. Data modelling, CQLSH and more do the write thing 51© 2015. All Rights Reserved. @VictorFAnjos
  • 53. 53© 2015. All Rights Reserved. @VictorFAnjos A: ACID C: Rollback B: Vector D: Sharding 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 To not hit a 2B record limit (per row), this RDBMS borrowed term can still makes sense. @VictorFAnjos
  • 54. 54© 2015. All Rights Reserved. @VictorFAnjos A: ACID C: Rollback B: Vector D: Sharding 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 To not hit a 2B record limit (per row), this RDBMS borrowed term can still makes sense. @VictorFAnjos
  • 55. Data modelling, CQLSH and more sit on this and rotate 55© 2015. All Rights Reserved. @VictorFAnjos
  • 57. 57© 2015. All Rights Reserved. @VictorFAnjos A: Batches C: Secondary Indexes B: Synchronous D: MySQL 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 Many say to use sparingly, I would say, avoid like the plague. @VictorFAnjos
  • 58. 58© 2015. All Rights Reserved. @VictorFAnjos A: Batches C: Secondary Indexes B: Synchronous D: MySQL 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 @VictorFAnjos Many say to use sparingly, I would say, avoid like the plague.
  • 59. Performance must-haves never be second best 59© 2015. All Rights Reserved. @VictorFAnjos writes are distributed among the cluster each partition key refers to one exact position in which to get a row but what do we do when we don’t have exactly the right type of index to specify a query CREATE TABLE users ( user varchar, email varchar, state varchar, PRIMARY KEY (user)); -- OPTION 1 : create an index CREATE INDEX idxUBS on users (state); -- OPTION 2 : create another table (store data twice) CREATE TABLE usersByState ( state varchar, user varchar, PRIMARY KEY (state, user));
  • 61. 61© 2015. All Rights Reserved. @VictorFAnjos A: UDT C: JSON B: Lightweight Transactions D: Hinted handoff 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 This addition to C* can help with ACID like transactions, at a bit of a performance hit. @VictorFAnjos
  • 62. 62© 2015. All Rights Reserved. @VictorFAnjos A: UDT C: JSON B: Lightweight Transactions D: Hinted handoff 50:50 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 Million 500,000 250,000 125,000 64,000 32,000 16,000 8,000 4,000 2,000 1,000 500 300 200 100 This recent addition to C* now helps with ACID like transactions, at a bit of a performance hit. @VictorFAnjos
  • 63. Performance must-haves slimfast agreement 63© 2015. All Rights Reserved. @VictorFAnjos Prepares a proposal that is sent to a number of Acceptors. Waits on a an acknowledgement (in form of promise) from Acceptors. Sends accept message to Quorum of Acceptors with new value to commit. Returns success? completion to client. Determines if proposal is newer than what it has seen. Acknowledges/agree with its own highest proposal value seen AND the current value (of what is to be set). Receive message to commit new value. Accept and return on successful commit of value.
  • 64. 64© 2015. All Rights Reserved. @VictorFAnjos Performance must-haves slimfast agreement