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

Stefania commented on CASSANDRA-9472:
-------------------------------------

Hi [~benedict], thank you for your review.

bq. Storing an offheap variable in BTreeRow looks error-prone to maintain, and 
forwarding all calls in AbstractBTreeRow to a virtual onHeapCopy is 
unnecessarily costly for objects that never are offheap. I think it makes more 
sense for the AtomicBTreePartition to check f it stores on/offheap data when 
answering a query, and to return a suitable iterator that knows to copy on-heap 
when necessary - much as it used to, but moved one step outwards so that it can 
capture DecoratedKey and staticRow.

I agree that a virtual method is unnecessarily costly. I think I went down the 
route of storing the information in {{AbstractBTreeRow}} but I stopped when I 
encountered the static methods. If you can pull it off (or any other more 
efficient way to store this information) I am definitely OK with it.

bq. As far as segmentation faults on toString when peer == 0, this is only a 
problem for the debugger, because we don't call toString() ourselves. I don't 
mind adding guards, but they should really throw exceptions since any access to 
these objects when they've been freed is unequivocally a bug.

This should be fine, I've verified that we can still run {{NativeCellTest}} 
with the debugger and with no adverse effect.

> Reintroduce off heap memtables
> ------------------------------
>
>                 Key: CASSANDRA-9472
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9472
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Benedict
>            Assignee: Stefania
>             Fix For: 3.x
>
>
> CASSANDRA-8099 removes off heap memtables. We should reintroduce them ASAP.



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

Reply via email to