[jira] [Assigned] (CASSANDRA-14466) Enable Direct I/O

2021-11-03 Thread Mulugeta Mammo (Jira)


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

Mulugeta Mammo reassigned CASSANDRA-14466:
--

Assignee: (was: Mulugeta Mammo)

> Enable Direct I/O 
> --
>
> Key: CASSANDRA-14466
> URL: https://issues.apache.org/jira/browse/CASSANDRA-14466
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Legacy/Local Write-Read Paths
>Reporter: Mulugeta Mammo
>Priority: Normal
> Fix For: 4.x
>
>
> 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
(v8.3.4#803005)

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



[jira] [Commented] (CASSANDRA-14466) Enable Direct I/O

2019-06-26 Thread Mulugeta Mammo (JIRA)


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

Mulugeta Mammo commented on CASSANDRA-14466:


[~snazy] The previous PR was several commits behind. Have created a new PR with 
no conflicts here: [https://github.com/apache/cassandra/pull/329]. Thanks!

> Enable Direct I/O 
> --
>
> Key: CASSANDRA-14466
> URL: https://issues.apache.org/jira/browse/CASSANDRA-14466
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Legacy/Local Write-Read Paths
>Reporter: Mulugeta Mammo
>Assignee: Mulugeta Mammo
>Priority: Normal
>
> 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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-14466) Enable Direct I/O

2019-04-10 Thread Mulugeta Mammo (JIRA)


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

Mulugeta Mammo commented on CASSANDRA-14466:


[~snazy] I have created a new pull request for this: 
https://github.com/apache/cassandra/pull/309. Your comments are welcome!

> Enable Direct I/O 
> --
>
> Key: CASSANDRA-14466
> URL: https://issues.apache.org/jira/browse/CASSANDRA-14466
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Legacy/Local Write-Read Paths
>Reporter: Mulugeta Mammo
>Priority: Normal
>
> 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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-14466) Enable Direct I/O

2019-04-10 Thread Mulugeta Mammo (JIRA)


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

Mulugeta Mammo updated CASSANDRA-14466:
---
Attachment: (was: direct_io.patch)

> Enable Direct I/O 
> --
>
> Key: CASSANDRA-14466
> URL: https://issues.apache.org/jira/browse/CASSANDRA-14466
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Legacy/Local Write-Read Paths
>Reporter: Mulugeta Mammo
>Priority: Normal
>
> 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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-14466) Enable Direct I/O

2018-08-06 Thread Mulugeta Mammo (JIRA)


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

Mulugeta Mammo commented on CASSANDRA-14466:


[~snazy] now that JDK-11 support has been resolved, can we review this patch 
again?

> 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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-14466) Enable Direct I/O

2018-06-07 Thread Mulugeta Mammo (JIRA)


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

Mulugeta Mammo commented on CASSANDRA-14466:


[~aweisberg] Just created two pull requests - one for experimental JDK 9 and 10 
support and the other for O_DIRECT support (based on reflection).

> 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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-14466) Enable Direct I/O

2018-06-06 Thread Mulugeta Mammo (JIRA)


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

Mulugeta Mammo commented on CASSANDRA-14466:


It doesn't, it is dependent on the new O_DIRECT API that we introduced to 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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-14466) Enable Direct I/O

2018-06-05 Thread Mulugeta Mammo (JIRA)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-14466?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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..12\) -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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-14466) Enable Direct I/O

2018-06-01 Thread Mulugeta Mammo (JIRA)


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

Mulugeta Mammo commented on CASSANDRA-14466:


[~aweisberg]

