[ https://issues.apache.org/jira/browse/CASSANDRA-10421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14952923#comment-14952923 ]
Stefania commented on CASSANDRA-10421: -------------------------------------- Thanks for explaining your opinion. The way you envision it, duplicating files does seem easier than segmenting files across disks. It doesn't however change the fact that we write more and have therefore more chances of failing to do so therefore having to roll back a transaction. bq. The only downside is that users modifying these files would need to modify them all, but this is not overly onerous. Users are not supposed to modify these files but if they did delete one txn file then they could be quite surprised to see temporary files disappear on startup because of a txn log in another folder. Especially given that we only list temporary files by looking at the local txn file. That was one of my concerns. Unless you meant to *not* store the relative file path (the path of an sstable relative to a txn file), in which case we would only be able to delete temporary files if the txn file in the sstable folder has not been deleted? To be clear, we would roll back the transaction if we failed to write a record to _any file_ except for the last record, where we could tolerate failures provided we have written to at least one file? > Potential issue with LogTransaction as it only checks in a single directory > for files > ------------------------------------------------------------------------------------- > > Key: CASSANDRA-10421 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10421 > Project: Cassandra > Issue Type: Bug > Reporter: Marcus Eriksson > Assignee: Stefania > Priority: Blocker > Fix For: 3.0.0 rc2 > > > When creating a new LogTransaction we try to create the new logfile in the > same directory as the one we are writing to, but as we use > {{[directories.getDirectoryForNewSSTables()|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/lifecycle/LogTransaction.java#L125]}} > this might end up in "any" of the configured data directories. If it does, > we will not be able to clean up leftovers as we check for files in the same > directory as the logfile was created: > https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/lifecycle/LogRecord.java#L163 > cc [~Stefania] -- This message was sent by Atlassian JIRA (v6.3.4#6332)