Details
-
Sub-task
-
Status: Closed
-
Minor
-
Resolution: Won't Fix
-
None
-
None
-
None
Description
The data availability notification for network relies on whether there are finished BufferBuilder or flush triggered. If flush is not triggered and the first BufferBuilder enqueues into the subpartition, although this BufferBuilder is finished on RecordWriter side, it has to rely on enqueuing the second BufferBuilder to trigger notification available. It may bring some delays for transporting the finished BufferBuilder in network, especially there has a blocking operation for requesting the second BufferBuilder from pool.
Supposing there is only one available buffer in LocalBufferPool in extreme scenarios, if the first BufferBuilder is not transported and recycled, the requesting for second BufferBuilder will be blocked all the time.
I propose to add a notifyBufferFinished method in ResultPartitionWriter interface, then RecordWriter can notify via it after BufferBuilder finished_._