Details
-
Improvement
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Performance
-
Challenging
-
All
-
None
-
Description
A performance change that adds mutation serialization caching to avoid re-serializing the mutation for commitlog and nodes twice.
- Cached serialization for storage proxy and local commitlog
- Cached deserialization for messaging service and local commitlog
This yields a non trivial perf gain (~7-10%) and latency drop (median)
https://tjake.github.io/other/cached-mutations-report.html
The cached buffer is stored by MessagingService version to avoid being used by differing nodes during upgrades.
Also, It avoids caching mutations larger than a threshold to avoid GC issues.
GH PR: https://github.com/apache/cassandra/pull/1954