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

Vijay commented on CASSANDRA-5357:
----------------------------------

Ooops, I thought i was continuing the discussion from the other ticket... My 
bad.

What i had in mind was to do something like Map<RowKey, 
[QueryFilter,ColumnFamily]> so invalidation is O(1)
To further improve the performance on a query (And deserializing the whole 
[QueryFilter,ColumnFamily] we can have all the QueryFilters as a part of the 
RowKey (Kind of like promoted index's).

If we do this then the K (For a fat row) becomes big enough to cause more heap 
issue. 
Hence we could move that to off-heap along with CF.

Query to a CF will be constant time (or O(m) where m is the size of queries 
within a row), Space complexity is also constant since we have the key is a off 
heap reference and a hash.

There is one downside in this approche, if a row is hot all the queries will 
stay in memory longer (Unless we reimplement a cache like CLHM)... 
If we think this is big enough problem then we would need an alternative 
approach where we have 2 Maps one for <QF, CF> and the other for <RK, QF> 
mapping, which might not be that space efficient. Let me know.
                
> Query cache
> -----------
>
>                 Key: CASSANDRA-5357
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5357
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Jonathan Ellis
>            Assignee: Vijay
>
> I think that most people expect the row cache to act like a query cache, 
> because that's a reasonable model.  Caching the entire partition is, in 
> retrospect, not really reasonable, so it's not surprising that it catches 
> people off guard, especially given the confusion we've inflicted on ourselves 
> as to what a "row" constitutes.
> I propose replacing it with a true query cache.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to