[ 
https://issues.apache.org/jira/browse/MAPREDUCE-1203?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12777331#action_12777331
 ] 

Aaron Kimball commented on MAPREDUCE-1203:
------------------------------------------

That's a good point. I have not done a partial interrupt test. It would likely 
fail.

The current logic performs the updates via {{Statement.executeBatch()}}. This 
is relatively poorly-specified, especially in the case of partial failures 
(implementations "may or may not" continue processing statements after 
encountering an error in one of the batched statements). So I'm not sure 
executeBatch() is the way to go. What are your thoughts on the following plan?

* Change from executeBatch() to a series of executeUpdate() statements
* Add another flag in DBConfiguration that adjusts the behavior of error 
handling (ignore all errors / log errors but continue / fail on error). Default 
is fail on error.

So the default behavior would still be one transaction/task which fails on 
SQLException. But that could be suppressed in the case where you want to bulk 
inject many records/task, and don't care if this happens incrementally over 
multiple task attempts.

I haven't benchmarked it, but it is possible that executeBatch() is higher 
performance than a loop around executeUpdate() due to the reduced number of 
round-trips between the client and server. So maybe executeUpdate() should be 
used only in the intermediate-spill case, and not in the atomic-commit case.

Thoughts?


> DBOutputFormat: add batch size support for JDBC and recieve  DBWritable 
> object in value not in key
> --------------------------------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-1203
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-1203
>             Project: Hadoop Map/Reduce
>          Issue Type: Improvement
>            Reporter: Alexander Schwid
>            Assignee: Aaron Kimball
>            Priority: Minor
>         Attachments: HADOOP-4331.patch, patch.txt
>
>
> package mapred.lib.db
> added batch size support for JDBC in DBOutputFormat 
> recieve  DBWritable object in value not in key in DBOutputFormat

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to