Review request for SQOOP-1056 "Implement connection resiliency in Sqoop using pluggable failure handlers"
Review Request #11320 - Created May 21, 2013 and updated
Implement a pluggable way for handling connection failures, and/or intermittent errors in Sqoop. This is especially crucial in environments where the probability of connections getting reset or throttled is high. In case of intermittent failures in Sqoop, due to connection losses or server throttling, Sqoop does not recover from those failures. As a result, the running Sqoop task would eventually fail, and a new task is started. In those cases, Sqoop does not always guarantee that tasks can safely be restarted. For example, if part of the records is already committed to the database, then restarting the task would result in some failures like primary key violations. Even for Sqoop jobs which commit the records only at the end of the task, any failures towards the end of the task would involve reprocessing the whole range of split owned by the task, and any progress is lost. (More detail please refer to the document attached at SQOOP-1056)
Tested with fault injection on SQL server integration tests from SQOOP-1035