StephanEwen commented on pull request #14303:
URL: https://github.com/apache/flink/pull/14303#issuecomment-738820798


   On the "Move Deserialization From SplitReader to RecordEmitter" discussion:
   
   I would be interested in seeing how this impacts performance. The current 
Kafka connector runs deserialization in the processing thread, so we could use 
this as a baseline for performance comparison.
   
   Right now, the new Kafka connector does strictly more work (in CPU cycles) 
with its wrapping and re-packaging of records, compared to the old connector, 
or an approach that deserializes in the RecordEmitter.
   The assumption that this is faster can only hold if the actual processing is 
not sufficiently parallelized (there are unused cores, so it is better to do 
something less efficient where more threads can be used).
   
   To my knowledge, any setup with sufficient parallelization across partitions 
wins over setups which try to parallelize across pipeline stages: Data 
parallelism always beats pipeline parallelism on modern hardware. So if you 
have spare CPU cores, increasing the parallelism of the operator (and slots per 
TM) is more efficient than trying to spread work across more threads and 
stages. Otherwise, it would not be a good idea to chain operators into tasks, 
but we should have a thread per operator.


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to