# Test cases where storeAdmissionStats only populate admittedCount. This is
# the the case where the requests are not providing any byte information.

init
----

prep-admission-stats admitted=0
----
{workCount:0 writeAccountedBytes:0 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:0 writeAccountedBytes:0 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

# Even though above the threshold, the first 60 ticks don't limit the tokens.
set-state l0-bytes=10000 l0-added-write=1000 l0-files=21 l0-sublevels=21
----
compaction score 0.000 (21 ssts, 21 sub-levels), L0 growth 0 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 0 B [≈0 B], flushed 0 B [≈0 B] (mult 0.00); admitting all; write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:1000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:1000 WorkDuration:1000000000 IdleDuration:100000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:0 smoothedCompactionByteTokens:0 smoothedNumFlushTokens:0 flushUtilTargetFraction:0 totalNumByteTokens:9223372036854775807 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:9223372036854775807 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:false} ioThreshold:<nil>}
tick: 0, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 1, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 2, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 3, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 4, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 5, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 6, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 7, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 8, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 9, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 10, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 11, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 12, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 13, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 14, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 15, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 16, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 17, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 18, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 19, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 20, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 21, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 22, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 23, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 24, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 25, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 26, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 27, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 28, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 29, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 30, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 31, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 32, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 33, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 34, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 35, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 36, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 37, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 38, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 39, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 40, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 41, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 42, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 43, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 44, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 45, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 46, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 47, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 48, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 49, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 50, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 51, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 52, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 53, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 54, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 55, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 56, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 57, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 58, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false
tick: 59, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=true

