diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java index cae47debefe..c5d3c9996d5 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java @@ -383,7 +383,6 @@ DataFileValue minorCompact(InMemoryMap memTable, ReferencedTabletFile tmpDatafil boolean failed = false; long start = System.currentTimeMillis(); timer.incrementStatusMinor(); - long count = 0; String oldName = Thread.currentThread().getName(); @@ -393,7 +392,6 @@ DataFileValue minorCompact(InMemoryMap memTable, ReferencedTabletFile tmpDatafil Span span = TraceUtil.startSpan(this.getClass(), "minorCompact::write"); try (Scope scope = span.makeCurrent()) { count = memTable.getNumEntries(); - MinorCompactor compactor = new MinorCompactor(tabletServer, this, memTable, tmpDatafile, mincReason, tableConfiguration); stats = compactor.call(); @@ -583,9 +581,10 @@ boolean initiateMinorCompaction(long flushId, MinorCompactionReason mincReason) private MinorCompactionTask createMinorCompactionTask(long flushId, MinorCompactionReason mincReason) { MinorCompactionTask mct; + long pauseLimit = + getContext().getTableConfiguration(extent.tableId()).getCount(Property.TABLE_FILE_PAUSE); long t1; long t2; - StringBuilder logMessage = null; try { @@ -593,7 +592,9 @@ private MinorCompactionTask createMinorCompactionTask(long flushId, t1 = System.currentTimeMillis(); if (isClosing() || isClosed() || getTabletMemory().memoryReservedForMinC() - || getTabletMemory().getMemTable().getNumEntries() == 0 || updatingFlushID) { + || getTabletMemory().getMemTable().getNumEntries() == 0 || updatingFlushID + || (mincReason == MinorCompactionReason.SYSTEM + && getDatafiles().size() >= pauseLimit)) { logMessage = new StringBuilder(); @@ -607,6 +608,10 @@ private MinorCompactionTask createMinorCompactionTask(long flushId, logMessage.append(" tabletMemory.getMemTable().getNumEntries() " + getTabletMemory().getMemTable().getNumEntries()); } + if (mincReason == MinorCompactionReason.SYSTEM && getDatafiles().size() >= pauseLimit) { + logMessage.append(" fileCount " + getDatafiles().size()); + logMessage.append(" fileCountPauseLimit " + pauseLimit); + } logMessage.append(" updatingFlushID " + updatingFlushID); return null;