# Ensure that a range deletion in a higher level results in a compensated level # size and a higher level score as a result. define lbase-max-bytes=65536 enable-table-stats=false L5 a.RANGEDEL.2:f L6 a.SET.1: b.SET.1: c.SET.1: d.SET.1: e.SET.1: ---- 5: 000004:[a#2,RANGEDEL-f#inf,RANGEDEL] 6: 000005:[a#1,SET-e#1,SET] scores ---- L Size Score L0 0B 0.0 L1 0B 0.0 L2 0B 0.0 L3 0B 0.0 L4 0B 0.0 L5 729B 0.0 L6 321KB - enable-table-stats ---- wait-pending-table-stats 000004 ---- num-entries: 1 num-deletions: 1 num-range-key-sets: 0 point-deletions-bytes-estimate: 0 range-deletions-bytes-estimate: 328519 scores ---- L Size Score L0 0B 0.0 L1 0B 0.0 L2 0B 0.0 L3 0B 0.0 L4 0B 0.0 L5 729B 4.5 L6 321KB - # Ensure that point deletions in a higher level result in a compensated level # size and higher level scores as a result. define lbase-max-bytes=65536 enable-table-stats=false L5 a.DEL.2: b.DEL.2: c.DEL.2: d.DEL.2: e.DEL.2: L6 a.SET.1: b.SET.1: c.SET.1: d.SET.1: e.SET.1: ---- 5: 000004:[a#2,DEL-e#2,DEL] 6: 000005:[a#1,SET-e#1,SET] scores ---- L Size Score L0 0B 0.0 L1 0B 0.0 L2 0B 0.0 L3 0B 0.0 L4 0B 0.0 L5 715B 0.0 L6 321KB - enable-table-stats ---- wait-pending-table-stats 000004 ---- num-entries: 5 num-deletions: 5 num-range-key-sets: 0 point-deletions-bytes-estimate: 164581 range-deletions-bytes-estimate: 0 scores ---- L Size Score L0 0B 0.0 L1 0B 0.0 L2 0B 0.0 L3 0B 0.0 L4 0B 0.0 L5 715B 2.3 L6 321KB - # Run a similar test as above, but this time the table containing the DELs is # ingested after the database is initialized. When the ingested sstable's stats # are loaded and automatic compactions are re-enabled, it should trigger an # automatic compaction of the ingested sstable on account of the high # point-deletions-bytes-estimate value. # # This a regression test for an issue where the table stats collector wouldn't # attempt to schedule a compaction if a file only had compensation due to point # deletions and not range deletions. define lbase-max-bytes=65536 enable-table-stats=true auto-compactions=off L6 a.SET.1: b.SET.1: c.SET.1: d.SET.1: e.SET.1: ---- 6: 000004:[a#1,SET-e#1,SET] ingest ext1 del a: del b: del c: del d: del e: ---- 5: 000005:[a:#10,DEL-e:#10,DEL] 6: 000004:[a#1,SET-e#1,SET] wait-pending-table-stats 000005 ---- num-entries: 5 num-deletions: 5 num-range-key-sets: 0 point-deletions-bytes-estimate: 164616 range-deletions-bytes-estimate: 0 maybe-compact ---- 1 compactions in progress: 5: 000005:a:#10,0-e:#10,0 6: 000004:a#1,1-e#1,1 scores ---- L Size Score L0 0B 0.0 L1 0B 0.0 L2 0B 0.0 L3 0B 0.0 L4 0B 0.0 L5 0B 0.0 L6 321KB - lsm ---- 6: 000006:[a#0,SET-e#0,SET] # Test the adjustment of level sizes to accommodate in-progress compactions. A # compaction may be "inProgress" if it's already been applied, but is still # deleting obsolete files. These compactions' effects have already been applied # to the LSM, so size adjustment should ignore them and not doubly adjust sizes. define lbase-max-bytes=65536 enable-table-stats=false auto-compactions=on pause-cleaning L5 aa.SET.2: bb.SET.2: cc.SET.2: dd.SET.2: L5 e.SET.2: L6 a.SET.1: b.SET.1: c.SET.1: d.SET.1: L6 e.SET.1: ---- 5: 000004:[aa#2,SET-dd#2,SET] 000005:[e#2,SET-e#2,SET] 6: 000006:[a#1,SET-d#1,SET] 000007:[e#1,SET-e#1,SET] scores ---- L Size Score L0 0B 0.0 L1 0B 0.0 L2 0B 0.0 L3 0B 0.0 L4 0B 0.0 L5 641KB 6.3 L6 385KB - lsm verbose ---- 5: 000004:[aa#2,SET-dd#2,SET] seqnums:[2-2] points:[aa#2,SET-dd#2,SET] 000005:[e#2,SET-e#2,SET] seqnums:[2-2] points:[e#2,SET-e#2,SET] 6: 000006:[a#1,SET-d#1,SET] seqnums:[1-1] points:[a#1,SET-d#1,SET] 000007:[e#1,SET-e#1,SET] seqnums:[1-1] points:[e#1,SET-e#1,SET] # Attempting to schedule a compaction should begin a L5->L6 compaction. maybe-compact ---- 1 compactions in progress: 5: 000004:aa#2,1-dd#2,1 6: 000006:a#1,1-d#1,1 # The scores and sizes should be stable between when the version edit has been # applied but the compaction has not completed, and when the compaction is # finally complete. scores wait-for-compaction=version-edit ---- L Size Score L0 0B 0.0 L1 0B 0.0 L2 0B 0.0 L3 0B 0.0 L4 0B 0.0 L5 129KB 0.5 L6 898KB - lsm ---- 5: 000005:[e#2,SET-e#2,SET] 6: 000008:[a#0,SET-dd#0,SET] 000007:[e#1,SET-e#1,SET] resume-cleaning ---- scores wait-for-compaction=completion ---- L Size Score L0 0B 0.0 L1 0B 0.0 L2 0B 0.0 L3 0B 0.0 L4 0B 0.0 L5 129KB 0.5 L6 898KB -