prep-admission-stats admitted=10000 write-bytes=40000
----
{workCount:10000 writeAccountedBytes:40000 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:10000 writeAccountedBytes:40000 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

# Delta added is 100,000. The l0-bytes are the same, so compactions removed
# 100,000 bytes. Smoothed removed by compactions is 50,000. Each admitted is
# expected to add 10 bytes. We want to add only 25,000 (half the smoothed
# removed), but smoothing it drops the tokens to 12,500.
set-state l0-bytes=10000 l0-added-write=101000 l0-files=21 l0-sublevels=21
----
compaction score 1.050[L0-overload] (21 ssts, 21 sub-levels), L0 growth 98 KiB (write 98 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 10000 (0 bypassed) with 39 KiB acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 98 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 2.25x+1 B (smoothed 2.00x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 5 B, compacted 98 KiB [≈49 KiB], flushed 1.4 MiB [≈0 B] (mult 1.00); admitting 12 KiB (rate 833 B/s) (elastic 1 B rate 0 B/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:101000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:101000 WorkDuration:2000000000 IdleDuration:200000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:50000 smoothedCompactionByteTokens:12500 smoothedNumFlushTokens:0 flushUtilTargetFraction:1 totalNumByteTokens:12500 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:1 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:5} l0WriteLM:{multiplier:2 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:100000 intL0CompactedBytes:100000 intFlushTokens:1.5e+06 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:10000 intL0WriteBytes:100000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:40000 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:2.25 constant:1} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:100000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 5
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 2.00x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=209(elastic 1) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 1, setAvailableTokens: io-tokens=209(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 2, setAvailableTokens: io-tokens=209(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 3, setAvailableTokens: io-tokens=209(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 4, setAvailableTokens: io-tokens=209(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 5, setAvailableTokens: io-tokens=209(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 6, setAvailableTokens: io-tokens=209(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 7, setAvailableTokens: io-tokens=209(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 8, setAvailableTokens: io-tokens=209(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 9, setAvailableTokens: io-tokens=209(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 10, setAvailableTokens: io-tokens=209(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 11, setAvailableTokens: io-tokens=209(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 12, setAvailableTokens: io-tokens=209(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 13, setAvailableTokens: io-tokens=209(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 14, setAvailableTokens: io-tokens=209(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 15, setAvailableTokens: io-tokens=209(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 16, setAvailableTokens: io-tokens=209(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 17, setAvailableTokens: io-tokens=209(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 18, setAvailableTokens: io-tokens=209(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 19, setAvailableTokens: io-tokens=209(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 20, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 21, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 22, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 23, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 24, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 25, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 26, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 27, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 28, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 29, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 30, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 31, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 32, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 33, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 34, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 35, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 36, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 37, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 38, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 39, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 40, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 41, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 42, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 43, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 44, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 45, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 46, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 47, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 48, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 49, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 50, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 51, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 52, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 53, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 54, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 55, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 56, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 57, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 58, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 59, setAvailableTokens: io-tokens=208(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=true

prep-admission-stats admitted=20000 write-bytes=80000
----
{workCount:20000 writeAccountedBytes:80000 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:20000 writeAccountedBytes:80000 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

# Same delta as previous but smoothing bumps up the tokens to 25,000.
set-state l0-bytes=10000 l0-added-write=201000 l0-files=21 l0-sublevels=21
----
compaction score 1.050[L0-overload] (21 ssts, 21 sub-levels), L0 growth 98 KiB (write 98 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 10000 (0 bypassed) with 39 KiB acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 98 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 2.25x+1 B (smoothed 2.12x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 7 B, compacted 98 KiB [≈73 KiB], flushed 1.4 MiB [≈0 B] (mult 1.00); admitting 24 KiB (rate 1.6 KiB/s) (elastic 1 B rate 0 B/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:201000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:201000 WorkDuration:3000000000 IdleDuration:300000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:75000 smoothedCompactionByteTokens:25000 smoothedNumFlushTokens:0 flushUtilTargetFraction:1 totalNumByteTokens:25000 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:1 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:7} l0WriteLM:{multiplier:2.125 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:100000 intL0CompactedBytes:100000 intFlushTokens:1.5e+06 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:10000 intL0WriteBytes:100000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:40000 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:2.25 constant:1} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:100000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 7
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 2.12x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=417(elastic 1) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 1, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 2, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 3, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 4, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 5, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 6, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 7, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 8, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 9, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 10, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 11, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 12, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 13, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 14, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 15, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 16, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 17, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 18, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 19, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 20, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 21, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 22, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 23, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 24, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 25, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 26, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 27, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 28, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 29, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 30, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 31, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 32, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 33, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 34, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 35, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 36, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 37, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 38, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 39, setAvailableTokens: io-tokens=417(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 40, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 41, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 42, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 43, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 44, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 45, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 46, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 47, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 48, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 49, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 50, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 51, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 52, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 53, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 54, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 55, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 56, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 57, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 58, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
tick: 59, setAvailableTokens: io-tokens=416(elastic 0) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=true

# No delta. This used to trigger an overflow bug.
set-state l0-bytes=10000 l0-added-write=201000 l0-files=21 l0-sublevels=21 print-only-first-tick=true
----
compaction score 1.050[L0-overload] (21 ssts, 21 sub-levels), L0 growth 0 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 2.12x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 7 B, compacted 0 B [≈37 KiB], flushed 0 B [≈0 B] (mult 1.00); admitting 21 KiB (rate 1.4 KiB/s) (elastic 1 B rate 0 B/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:201000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:201000 WorkDuration:4000000000 IdleDuration:400000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:37500 smoothedCompactionByteTokens:21875 smoothedNumFlushTokens:0 flushUtilTargetFraction:1 totalNumByteTokens:21875 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:1 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:7} l0WriteLM:{multiplier:2.125 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 7
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 2.12x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=365(elastic 1) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=365(elastic 1) max-disk-bw-tokens=unlimited lastTick=false

prep-admission-stats admitted=30000 write-bytes=120000
----
{workCount:30000 writeAccountedBytes:120000 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:30000 writeAccountedBytes:120000 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

# l0-sublevels drops below threshold. We calculate the smoothed values, but
# don't limit the tokens.
set-state l0-bytes=10000 l0-added-write=501000 l0-files=21 l0-sublevels=9 print-only-first-tick=true
----
compaction score 0.450 (21 ssts, 9 sub-levels), L0 growth 293 KiB (write 293 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 10000 (0 bypassed) with 39 KiB acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 293 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 3.00x+18 B (smoothed 2.56x+9 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 18 B, compacted 293 KiB [≈165 KiB], flushed 4.3 MiB [≈0 B] (mult 1.00); admitting 110 KiB (rate 7.3 KiB/s) (elastic 62 KiB rate 4.1 KiB/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:501000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:501000 WorkDuration:5000000000 IdleDuration:500000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:168750 smoothedCompactionByteTokens:112187.5 smoothedNumFlushTokens:0 flushUtilTargetFraction:1 totalNumByteTokens:112187 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:63281 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:18} l0WriteLM:{multiplier:2.5625 constant:9} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:300000 intL0CompactedBytes:300000 intFlushTokens:4.5e+06 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:10000 intL0WriteBytes:300000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:40000 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:3 constant:18} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:300000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 18
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 2.56x+9 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=1870(elastic 1055) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=1870(elastic 1055) max-disk-bw-tokens=unlimited lastTick=false

prep-admission-stats admitted=40000 write-bytes=160000
----
{workCount:40000 writeAccountedBytes:160000 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:40000 writeAccountedBytes:160000 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

set-state l0-bytes=10000 l0-added-write=501000 l0-files=21 l0-sublevels=6 print-only-first-tick=true
----
compaction score 0.300 (21 ssts, 6 sub-levels), L0 growth 0 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 10000 (0 bypassed) with 39 KiB acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 2.56x+4 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 18 B, compacted 0 B [≈82 KiB], flushed 0 B [≈0 B] (mult 1.00); admitting 129 KiB (rate 8.6 KiB/s) (elastic 62 KiB rate 4.1 KiB/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:501000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:501000 WorkDuration:6000000000 IdleDuration:600000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:84375 smoothedCompactionByteTokens:132031.25 smoothedNumFlushTokens:0 flushUtilTargetFraction:1 totalNumByteTokens:132031 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:63281 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:18} l0WriteLM:{multiplier:2.5625 constant:4} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:10000 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:40000 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 18
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 2.56x+4 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=2201(elastic 1055) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=2201(elastic 1055) max-disk-bw-tokens=unlimited lastTick=false

prep-admission-stats admitted=50000 write-bytes=200000
----
{workCount:50000 writeAccountedBytes:200000 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:50000 writeAccountedBytes:200000 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

set-state l0-bytes=10000 l0-added-write=501000 l0-files=21 l0-sublevels=3 print-only-first-tick=true
----
compaction score 0.150 (21 ssts, 3 sub-levels), L0 growth 0 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 10000 (0 bypassed) with 39 KiB acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 2.56x+2 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 18 B, compacted 0 B [≈41 KiB], flushed 0 B [≈0 B] (mult 1.00); admitting elastic 46 KiB (rate 3.1 KiB/s) due to L0 growth; write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:501000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:501000 WorkDuration:7000000000 IdleDuration:700000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:42187 smoothedCompactionByteTokens:66015.625 smoothedNumFlushTokens:0 flushUtilTargetFraction:1 totalNumByteTokens:9223372036854775807 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:47460 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:18} l0WriteLM:{multiplier:2.5625 constant:2} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:10000 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:40000 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 18
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 2.56x+2 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=unlimited(elastic 791) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic 791) max-disk-bw-tokens=unlimited lastTick=false


# Test cases with more information in storeAdmissionStats.
init
----

prep-admission-stats admitted=0
----
{workCount:0 writeAccountedBytes:0 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:0 writeAccountedBytes:0 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

set-state l0-bytes=1000 l0-added-write=1000 l0-added-ingested=0 l0-files=21 l0-sublevels=21 print-only-first-tick=true
----
compaction score 0.000 (21 ssts, 21 sub-levels), L0 growth 0 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 0 B [≈0 B], flushed 0 B [≈0 B] (mult 0.00); admitting all; write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:1000 curL0Bytes:1000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:1000 WorkDuration:1000000000 IdleDuration:100000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:0 smoothedCompactionByteTokens:0 smoothedNumFlushTokens:0 flushUtilTargetFraction:0 totalNumByteTokens:9223372036854775807 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:9223372036854775807 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:false} ioThreshold:<nil>}
tick: 0, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false

# L0 will see an addition of 200,000 bytes. 150,000 bytes were mentioned by
# the admitted requests.
prep-admission-stats admitted=10 write-bytes=130000 ingested-bytes=20000 below-raft=true
----
{workCount:10 writeAccountedBytes:130000 ingestedAccountedBytes:20000 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:0 writeAccountedBytes:0 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

# The ingested model can be fit with a multiplier of ~1.5 for the interval,
# but since the l0-ingest-lm model had a previous multiplier of 0.75 and the
# ingest-model had a previous multiplier of 1.0 and we do exponential
# smoothing with alpha=0.5, we end up the multipliers
# of 1.12 and 1.25 respectively.
set-state l0-bytes=1000 l0-added-write=171000 l0-added-ingested=30000 l0-files=21 l0-sublevels=21 print-only-first-tick=true
----
compaction score 1.050[L0-overload] (21 ssts, 21 sub-levels), L0 growth 195 KiB (write 166 KiB (ignored 0 B) ingest 29 KiB (ignored 0 B)): requests 10 (0 bypassed) with 127 KiB acc-write (0 B bypassed) + 20 KiB acc-ingest (0 B bypassed) + 195 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 1.31x+1 B (smoothed 1.53x+1 B) + ingested-model 1.50x+1 B (smoothed 1.12x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 195 KiB [≈98 KiB], flushed 2.4 MiB [≈0 B] (mult 1.00); admitting 24 KiB (rate 1.6 KiB/s) (elastic 1 B rate 0 B/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:201000 curL0Bytes:1000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:171000 WorkDuration:2000000000 IdleDuration:200000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:100000 smoothedCompactionByteTokens:25000 smoothedNumFlushTokens:0 flushUtilTargetFraction:1 totalNumByteTokens:25000 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:1 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.5288076923076923 constant:1} l0IngestLM:{multiplier:1.125 constant:1} ingestLM:{multiplier:1.2497500000000001 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:200000 intL0CompactedBytes:200000 intFlushTokens:2.55e+06 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:10 intL0WriteBytes:170000 intL0IngestedBytes:30000 intLSMIngestedBytes:30000 intL0WriteAccountedBytes:130000 intIngestedAccountedBytes:20000 intL0WriteLinearModel:{multiplier:1.3076153846153846 constant:1} intL0IngestedLinearModel:{multiplier:1.4995 constant:1} intIngestedLinearModel:{multiplier:1.4995 constant:1} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:200000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.53x+1 l0-ingest-lm: 1.12x+1 ingest-lm: 1.25x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=417(elastic 1) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false

# L0 will see an addition of 20,000 bytes, all of which are accounted for.
# Since the ingested bytes in this interval are 0, the constant for the
# ingested model is decayed by a factor of 2.
prep-admission-stats admitted=20 write-bytes=150000 ingested-bytes=20000
----
{workCount:20 writeAccountedBytes:150000 ingestedAccountedBytes:20000 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:20 writeAccountedBytes:150000 ingestedAccountedBytes:20000} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

set-state l0-bytes=1000 l0-added-write=191000 l0-added-ingested=30000 l0-files=21 l0-sublevels=21 print-only-first-tick=true
----
compaction score 1.050[L0-overload] (21 ssts, 21 sub-levels), L0 growth 20 KiB (write 20 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 10 (0 bypassed) with 20 KiB acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 20 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 1.00x+1 B (smoothed 1.26x+1 B) + ingested-model 0.00x+0 B (smoothed 1.12x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 4.1 KiB, compacted 20 KiB [≈59 KiB], flushed 293 KiB [≈0 B] (mult 1.00); admitting 27 KiB (rate 1.8 KiB/s) (elastic 1 B rate 0 B/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:221000 curL0Bytes:1000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:191000 WorkDuration:3000000000 IdleDuration:300000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:60000 smoothedCompactionByteTokens:27500 smoothedNumFlushTokens:0 flushUtilTargetFraction:1 totalNumByteTokens:27500 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:1 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:4195} l0WriteLM:{multiplier:1.2641538461538462 constant:1} l0IngestLM:{multiplier:1.125 constant:1} ingestLM:{multiplier:1.2497500000000001 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:20000 intL0CompactedBytes:20000 intFlushTokens:300000 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:10 intL0WriteBytes:20000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:20000 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0.9995 constant:1} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:20000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 4195
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.26x+1 l0-ingest-lm: 1.12x+1 ingest-lm: 1.25x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=459(elastic 1) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=459(elastic 1) max-disk-bw-tokens=unlimited lastTick=false

# L0 will see an addition of 20,000 bytes, but we think we have added 100,000
# bytes to L0. We don't let unaccounted bytes become negative.
prep-admission-stats admitted=30 write-bytes=250000 ingested-bytes=20000 ingested-into-l0=20000
----
{workCount:30 writeAccountedBytes:250000 ingestedAccountedBytes:20000 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:30 writeAccountedBytes:250000 ingestedAccountedBytes:20000} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

set-state l0-bytes=1000 l0-added-write=211000 l0-added-ingested=30000 l0-files=21 l0-sublevels=21 print-only-first-tick=true
----
compaction score 1.050[L0-overload] (21 ssts, 21 sub-levels), L0 growth 20 KiB (write 20 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 10 (0 bypassed) with 98 KiB acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 20 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.50x+1 B (smoothed 0.88x+1 B) + ingested-model 0.00x+0 B (smoothed 1.12x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 3.0 KiB, compacted 20 KiB [≈39 KiB], flushed 293 KiB [≈0 B] (mult 1.00); admitting 23 KiB (rate 1.5 KiB/s) (elastic 1 B rate 0 B/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:241000 curL0Bytes:1000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:211000 WorkDuration:4000000000 IdleDuration:400000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:40000 smoothedCompactionByteTokens:23750 smoothedNumFlushTokens:0 flushUtilTargetFraction:1 totalNumByteTokens:23750 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:1 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:3097} l0WriteLM:{multiplier:0.8820769230769231 constant:1} l0IngestLM:{multiplier:1.125 constant:1} ingestLM:{multiplier:1.2497500000000001 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:20000 intL0CompactedBytes:20000 intFlushTokens:300000 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:10 intL0WriteBytes:20000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:100000 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0.5 constant:1} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:20000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 3097
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 0.88x+1 l0-ingest-lm: 1.12x+1 ingest-lm: 1.25x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=396(elastic 1) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=396(elastic 1) max-disk-bw-tokens=unlimited lastTick=false

# Test case with WAL failover.
init
----

prep-admission-stats admitted=0
----
{workCount:0 writeAccountedBytes:0 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:0 writeAccountedBytes:0 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

set-state l0-bytes=1000 l0-added-write=1000 l0-added-ingested=0 l0-files=21 l0-sublevels=21 print-only-first-tick=true
----
compaction score 0.000 (21 ssts, 21 sub-levels), L0 growth 0 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 0 B [≈0 B], flushed 0 B [≈0 B] (mult 0.00); admitting all; write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:1000 curL0Bytes:1000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:1000 WorkDuration:1000000000 IdleDuration:100000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:0 smoothedCompactionByteTokens:0 smoothedNumFlushTokens:0 flushUtilTargetFraction:0 totalNumByteTokens:9223372036854775807 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:9223372036854775807 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:false} ioThreshold:<nil>}
tick: 0, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false

# L0 will see an addition of 200,000 bytes. All were mentioned in the admitted requests.
prep-admission-stats admitted=10 write-bytes=200000
----
{workCount:10 writeAccountedBytes:200000 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:10 writeAccountedBytes:200000 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

set-state l0-bytes=1000 l0-added-write=201000 l0-files=21 l0-sublevels=21 print-only-first-tick=true
----
compaction score 1.050[L0-overload] (21 ssts, 21 sub-levels), L0 growth 195 KiB (write 195 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 10 (0 bypassed) with 195 KiB acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 195 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 1.00x+1 B (smoothed 1.37x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 9.8 KiB, compacted 195 KiB [≈98 KiB], flushed 2.9 MiB [≈0 B] (mult 1.00); admitting 24 KiB (rate 1.6 KiB/s) (elastic 1 B rate 0 B/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:201000 curL0Bytes:1000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:201000 WorkDuration:2000000000 IdleDuration:200000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:100000 smoothedCompactionByteTokens:25000 smoothedNumFlushTokens:0 flushUtilTargetFraction:1 totalNumByteTokens:25000 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:1 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:10000} l0WriteLM:{multiplier:1.374975 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:200000 intL0CompactedBytes:200000 intFlushTokens:3e+06 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:10 intL0WriteBytes:200000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:200000 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0.99995 constant:1} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:200000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 10000
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.37x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=417(elastic 1) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false

prep-admission-stats admitted=10 write-bytes=200000
----
{workCount:10 writeAccountedBytes:200000 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:10 writeAccountedBytes:200000 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

# Even though compactions out of L0 did not happen, the smoothed compacted bytes stayed the same (98KiB) and so did the admission tokens (24KiB).
set-state l0-bytes=201000 l0-added-write=401000 l0-files=41 l0-sublevels=41 print-only-first-tick=true wal-secondary-write-sec=1
----
compaction score 2.050[L0-overload] (41 ssts, 41 sub-levels), L0 growth 195 KiB (write 195 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 195 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.37x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 9.8 KiB, compacted 0 B [≈98 KiB], flushed 2.9 MiB [≈0 B] (mult 1.00); admitting (WAL failover) 24 KiB (rate 1.6 KiB/s) (elastic 1 B rate 0 B/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:401000 curL0Bytes:201000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:401000 WorkDuration:3000000000 IdleDuration:300000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:1000000000 smoothedIntL0CompactedBytes:100000 smoothedCompactionByteTokens:25000 smoothedNumFlushTokens:0 flushUtilTargetFraction:1 totalNumByteTokens:25000 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:1 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:10000} l0WriteLM:{multiplier:1.374975 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:200000 intL0CompactedBytes:0 intFlushTokens:3e+06 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:true prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:200000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:200000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 10000
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.37x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=417(elastic 1) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false

# Set admission.wal.failover.unlimited_tokens.enabled=true
set-unlimited-wal-failover-tokens
----

prep-admission-stats admitted=10 write-bytes=200000
----
{workCount:10 writeAccountedBytes:200000 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:10 writeAccountedBytes:200000 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

# Even though compactions out of L0 did not happen, the smoothed compacted bytes stayed the same (98KiB). The admission tokens are unlimited due to the cluster setting.
set-state l0-bytes=401000 l0-added-write=601000 l0-files=61 l0-sublevels=61 print-only-first-tick=true wal-secondary-write-sec=1
----
compaction score 3.050[L0-overload] (61 ssts, 61 sub-levels), L0 growth 195 KiB (write 195 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 195 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.37x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 9.8 KiB, compacted 0 B [≈98 KiB], flushed 2.9 MiB [≈0 B] (mult 1.00); admitting (WAL failover) all; write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:601000 curL0Bytes:401000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:601000 WorkDuration:4000000000 IdleDuration:400000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:2000000000 smoothedIntL0CompactedBytes:100000 smoothedCompactionByteTokens:25000 smoothedNumFlushTokens:0 flushUtilTargetFraction:1 totalNumByteTokens:9223372036854775807 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:9223372036854775807 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:10000} l0WriteLM:{multiplier:1.374975 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:200000 intL0CompactedBytes:0 intFlushTokens:3e+06 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:true prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:200000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:200000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 10000
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.37x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false

set-unlimited-wal-failover-tokens enabled=false
----

prep-admission-stats admitted=10 write-bytes=200000
----
{workCount:10 writeAccountedBytes:200000 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:10 writeAccountedBytes:200000 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

# Still no compactions out of L0, but sub-levels fell (for whatever reason),
# and since WAL is still seeing some writes to secondary, the smoothed
# compacted bytes stay the same. Even though there are only 5 sub-levels, the
# elastic tokens are throttled. Also, even though flush utilization is high
# enough to adjust the smoothed utilization, and write stall count should
# adjust the multiplier, these signals are ignored because of WAL writes to
# secondary.
set-state l0-bytes=601000 l0-added-write=801000 l0-files=61 l0-sublevels=5 print-only-first-tick=true wal-secondary-write-sec=1 flush-bytes=1000 flush-work-sec=8 flush-idle-sec=10 write-stall-count=4
----
compaction score 0.250 (61 ssts, 5 sub-levels), L0 growth 195 KiB (write 195 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 195 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.37x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 9.8 KiB, compacted 0 B [≈98 KiB], flushed 366 KiB [≈0 B] (mult 1.00); admitting (WAL failover) 24 KiB (rate 1.6 KiB/s) (elastic 1 B rate 0 B/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 4
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:801000 curL0Bytes:601000 cumWriteStallCount:4 cumFlushWriteThroughput:{Bytes:801000 WorkDuration:12000000000 IdleDuration:410000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:3000000000 smoothedIntL0CompactedBytes:100000 smoothedCompactionByteTokens:25000 smoothedNumFlushTokens:0 flushUtilTargetFraction:1 totalNumByteTokens:25000 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:1 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:10000} l0WriteLM:{multiplier:1.374975 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:200000 intL0CompactedBytes:0 intFlushTokens:375000 intFlushUtilization:0.4444444444444444 intWriteStalls:4 intWALFailover:true prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:200000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:200000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 10000
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.37x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=417(elastic 1) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=417(elastic 1) max-disk-bw-tokens=unlimited lastTick=false

# Test case with flush tokens.
init
----

prep-admission-stats admitted=0
----
{workCount:0 writeAccountedBytes:0 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:0 writeAccountedBytes:0 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

set-state l0-bytes=10000 l0-added-write=1000 l0-files=1 l0-sublevels=1 print-only-first-tick=true
----
compaction score 0.000 (1 ssts, 1 sub-levels), L0 growth 0 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 0 B [≈0 B], flushed 0 B [≈0 B] (mult 0.00); admitting all; write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:1000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:1000 WorkDuration:1000000000 IdleDuration:100000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:0 smoothedCompactionByteTokens:0 smoothedNumFlushTokens:0 flushUtilTargetFraction:0 totalNumByteTokens:9223372036854775807 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:9223372036854775807 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:false} ioThreshold:<nil>}
tick: 0, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false

# Flush loop utilization is too low for the interval flush tokens to
# contribute to the smoothed value, or for tokens to become limited.
set-state l0-bytes=10000 l0-added-write=2000 l0-files=1 l0-sublevels=1 flush-bytes=1000 flush-work-sec=2 flush-idle-sec=100 print-only-first-tick=true
----
compaction score 0.050 (1 ssts, 1 sub-levels), L0 growth 1000 B (write 1000 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 1000 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 1000 B [≈500 B], flushed 7.3 KiB [≈0 B] (mult 1.00); admitting all; write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:2000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:2000 WorkDuration:3000000000 IdleDuration:200000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:500 smoothedCompactionByteTokens:500 smoothedNumFlushTokens:0 flushUtilTargetFraction:1 totalNumByteTokens:9223372036854775807 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:9223372036854775807 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:1000 intL0CompactedBytes:1000 intFlushTokens:7500 intFlushUtilization:0.0196078431372549 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:1000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:1000 intAdjustedDiskWriteBytes:0} doLogFlush:false} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false

# Flush loop utilization is high enough, so we compute flush tokens for limiting admission.
set-state l0-bytes=10000 l0-added-write=3000 l0-files=1 l0-sublevels=1 flush-bytes=1000 flush-work-sec=2 flush-idle-sec=10 print-only-first-tick=true
----
compaction score 0.050 (1 ssts, 1 sub-levels), L0 growth 1000 B (write 1000 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 1000 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 1000 B [≈750 B], flushed 7.3 KiB [≈7.3 KiB] (mult 1.00); admitting 7.3 KiB (rate 500 B/s) (elastic 5.9 KiB rate 400 B/s) due to memtable flush (multiplier 1.000) (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:3000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:3000 WorkDuration:5000000000 IdleDuration:210000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:750 smoothedCompactionByteTokens:750 smoothedNumFlushTokens:7500 flushUtilTargetFraction:1 totalNumByteTokens:7500 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:6000 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:1000 intL0CompactedBytes:1000 intFlushTokens:7500 intFlushUtilization:0.16666666666666666 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:1 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:1000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:1000 intAdjustedDiskWriteBytes:0} doLogFlush:false} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=125(elastic 100) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=125(elastic 100) max-disk-bw-tokens=unlimited lastTick=false

# Write stalls are happening, so decrease the flush utilization target
# fraction from 1.0 to 0.975. But the peak flush rate has also increased since
# now we flushed 10x the bytes, so the overall tokens increase.
set-state l0-bytes=10000 l0-added-write=13000 l0-files=1 l0-sublevels=1 flush-bytes=10000 flush-work-sec=2 flush-idle-sec=10 write-stall-count=1 print-only-first-tick=true
----
compaction score 0.050 (1 ssts, 1 sub-levels), L0 growth 9.8 KiB (write 9.8 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 9.8 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 9.8 KiB [≈5.2 KiB], flushed 73 KiB [≈40 KiB] (mult 0.97); admitting 39 KiB (rate 2.6 KiB/s) (elastic 31 KiB rate 2.1 KiB/s) due to memtable flush (multiplier 0.975) (used total: 0 B elastic 0 B); write stalls 1
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:13000 curL0Bytes:10000 cumWriteStallCount:1 cumFlushWriteThroughput:{Bytes:13000 WorkDuration:7000000000 IdleDuration:220000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:5375 smoothedCompactionByteTokens:5375 smoothedNumFlushTokens:41250 flushUtilTargetFraction:0.975 totalNumByteTokens:40218 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:32174 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:10000 intL0CompactedBytes:10000 intFlushTokens:75000 intFlushUtilization:0.16666666666666666 intWriteStalls:1 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:1 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:10000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:10000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=671(elastic 537) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=671(elastic 537) max-disk-bw-tokens=unlimited lastTick=false

# Two write stalls happened, so decrease the flush utilization target fraction
# by a bigger step, from 0.975 to 0.925. Since the smoothed peak flush rate is
# increasing, the overall flush tokens continue to increase.
set-state l0-bytes=10000 l0-added-write=23000 l0-files=1 l0-sublevels=1 flush-bytes=10000 flush-work-sec=2 flush-idle-sec=10 write-stall-count=3 print-only-first-tick=true
----
compaction score 0.050 (1 ssts, 1 sub-levels), L0 growth 9.8 KiB (write 9.8 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 9.8 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 9.8 KiB [≈7.5 KiB], flushed 73 KiB [≈57 KiB] (mult 0.92); admitting 52 KiB (rate 3.5 KiB/s) (elastic 42 KiB rate 2.8 KiB/s) due to memtable flush (multiplier 0.925) (used total: 0 B elastic 0 B); write stalls 2
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:23000 curL0Bytes:10000 cumWriteStallCount:3 cumFlushWriteThroughput:{Bytes:23000 WorkDuration:9000000000 IdleDuration:230000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:7687 smoothedCompactionByteTokens:7687.5 smoothedNumFlushTokens:58125 flushUtilTargetFraction:0.9249999999999999 totalNumByteTokens:53765 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:43012 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:10000 intL0CompactedBytes:10000 intFlushTokens:75000 intFlushUtilization:0.16666666666666666 intWriteStalls:2 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:1 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:10000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:10000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=897(elastic 717) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=897(elastic 717) max-disk-bw-tokens=unlimited lastTick=false

# Five more write stalls, so the the flush utilization target fraction is
# decreased to 0.85. The smoothed peak flush rate continues to increase.
set-state l0-bytes=10000 l0-added-write=33000 l0-files=1 l0-sublevels=1 flush-bytes=10000 flush-work-sec=2 flush-idle-sec=10 write-stall-count=8 print-only-first-tick=true
----
compaction score 0.050 (1 ssts, 1 sub-levels), L0 growth 9.8 KiB (write 9.8 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 9.8 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 9.8 KiB [≈8.6 KiB], flushed 73 KiB [≈65 KiB] (mult 0.85); admitting 55 KiB (rate 3.7 KiB/s) (elastic 44 KiB rate 2.9 KiB/s) due to memtable flush (multiplier 0.850) (used total: 0 B elastic 0 B); write stalls 5
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:33000 curL0Bytes:10000 cumWriteStallCount:8 cumFlushWriteThroughput:{Bytes:33000 WorkDuration:11000000000 IdleDuration:240000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:8843 smoothedCompactionByteTokens:8843.75 smoothedNumFlushTokens:66562.5 flushUtilTargetFraction:0.8499999999999999 totalNumByteTokens:56578 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:45262 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:10000 intL0CompactedBytes:10000 intFlushTokens:75000 intFlushUtilization:0.16666666666666666 intWriteStalls:5 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:1 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:10000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:10000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=943(elastic 755) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=943(elastic 755) max-disk-bw-tokens=unlimited lastTick=false

# Another write stall, and the flush utilization target fraction drops to 0.825.
set-state l0-bytes=10000 l0-added-write=43000 l0-files=1 l0-sublevels=2 flush-bytes=10000 flush-work-sec=2 flush-idle-sec=10 write-stall-count=9 print-only-first-tick=true
----
compaction score 0.100 (1 ssts, 2 sub-levels), L0 growth 9.8 KiB (write 9.8 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 9.8 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 9.8 KiB [≈9.2 KiB], flushed 73 KiB [≈69 KiB] (mult 0.82); admitting 57 KiB (rate 3.8 KiB/s) (elastic 12 KiB rate 785 B/s) due to memtable flush (multiplier 0.825) (used total: 0 B elastic 0 B); write stalls 1
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:43000 curL0Bytes:10000 cumWriteStallCount:9 cumFlushWriteThroughput:{Bytes:43000 WorkDuration:13000000000 IdleDuration:250000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:9421 smoothedCompactionByteTokens:9421.875 smoothedNumFlushTokens:70781.25 flushUtilTargetFraction:0.8249999999999998 totalNumByteTokens:58394 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:11776 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:10000 intL0CompactedBytes:10000 intFlushTokens:75000 intFlushUtilization:0.16666666666666666 intWriteStalls:1 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:1 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:10000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:10000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=974(elastic 197) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=974(elastic 197) max-disk-bw-tokens=unlimited lastTick=false

# Set a lower bound of 1.3 on the flush utilization target fraction.
set-min-flush-util percent=130
----

# Another write stall causes the flush utilization target fraction to decrease
# to 1.3, which is also the lower bound.
set-state l0-bytes=10000 l0-added-write=53000 l0-files=1 l0-sublevels=2 flush-bytes=10000 flush-work-sec=2 flush-idle-sec=10 write-stall-count=10 print-only-first-tick=true
----
compaction score 0.100 (1 ssts, 2 sub-levels), L0 growth 9.8 KiB (write 9.8 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 9.8 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 9.8 KiB [≈9.5 KiB], flushed 73 KiB [≈71 KiB] (mult 1.30); admitting 92 KiB (rate 6.2 KiB/s) (elastic 12 KiB rate 809 B/s) due to memtable flush (multiplier 1.300) (used total: 0 B elastic 0 B); write stalls 1
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:53000 curL0Bytes:10000 cumWriteStallCount:10 cumFlushWriteThroughput:{Bytes:53000 WorkDuration:15000000000 IdleDuration:260000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:9710 smoothedCompactionByteTokens:9710.9375 smoothedNumFlushTokens:72890.625 flushUtilTargetFraction:1.3 totalNumByteTokens:94757 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:12137 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:10000 intL0CompactedBytes:10000 intFlushTokens:75000 intFlushUtilization:0.16666666666666666 intWriteStalls:1 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:1 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:10000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:10000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=1580(elastic 203) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=1580(elastic 203) max-disk-bw-tokens=unlimited lastTick=false

# Despite another write stall, the flush utilization target fraction does not
# decrease since it is already at the lower bound.
set-state l0-bytes=10000 l0-added-write=63000 l0-files=1 l0-sublevels=2 flush-bytes=10000 flush-work-sec=2 flush-idle-sec=10 write-stall-count=11 print-only-first-tick=true
----
compaction score 0.100 (1 ssts, 2 sub-levels), L0 growth 9.8 KiB (write 9.8 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 9.8 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 9.8 KiB [≈9.6 KiB], flushed 73 KiB [≈72 KiB] (mult 1.30); admitting 94 KiB (rate 6.3 KiB/s) (elastic 12 KiB rate 821 B/s) due to memtable flush (multiplier 1.300) (used total: 0 B elastic 0 B); write stalls 1
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:63000 curL0Bytes:10000 cumWriteStallCount:11 cumFlushWriteThroughput:{Bytes:63000 WorkDuration:17000000000 IdleDuration:270000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:9855 smoothedCompactionByteTokens:9855.46875 smoothedNumFlushTokens:73945.3125 flushUtilTargetFraction:1.3 totalNumByteTokens:96128 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:12318 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:10000 intL0CompactedBytes:10000 intFlushTokens:75000 intFlushUtilization:0.16666666666666666 intWriteStalls:1 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:1 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:10000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:10000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=1603(elastic 206) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=1603(elastic 206) max-disk-bw-tokens=unlimited lastTick=false

# Bump up the lower bound to 1.35, which is greater than the current flush
# utilization target fraction.
set-min-flush-util percent=135
----

# Despite another write stall, the flush utilization target fraction
# increases to the new lower bound.
set-state l0-bytes=10000 l0-added-write=73000 l0-files=1 l0-sublevels=2 flush-bytes=10000 flush-work-sec=2 flush-idle-sec=10 write-stall-count=12 print-only-first-tick=true
----
compaction score 0.100 (1 ssts, 2 sub-levels), L0 growth 9.8 KiB (write 9.8 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 9.8 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 9.8 KiB [≈9.7 KiB], flushed 73 KiB [≈73 KiB] (mult 1.35); admitting 98 KiB (rate 6.5 KiB/s) (elastic 12 KiB rate 827 B/s) due to memtable flush (multiplier 1.350) (used total: 0 B elastic 0 B); write stalls 1
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:73000 curL0Bytes:10000 cumWriteStallCount:12 cumFlushWriteThroughput:{Bytes:73000 WorkDuration:19000000000 IdleDuration:280000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:9927 smoothedCompactionByteTokens:9927.734375 smoothedNumFlushTokens:74472.65625 flushUtilTargetFraction:1.35 totalNumByteTokens:100538 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:12408 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:10000 intL0CompactedBytes:10000 intFlushTokens:75000 intFlushUtilization:0.16666666666666666 intWriteStalls:1 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:1 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:10000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:10000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=1676(elastic 207) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=1676(elastic 207) max-disk-bw-tokens=unlimited lastTick=false

# The flush utilization is too low, so there is no limit on flush tokens.
set-state l0-bytes=10000 l0-added-write=83000 l0-files=1 l0-sublevels=2 flush-bytes=10000 flush-work-sec=2 flush-idle-sec=100 write-stall-count=13 print-only-first-tick=true
----
compaction score 0.100 (1 ssts, 2 sub-levels), L0 growth 9.8 KiB (write 9.8 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 9.8 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 9.8 KiB [≈9.7 KiB], flushed 73 KiB [≈73 KiB] (mult 1.35); admitting elastic 12 KiB (rate 830 B/s) due to L0 growth; write stalls 1
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:83000 curL0Bytes:10000 cumWriteStallCount:13 cumFlushWriteThroughput:{Bytes:83000 WorkDuration:21000000000 IdleDuration:380000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:9963 smoothedCompactionByteTokens:9963.8671875 smoothedNumFlushTokens:74472.65625 flushUtilTargetFraction:1.35 totalNumByteTokens:9223372036854775807 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:12453 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:10000 intL0CompactedBytes:10000 intFlushTokens:75000 intFlushUtilization:0.0196078431372549 intWriteStalls:1 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:10000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:10000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=unlimited(elastic 208) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic 208) max-disk-bw-tokens=unlimited lastTick=false

# Flush utilization is high enough, so flush tokens are again limited.
set-state l0-bytes=10000 l0-added-write=93000 l0-files=1 l0-sublevels=2 flush-bytes=10000 flush-work-sec=2 flush-idle-sec=10 write-stall-count=13 print-only-first-tick=true
----
compaction score 0.100 (1 ssts, 2 sub-levels), L0 growth 9.8 KiB (write 9.8 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 9.8 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 9.8 KiB [≈9.7 KiB], flushed 73 KiB [≈73 KiB] (mult 1.35); admitting 98 KiB (rate 6.6 KiB/s) (elastic 12 KiB rate 831 B/s) due to memtable flush (multiplier 1.350) (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:93000 curL0Bytes:10000 cumWriteStallCount:13 cumFlushWriteThroughput:{Bytes:93000 WorkDuration:23000000000 IdleDuration:390000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:9981 smoothedCompactionByteTokens:9981.93359375 smoothedNumFlushTokens:74736.328125 flushUtilTargetFraction:1.35 totalNumByteTokens:100894 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:12476 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:10000 intL0CompactedBytes:10000 intFlushTokens:75000 intFlushUtilization:0.16666666666666666 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:1 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:10000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:10000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=1682(elastic 208) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=1682(elastic 208) max-disk-bw-tokens=unlimited lastTick=false

# No write stalls, and token utilization is high, which will have an effect
# in the next pebbleMetricsTick.
set-state l0-bytes=10000 l0-added-write=103000 l0-files=1 l0-sublevels=2 flush-bytes=10000 flush-work-sec=2 flush-idle-sec=10 write-stall-count=13 all-tokens-used=true print-only-first-tick=true
----
compaction score 0.100 (1 ssts, 2 sub-levels), L0 growth 9.8 KiB (write 9.8 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 9.8 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 9.8 KiB [≈9.8 KiB], flushed 73 KiB [≈73 KiB] (mult 1.35); admitting 99 KiB (rate 6.6 KiB/s) (elastic 12 KiB rate 832 B/s) due to memtable flush (multiplier 1.350) (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:103000 curL0Bytes:10000 cumWriteStallCount:13 cumFlushWriteThroughput:{Bytes:103000 WorkDuration:25000000000 IdleDuration:400000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:9990 smoothedCompactionByteTokens:9990.966796875 smoothedNumFlushTokens:74868.1640625 flushUtilTargetFraction:1.35 totalNumByteTokens:101072 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:12487 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:10000 intL0CompactedBytes:10000 intFlushTokens:75000 intFlushUtilization:0.16666666666666666 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:1 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:10000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:10000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=1685(elastic 209) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=1685(elastic 209) max-disk-bw-tokens=unlimited lastTick=false

# No write stalls, and token utilization was high, so flush utilization
# target fraction is increased to 1.375.
set-state l0-bytes=10000 l0-added-write=113000 l0-files=1 l0-sublevels=2 flush-bytes=10000 flush-work-sec=2 flush-idle-sec=10 write-stall-count=13 all-tokens-used=true print-only-first-tick=true
----
compaction score 0.100 (1 ssts, 2 sub-levels), L0 growth 9.8 KiB (write 9.8 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 9.8 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 9.8 KiB [≈9.8 KiB], flushed 73 KiB [≈73 KiB] (mult 1.38); admitting 101 KiB (rate 6.7 KiB/s) (elastic 12 KiB rate 832 B/s) due to memtable flush (multiplier 1.375) (used total: 197 KiB elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:113000 curL0Bytes:10000 cumWriteStallCount:13 cumFlushWriteThroughput:{Bytes:113000 WorkDuration:27000000000 IdleDuration:410000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:9995 smoothedCompactionByteTokens:9995.4833984375 smoothedNumFlushTokens:74934.08203125 flushUtilTargetFraction:1.375 totalNumByteTokens:103034 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:12493 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:10000 intL0CompactedBytes:10000 intFlushTokens:75000 intFlushUtilization:0.16666666666666666 intWriteStalls:0 intWALFailover:false prevTokensUsed:202144 prevTokensUsedByElasticWork:0 tokenKind:1 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:10000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:10000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=1718(elastic 209) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=1718(elastic 209) max-disk-bw-tokens=unlimited lastTick=false

# No write stalls, and token utilization was high, so flush utilization
# target fraction is increased to 1.4.
set-state l0-bytes=10000 l0-added-write=123000 l0-files=1 l0-sublevels=2 flush-bytes=10000 flush-work-sec=2 flush-idle-sec=10 write-stall-count=13 all-tokens-used=true print-only-first-tick=true
----
compaction score 0.100 (1 ssts, 2 sub-levels), L0 growth 9.8 KiB (write 9.8 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 9.8 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 9.8 KiB [≈9.8 KiB], flushed 73 KiB [≈73 KiB] (mult 1.40); admitting 102 KiB (rate 6.8 KiB/s) (elastic 12 KiB rate 833 B/s) due to memtable flush (multiplier 1.400) (used total: 201 KiB elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:123000 curL0Bytes:10000 cumWriteStallCount:13 cumFlushWriteThroughput:{Bytes:123000 WorkDuration:29000000000 IdleDuration:420000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:9997 smoothedCompactionByteTokens:9997.74169921875 smoothedNumFlushTokens:74967.041015625 flushUtilTargetFraction:1.4 totalNumByteTokens:104953 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:12496 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:10000 intL0CompactedBytes:10000 intFlushTokens:75000 intFlushUtilization:0.16666666666666666 intWriteStalls:0 intWALFailover:false prevTokensUsed:206068 prevTokensUsedByElasticWork:0 tokenKind:1 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:10000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:10000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=1750(elastic 209) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=1750(elastic 209) max-disk-bw-tokens=unlimited lastTick=false

# There is a write stall, so even though token utilization is high, we
# decrease flush utilization target fraction to 1.375.
set-state l0-bytes=10000 l0-added-write=133000 l0-files=1 l0-sublevels=2 flush-bytes=10000 flush-work-sec=2 flush-idle-sec=10 write-stall-count=14 all-tokens-used=true print-only-first-tick=true
----
compaction score 0.100 (1 ssts, 2 sub-levels), L0 growth 9.8 KiB (write 9.8 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 9.8 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 9.8 KiB [≈9.8 KiB], flushed 73 KiB [≈73 KiB] (mult 1.38); admitting 101 KiB (rate 6.7 KiB/s) (elastic 12 KiB rate 833 B/s) due to memtable flush (multiplier 1.375) (used total: 205 KiB elastic 0 B); write stalls 1
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:133000 curL0Bytes:10000 cumWriteStallCount:14 cumFlushWriteThroughput:{Bytes:133000 WorkDuration:31000000000 IdleDuration:430000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:9998 smoothedCompactionByteTokens:9998.870849609375 smoothedNumFlushTokens:74983.5205078125 flushUtilTargetFraction:1.375 totalNumByteTokens:103102 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:12497 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:10000 intL0CompactedBytes:10000 intFlushTokens:75000 intFlushUtilization:0.16666666666666666 intWriteStalls:1 intWALFailover:false prevTokensUsed:209906 prevTokensUsedByElasticWork:0 tokenKind:1 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:10000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:10000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=1719(elastic 209) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=1719(elastic 209) max-disk-bw-tokens=unlimited lastTick=false

# Test disk bandwidth tokens. We also test the w-amp linear model here.
init
----

prep-admission-stats admitted=0
----
{workCount:0 writeAccountedBytes:0 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:0 writeAccountedBytes:0 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

# Expect zeroes for most things. Smoothed write-amp will use the max value of model, smoothed with 0.
set-state l0-bytes=0 l0-added-write=0 bytes-read=0 bytes-written=0 provisioned-bandwidth=0 l0-files=1 l0-sublevels=1 print-only-first-tick=true
----
compaction score 0.000 (1 ssts, 1 sub-levels), L0 growth 0 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 0 B [≈0 B], flushed 0 B [≈0 B] (mult 0.00); admitting all; write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:0 curL0Bytes:0 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:0 WorkDuration:1000000000 IdleDuration:100000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:0 smoothedCompactionByteTokens:0 smoothedNumFlushTokens:0 flushUtilTargetFraction:0 totalNumByteTokens:9223372036854775807 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:9223372036854775807 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:false} ioThreshold:<nil>}
tick: 0, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false

# Admit some work.
prep-admission-stats admitted=10 write-bytes=10
----
{workCount:10 writeAccountedBytes:10 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:10 writeAccountedBytes:10 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

# Set provisioned bandwidth and some disk reads and writes.
# setAvailableTokens should show ((provisioned-bandwidth * adjustment-interval) - bytes-read) / num ticks. ((100*15) - 30) / 60 = 25.
set-state l0-bytes=10 l0-added-write=10 bytes-read=60 bytes-written=50 provisioned-bandwidth=100 disk-write-tokens-used=(100,100) l0-files=1 l0-sublevels=1 print-only-first-tick=true
----
compaction score 0.050 (1 ssts, 1 sub-levels), L0 growth 10 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 0 B [≈0 B], flushed 150 B [≈0 B] (mult 1.35); admitting all; write stalls 0
diskBandwidthLimiter (tokenUtilization +Inf, tokensUsed (elastic 0 B, snapshot 100 B, regular 100 B) tokens (write 1.4 KiB (prev 0 B), read 60 B (prev 0 B)), writeBW 3 B/s, readBW 4 B/s, provisioned 100 B/s)
{ioLoadListenerState:{cumL0AddedBytes:10 curL0Bytes:10 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:10 WorkDuration:2000000000 IdleDuration:200000000000} diskBW:{bytesRead:60 bytesWritten:50} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:0 smoothedCompactionByteTokens:0 smoothedNumFlushTokens:0 flushUtilTargetFraction:1.35 totalNumByteTokens:9223372036854775807 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:9223372036854775807 elasticByteTokensAllocated:0 diskWriteTokens:1440 diskWriteTokensAllocated:0 diskReadTokens:60 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:10 intL0CompactedBytes:0 intFlushTokens:150 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:false} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=24 read-bw-tokens=1 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=24 lastTick=false

prep-admission-stats admitted=20 write-bytes=20
----
{workCount:20 writeAccountedBytes:20 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:20 writeAccountedBytes:20 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

set-state l0-bytes=40 l0-added-write=40 bytes-read=120 bytes-written=400 provisioned-bandwidth=100 disk-write-tokens-used=(200,200) l0-files=1 l0-sublevels=1 print-only-first-tick=true
----
compaction score 0.050 (1 ssts, 1 sub-levels), L0 growth 30 B (write 30 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 10 (0 bypassed) with 10 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 30 B adjusted-LSM-writes + 350 B adjusted-disk-writes + write-model 2.00x+1 B (smoothed 1.88x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 11.33x+1 B (smoothed 30.92x+1 B) + at-admission-tokens 2 B, compacted 0 B [≈0 B], flushed 435 B [≈0 B] (mult 1.35); admitting all; write stalls 0
diskBandwidthLimiter (tokenUtilization 0.28, tokensUsed (elastic 0 B, snapshot 200 B, regular 200 B) tokens (write 1.4 KiB (prev 1.4 KiB), read 60 B (prev 60 B)), writeBW 23 B/s, readBW 4 B/s, provisioned 100 B/s)
{ioLoadListenerState:{cumL0AddedBytes:40 curL0Bytes:40 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:40 WorkDuration:3000000000 IdleDuration:300000000000} diskBW:{bytesRead:120 bytesWritten:400} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:0 smoothedCompactionByteTokens:0 smoothedNumFlushTokens:0 flushUtilTargetFraction:1.35 totalNumByteTokens:9223372036854775807 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:9223372036854775807 elasticByteTokensAllocated:0 diskWriteTokens:1440 diskWriteTokensAllocated:0 diskReadTokens:60 diskReadTokensAllocated:0} requestEstimates:{writeTokens:2} l0WriteLM:{multiplier:1.875 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:30.916666666666668 constant:1} aux:{intL0AddedBytes:30 intL0CompactedBytes:0 intFlushTokens:435 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:10 intL0WriteBytes:30 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:10 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:2 constant:1} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:11.333333333333334 constant:1} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:30 intAdjustedDiskWriteBytes:350} doLogFlush:false} ioThreshold:<nil>}
store-request-estimates: writeTokens: 2
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.88x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 30.92x+1
setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=24 read-bw-tokens=1 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=24 lastTick=false

prep-admission-stats admitted=60 write-bytes=70
----
{workCount:60 writeAccountedBytes:70 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:60 writeAccountedBytes:70 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

set-state l0-bytes=90 l0-added-write=80 bytes-read=180 bytes-written=1200 provisioned-bandwidth=100 disk-write-tokens-used=(400,500) l0-files=1 l0-sublevels=2 print-only-first-tick=true
----
compaction score 0.100 (1 ssts, 2 sub-levels), L0 growth 40 B (write 40 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 40 (0 bypassed) with 50 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 40 B adjusted-LSM-writes + 800 B adjusted-disk-writes + write-model 0.50x+1 B (smoothed 1.19x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 19.00x+1 B (smoothed 24.96x+1 B) + at-admission-tokens 1 B, compacted 0 B [≈0 B], flushed 600 B [≈0 B] (mult 1.35); admitting elastic 1 B (rate 0 B/s) due to L0 growth; write stalls 0
diskBandwidthLimiter (tokenUtilization 0.62, tokensUsed (elastic 0 B, snapshot 500 B, regular 400 B) tokens (write 1.4 KiB (prev 1.4 KiB), read 60 B (prev 60 B)), writeBW 53 B/s, readBW 4 B/s, provisioned 100 B/s)
{ioLoadListenerState:{cumL0AddedBytes:80 curL0Bytes:90 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:80 WorkDuration:4000000000 IdleDuration:400000000000} diskBW:{bytesRead:180 bytesWritten:1200} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:0 smoothedCompactionByteTokens:0 smoothedNumFlushTokens:0 flushUtilTargetFraction:1.35 totalNumByteTokens:9223372036854775807 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:1 elasticByteTokensAllocated:0 diskWriteTokens:1440 diskWriteTokensAllocated:0 diskReadTokens:60 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.1875 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:24.958333333333336 constant:1} aux:{intL0AddedBytes:40 intL0CompactedBytes:0 intFlushTokens:600 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:40 intL0WriteBytes:40 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:50 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0.5 constant:1} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:19 constant:1} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:40 intAdjustedDiskWriteBytes:800} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.19x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 24.96x+1
setAvailableTokens: io-tokens=unlimited(elastic 1) elastic-disk-bw-tokens=24 read-bw-tokens=1 max-byte-tokens=unlimited(elastic 1) max-disk-bw-tokens=24 lastTick=false

# Test out max capacity calculations for a 1ms tick rate.
init
----

prep-admission-stats admitted=0
----
{workCount:0 writeAccountedBytes:0 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:0 writeAccountedBytes:0 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

# Even though above the threshold, the first 60 ticks don't limit the tokens.
set-state l0-bytes=10000 l0-added-write=1000 l0-files=21 l0-sublevels=21 print-only-first-tick=true loaded=true
----
compaction score 0.000 (21 ssts, 21 sub-levels), L0 growth 0 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 0 B [≈0 B], flushed 0 B [≈0 B] (mult 0.00); admitting all; write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:1000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:1000 WorkDuration:1000000000 IdleDuration:100000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:0 smoothedCompactionByteTokens:0 smoothedNumFlushTokens:0 flushUtilTargetFraction:0 totalNumByteTokens:9223372036854775807 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:9223372036854775807 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:false} ioThreshold:<nil>}
tick: 0, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false

prep-admission-stats admitted=10000 write-bytes=40000
----
{workCount:10000 writeAccountedBytes:40000 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:10000 writeAccountedBytes:40000 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

# Delta added is 100,000. The l0-bytes are the same, so compactions removed
# 100,000 bytes. Smoothed removed by compactions is 50,000. Each admitted is
# expected to add 10 bytes. We want to add only 25,000 (half the smoothed
# removed), but smoothing it drops the tokens to 12,500.
set-state l0-bytes=10000 l0-added-write=101000 l0-files=21 l0-sublevels=21 print-only-first-tick=true loaded=true
----
compaction score 1.050[L0-overload] (21 ssts, 21 sub-levels), L0 growth 98 KiB (write 98 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 10000 (0 bypassed) with 39 KiB acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 98 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 2.25x+1 B (smoothed 2.00x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 5 B, compacted 98 KiB [≈49 KiB], flushed 1.4 MiB [≈0 B] (mult 1.35); admitting 12 KiB (rate 833 B/s) (elastic 1 B rate 0 B/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:101000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:101000 WorkDuration:2000000000 IdleDuration:200000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:50000 smoothedCompactionByteTokens:12500 smoothedNumFlushTokens:0 flushUtilTargetFraction:1.35 totalNumByteTokens:12500 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:1 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:5} l0WriteLM:{multiplier:2 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:100000 intL0CompactedBytes:100000 intFlushTokens:1.5e+06 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:10000 intL0WriteBytes:100000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:40000 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:2.25 constant:1} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:100000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 5
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 2.00x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=1(elastic 1) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false

# Restrict disk bandwidth tokens, and then check the cap.
init
----

set-state l0-bytes=100 l0-added-write=0 bytes-read=0 bytes-written=0 provisioned-bandwidth=10 l0-files=1 l0-sublevels=1 print-only-first-tick=true loaded=true
----
compaction score 0.000 (1 ssts, 1 sub-levels), L0 growth 0 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 0 B [≈0 B], flushed 0 B [≈0 B] (mult 0.00); admitting all; write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:0 curL0Bytes:100 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:0 WorkDuration:1000000000 IdleDuration:100000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:0 smoothedCompactionByteTokens:0 smoothedNumFlushTokens:0 flushUtilTargetFraction:0 totalNumByteTokens:9223372036854775807 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:9223372036854775807 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:false} ioThreshold:<nil>}
tick: 0, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false

set-state l0-bytes=100 l0-added-write=100000 bytes-read=1000000 bytes-written=2000000 provisioned-bandwidth=10 disk-bw-tokens-used=(100,100) l0-files=1 l0-sublevels=1 print-only-first-tick=true loaded=true
----
compaction score 0.050 (1 ssts, 1 sub-levels), L0 growth 98 KiB (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 98 KiB [≈49 KiB], flushed 1.4 MiB [≈0 B] (mult 1.35); admitting all; write stalls 0
diskBandwidthLimiter (tokenUtilization NaN, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 977 KiB (prev 0 B)), writeBW 130 KiB/s, readBW 65 KiB/s, provisioned 10 B/s)
{ioLoadListenerState:{cumL0AddedBytes:100000 curL0Bytes:100 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:100000 WorkDuration:2000000000 IdleDuration:200000000000} diskBW:{bytesRead:1000000 bytesWritten:2000000} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:50000 smoothedCompactionByteTokens:50000 smoothedNumFlushTokens:0 flushUtilTargetFraction:1.35 totalNumByteTokens:9223372036854775807 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:9223372036854775807 elasticByteTokensAllocated:0 diskWriteTokens:0 diskWriteTokensAllocated:0 diskReadTokens:1000000 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:100000 intL0CompactedBytes:100000 intFlushTokens:1.5e+06 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:false} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=0 read-bw-tokens=67 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=0 lastTick=false

# Test scoring and interpolation for compaction token smoothing.
init
----

prep-admission-stats admitted=0
----
{workCount:0 writeAccountedBytes:0 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:0 writeAccountedBytes:0 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

set-state l0-bytes=10000 l0-added-write=1000 l0-files=5 l0-sublevels=5 print-only-first-tick=true loaded=true
----
compaction score 0.000 (5 ssts, 5 sub-levels), L0 growth 0 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 0 B [≈0 B], flushed 0 B [≈0 B] (mult 0.00); admitting all; write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:1000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:1000 WorkDuration:1000000000 IdleDuration:100000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:0 smoothedCompactionByteTokens:0 smoothedNumFlushTokens:0 flushUtilTargetFraction:0 totalNumByteTokens:9223372036854775807 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:9223372036854775807 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:false} ioThreshold:<nil>}
tick: 0, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false

# No restricting of tokens.
#
# TODO(bananabrick): Printing out all of the state is unnecessary. We should
# selectively print out the state which we care about.

set-state l0-bytes=10000 l0-added-write=501000 l0-files=1 l0-sublevels=1 print-only-first-tick=true loaded=true
----
compaction score 0.050 (1 ssts, 1 sub-levels), L0 growth 488 KiB (write 488 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 488 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 488 KiB [≈244 KiB], flushed 7.2 MiB [≈0 B] (mult 1.35); admitting all; write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:501000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:501000 WorkDuration:2000000000 IdleDuration:200000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:250000 smoothedCompactionByteTokens:250000 smoothedNumFlushTokens:0 flushUtilTargetFraction:1.35 totalNumByteTokens:9223372036854775807 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:9223372036854775807 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:500000 intL0CompactedBytes:500000 intFlushTokens:7.5e+06 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:500000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:500000 intAdjustedDiskWriteBytes:0} doLogFlush:false} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false

# Start restricting compaction tokens due to sublevels. We check if the value of
# smoothedCompactionByteTokens is valid, based on the current value of
# smoothedIntL0CompactedBytes and the previous value of smoothedCompactionByteTokens.
# In this example, the previous value was 250000. The current value is 187500.
# We see that smoothedIntL0CompactedBytes is 125001. So, 187500 = 0.5 * 250000 + 0.5 * 125001.
#
# NB: l0-added-write used to be 501002 but we tweaked it since it was
# generating different output on an M1 macbook and linux with Intel Xeon.
set-state l0-bytes=10000 l0-added-write=501002 l0-files=10 l0-sublevels=10 print-only-first-tick=true loaded=true
----
compaction score 0.500 (10 ssts, 10 sub-levels), L0 growth 2 B (write 2 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 2 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 2 B [≈122 KiB], flushed 30 B [≈0 B] (mult 1.35); admitting 183 KiB (rate 12 KiB/s) (elastic 30 KiB rate 2.0 KiB/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:501002 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:501002 WorkDuration:3000000000 IdleDuration:300000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:125001 smoothedCompactionByteTokens:187500 smoothedNumFlushTokens:0 flushUtilTargetFraction:1.35 totalNumByteTokens:187500 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:31250 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:2 intL0CompactedBytes:2 intFlushTokens:30 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:2 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:2 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=13(elastic 3) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=3125(elastic 521) max-disk-bw-tokens=unlimited lastTick=false

# For a score of 0.75, we should use 3/4 * smoothedIntL0CompactedBytes.
# So, smoothedCompactionByteTokens = 62500 * 0.75 * 0.5 + 187500 * 0.5 = 117187.5,
# where 62500 is smoothedIntL0CompactedBytes, we multiply it by 3/4 because that's
# the half point between 1/2 and 1, and 15 sublevels is halfway between 10 and 20.
# 187500 is the previous smoothedCompactionByteTokens.
set-state l0-bytes=10000 l0-added-write=501000 l0-files=10 l0-sublevels=15 print-only-first-tick=true loaded=true
----
compaction score 0.750 (10 ssts, 15 sub-levels), L0 growth 0 B (write -2 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 0 B [≈61 KiB], flushed 0 B [≈0 B] (mult 1.35); admitting 114 KiB (rate 7.6 KiB/s) (elastic 1 B rate 0 B/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:501000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:501000 WorkDuration:4000000000 IdleDuration:400000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:62500 smoothedCompactionByteTokens:117187.5 smoothedNumFlushTokens:0 flushUtilTargetFraction:1.35 totalNumByteTokens:117187 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:1 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:-2 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=8(elastic 1) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=1954(elastic 1) max-disk-bw-tokens=unlimited lastTick=false

# Full overload, score >= 1.
#
# For a score of 1, we should use smoothedIntL0CompactedBytes / 2. So,
# smoothedCompactionByteTokens = 31250/2 * 0.5 + 117187.5 * 0.5 = 66406.25,
# where 32150 is smoothedIntL0CompactedBytes, we multiply it by 1/2 because we're
# at 20 sublevels. 117187.5 is the previous smoothedCompactionByteTokens.
set-state l0-bytes=10000 l0-added-write=501000 l0-files=10 l0-sublevels=20 print-only-first-tick=true loaded=true
----
compaction score 1.000 (10 ssts, 20 sub-levels), L0 growth 0 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 0 B [≈30 KiB], flushed 0 B [≈0 B] (mult 1.35); admitting 65 KiB (rate 4.3 KiB/s) (elastic 1 B rate 0 B/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:501000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:501000 WorkDuration:5000000000 IdleDuration:500000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:31250 smoothedCompactionByteTokens:66406.25 smoothedNumFlushTokens:0 flushUtilTargetFraction:1.35 totalNumByteTokens:66406 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:1 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=5(elastic 1) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=1107(elastic 1) max-disk-bw-tokens=unlimited lastTick=false

# Low load, but not underload.
#
# smoothedCompactionByteTokens = 0.5 * prev.smoothedCompactionByteTokens + 0.5 * 2 * smoothedIntL0CompactedBytes
# 48828.125 = 0.5 * 66406.25 + 0.5 * 2 * 15625. Checks out.
set-state l0-bytes=10000 l0-added-write=501000 l0-files=10 l0-sublevels=5 print-only-first-tick=true loaded=true
----
compaction score 0.250 (10 ssts, 5 sub-levels), L0 growth 0 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 0 B [≈15 KiB], flushed 0 B [≈0 B] (mult 1.35); admitting 48 KiB (rate 3.2 KiB/s) (elastic 13 KiB rate 911 B/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:501000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:501000 WorkDuration:6000000000 IdleDuration:600000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:15625 smoothedCompactionByteTokens:48828.125 smoothedNumFlushTokens:0 flushUtilTargetFraction:1.35 totalNumByteTokens:48828 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:13671 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=4(elastic 1) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=814(elastic 228) max-disk-bw-tokens=unlimited lastTick=false

# Test minimum size per sub-level affecting the score.
init
----

prep-admission-stats admitted=0
----
{workCount:0 writeAccountedBytes:0 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:0 writeAccountedBytes:0 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

set-state l0-bytes=10000 l0-added-write=1000 l0-files=21 l0-sublevels=21 print-only-first-tick=true
----
compaction score 0.000 (21 ssts, 21 sub-levels), L0 growth 0 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 0 B [≈0 B], flushed 0 B [≈0 B] (mult 0.00); admitting all; write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:1000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:1000 WorkDuration:1000000000 IdleDuration:100000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:0 smoothedCompactionByteTokens:0 smoothedNumFlushTokens:0 flushUtilTargetFraction:0 totalNumByteTokens:9223372036854775807 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:9223372036854775807 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:false} ioThreshold:<nil>}
tick: 0, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false

# Score is 21/20.
set-state l0-bytes=10000 l0-added-write=101000 l0-files=21 l0-sublevels=21 print-only-first-tick=true
----
compaction score 1.050[L0-overload] (21 ssts, 21 sub-levels), L0 growth 98 KiB (write 98 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 98 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 98 KiB [≈49 KiB], flushed 1.4 MiB [≈0 B] (mult 1.35); admitting 12 KiB (rate 833 B/s) (elastic 1 B rate 0 B/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:101000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:101000 WorkDuration:2000000000 IdleDuration:200000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:50000 smoothedCompactionByteTokens:12500 smoothedNumFlushTokens:0 flushUtilTargetFraction:1.35 totalNumByteTokens:12500 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:1 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:100000 intL0CompactedBytes:100000 intFlushTokens:1.5e+06 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:100000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:100000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=209(elastic 1) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=209(elastic 1) max-disk-bw-tokens=unlimited lastTick=false

set-min-size-per-sub-level size=5000
----

# Score is (21/3)/20 since min sub-levels is 21/3 and max is 10000/5000=2.
set-state l0-bytes=10000 l0-added-write=201000 l0-files=21 l0-sublevels=21 print-only-first-tick=true
----
compaction score 0.350 (21 ssts, 21 sub-levels), L0 growth 98 KiB (write 98 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 98 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 98 KiB [≈73 KiB], flushed 1.4 MiB [≈0 B] (mult 1.35); admitting 65 KiB (rate 4.3 KiB/s) (elastic 46 KiB rate 3.1 KiB/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:201000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:201000 WorkDuration:3000000000 IdleDuration:300000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:75000 smoothedCompactionByteTokens:66250 smoothedNumFlushTokens:0 flushUtilTargetFraction:1.35 totalNumByteTokens:66250 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:46875 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:100000 intL0CompactedBytes:100000 intFlushTokens:1.5e+06 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:100000 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:100000 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=1105(elastic 782) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=1105(elastic 782) max-disk-bw-tokens=unlimited lastTick=false

# Score is decided by max sub-levels, which is 50000/5000=10. So score is 10/20=0.5.
set-state l0-bytes=50000 l0-added-write=260994 l0-files=21 l0-sublevels=21 print-only-first-tick=true
----
compaction score 0.500 (21 ssts, 21 sub-levels), L0 growth 59 KiB (write 59 KiB (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 59 KiB adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 20 KiB [≈46 KiB], flushed 879 KiB [≈0 B] (mult 1.35); admitting 56 KiB (rate 3.7 KiB/s) (elastic 12 KiB rate 791 B/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:260994 curL0Bytes:50000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:260994 WorkDuration:4000000000 IdleDuration:400000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:47497 smoothedCompactionByteTokens:56873 smoothedNumFlushTokens:0 flushUtilTargetFraction:1.35 totalNumByteTokens:56873 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:11874 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:59994 intL0CompactedBytes:19994 intFlushTokens:899910 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:59994 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:59994 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=948(elastic 198) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=948(elastic 198) max-disk-bw-tokens=unlimited lastTick=false

# Test compaction token lower bound.
init
----

prep-admission-stats admitted=0
----
{workCount:0 writeAccountedBytes:0 ingestedAccountedBytes:0 statsToIgnore:{ingestStats:{Bytes:0 ApproxIngestedIntoL0Bytes:0 MemtableOverlappingFiles:0} writeBytes:0} aboveRaftStats:{workCount:0 writeAccountedBytes:0 ingestedAccountedBytes:0} aux:{bypassedCount:0 writeBypassedAccountedBytes:0 ingestedBypassedAccountedBytes:0}}

set-state l0-bytes=10000 l0-added-write=1000 l0-files=100 l0-sublevels=6 print-only-first-tick=true
----
compaction score 0.000 (100 ssts, 6 sub-levels), L0 growth 0 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 0 B [≈0 B], flushed 0 B [≈0 B] (mult 0.00); admitting all; write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:1000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:1000 WorkDuration:1000000000 IdleDuration:100000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:0 numOutLevelsGauge:1} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:0 smoothedCompactionByteTokens:0 smoothedNumFlushTokens:0 flushUtilTargetFraction:0 totalNumByteTokens:9223372036854775807 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:9223372036854775807 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:false} ioThreshold:<nil>}
tick: 0, setAvailableTokens: io-tokens=unlimited(elastic unlimited) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=unlimited(elastic unlimited) max-disk-bw-tokens=unlimited lastTick=false

# No compactions out of L0, but L0 token lower bound is set to 1MB/2 and then smoothed to give us "admitting 244 KiB (rate 16 KiB/s) (elastic 1 B rate 0 B/s) due to L0 growth(used token lower bound)"
set-state l0-bytes=10000 l0-added-write=1000 l0-files=100 l0-sublevels=6 base-level=5 compacted-bytes=1000000 print-only-first-tick=true
----
compaction score 0.300 (100 ssts, 6 sub-levels), L0 growth 0 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 0 B [≈0 B], flushed 0 B [≈0 B] (mult 1.35); admitting 244 KiB (rate 16 KiB/s) (elastic 1 B rate 0 B/s) due to L0 growth(used token lower bound) (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:1000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:1000 WorkDuration:2000000000 IdleDuration:200000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:1000000 numOutLevelsGauge:2} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:0 smoothedCompactionByteTokens:250000 smoothedNumFlushTokens:0 flushUtilTargetFraction:1.35 totalNumByteTokens:250000 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:1 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:true perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=4167(elastic 1) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=4167(elastic 1) max-disk-bw-tokens=unlimited lastTick=false

# Repeat, but the exponential smoothing increases the bytes to admit.
set-state l0-bytes=10000 l0-added-write=1000 l0-files=100 l0-sublevels=6 base-level=5 compacted-bytes=2000000 print-only-first-tick=true
----
compaction score 0.300 (100 ssts, 6 sub-levels), L0 growth 0 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 0 B [≈0 B], flushed 0 B [≈0 B] (mult 1.35); admitting 366 KiB (rate 24 KiB/s) (elastic 1 B rate 0 B/s) due to L0 growth(used token lower bound) (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:1000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:1000 WorkDuration:3000000000 IdleDuration:300000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:2000000 numOutLevelsGauge:2} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:0 smoothedCompactionByteTokens:375000 smoothedNumFlushTokens:0 flushUtilTargetFraction:1.35 totalNumByteTokens:375000 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:1 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:true perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=6250(elastic 1) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=6250(elastic 1) max-disk-bw-tokens=unlimited lastTick=false

# Repeat, but the exponential smoothing increases the bytes to admit.
set-state l0-bytes=10000 l0-added-write=1000 l0-files=100 l0-sublevels=6 base-level=5 compacted-bytes=3000000 print-only-first-tick=true
----
compaction score 0.300 (100 ssts, 6 sub-levels), L0 growth 0 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 0 B [≈0 B], flushed 0 B [≈0 B] (mult 1.35); admitting 427 KiB (rate 28 KiB/s) (elastic 1 B rate 0 B/s) due to L0 growth(used token lower bound) (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:1000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:1000 WorkDuration:4000000000 IdleDuration:400000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:3000000 numOutLevelsGauge:2} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:0 smoothedCompactionByteTokens:437500 smoothedNumFlushTokens:0 flushUtilTargetFraction:1.35 totalNumByteTokens:437500 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:1 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:true perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=7292(elastic 1) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=7292(elastic 1) max-disk-bw-tokens=unlimited lastTick=false

# When we get to 10 sub-levels we stop using the lower bound, since at this
# point we are admitting what we can compact out, and if 10 sub-levels is not
# sufficient to prioritize L0 compactions then we ought to be throttling
# incoming writes.
set-state l0-bytes=10000 l0-added-write=1000 l0-files=100 l0-sublevels=10 base-level=5 compacted-bytes=3000000 print-only-first-tick=true
----
compaction score 0.500 (100 ssts, 10 sub-levels), L0 growth 0 B (write 0 B (ignored 0 B) ingest 0 B (ignored 0 B)): requests 0 (0 bypassed) with 0 B acc-write (0 B bypassed) + 0 B acc-ingest (0 B bypassed) + 0 B adjusted-LSM-writes + 0 B adjusted-disk-writes + write-model 0.00x+0 B (smoothed 1.75x+1 B) + ingested-model 0.00x+0 B (smoothed 0.75x+1 B) + write-amp-model 0.00x+0 B (smoothed 50.50x+1 B) + at-admission-tokens 1 B, compacted 0 B [≈0 B], flushed 0 B [≈0 B] (mult 1.35); admitting 214 KiB (rate 14 KiB/s) (elastic 1 B rate 0 B/s) due to L0 growth (used total: 0 B elastic 0 B); write stalls 0
diskBandwidthLimiter (tokenUtilization 0.00, tokensUsed (elastic 0 B, snapshot 0 B, regular 0 B) tokens (write 0 B (prev 0 B), read 0 B (prev 0 B)), writeBW 0 B/s, readBW 0 B/s, provisioned 0 B/s)
{ioLoadListenerState:{cumL0AddedBytes:1000 curL0Bytes:10000 cumWriteStallCount:0 cumFlushWriteThroughput:{Bytes:1000 WorkDuration:5000000000 IdleDuration:500000000000} diskBW:{bytesRead:0 bytesWritten:0} cumCompactionStats:{writeBytes:3000000 numOutLevelsGauge:2} cumWALSecondaryWriteDuration:0 smoothedIntL0CompactedBytes:0 smoothedCompactionByteTokens:218750 smoothedNumFlushTokens:0 flushUtilTargetFraction:1.35 totalNumByteTokens:218750 byteTokensAllocated:0 byteTokensUsed:0 byteTokensUsedByElasticWork:0 totalNumElasticByteTokens:1 elasticByteTokensAllocated:0 diskWriteTokens:9223372036854775807 diskWriteTokensAllocated:0 diskReadTokens:0 diskReadTokensAllocated:0} requestEstimates:{writeTokens:1} l0WriteLM:{multiplier:1.75 constant:1} l0IngestLM:{multiplier:0.7505 constant:1} ingestLM:{multiplier:1 constant:1} writeAmpLM:{multiplier:50.5 constant:1} aux:{intL0AddedBytes:0 intL0CompactedBytes:0 intFlushTokens:0 intFlushUtilization:0.009900990099009901 intWriteStalls:0 intWALFailover:false prevTokensUsed:0 prevTokensUsedByElasticWork:0 tokenKind:0 usedCompactionTokensLowerBound:false perWorkTokensAux:{intWorkCount:0 intL0WriteBytes:0 intL0IngestedBytes:0 intLSMIngestedBytes:0 intL0WriteAccountedBytes:0 intIngestedAccountedBytes:0 intL0WriteLinearModel:{multiplier:0 constant:0} intL0IngestedLinearModel:{multiplier:0 constant:0} intIngestedLinearModel:{multiplier:0 constant:0} intWriteAmpLinearModel:{multiplier:0 constant:0} intBypassedWorkCount:0 intL0WriteBypassedAccountedBytes:0 intIngestedBypassedAccountedBytes:0 intL0IgnoredWriteBytes:0 intL0IgnoredIngestedBytes:0 intAdjustedLSMWrites:0 intAdjustedDiskWriteBytes:0} doLogFlush:true} ioThreshold:<nil>}
store-request-estimates: writeTokens: 1
tick: 0, setAdmittedDoneModelsLocked: l0-write-lm: 1.75x+1 l0-ingest-lm: 0.75x+1 ingest-lm: 1.00x+1 write-amp-lm: 50.50x+1
setAvailableTokens: io-tokens=3646(elastic 1) elastic-disk-bw-tokens=unlimited read-bw-tokens=0 max-byte-tokens=3646(elastic 1) max-disk-bw-tokens=unlimited lastTick=false
