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]

Reply via email to