liangyepianzhou opened a new issue, #4655:
URL: 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 are discussed:  
   - **Normal case**: Data is evenly distributed across ledger disks. When all 
disks are nearly full and one disk fills first.  
   - **Abnormal case**: Individual disk usage spikes due to write skew or data 
cleanup anomalies.  
   
   For the normal case:  
   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  
   1. Add a new configuration to control whether to stop GC on other disks when 
any single disk becomes full.  
   2. When `isReadOnlyModeOnAnyDiskFullEnabled == true`, stop GC on other 
disks. Otherwise, other disks should continue normal operations without GC 
suspension.  
   3. When a single disk becomes full, only stop GC for that specific disk.


-- 
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]

Reply via email to