Details
-
Improvement
-
Status: Resolved
-
Normal
-
Resolution: Later
-
None
-
None
-
None
Description
At the moment Cassandra goes through the ROW-READ stage to fetch data from the page cache, and if it's not in the page cache, it goes to disk.
Data that is currently hot (in page cache) will block if all I/O threads are busy reading from disk. We should seriously look at implementing a buffer pool similar to MySQL for storing data in-memory, and our I/O threads be dedicated to just going to disk. I suggest studying how InnoDB does scheduling as well, they have good lessons to learn from.
Scaling I/O by thread's isn't going to be a good solution here either. I would argue that going past 64 threads for I/O is just going to hurt overall performance based on context switching.
Attachments
Issue Links
- is related to
-
CASSANDRA-1379 Uncached row reads may block cached reads
- Resolved