[ 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