cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nimi Wariboko Jr. (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CASSANDRA-12561) LCS compaction going into infinite loop due to non-existent sstables
Date Mon, 29 Aug 2016 21:55:20 GMT
Nimi Wariboko Jr. created CASSANDRA-12561:
---------------------------------------------

             Summary: LCS compaction going into infinite loop due to non-existent sstables
                 Key: CASSANDRA-12561
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12561
             Project: Cassandra
          Issue Type: Bug
            Reporter: Nimi Wariboko Jr.


I believe this is related/similar to CASSANDRA-11373, but I'm running 3.5 and I still have
this issue.

AFAICT, this happens when getCompactionCandidates in LeveledManifest.java returns a candidate
that does not exist on disk. 

Eventually, all the compaction threads back up, garbage collections start taking an upwards
of 20 seconds and messages start being dropped.

To get around this, I patched my instance with the following code in LeveledManifest.java

{code:java}
Set<SSTableReader> removeCandidates = new HashSet<>();
            for (SSTableReader sstable : candidates)
            {
                if (!(new java.io.File(sstable.getFilename())).exists()) {
                    removeCandidates.add(sstable);
                    logger.warn("Not compating candidate {} because it does not exist ({}).",
sstable.getFilename(), sstable.openReason);
                }
            }
            candidates.removeAll(removeCandidates);
            if (candidates.size() < 2)
                return Collections.emptyList();
            else
                return candidates;
{code}

This just removes any candidate that doesn't exist on disk - however I'm not sure what the
side effects of this are.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message