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

Stefan Miklosovic updated CASSANDRA-19812:
------------------------------------------
    Status: Ready to Commit  (was: Review In Progress)

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

Reply via email to