Details
-
Improvement
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
3.3.0
-
None
Description
The interface of DeserializationStream forces implementation to raise EOFException to indicate that there is no more data. And for the KryoDeserializtionStream it even worse since the kryo library does not raise EOFException we pay for the price of two exceptions for each stream. For large shuffles with lots of small stream this is quite a bit large overhead (seen couple % of cpu time). It also less safe to depend exceptions as it might me raised for different reasons like corrupt data and that currently cause data loss.