[ https://issues.apache.org/jira/browse/IGNITE-4169?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15853884#comment-15853884 ]
Vladimir Ozerov edited comment on IGNITE-4169 at 2/6/17 11:55 AM: ------------------------------------------------------------------ [~al.psc], my comments: 1) {{JdbcConnection.ctor}} - we need sensible defaults for {{PROP_STREAMING_PER_NODE_BUF_SIZE}}, {{PROP_STREAMING_PER_NODE_PAR_OPS}}. They cannot be 0. Please re-use values from {{IgniteDataStreamer}}. 2) {{JdbcConnection.prepareStatement}} - if message cannot be processed in streaming manner, we agreed to throw an exception. Streaming mode is only for streaming. 3) {{JdbcStatement.addBatch(String}]} - let's add more info to error message, suggesting user to use {{PreparedStatement.addBatch()}}. Do the same for override in {{JdbcPreparedStatement.addBatch(String}]}. 4) {{JdbcPreparedStatement.executeBatch}} - operation must follow JDBC standard and return single int value per every executed statement. 5) {{IgniteQueryErrorCode}} - I would use {{UNSUPPORTED_OPERATION}} for both {{INVALID_STREAMING_STMT}} and {{CROSS_CACHE_STREAMING}} cases. 6) {{DataStreamerCacheUpdaters}} - as streamed updates, merges and removes are only possible if {{WHERE}} condition is specified on {{_key}} column, which is internal and should be normally used by users, I would drop support for anything except of {{INSERT}} for streaming mode. May be we should discuss it on the dev-list to get more opinions. 7) {{IgniteH2Indexing.createStreamer}} - in current implementation {{INSERT}} doesn't throw an exception if record already exists. I would add {{allowOverwrite}} property to JDBC properties to give usres control over this behavior. 8) {{JdbcConnection.getSchema}} - method should return cache name if schema is not set explicitly. Currently it will return empty string which is not symmetrical with {{setSchema}} method. was (Author: vozerov): [~al.psc], my comments: 1) {{JdbcConnection.ctor}} - we need sensible defaults for {{PROP_STREAMING_PER_NODE_BUF_SIZE}}, {{PROP_STREAMING_PER_NODE_PAR_OPS}}. They cannot be 0. Please re-use values from {{IgniteDataStreamer}}. 2) {{JdbcConnection.prepareStatement}} - if message cannot be processed in streaming manner, we agreed to throw an exception. Streaming mode is only for streaming. 3) {{JdbcStatement.addBatch(String}]} - let's add more info to error message, suggesting user to use {{PreparedStatement.addBatch()}}. Do the same for override in {{JdbcPreparedStatement.addBatch(String}]}. 4) {{JdbcPreparedStatement.executeBatch}} - operation must follow JDBC standard and return single int value per every executed statement. 5) {{IgniteQueryErrorCode}} - I would use {{UNSUPPORTED_OPERATION}} for both {{INVALID_STREAMING_STMT}} and {{CROSS_CACHE_STREAMING}} cases. 6) {{DataStreamerCacheUpdaters}} - as streamed updates, merges and removes are only possible if {{WHERE}} condition is specified on {{_key}} column, which is internal and should be normally used by users, I would drop support for anything except of {{INSERT}} for streaming mode. May be we should discuss it on the dev-list to get more opinions. 7) {{IgniteH2Indexing.createStreamer}} - in current implementation {{INSERT}} doesn't throw an exception if record already exists. I would add {{allowOverwrite}} property to JDBC properties to give usres control over this behavior. > Data streamer mode for DML > -------------------------- > > Key: IGNITE-4169 > URL: https://issues.apache.org/jira/browse/IGNITE-4169 > Project: Ignite > Issue Type: New Feature > Components: SQL > Affects Versions: 1.8 > Reporter: Alexander Paschenko > Assignee: Alexander Paschenko > Fix For: 1.9 > > > SQL INSERT and MERGE are supposed to support data streamer mode which should > be turned on by JDBC connection string param. > Note: particular details of usage means and implementation of this mode, as > well as urgency of this feature are yet to be discussed. -- This message was sent by Atlassian JIRA (v6.3.15#6346)