YYKI commented on PR #28514: URL: https://github.com/apache/flink/pull/28514#issuecomment-4843786794
> I am curious is there anything wrong with the implementation that is already there, you have replaced an Atomic boolean with a a boolean with synchronization - why is this better? If there is no difference apart from style, I suggest not making this change. Hi @davidradl Good question! Sorry for not making the motivation clearer in the PR description (I've updated the PR description now to reflect this as well). As detailed in the Jira ticket, the core motivation is to reduce object allocation overhead in Flink's high-frequency data path.MemorySegment is instantiated heavily. The current implementation allocates a separate AtomicBoolean instance for every segment, leading to billions of redundant objects at scale. By switching to a primitive boolean, we eliminate this allocation cost entirely. Although free() now uses synchronized, it's a low-frequency, lifecycle-ending operation, making this trade-off highly beneficial for overall construction throughput. Let me know if you have further concerns! -- 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]
