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

Robert Stupp commented on CASSANDRA-9738:
-----------------------------------------

Pushed another update with the following changes:
* Legacy IndexEntry objects / missing offsets: re-serializing seemed too 
expensive to me but not having the offsets in key-cache is also bad. For 3.0+ 
IndexEntry structures, we have the offsets - so that's not a problem. For 
legacy IndexEntry structures, it generates _all_ offsets. The change is that 
the key-cache will include the calculated offsets even for legacy tables. This 
eliminates the need to re-serialize the whole thing. (legacyIndexInfoSearch() 
is gone.)
* Moved the offsets-"array" back to the end of serialized IndexEntry structure.
* Sizing the serialization buffers: Tried to find easily and cheaply accessibly 
stats for partition size and (more important) serialized IndexEntry size for a 
CF but didn't find anything. So I added a (poor man) stats to CFMetaData that 
tracks the numbers to size the serialization buffers appropriately. These stats 
are not persisted, just calculated during runtime - so it's not a "perfect" 
thing. The problem with existing stats is that we know the mean partition size 
but not the mean size of the ClusteringPrefixes which could be used to 
initialize the poor-man stats during startup. (Note: current 
TableMetrics.meanPartitionSize iterates over all sstables to retrieve the value)


> Migrate key-cache to be fully off-heap
> --------------------------------------
>
>                 Key: CASSANDRA-9738
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9738
>             Project: Cassandra
>          Issue Type: Sub-task
>            Reporter: Robert Stupp
>            Assignee: Robert Stupp
>             Fix For: 3.0.0 rc1
>
>
> Key cache still uses a concurrent map on-heap. This could go to off-heap and 
> feels doable now after CASSANDRA-8099.
> Evaluation should be done in advance based on a POC to prove that pure 
> off-heap counter cache buys a performance and/or gc-pressure improvement.
> In theory, elimination of on-heap management of the map should buy us some 
> benefit.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to