Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Sqoop >> mail # dev >> Review Request: Review request for SQOOP-1035 "Add MS Sqoop Connecter tests to repo"


Copy link to this message
-
Re: Review Request: Review request for SQOOP-1056 "Implement connection resiliency in Sqoop using pluggable failure handlers"

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/11320/
-----------------------------------------------------------

(Updated May 22, 2013, 4:59 p.m.)
Review request for Sqoop and Venkat Ranganathan.
Changes
-------

Re-based the diff due to the recent changes in SQLServerManager.java by SQOOP-1031 and SQOOP-1034
Description
-------

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)
This addresses bug SQOOP-1056.
    https://issues.apache.org/jira/browse/SQOOP-1056
Diffs (updated)
-----

  src/java/org/apache/sqoop/manager/SQLServerManager.java eea5a1d
  src/java/org/apache/sqoop/mapreduce/SQLServerAsyncDBExecThread.java PRE-CREATION
  src/java/org/apache/sqoop/mapreduce/SQLServerExportDBExecThread.java PRE-CREATION
  src/java/org/apache/sqoop/mapreduce/SQLServerResilientExportOutputFormat.java PRE-CREATION
  src/java/org/apache/sqoop/mapreduce/SQLServerResilientUpdateOutputFormat.java PRE-CREATION
  src/java/org/apache/sqoop/mapreduce/SQLServerUpdateDBExecThread.java PRE-CREATION
  src/java/org/apache/sqoop/mapreduce/db/BasicRetrySQLFailureHandler.java PRE-CREATION
  src/java/org/apache/sqoop/mapreduce/db/DBRecordReader.java 7b9e4d2
  src/java/org/apache/sqoop/mapreduce/db/DataDrivenDBRecordReader.java 4b44244
  src/java/org/apache/sqoop/mapreduce/db/SQLFailureHandler.java PRE-CREATION
  src/java/org/apache/sqoop/mapreduce/db/SQLServerConnectionFailureHandler.java PRE-CREATION
  src/java/org/apache/sqoop/mapreduce/db/SQLServerDBInputFormat.java PRE-CREATION
  src/java/org/apache/sqoop/mapreduce/db/SQLServerDBRecordReader.java PRE-CREATION
  src/java/org/apache/sqoop/mapreduce/sqlserver/SqlServerRecordReader.java 2c08f12

Diff: https://reviews.apache.org/r/11320/diff/
Testing
-------

Tested with fault injection on SQL server integration tests from SQOOP-1035
Thanks,

Shuaishuai Nie