@@ -390,7 +390,7 @@ ss::future<> cache::trim(
390
390
vlog (
391
391
cst_log.debug ,
392
392
" in-memory trim: set target_size {}/{}, size {}/{}, reserved {}/{}, "
393
- " pending {}/{}) , candidates for deletion: {}, size to delete: {}, "
393
+ " pending {}/{}, candidates for deletion: {}, size to delete: {}, "
394
394
" objects to delete: {}" ,
395
395
target_size,
396
396
target_objects,
@@ -428,8 +428,16 @@ ss::future<> cache::trim(
428
428
auto undeletable_bytes = (co_await access_time_tracker_size ()).value_or (0 );
429
429
430
430
if (
431
- size_to_delete < undeletable_bytes
432
- && objects_to_delete < undeletable_objects) {
431
+ size_to_delete <= undeletable_bytes
432
+ && objects_to_delete <= undeletable_objects) {
433
+ vlog (
434
+ cst_log.debug ,
435
+ " in-memory trim finished: size/objects to delete: {}/{}, undeletable "
436
+ " size/objects: {}/{}" ,
437
+ size_to_delete,
438
+ objects_to_delete,
439
+ undeletable_bytes,
440
+ undeletable_objects);
433
441
_last_clean_up = ss::lowres_clock::now ();
434
442
_last_trim_failed = false ;
435
443
co_return ;
@@ -465,7 +473,7 @@ ss::future<> cache::trim(
465
473
vlog (
466
474
cst_log.debug ,
467
475
" trim: set target_size {}/{}, size {}/{}, walked size {} (max {}/{}), "
468
- " reserved {}/{}, pending {}/{}) , candidates for deletion: {}, filtered "
476
+ " reserved {}/{}, pending {}/{}, candidates for deletion: {}, filtered "
469
477
" out: {}" ,
470
478
target_size,
471
479
target_objects,
@@ -482,10 +490,8 @@ ss::future<> cache::trim(
482
490
filtered_out_files);
483
491
484
492
// Sort by atime for the subsequent LRU trimming loop
485
- std::sort (
486
- candidates_for_deletion.begin (),
487
- candidates_for_deletion.end (),
488
- [](auto & a, auto & b) { return a.access_time < b.access_time ; });
493
+ std::ranges::sort (
494
+ candidates_for_deletion, {}, &file_list_item::access_time);
489
495
490
496
vlog (
491
497
cst_log.debug ,
@@ -1758,6 +1764,12 @@ ss::future<> cache::do_reserve_space(uint64_t bytes, size_t objects) {
1758
1764
// do the trim.
1759
1765
co_await trim_throttled_unlocked ();
1760
1766
did_trim = true ;
1767
+ } else {
1768
+ vlog (
1769
+ cst_log.debug ,
1770
+ " Did not trim, may_trim_now: {}, may_exceed: {}" ,
1771
+ may_trim_now,
1772
+ may_exceed);
1761
1773
}
1762
1774
1763
1775
if (!may_reserve_space (bytes, objects)) {
@@ -1768,6 +1780,10 @@ ss::future<> cache::do_reserve_space(uint64_t bytes, size_t objects) {
1768
1780
if (may_exceed) {
1769
1781
// Tip off the next caller that they may proactively
1770
1782
// exceed the cache size without waiting for a trim.
1783
+ vlog (
1784
+ cst_log.debug ,
1785
+ " Last trim failed to free up space, will exceed max "
1786
+ " bytes" );
1771
1787
_last_trim_failed = true ;
1772
1788
}
1773
1789
}
0 commit comments