You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Aleksey Yeschenko (Jira)" <ji...@apache.org> on 2022/10/28 16:14:00 UTC

[jira] [Comment Edited] (CASSANDRA-17998) Mutation Serialization Caching

    [ https://issues.apache.org/jira/browse/CASSANDRA-17998?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17625797#comment-17625797 ] 

Aleksey Yeschenko edited comment on CASSANDRA-17998 at 10/28/22 4:13 PM:
-------------------------------------------------------------------------

Good stuff.

There is a pretty high chance however that this will be superseded by changes to the commit log that'll eventually ship with Accord. Specifically, entries in the log will be addressable, so we'll only have to serialize once - when writing to the commit log, and then fetch the serialized representation by id for messaging service and, if needed, hints. All without any extra memory overhead of a separate cache.

This is not to say that this shouldn't go in, especially since the work's already done, until then. But can we at least make this opt-in by default?

Cheers.


was (Author: iamaleksey):
Good stuff. There is a pretty high chance however that this will be superseded by changes to the commit log that'll eventually ship with Accord. Specifically, entries in the log will be addressable, so we'll only have to serialize once - when writing to the commit log, and then fetch the serialized representation for messaging service and, if needed, hints. All without any extra memory overhead of a separate cache.

This is not to say that this shouldn't go in, especially since the work's already done, until then. But can we at least make this opt-in by default?

Cheers.

> Mutation Serialization Caching
> ------------------------------
>
>                 Key: CASSANDRA-17998
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17998
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Messaging/Internode
>            Reporter: T Jake Luciani
>            Assignee: T Jake Luciani
>            Priority: Normal
>             Fix For: 4.x
>
>
> 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
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org