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

Maxwell Guo edited comment on CASSANDRA-19812 at 8/15/24 11:06 AM:
-------------------------------------------------------------------

Hi [~smiklosovic], I think it does not block the release of 5.0.0.


was (Author: maxwellguo):
Hi [~smiklosovic], it does not block the release of 5.0.0

> We should throw exception when commitlog 's DiskAccessMode is direct but 
> direct io is not support
> -------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-19812
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-19812
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Local/Commit Log
>            Reporter: Maxwell Guo
>            Assignee: Maxwell Guo
>            Priority: Normal
>             Fix For: 5.x
>
>
> Looking into the code below : 
> {code:java}
> private static DiskAccessMode 
> resolveCommitLogWriteDiskAccessMode(DiskAccessMode providedDiskAccessMode)
>     {
>         boolean compressOrEncrypt = getCommitLogCompression() != null || 
> (getEncryptionContext() != null && getEncryptionContext().isEnabled());
>         boolean directIOSupported = false;
>         try
>         {
>             directIOSupported = FileUtils.getBlockSize(new 
> File(getCommitLogLocation())) > 0;
>         }
>         catch (RuntimeException e)
>         {
>             logger.warn("Unable to determine block size for commit log 
> directory: {}", e.getMessage());
>         }
>         if (providedDiskAccessMode == DiskAccessMode.auto)
>         {
>             if (compressOrEncrypt)
>                 providedDiskAccessMode = DiskAccessMode.legacy;
>             else
>             {
>                 providedDiskAccessMode = directIOSupported && 
> conf.disk_optimization_strategy == Config.DiskOptimizationStrategy.ssd ? 
> DiskAccessMode.direct
>                                                                               
>                                                        : 
> DiskAccessMode.legacy;
>             }
>         }
>         if (providedDiskAccessMode == DiskAccessMode.legacy)
>         {
>             providedDiskAccessMode = compressOrEncrypt ? 
> DiskAccessMode.standard : DiskAccessMode.mmap;
>         }
>         return providedDiskAccessMode;
>     }
> {code}
> We should throw exception when user set the DiskAccessMode to direct for 
> commitlog but the directIOSupported return false after the judgement of 
> "FileUtils.getBlockSize(new File(getCommitLogLocation())) > 0;" instead of 
> waiting for the system to start and accepting reads and writes.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to