jeffkbkim commented on code in PR #14885:
URL: https://github.com/apache/kafka/pull/14885#discussion_r1412575325


##########
core/src/main/scala/kafka/coordinator/group/CoordinatorPartitionWriter.scala:
##########
@@ -66,6 +65,10 @@ class CoordinatorPartitionWriter[T](
   compressionType: CompressionType,
   time: Time
 ) extends PartitionWriter[T] {
+  private val threadLocalBufferSupplier = ThreadLocal.withInitial(
+    () => new BufferSupplier.GrowableBufferSupplier()
+  )

Review Comment:
   some general questions for my understanding:
   
   1. We are introducing a buffer supplier so that we can reuse the same buffer 
and not reallocate a new buffer each time.
   2. It's a growable buffer supplier since maxBatchSize may change on 
subsequent append()
   3. we're adding a try-finally block to always clear the buffer in the case 
of exceptions. this was not needed previously since we were not using a buffer 
supplier
   4. it's a thread local supplier because we don't want the buffer to be 
reused across different threads - i don't think i fully understand the 
repercussions
   
   is 1-3 correct? 4 is the actual question. thanks!



-- 
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: jira-unsubscr...@kafka.apache.org

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

Reply via email to