bxfjb opened a new issue, #8408:
URL: https://github.com/apache/rocketmq/issues/8408

   ### Before Creating the Enhancement Request
   
   - [X] I have confirmed that this should be classified as an enhancement 
rather than a bug/feature.
   
   
   ### Summary
   
   When tiered storage enabled, high GC pressure was shown under tens of 
thousands pub/sub TPS, which may cause full GC occasionally.
   
   ### Motivation
   
   Uncontrollable and unpredictable full GC may cause STW and disable the 
service.
   
   ### Describe the Solution You'd Like
   
   1. Use off-heap cache instead of in-heap cache as read-ahead cache. Our gc 
logs show that the current cache eviction strategy causes a large number of 
objects to remain in the old generation. From the discussion in this 
[link](https://stackoverflow.com/questions/72667144/caching-objects-causes-frequent-major-gc),
 caffiene cache is not designed for such high-load scenarios by Ben Manes 
himself. 
   2. Another possible optimization may in the process of uploading indexfile. 
In the current design, the size of each compressed index is about 570MB. If the 
object storage SDK used to upload this much data at one time, it will 
inevitably be copied into the heap, which will also bring great pressure to 
JVM. It might be a good idea to upload the file in many parts.
   
   ### Describe Alternatives You've Considered
   
   1. Use off-heap cache as read-ahead cache.
   2. Split index file compaction's result into many parts.
   
   ### Additional Context
   
   _No response_


-- 
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: commits-unsubscr...@rocketmq.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to