Designing IA for AI - Information Architecture Conference 2024
Apache Cassandra in Bangalore - Cassandra Internals and Performance
1. BANGALORE CASSANDRA UG APRIL 2013
CASSANDRA INTERNALS &
PERFORMANCE
Aaron Morton
@aaronmorton
www.thelastpickle.com
Licensed under a Creative Commons Attribution-NonCommercial 3.0 New Zealand License
10. Native Binary Transport
Beta in Cassandra 1.2
Uses Netty 3.5
Enabled with
start_native_transport
(Disabled by default)
11. o.a.c.transport.Server.run()
//Setup the Netty server
new ExecutionHandler()
new NioServerSocketChannelFactory()
ServerBootstrap.setPipelineFactory()
89. CommitLog tests...
10,000 Inserts,
50 Columns per Row
50 bytes per Column
90. periodic commit log adds mutation to
queue then acknowledges.
Commit Log is appended to by a single
thread, sync is called every
commitlog_sync_period_in_ms.
91. Request latency and commitlog_sync_period_in_ms...
10,000 ms 10 ms
220
208
Latecy Microseconds
195
183
170
85th 95th 99th
92. batch commit log adds mutation to queue
and waits before acknowledging.
Writer thread processes mutations for
commitlog_sync_batch_window_in_
ms duration, then syncs, then signals.
110. CF read latency and row_cache_size_in_mb...
row_cache_size_in_mb=0 and key_cache_size_in_mb=100mb
row_cache_size_in_mb=100mb and key_cache_size_in_mb=0
260
195
Latecy Microseconds
130
65
0
85th 95th 99th
111. Column Index tests...
Read first Column by name from 1,200
Columns.
Read first Column by name from 1,000,000
Columns.
112. CF read latency and Column Index...
First Column from 1,200 First Column from 1,000,000
6,000
4,500
Latecy Microseconds
3,000
1,500
0
85th 95th 99th
113. Name Locality tests...
1,000,000 Columns
50 bytes per Column
Read 100 Columns from middle of row.
Read 100 Columns from spread across row.