You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Benedict Elliott Smith (Jira)" <ji...@apache.org> on 2021/11/02 16:52:00 UTC
[jira] [Comment Edited] (CASSANDRA-15215) VIntCoding should read
and write more efficiently
[ https://issues.apache.org/jira/browse/CASSANDRA-15215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17437456#comment-17437456 ]
Benedict Elliott Smith edited comment on CASSANDRA-15215 at 11/2/21, 4:51 PM:
------------------------------------------------------------------------------
If we're improving the benchmark we might also want to consider increasing the morphism of the call sites, i.e. randomly supplying either a {{DirectByteBuffer}} or {{HeapByteBuffer}}, and maybe even a {{MappedByteBuffer}} to make it megamorphic.
Preferably we would have three benchmarks, namely monomorphic (HeapByteBuffer only), bimorphic (HeapByteBuffer and DirectByteBuffer selected randomly), megamorphic (HBB, DBB and MappedByteBuffer))
The {{DataOutput}} variants of the test can similarly be updated to pick two or three variants.
was (Author: benedict):
If we're improving the benchmark we might also want to consider increasing the morphism of the call sites, i.e. randomly supplying either a {{DirectByteBuffer}} or {{HeapByteBuffer}}, and maybe even a {{MappedByteBuffer}} to make it megamorphic; for the {{DataOutput}} variant to similarly pick two or three variants (preferably with three benchmarks, namely monomorphic (one type), bimorphic (two types), megamorphic (three types)).
> VIntCoding should read and write more efficiently
> -------------------------------------------------
>
> Key: CASSANDRA-15215
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15215
> Project: Cassandra
> Issue Type: Bug
> Components: Local/Compaction, Local/SSTable
> Reporter: Benedict Elliott Smith
> Assignee: Aleksandr Sorokoumov
> Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.x
>
>
> Most vints occupy significantly fewer than 8 bytes, and most buffers have >= 8 bytes spare, in which case we can construct the relevant bytes in a register and memcpy them to the correct position. Since we read and write a lot of vints, this waste is probably measurable, particularly during compaction and flush, and can probably be considered a performance bug.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org