You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (JIRA)" <ji...@apache.org> on 2010/11/05 19:56:43 UTC

[jira] Updated: (CASSANDRA-1714) zero-copy reads

     [ https://issues.apache.org/jira/browse/CASSANDRA-1714?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis updated CASSANDRA-1714:
--------------------------------------

    Attachment: zerocopy.txt

patch implements the main zero-copy method (FileDataInput.readBytes) but there are details left to solve:

1. LazilyCompactedRowTest deals with inputstreams which conflicts w/ our need to deal w/ FDI.  I refactored out AbstractDataInput so we could implement a ByteBufferFileDataInput relatively easily but maybe changing the test is better.
2. We make a ton of calls to ByteBuffer.array() which is invalid with a direct buffer.  I started cleaning these up but there are more left.  (Some calls may be okay if we know the BB involved is always allocated on the heap; relying on the test suite may be less work than changing *every* array() call.)
3. AFAIK the only performant way to write the contents of a direct buffer is with FileChannel, which conflicts with our ICompactSerializer[2] code that deals with DataInput[Stream].  Only the Column stuff cares deeply about this I think (since nothing else deals w/ direct buffers) but if we start using a FileChannel for our sockets then that probably forces a cascading change everywhere else.


> zero-copy reads
> ---------------
>
>                 Key: CASSANDRA-1714
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1714
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Jonathan Ellis
>             Fix For: 0.7.1
>
>         Attachments: zerocopy.txt
>
>
> Since we are already using mmap'd ByteBuffers in MappedFileDataInput we should be able to do zero-copy reads (via buffer.slice()), which would give us better performance than CASSANDRA-1651 without having to worry about buffer management.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.