The following are a few disadvantages of the receiver-based approach:
- Throughput: Enabling write-ahead log and checkpoint may cause you less throughput because time may be consumed in writing data to HDFS. It's obvious to have low throughput when there is lot of disk I/O involved.
- Storage: We store one set of data in Spark executor buffer and another set of the same data in write-ahead log HDFS. We are using two stores to store the same data and storage needs may vary, based on application requirements.
- Data Loss: If a write-ahead log is not enabled, there is a huge possibility of losing data and it may be very critical for some important applications.