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

Pavel Yaskevich commented on CASSANDRA-5863:
--------------------------------------------

I've been working on Windmill [1], recently, and it contains a page cache 
implementation that may be useful here or could be used as a reference. The 
implementation is similar to the Linux Kernel’s; It is based on a static, fixed 
maximum length Radix Tree [2] and supports asynchronous reads and writes using 
a dedicated thread pool. I’ve recently added DMA support, via O_DIRECT, and I 
am working on something similar to posix_fadvise to provide even more granular 
file access controls, as well. 

[1] https://github.com/xedin/windmill
[2] 
https://0xax.gitbooks.io/linux-insides/content/DataStructures/radix-tree.html

> In process (uncompressed) page cache
> ------------------------------------
>
>                 Key: CASSANDRA-5863
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5863
>             Project: Cassandra
>          Issue Type: Sub-task
>            Reporter: T Jake Luciani
>            Assignee: Branimir Lambov
>              Labels: performance
>             Fix For: 3.x
>
>
> Currently, for every read, the CRAR reads each compressed chunk into a 
> byte[], sends it to ICompressor, gets back another byte[] and verifies a 
> checksum.  
> This process is where the majority of time is spent in a read request.  
> Before compression, we would have zero-copy of data and could respond 
> directly from the page-cache.
> It would be useful to have some kind of Chunk cache that could speed up this 
> process for hot data, possibly off heap.



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

Reply via email to