You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gobblin.apache.org by hu...@apache.org on 2020/05/12 23:52:58 UTC

[incubator-gobblin] branch master updated: [GOBBLIN-1146] Allow configuring autocommit in JDBCWriters

This is an automated email from the ASF dual-hosted git repository.

hutran pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-gobblin.git


The following commit(s) were added to refs/heads/master by this push:
     new 5ece4e1  [GOBBLIN-1146] Allow configuring autocommit in JDBCWriters
5ece4e1 is described below

commit 5ece4e15140fb34a2a17f4b7b425c4252ca0ea02
Author: zhchen <zh...@linkedin.com>
AuthorDate: Tue May 12 16:52:51 2020 -0700

    [GOBBLIN-1146] Allow configuring autocommit in JDBCWriters
    
    Closes #2984 from zxcware/jdbc
---
 .../src/main/java/org/apache/gobblin/writer/PartitionedDataWriter.java | 2 +-
 .../src/main/java/org/apache/gobblin/writer/JdbcWriter.java            | 3 +++
 .../java/org/apache/gobblin/writer/commands/MySqlWriterCommands.java   | 2 --
 .../org/apache/gobblin/writer/commands/PostgresWriterCommands.java     | 2 --
 4 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/gobblin-core/src/main/java/org/apache/gobblin/writer/PartitionedDataWriter.java b/gobblin-core/src/main/java/org/apache/gobblin/writer/PartitionedDataWriter.java
index d7d2de2..3ebba0e 100644
--- a/gobblin-core/src/main/java/org/apache/gobblin/writer/PartitionedDataWriter.java
+++ b/gobblin-core/src/main/java/org/apache/gobblin/writer/PartitionedDataWriter.java
@@ -274,7 +274,7 @@ public class PartitionedDataWriter<S, D> extends WriterWrapper<D> implements Fin
         entry.getValue().cleanup();
         writersCleanedUp++;
       } catch (Throwable throwable) {
-        log.error(String.format("Failed to cleanup writer for partition %s.", entry.getKey()));
+        log.error(String.format("Failed to cleanup writer for partition %s.", entry.getKey()), throwable);
       }
     }
     if (writersCleanedUp < this.partitionWriters.asMap().size()) {
diff --git a/gobblin-modules/gobblin-sql/src/main/java/org/apache/gobblin/writer/JdbcWriter.java b/gobblin-modules/gobblin-sql/src/main/java/org/apache/gobblin/writer/JdbcWriter.java
index b98f52f..7404f30 100644
--- a/gobblin-modules/gobblin-sql/src/main/java/org/apache/gobblin/writer/JdbcWriter.java
+++ b/gobblin-modules/gobblin-sql/src/main/java/org/apache/gobblin/writer/JdbcWriter.java
@@ -67,6 +67,8 @@ import com.google.common.base.Preconditions;
 public class JdbcWriter implements DataWriter<JdbcEntryData> {
   private static final Logger LOG = LoggerFactory.getLogger(JdbcWriter.class);
 
+  public static final String ENABLE_AUTO_COMMIT = "jdbcWriter.enableAutoCommit";
+
   private final Connection conn;
   private final State state;
   private final JdbcWriterCommands commands;
@@ -91,6 +93,7 @@ public class JdbcWriter implements DataWriter<JdbcEntryData> {
         "Staging table is missing with key " + stagingTableKey);
     try {
       this.conn = createConnection();
+      this.conn.setAutoCommit(this.state.getPropAsBoolean(ENABLE_AUTO_COMMIT, false));
       this.commands = new JdbcWriterCommandsFactory().newInstance(this.state, this.conn);
       this.commands.setConnectionParameters(this.state.getProperties(), this.conn);
     } catch (SQLException e) {
diff --git a/gobblin-modules/gobblin-sql/src/main/java/org/apache/gobblin/writer/commands/MySqlWriterCommands.java b/gobblin-modules/gobblin-sql/src/main/java/org/apache/gobblin/writer/commands/MySqlWriterCommands.java
index 534e019..5c4da5a 100644
--- a/gobblin-modules/gobblin-sql/src/main/java/org/apache/gobblin/writer/commands/MySqlWriterCommands.java
+++ b/gobblin-modules/gobblin-sql/src/main/java/org/apache/gobblin/writer/commands/MySqlWriterCommands.java
@@ -59,8 +59,6 @@ public class MySqlWriterCommands implements JdbcWriterCommands {
 
   @Override
   public void setConnectionParameters(Properties properties, Connection conn) throws SQLException {
-    // MySQL writer always uses one single transaction
-    this.conn.setAutoCommit(false);
   }
 
   @Override
diff --git a/gobblin-modules/gobblin-sql/src/main/java/org/apache/gobblin/writer/commands/PostgresWriterCommands.java b/gobblin-modules/gobblin-sql/src/main/java/org/apache/gobblin/writer/commands/PostgresWriterCommands.java
index 87e89c3..baa2b44 100644
--- a/gobblin-modules/gobblin-sql/src/main/java/org/apache/gobblin/writer/commands/PostgresWriterCommands.java
+++ b/gobblin-modules/gobblin-sql/src/main/java/org/apache/gobblin/writer/commands/PostgresWriterCommands.java
@@ -59,8 +59,6 @@ public class PostgresWriterCommands implements JdbcWriterCommands {
   @Override
   public void setConnectionParameters(Properties properties, Connection conn)
       throws SQLException {
-    // Postgres writer always uses one single transaction
-    this.conn.setAutoCommit(false);
   }
 
   @Override