Thanks for the feedback. Yes, we are well aware of the traditional 
recommendation of not mixing O_DIRECT with buffered I/O as described in detail 
in the Linux manual pages here: 
[http://man7.org/linux/man-pages/man2/open.2.html]. However, our understanding 
is that latest kernel versions do a pretty good job of managing any possible 
page-cache coherence. We have confirmed this by running multiple experiments 
and by running Cassandra stress test with a mix read/write workload that uses 
O_DIRECT for read and buffered I/O for write. 

Regarding the general question on the performance benefit of O_DIRECT over 
buffered I/O:
 * O_DIRECT reduces the overhead of a file system cache pollution. Our 
experiments show that, when running a pure read workload under heavy load the 
system's performance is overwhelmed by the kernel resources that are needed to 
manage memory.  For example, we see a very high kernel CPU utilization that is 
close to 50%, vmstat shows a high memory paging activity and the perf profile 
shows try_to_unmap_one as one of the hottest kernel functions. This bottleneck 
is reproducible on various server systems with multiple high bandwidth flash 
storage devices (i.e. NVMe devices).
 * O_DIRECT avoids the double caching problem, to better utilize the Cassandra 
specific caching options.
 * O_DIRECT offers a more predictable latency independent of other processes 
using file system cache. 

*Details:*

Cassandra does not have a way to disable the OS file system caching on Linux.  
The option to bypass the file system cache in the JDK was first introduced in 
Java on JDK 10 with the introduction of Direct IO support.  We modified 
Cassandra to incorporate Direct IO support in the read and write IO path.The 
Write IO path did not provide performance improvements, hence to simplify the 
patch only the read IO path is being proposed here.

This Direct IO patch produces the following relative performance improvements 
over baseline Cassandra:
 * Kernel CPU utilization is reduced by 90%. 
 * Cassandra Ops/sec throughput increases up to 80%
 * Mean, 95th, 99th latencies are reduced by 40-50%

General Hardware Configuration:
 * high core count servers (40+ cores)
 * 128GB+ DRAM
 * Dataset:DRAM ratio of 8:1 or greater
 * multiple NVMe devices

General Software Configuration:
 * Cassandra versions: Cassandra 3.x and trunk 4.0 versions
 * Cassandra process running: one
 * Schema compression settings: default LZ4 64KB chunk size
 * Schema: cqlstress-insanity-example.yaml
 * Benchmark: Cassandra-Stress
 * Runtime: 5 minutes or more depending on how long DRAM takes to reach steady 
state
 * Workload: 100% read
 * Heavily loaded system (number of client threads >200)
 * Kernel: version 4.0 and above
 * Other settings: Datastax production settings 
([https://docs.datastax.com/en/dse/5.1/dse-admin/datastax_enterprise/config/configRecommendedSettings.html]


Thanks,

Mulugeta

> 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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-13778) Enable Direct I/O for non-system SStables operations

2018-05-23 Thread Mulugeta Mammo (JIRA)

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

Mulugeta Mammo commented on CASSANDRA-13778:


We have added a Direct IO support based on JDK 10. You may find the details 
here: https://issues.apache.org/jira/browse/CASSANDRA-14466. 

> Enable Direct I/O for non-system SStables operations
> 
>
> Key: CASSANDRA-13778
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13778
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Local Write-Read Paths
>Reporter: Carlos Abad
>Priority: Major
>  Labels: performance
> Fix For: 4.x
>
>
> Following the line of other databases (like RocksDB) enable Cassandra to 
> bypass the Linux Page Cache by using Direct I/O. By enabling this 
> functionality in the 4 main data paths (read/write un/compressed) our 
> internal testing at Intel shows that using Direct I/O increased performance 
> (latency and throughput) considerably.
> In this implementation not all disk accesses bypass the OS Page Cache, only 
> the ones targeting a non-system SStable data files do. Disk access to 
> SStables metadata files -index, crc, system tables, etc- still benefit from 
> the OS Page Cache.



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

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



[jira] [Updated] (CASSANDRA-14466) Enable Direct I/O

2018-05-23 Thread Mulugeta Mammo (JIRA)

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

Mulugeta Mammo updated CASSANDRA-14466:
---
Description: 
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]

 

  was:
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 [here|[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.

Please review the patch and let us know your feedback.

Thanks,

[^direct_io.patch]

 


> 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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-14466) Enable Direct I/O

2018-05-23 Thread Mulugeta Mammo (JIRA)

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

Mulugeta Mammo updated CASSANDRA-14466:
---
Description: 
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 [here|[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.

Please review the patch and let us know your feedback.

Thanks,

[^direct_io.patch]

 

  was:
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 
[here|[https://bugs.openjdk.java.net/browse/JDK-8164900]|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.

Please review the patch and let us know your feedback.

Thanks,

[^direct_io.patch]

 


> 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 
> [here|[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.
> 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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-14466) Enable Direct I/O

2018-05-23 Thread Mulugeta Mammo (JIRA)

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

Mulugeta Mammo updated CASSANDRA-14466:
---
Description: 
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 
[here|[https://bugs.openjdk.java.net/browse/JDK-8164900]|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.

Please review the patch and let us know your feedback.

Thanks,

[^direct_io.patch]

 

  was:
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 here.  

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.

Please review the patch and let us know your feedback.

Thanks,


[^direct_io.patch]

 


> 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 
> [here|[https://bugs.openjdk.java.net/browse/JDK-8164900]|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.
> 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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Created] (CASSANDRA-14466) Enable Direct I/O

2018-05-23 Thread Mulugeta Mammo (JIRA)
Mulugeta Mammo created CASSANDRA-14466:
--

 Summary: 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
 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 here.  

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.

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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-9608) Support Java 9

2018-05-23 Thread Mulugeta Mammo (JIRA)

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

Mulugeta Mammo commented on CASSANDRA-9608:
---

Hi [~snazy], 

We have resolved the merge issues 
[here|https://github.com/apache/cassandra/compare/trunk...snazy:9608-trunk] and 
we can now run the trunk version of Cassandra with both JDK 9 and 10. Please 
review the attached patch and let us know what is missing, if any.

[^jdk_9_10.patch]

Thanks,

> Support Java 9
> --
>
> Key: CASSANDRA-9608
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9608
> Project: Cassandra
>  Issue Type: Task
>Reporter: Robert Stupp
>Assignee: Robert Stupp
>Priority: Minor
> Attachments: jdk_9_10.patch
>
>
> This ticket is intended to group all issues found to support Java 9 in the 
> future.
> From what I've found out so far:
> * Maven dependency {{com.sun:tools:jar:0}} via cobertura cannot be resolved. 
> It can be easily solved using this patch:
> {code}
> - artifactId="cobertura"/>
> + artifactId="cobertura">
> +  
> +
> {code}
> * Another issue is that {{sun.misc.Unsafe}} no longer contains the methods 
> {{monitorEnter}} + {{monitorExit}}. These methods are used by 
> {{o.a.c.utils.concurrent.Locks}} which is only used by 
> {{o.a.c.db.AtomicBTreeColumns}}.
> I don't mind to start working on this yet since Java 9 is in a too early 
> development phase.



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

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



[jira] [Updated] (CASSANDRA-9608) Support Java 9

2018-05-23 Thread Mulugeta Mammo (JIRA)

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

Mulugeta Mammo updated CASSANDRA-9608:
--
Attachment: jdk_9_10.patch

> Support Java 9
> --
>
> Key: CASSANDRA-9608
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9608
> Project: Cassandra
>  Issue Type: Task
>Reporter: Robert Stupp
>Assignee: Robert Stupp
>Priority: Minor
> Attachments: jdk_9_10.patch
>
>
> This ticket is intended to group all issues found to support Java 9 in the 
> future.
> From what I've found out so far:
> * Maven dependency {{com.sun:tools:jar:0}} via cobertura cannot be resolved. 
> It can be easily solved using this patch:
> {code}
> - artifactId="cobertura"/>
> + artifactId="cobertura">
> +  
> +
> {code}
> * Another issue is that {{sun.misc.Unsafe}} no longer contains the methods 
> {{monitorEnter}} + {{monitorExit}}. These methods are used by 
> {{o.a.c.utils.concurrent.Locks}} which is only used by 
> {{o.a.c.db.AtomicBTreeColumns}}.
> I don't mind to start working on this yet since Java 9 is in a too early 
> development phase.



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

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