[
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)