Pass taskId from CompactionTask to system.compaction_history

patch by Stefan Miklosovic; reviewed by Brandon Williams for CASSANDRA-12183
This commit is contained in:
Stefan Miklosovic 2023-06-22 14:23:49 +02:00
parent d99bccd649
commit a00d1de441
No known key found for this signature in database
GPG Key ID: 32F35CB2F546D93E
3 changed files with 11 additions and 7 deletions

View File

@ -1,4 +1,5 @@
3.0.30
* Pass taskId from CompactionTask to system.compaction_history (CASSANDRA-12183)
* Suppress CVE-2023-34455, CVE-2023-34454, CVE-2023-34453 (CASSANDRA-18608)
* Backport CASSANDRA-10508: Remove hard-coded SSL cipher suites (CASSANDRA-18575)
* Suppress CVE-2023-2976 (CASSANDRA-18562)

View File

@ -552,7 +552,8 @@ public final class SystemKeyspace
SystemKeyspace.getOrInitializeLocalHostId(nodeIdSupplier);
}
public static void updateCompactionHistory(String ksname,
public static void updateCompactionHistory(UUID taskId,
String ksname,
String cfname,
long compactedAt,
long bytesIn,
@ -564,7 +565,7 @@ public final class SystemKeyspace
return;
String req = "INSERT INTO system.%s (id, keyspace_name, columnfamily_name, compacted_at, bytes_in, bytes_out, rows_merged) VALUES (?, ?, ?, ?, ?, ?, ?)";
executeInternal(String.format(req, COMPACTION_HISTORY),
UUIDGen.getTimeUUID(),
taskId,
ksname,
cfname,
ByteBufferUtil.bytes(compactedAt),

View File

@ -43,6 +43,7 @@ import org.apache.cassandra.db.compaction.CompactionManager.CompactionExecutorSt
import org.apache.cassandra.db.lifecycle.LifecycleTransaction;
import org.apache.cassandra.service.ActiveRepairService;
import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.UUIDGen;
import org.apache.cassandra.utils.concurrent.Refs;
public class CompactionTask extends AbstractCompactionTask
@ -232,9 +233,10 @@ public class CompactionTask extends AbstractCompactionTask
return;
double mbps = dTime > 0 ? (double) endsize / (1024 * 1024) / ((double) dTime / 1000) : 0;
Summary mergeSummary = updateCompactionHistory(cfs.keyspace.getName(), cfs.getColumnFamilyName(), mergedRowCounts, startsize, endsize);
logger.debug(String.format("Compacted (%s) %d sstables to [%s] to level=%d. %,d bytes to %,d (~%d%% of original) in %,dms = %fMB/s. %,d total partitions merged to %,d. Partition merge counts were {%s}",
taskId, transaction.originals().size(), newSSTableNames.toString(), getLevel(), startsize, endsize, (int) (ratio * 100), dTime, mbps, mergeSummary.totalSourceRows, totalKeysWritten, mergeSummary.partitionMerge));
UUID taskTimeUUID = UUIDGen.getTimeUUID();
Summary mergeSummary = updateCompactionHistory(taskTimeUUID, cfs.keyspace.getName(), cfs.getColumnFamilyName(), mergedRowCounts, startsize, endsize);
logger.debug(String.format("Compacted (task id: %s, compaction history id: %s) %d sstables to [%s] to level=%d. %,d bytes to %,d (~%d%% of original) in %,dms = %fMB/s. %,d total partitions merged to %,d. Partition merge counts were {%s}",
taskId, taskTimeUUID, transaction.originals().size(), newSSTableNames.toString(), getLevel(), startsize, endsize, (int) (ratio * 100), dTime, mbps, mergeSummary.totalSourceRows, totalKeysWritten, mergeSummary.partitionMerge));
logger.trace(String.format("CF Total Bytes Compacted: %,d", CompactionTask.addToTotalBytesCompacted(endsize)));
logger.trace("Actual #keys: {}, Estimated #keys:{}, Err%: {}", totalKeysWritten, estimatedKeys, ((double)(totalKeysWritten - estimatedKeys)/totalKeysWritten));
}
@ -249,7 +251,7 @@ public class CompactionTask extends AbstractCompactionTask
return new DefaultCompactionWriter(cfs, directories, transaction, nonExpiredSSTables, offline, keepOriginals);
}
public static Summary updateCompactionHistory(String keyspaceName, String columnFamilyName, long[] mergedRowCounts, long startSize, long endSize)
public static Summary updateCompactionHistory(UUID taskTimeUUID, String keyspaceName, String columnFamilyName, long[] mergedRowCounts, long startSize, long endSize)
{
StringBuilder mergeSummary = new StringBuilder(mergedRowCounts.length * 10);
Map<Integer, Long> mergedRows = new HashMap<>();
@ -265,7 +267,7 @@ public class CompactionTask extends AbstractCompactionTask
mergeSummary.append(String.format("%d:%d, ", rows, count));
mergedRows.put(rows, count);
}
SystemKeyspace.updateCompactionHistory(keyspaceName, columnFamilyName, System.currentTimeMillis(), startSize, endSize, mergedRows);
SystemKeyspace.updateCompactionHistory(taskTimeUUID, keyspaceName, columnFamilyName, System.currentTimeMillis(), startSize, endSize, mergedRows);
return new Summary(mergeSummary.toString(), totalSourceRows);
}