liangyepianzhou opened a new pull request, #4661: URL: https://github.com/apache/bookkeeper/pull/4661
Main Issue: https://github.com/apache/bookkeeper/issues/4655 ## Problem Description When a single ledger disk becomes full, `suspendMajorGC()`/`suspendMinorGC()` pauses garbage collection (GC) for **all disks**. However, a single disk failure should not affect GC operations on other disks. **Two scenarios:** - **Even Data Distribution**: Data is evenly distributed across ledger disks. When all disks are nearly full and one disk fills first. - **Uneven Data Distribution**: Individual disk usage spikes due to write skew or data cleanup anomalies. For the even Data Distribution: Disabling GC only on the full ledger disk first, then waiting for the next check (default `diskCheckInterval=10000` ms) to disable GC on other disks causes no harm. For uneven storage distribution: Disabling GC on all ledger disks affects normal operations of other disks. ## Solution - solution 1: Add a new configuration to control whether to stop GC on other disks when any single disk becomes full. - solution 2: When `isReadOnlyModeOnAnyDiskFullEnabled == true`, stop GC on other disks. Otherwise, other disks should continue normal operations without GC suspension. - **solution 3: When a single disk becomes full, only stop GC for that specific disk.(current fix)** -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
