cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mulugeta Mammo (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-14466) Enable Direct I/O
Date Tue, 05 Jun 2018 22:24:00 GMT

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

Mulugeta Mammo commented on CASSANDRA-14466:
--------------------------------------------

The results we posted are based on a read_ahead_kb value of 8, a chunk size of 64KB and a
uniform distribution invocation:

{{cassandra-stress user profile=$CASSANDRA_TOOLS/cqlstress-insanity-example.yaml  ops\(simple1=1\)
no-warmup cl=ONE duration=300s -mode native cql3 -pop dist=uniform\(1..1200000000\) -node
server_ip -rate threads=288}}

And no we don’t see any significant difference if we set the read_ahead_kb to 0. For a buffered
run with read_ahead_kb set to 0 vs 8, we observed just a 5% increase in throughput for the
0.

Also, for all of our runs, the Cassandra caches (row cache, key cache, etc.) were disabled.
For a cacheable data, we believe a better solution is to have the caches enabled and tuned
instead of relying on the page cache. Generally, we believe relying on the page cache is not
a good strategy as the application has no control over the caching. The problem also gets
worse if other applications, e.g. a Spark analytics workload, are running on the same node.
 

You may download and test it, git clone -b direct_io [https://github.com/mulugetam/cassandra.git] (requires
JDK 10)

> Enable Direct I/O 
> ------------------
>
>                 Key: CASSANDRA-14466
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14466
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Local Write-Read Paths
>            Reporter: Mulugeta Mammo
>            Priority: Major
>         Attachments: direct_io.patch
>
>
> Hi,
> JDK 10 introduced a new API for Direct IO that enables applications to bypass the file
system cache and potentially improve performance. Details of this feature can be found at
[https://bugs.openjdk.java.net/browse/JDK-8164900].
> This patch uses the JDK 10 API to enable Direct IO for the Cassandra read path. By default,
we have disabled this feature; but it can be enabled using a  new configuration parameter,
enable_direct_io_for_read_path. We have conducted a Cassandra read-only stress test and measured
a throughput gain of up to 60% on flash drives.
> The patch requires JDK 10 Cassandra Support - https://issues.apache.org/jira/browse/CASSANDRA-9608 
> Please review the patch and let us know your feedback.
> Thanks,
> [^direct_io.patch]
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


Mime
View raw message