[jira] [Commented] (IGNITE-22208) Deduplicate DEFAULT_SCHEMA_NAME
[ https://issues.apache.org/jira/browse/IGNITE-22208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17846547#comment-17846547 ] Igor Sapego commented on IGNITE-22208: -- Looks good to me. > Deduplicate DEFAULT_SCHEMA_NAME > --- > > Key: IGNITE-22208 > URL: https://issues.apache.org/jira/browse/IGNITE-22208 > Project: Ignite > Issue Type: Improvement > Components: sql >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > The following constant is duplicated 6 times currently: > {code:java} > DEFAULT_SCHEMA_NAME = "PUBLIC" > {code} > * Let's put it somewhere in the core module and reuse. > * It should *not* be a part of the public API. For internal use only. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22239) Python Client 3: Implement documentation generation
Igor Sapego created IGNITE-22239: Summary: Python Client 3: Implement documentation generation Key: IGNITE-22239 URL: https://issues.apache.org/jira/browse/IGNITE-22239 Project: Ignite Issue Type: New Feature Reporter: Igor Sapego Assignee: Igor Sapego Consider using Sphinx to generate documentation to be able to upload it to readthedocs.com. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22238) Python Client 3: Implement key-value view API
Igor Sapego created IGNITE-22238: Summary: Python Client 3: Implement key-value view API Key: IGNITE-22238 URL: https://issues.apache.org/jira/browse/IGNITE-22238 Project: Ignite Issue Type: New Feature Reporter: Igor Sapego Assignee: Igor Sapego Implement the API, tests and benchmarks. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22237) Python Client 3: Implement record view API
Igor Sapego created IGNITE-22237: Summary: Python Client 3: Implement record view API Key: IGNITE-22237 URL: https://issues.apache.org/jira/browse/IGNITE-22237 Project: Ignite Issue Type: New Feature Reporter: Igor Sapego Assignee: Igor Sapego Implement API, tests and benchmarks. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22232) Python Client 3: Implement benchmarks for binary record view operations
[ https://issues.apache.org/jira/browse/IGNITE-22232?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-22232: - Summary: Python Client 3: Implement benchmarks for binary record view operations (was: Python Client 3: Implement benchmarks for record view operations) > Python Client 3: Implement benchmarks for binary record view operations > --- > > Key: IGNITE-22232 > URL: https://issues.apache.org/jira/browse/IGNITE-22232 > Project: Ignite > Issue Type: New Feature >Reporter: Igor Sapego >Assignee: Igor Sapego >Priority: Major > Labels: ignite-3 > > Python client performance is a major concern, as it is a big issue in Ignite > 2. Some basic benchmarks are required: > - Benchmark scenario: insert values into cluster, get values from cluster; > - Measure both throughput and latency; -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22236) Python Client 3: Implement key-value binary view API
[ https://issues.apache.org/jira/browse/IGNITE-22236?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-22236: - Summary: Python Client 3: Implement key-value binary view API (was: Python 3.0: Implement key-value binary view API) > Python Client 3: Implement key-value binary view API > > > Key: IGNITE-22236 > URL: https://issues.apache.org/jira/browse/IGNITE-22236 > Project: Ignite > Issue Type: New Feature >Reporter: Igor Sapego >Assignee: Igor Sapego >Priority: Major > Labels: ignite-3 > > Implement API, add tests and benchmarks. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22236) Python 3.0: Implement key-value binary view API
Igor Sapego created IGNITE-22236: Summary: Python 3.0: Implement key-value binary view API Key: IGNITE-22236 URL: https://issues.apache.org/jira/browse/IGNITE-22236 Project: Ignite Issue Type: New Feature Reporter: Igor Sapego Assignee: Igor Sapego Implement API, add tests and benchmarks. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22234) Python Client 3: Implement binary record view API
Igor Sapego created IGNITE-22234: Summary: Python Client 3: Implement binary record view API Key: IGNITE-22234 URL: https://issues.apache.org/jira/browse/IGNITE-22234 Project: Ignite Issue Type: New Feature Reporter: Igor Sapego Assignee: Igor Sapego Implement binary record view API. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22232) Python Client 3: Implement benchmarks for record view operations
Igor Sapego created IGNITE-22232: Summary: Python Client 3: Implement benchmarks for record view operations Key: IGNITE-22232 URL: https://issues.apache.org/jira/browse/IGNITE-22232 Project: Ignite Issue Type: New Feature Reporter: Igor Sapego Assignee: Igor Sapego Python client performance is a major concern, as it is a big issue in Ignite 2. Some basic benchmarks are required: - Benchmark scenario: insert values into cluster, get values from cluster; - Measure both throughput and latency; -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22230) Python Client 3: Implement SQL API
Igor Sapego created IGNITE-22230: Summary: Python Client 3: Implement SQL API Key: IGNITE-22230 URL: https://issues.apache.org/jira/browse/IGNITE-22230 Project: Ignite Issue Type: New Feature Reporter: Igor Sapego Assignee: Igor Sapego Implement SQL API and add related tests and benchmarks. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22229) Python Client 3: Design Python Client for Ignite 3
Igor Sapego created IGNITE-9: Summary: Python Client 3: Design Python Client for Ignite 3 Key: IGNITE-9 URL: https://issues.apache.org/jira/browse/IGNITE-9 Project: Ignite Issue Type: New Feature Reporter: Igor Sapego Create, discuss with community and approve an IEP for Python Client for Ignite 3. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-22229) Python Client 3: Design Python Client for Ignite 3
[ https://issues.apache.org/jira/browse/IGNITE-9?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego reassigned IGNITE-9: Assignee: Igor Sapego > Python Client 3: Design Python Client for Ignite 3 > -- > > Key: IGNITE-9 > URL: https://issues.apache.org/jira/browse/IGNITE-9 > Project: Ignite > Issue Type: New Feature >Reporter: Igor Sapego >Assignee: Igor Sapego >Priority: Major > Labels: ignite-3 > > Create, discuss with community and approve an IEP for Python Client for > Ignite 3. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22228) Python Client 3: Implement Table API
Igor Sapego created IGNITE-8: Summary: Python Client 3: Implement Table API Key: IGNITE-8 URL: https://issues.apache.org/jira/browse/IGNITE-8 Project: Ignite Issue Type: New Feature Reporter: Igor Sapego Assignee: Igor Sapego Implement Table API and tests for it for Python Client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22227) Python Client 3: Implement the most basic version of Client for Ignite 3
Igor Sapego created IGNITE-7: Summary: Python Client 3: Implement the most basic version of Client for Ignite 3 Key: IGNITE-7 URL: https://issues.apache.org/jira/browse/IGNITE-7 Project: Ignite Issue Type: New Feature Reporter: Igor Sapego Assignee: Igor Sapego Needs to be done: - Set-up project structure; - Implement basic version of Python Client, that can connect to cluster; - Implement basic tests (connection to the cluster); -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22227) Python Client 3: Implement the most basic version of Client for Ignite 3
[ https://issues.apache.org/jira/browse/IGNITE-7?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-7: - Epic Link: IGNITE-6 > Python Client 3: Implement the most basic version of Client for Ignite 3 > > > Key: IGNITE-7 > URL: https://issues.apache.org/jira/browse/IGNITE-7 > Project: Ignite > Issue Type: New Feature >Reporter: Igor Sapego >Assignee: Igor Sapego >Priority: Major > Labels: ignite-3 > > Needs to be done: > - Set-up project structure; > - Implement basic version of Python Client, that can connect to cluster; > - Implement basic tests (connection to the cluster); -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22226) Python Client 3.0
[ https://issues.apache.org/jira/browse/IGNITE-6?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-6: - Labels: ignite-3 (was: ) > Python Client 3.0 > - > > Key: IGNITE-6 > URL: https://issues.apache.org/jira/browse/IGNITE-6 > Project: Ignite > Issue Type: Epic > Components: platforms, thin client >Reporter: Igor Sapego >Assignee: Igor Sapego >Priority: Major > Labels: ignite-3 > > An epic for tickets to implement initial version of Python Client for Ignite > 3. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22226) Python Client 3.0
Igor Sapego created IGNITE-6: Summary: Python Client 3.0 Key: IGNITE-6 URL: https://issues.apache.org/jira/browse/IGNITE-6 Project: Ignite Issue Type: Epic Components: platforms, thin client Reporter: Igor Sapego Assignee: Igor Sapego An epic for tickets to implement initial version of Python Client for Ignite 3. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-22031) .NET: Thin 3.0: Remove DataStreamer.PartitionAssignmentUpdateFrequency
[ https://issues.apache.org/jira/browse/IGNITE-22031?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17846264#comment-17846264 ] Igor Sapego commented on IGNITE-22031: -- Looks good to me. > .NET: Thin 3.0: Remove DataStreamer.PartitionAssignmentUpdateFrequency > -- > > Key: IGNITE-22031 > URL: https://issues.apache.org/jira/browse/IGNITE-22031 > Project: Ignite > Issue Type: Improvement > Components: platforms, thin client >Affects Versions: 3.0.0-beta1 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: .NET, ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > Timer-based partition assignment check is not necessary. > *Table.GetPartitionAssignmentAsync* is backed by a cache with a > double-checked locking, and uses a *ValueTask*, so there is no overhead in > case of unchanged assignment - we can call it as often as needed. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-22205) Java thin 3.0: Reuse SQL API implementations from embedded
[ https://issues.apache.org/jira/browse/IGNITE-22205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17846238#comment-17846238 ] Igor Sapego commented on IGNITE-22205: -- Looks good to me > Java thin 3.0: Reuse SQL API implementations from embedded > -- > > Key: IGNITE-22205 > URL: https://issues.apache.org/jira/browse/IGNITE-22205 > Project: Ignite > Issue Type: Improvement > Components: sql, thin client >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > The following classes can be moved to *core* module and reused across client > and embedded APIs: > * StatementImpl > * StatementBuilderImpl > * ResultSetMetadataImpl > * ColumnMetadataImpl > * ColumnOriginImpl -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-21604) .NET: Thin 3.0: Pass client time zone to server
[ https://issues.apache.org/jira/browse/IGNITE-21604?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17845925#comment-17845925 ] Igor Sapego commented on IGNITE-21604: -- By "let's document this" I mean separate documentation ticket of course. > .NET: Thin 3.0: Pass client time zone to server > --- > > Key: IGNITE-21604 > URL: https://issues.apache.org/jira/browse/IGNITE-21604 > Project: Ignite > Issue Type: Improvement > Components: thin client >Reporter: Pavel Pereslegin >Assignee: Pavel Tupitsyn >Priority: Major > Labels: ignite-3 > Time Spent: 20m > Remaining Estimate: 0h > > Once IGNITE-21551 is implemented, it will be possible to set the time zone in > a user session. > The session time zone is taken into account when calling functions for > obtaining the current time (CURRENT_TIMESTAMP, etc), as well as when > processing a string literal for the 'TIMESTAMP WITH LOCAL TIME ZONE' type. > For this to work correctly, you need to transfer the client's time zone > through the thin client. > p.s. check the TODOs that point to this ticket. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-21604) .NET: Thin 3.0: Pass client time zone to server
[ https://issues.apache.org/jira/browse/IGNITE-21604?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17845924#comment-17845924 ] Igor Sapego commented on IGNITE-21604: -- Looks good to me, but let's document that there may be mistmatches between timezones on different platforms, so that user would consider this when developing their application. Of course, it's user's responsibility to check things like this, but it will only benefit us if we'd give them a hint. > .NET: Thin 3.0: Pass client time zone to server > --- > > Key: IGNITE-21604 > URL: https://issues.apache.org/jira/browse/IGNITE-21604 > Project: Ignite > Issue Type: Improvement > Components: thin client >Reporter: Pavel Pereslegin >Assignee: Pavel Tupitsyn >Priority: Major > Labels: ignite-3 > Time Spent: 20m > Remaining Estimate: 0h > > Once IGNITE-21551 is implemented, it will be possible to set the time zone in > a user session. > The session time zone is taken into account when calling functions for > obtaining the current time (CURRENT_TIMESTAMP, etc), as well as when > processing a string literal for the 'TIMESTAMP WITH LOCAL TIME ZONE' type. > For this to work correctly, you need to transfer the client's time zone > through the thin client. > p.s. check the TODOs that point to this ticket. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-21604) .NET: Thin 3.0: Pass client time zone to server
[ https://issues.apache.org/jira/browse/IGNITE-21604?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-21604: - Ignite Flags: Docs Required > .NET: Thin 3.0: Pass client time zone to server > --- > > Key: IGNITE-21604 > URL: https://issues.apache.org/jira/browse/IGNITE-21604 > Project: Ignite > Issue Type: Improvement > Components: thin client >Reporter: Pavel Pereslegin >Assignee: Pavel Tupitsyn >Priority: Major > Labels: ignite-3 > Time Spent: 10m > Remaining Estimate: 0h > > Once IGNITE-21551 is implemented, it will be possible to set the time zone in > a user session. > The session time zone is taken into account when calling functions for > obtaining the current time (CURRENT_TIMESTAMP, etc), as well as when > processing a string literal for the 'TIMESTAMP WITH LOCAL TIME ZONE' type. > For this to work correctly, you need to transfer the client's time zone > through the thin client. > p.s. check the TODOs that point to this ticket. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-21568) Java thin 3.0: Pass client time zone to server
[ https://issues.apache.org/jira/browse/IGNITE-21568?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17845359#comment-17845359 ] Igor Sapego commented on IGNITE-21568: -- Looks good overall. Left a comment. > Java thin 3.0: Pass client time zone to server > -- > > Key: IGNITE-21568 > URL: https://issues.apache.org/jira/browse/IGNITE-21568 > Project: Ignite > Issue Type: Improvement > Components: thin client >Reporter: Pavel Pereslegin >Assignee: Pavel Tupitsyn >Priority: Major > Labels: ignite-3 > Time Spent: 20m > Remaining Estimate: 0h > > Once IGNITE-21551 is implemented, it will be possible to set the time zone in > a user session. > The session time zone is taken into account when calling functions for > obtaining the current time (CURRENT_TIMESTAMP, etc), as well as when > processing a string literal for the 'TIMESTAMP WITH LOCAL TIME ZONE' type. > For this to work correctly, you need to transfer the client's time zone > through the thin client. > p.s. check the TODOs that point to this ticket. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-19682) .NET: Thin 3.0: Tx partition awareness
[ https://issues.apache.org/jira/browse/IGNITE-19682?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17845001#comment-17845001 ] Igor Sapego commented on IGNITE-19682: -- Looks good to me. > .NET: Thin 3.0: Tx partition awareness > -- > > Key: IGNITE-19682 > URL: https://issues.apache.org/jira/browse/IGNITE-19682 > Project: Ignite > Issue Type: Improvement > Components: thin client >Affects Versions: 3.0.0-beta1 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: .NET, ignite-3, performance > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > Currently, client sends a separate *TX_BEGIN* request when the user invokes > *ITransactions.BeginAsync* API: > * Extra network request. > * Chosen tx coordinator (server node that handles TX_BEGIN request) is random > and in most cases won't be the primary node for enlisted keys. > Solution: > * On the client, do not send *TX_BEGIN* request when the user invokes > *ITransactions.BeginAsync*. Instead, start the tx "on demand" when it is > first used in some API. > * Send two requests at once to the same node where the first enlisted > operation goes (according to partition awareness, if applicable). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-21962) ignite-client-handler tests fail due to hardcoded handshake response size
[ https://issues.apache.org/jira/browse/IGNITE-21962?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17842928#comment-17842928 ] Igor Sapego commented on IGNITE-21962: -- Looks good to me. > ignite-client-handler tests fail due to hardcoded handshake response size > - > > Key: IGNITE-21962 > URL: https://issues.apache.org/jira/browse/IGNITE-21962 > Project: Ignite > Issue Type: Bug > Components: thin client >Affects Versions: 3.0.0-beta1 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > The following tests fail if you change *IgniteProductVersion.CURRENT_VERSION* > so that the string length is different, because handshake response size > changes: > > * > *org.apache.ignite.client.handler.ItClientHandlerMetricsTest#testBytesSentReceived* > * > *org.apache.ignite.client.handler.ItClientHandlerTest#testHandshakeWithAuthenticationValidCredentials* > * > *org.apache.ignite.client.handler.ItClientHandlerTest#testHandshakeValidReturnsSuccess* -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-21629) Add TLSv1_3 to o.a.i.client.SslProtocol
[ https://issues.apache.org/jira/browse/IGNITE-21629?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17842882#comment-17842882 ] Igor Sapego commented on IGNITE-21629: -- Looks good to me. > Add TLSv1_3 to o.a.i.client.SslProtocol > --- > > Key: IGNITE-21629 > URL: https://issues.apache.org/jira/browse/IGNITE-21629 > Project: Ignite > Issue Type: Improvement > Components: thin client >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Fix For: 2.17 > > Time Spent: 10m > Remaining Estimate: 0h > > *TLSv1_3* will be used automatically when supported by the JDK if you keep > the default *SslProtocol.TLS* in *ClientConfiguration*. However, it is not > possible to specify explicitly - we should add a enum entry to *SslProtocol*. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19855) ODBC 3.0: Implement multiple queries execution
[ https://issues.apache.org/jira/browse/IGNITE-19855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-19855: - Epic Link: (was: IGNITE-20815) > ODBC 3.0: Implement multiple queries execution > -- > > Key: IGNITE-19855 > URL: https://issues.apache.org/jira/browse/IGNITE-19855 > Project: Ignite > Issue Type: New Feature > Components: odbc >Reporter: Igor Sapego >Assignee: Igor Sapego >Priority: Major > Labels: ignite-3 > > Currently, we do not support execution of multiple queries and fetching of > multiple result sets. Let's implement it. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-22086) Thin 3.0: observableTimestamp is 0 after handshake
[ https://issues.apache.org/jira/browse/IGNITE-22086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17842303#comment-17842303 ] Igor Sapego commented on IGNITE-22086: -- Looks good to me. > Thin 3.0: observableTimestamp is 0 after handshake > -- > > Key: IGNITE-22086 > URL: https://issues.apache.org/jira/browse/IGNITE-22086 > Project: Ignite > Issue Type: Bug > Components: platforms, thin client >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 0.5h > Remaining Estimate: 0h > > We propagate *observableTimestamp* to client with every response (see > *ClientInboundMessageHandler#writeResponseHeader*), but not on handshake. As > a result, the very first operation from the client has > *observableTimestamp=0*, which can lead to causality issues. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19684) С++: Thin 3.0: Tx partition awareness
[ https://issues.apache.org/jira/browse/IGNITE-19684?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-19684: - Epic Link: IGNITE-19902 (was: IGNITE-19479) > С++: Thin 3.0: Tx partition awareness > - > > Key: IGNITE-19684 > URL: https://issues.apache.org/jira/browse/IGNITE-19684 > Project: Ignite > Issue Type: Improvement > Components: thin client >Affects Versions: 3.0.0-beta1 >Reporter: Pavel Tupitsyn >Assignee: Igor Sapego >Priority: Major > Labels: C++, ignite-3 > Fix For: 3.0.0-beta2 > > > Currently, client sends a separate *TX_BEGIN* request when the user invokes > *transactions.begin_async()* API: > * Extra network request. > * Chosen tx coordinator (server node that handles TX_BEGIN request) is random > and in most cases won't be the primary node for enlisted keys. > Solution: > * On the client, do not send *TX_BEGIN* request when the user invokes > *transactions.begin_async()*. Instead, start the tx "on demand" when it is > first used in some API. > * Send two requests at once to the same node where the first enlisted > operation goes (according to partition awareness, if applicable). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19682) .NET: Thin 3.0: Tx partition awareness
[ https://issues.apache.org/jira/browse/IGNITE-19682?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-19682: - Epic Link: IGNITE-19902 (was: IGNITE-19479) > .NET: Thin 3.0: Tx partition awareness > -- > > Key: IGNITE-19682 > URL: https://issues.apache.org/jira/browse/IGNITE-19682 > Project: Ignite > Issue Type: Improvement > Components: thin client >Affects Versions: 3.0.0-beta1 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: .NET, ignite-3, performance > Fix For: 3.0.0-beta2 > > > Currently, client sends a separate *TX_BEGIN* request when the user invokes > *ITransactions.BeginAsync* API: > * Extra network request. > * Chosen tx coordinator (server node that handles TX_BEGIN request) is random > and in most cases won't be the primary node for enlisted keys. > Solution: > * On the client, do not send *TX_BEGIN* request when the user invokes > *ITransactions.BeginAsync*. Instead, start the tx "on demand" when it is > first used in some API. > * Send two requests at once to the same node where the first enlisted > operation goes (according to partition awareness, if applicable). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22090) Thin 3.0: Avoid TX_BEGIN round-trip
[ https://issues.apache.org/jira/browse/IGNITE-22090?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-22090: - Epic Link: IGNITE-19902 (was: IGNITE-19479) > Thin 3.0: Avoid TX_BEGIN round-trip > --- > > Key: IGNITE-22090 > URL: https://issues.apache.org/jira/browse/IGNITE-22090 > Project: Ignite > Issue Type: Improvement > Components: thin client >Affects Versions: 3.0.0-beta1 >Reporter: Pavel Tupitsyn >Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > > IGNITE-19681 implements tx partition awareness, where TX_BEGIN request is > performed together with the first enlisted operation. However, this still > involves a separate round-trip to start the transaction. > We can change the protocol to do two things in one go: > * Start the transaction > * Enlist first operation > See the comment from [~ascherbakov]: > https://github.com/apache/ignite-3/pull/3640#discussion_r1575943518 > {code} > This can be optimized even further. > Currently we still have +1RTT due to begin tx request/response here, which > may be sensitive to small transactions. > A transaction should be started on first map request. > For this to work logical client tx id should be assigned on client. > For example, id can consist of local client counter combined with client > unique id assigned by server on handshake. > One bit of 64 bit id is reserved for "first" flag. > If an operation is "first", the txn is implicitly started. > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19681) Thin 3.0: Tx partition awareness
[ https://issues.apache.org/jira/browse/IGNITE-19681?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-19681: - Epic Link: IGNITE-19902 (was: IGNITE-19479) > Thin 3.0: Tx partition awareness > > > Key: IGNITE-19681 > URL: https://issues.apache.org/jira/browse/IGNITE-19681 > Project: Ignite > Issue Type: Improvement > Components: thin client >Affects Versions: 3.0.0-beta1 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 1h 20m > Remaining Estimate: 0h > > Currently, client sends a separate *TX_BEGIN* request when the user invokes > *IgniteTransactions.begin()* API: > * Extra network request. > * Chosen tx coordinator (server node that handles TX_BEGIN request) is random > and in most cases won't be the primary node for enlisted keys. > Solution: > * On the client, do not send *TX_BEGIN* request when the user invokes > *IgniteTransactions.begin()*. Instead, start the tx "on demand" when it is > first used in some API. > * Send two requests at once to the same node where the first enlisted > operation goes (according to partition awareness, if applicable). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22145) C++ 3.0: Implement Data Streamer with Receiver for C++ client
[ https://issues.apache.org/jira/browse/IGNITE-22145?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-22145: - Labels: iep-102 ignite-3 (was: ignite-3) > C++ 3.0: Implement Data Streamer with Receiver for C++ client > - > > Key: IGNITE-22145 > URL: https://issues.apache.org/jira/browse/IGNITE-22145 > Project: Ignite > Issue Type: New Feature > Components: thin client >Reporter: Igor Sapego >Assignee: Igor Sapego >Priority: Major > Labels: iep-102, ignite-3 > > Let's implement data streamer with receiver for C++ Client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22144) C++ 3.0: Implement Basic Data Streamer for C++ client
[ https://issues.apache.org/jira/browse/IGNITE-22144?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-22144: - Description: Let's implement basic version of [IEP-102 Data Streamer|https://cwiki.apache.org/confluence/display/IGNITE/IEP-102%3A+Data+Streamer] for C++ Client. was: Let's implement basic version of [IEP-102 Data Streamer|"https://cwiki.apache.org/confluence/display/IGNITE/IEP-102%3A+Data+Streamer;] for C++ Client. > C++ 3.0: Implement Basic Data Streamer for C++ client > - > > Key: IGNITE-22144 > URL: https://issues.apache.org/jira/browse/IGNITE-22144 > Project: Ignite > Issue Type: New Feature > Components: thin client >Reporter: Igor Sapego >Assignee: Igor Sapego >Priority: Major > Labels: iep-102, ignite-3 > > Let's implement basic version of [IEP-102 > Data > Streamer|https://cwiki.apache.org/confluence/display/IGNITE/IEP-102%3A+Data+Streamer] > for C++ Client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22144) C++ 3.0: Implement Basic Data Streamer for C++ client
[ https://issues.apache.org/jira/browse/IGNITE-22144?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-22144: - Description: Let's implement basic version of [IEP-102 Data Streamer|"https://cwiki.apache.org/confluence/display/IGNITE/IEP-102%3A+Data+Streamer;] for C++ Client. was: Let's implement basic version of [IEP-102 Data Streamer|https://cwiki.apache.org/confluence/display/IGNITE/IEP-102%3A+Data+Streamer] for C++ Client. > C++ 3.0: Implement Basic Data Streamer for C++ client > - > > Key: IGNITE-22144 > URL: https://issues.apache.org/jira/browse/IGNITE-22144 > Project: Ignite > Issue Type: New Feature > Components: thin client >Reporter: Igor Sapego >Assignee: Igor Sapego >Priority: Major > Labels: iep-102, ignite-3 > > Let's implement basic version of [IEP-102 > Data > Streamer|"https://cwiki.apache.org/confluence/display/IGNITE/IEP-102%3A+Data+Streamer;] > for C++ Client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22141) C++ 3.0: Implement Partition Awareness for C++ client
[ https://issues.apache.org/jira/browse/IGNITE-22141?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-22141: - Labels: iep-95 ignite-3 (was: ignite-3) > C++ 3.0: Implement Partition Awareness for C++ client > - > > Key: IGNITE-22141 > URL: https://issues.apache.org/jira/browse/IGNITE-22141 > Project: Ignite > Issue Type: New Feature > Components: thin client >Reporter: Igor Sapego >Assignee: Igor Sapego >Priority: Major > Labels: iep-95, ignite-3 > > Need to implement [IEP-95 Client Partition > Awareness|https://cwiki.apache.org/confluence/display/IGNITE/IEP-95%3A+Client+Partition+Awareness] > for C++ Client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22143) C++ 3.0: Implement Heartbeats for C++ client
[ https://issues.apache.org/jira/browse/IGNITE-22143?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-22143: - Labels: iep-83 ignite-3 (was: ignite-3) > C++ 3.0: Implement Heartbeats for C++ client > > > Key: IGNITE-22143 > URL: https://issues.apache.org/jira/browse/IGNITE-22143 > Project: Ignite > Issue Type: New Feature > Components: thin client >Reporter: Igor Sapego >Assignee: Igor Sapego >Priority: Major > Labels: iep-83, ignite-3 > > Let's implement [IEP-83 Thin Client > Keepalive|https://cwiki.apache.org/confluence/display/IGNITE/IEP-83+Thin+Client+Keepalive] > for C++ Client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22144) C++ 3.0: Implement Basic Data Streamer for C++ client
[ https://issues.apache.org/jira/browse/IGNITE-22144?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-22144: - Labels: iep-102 ignite-3 (was: ignite-3) > C++ 3.0: Implement Basic Data Streamer for C++ client > - > > Key: IGNITE-22144 > URL: https://issues.apache.org/jira/browse/IGNITE-22144 > Project: Ignite > Issue Type: New Feature > Components: thin client >Reporter: Igor Sapego >Assignee: Igor Sapego >Priority: Major > Labels: iep-102, ignite-3 > > Let's implement basic version of [IEP-102 > Data > Streamer|https://cwiki.apache.org/confluence/display/IGNITE/IEP-102%3A+Data+Streamer] > for C++ Client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22145) C++ 3.0: Implement Data Streamer with Receiver for C++ client
[ https://issues.apache.org/jira/browse/IGNITE-22145?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-22145: - Epic Link: IGNITE-22146 > C++ 3.0: Implement Data Streamer with Receiver for C++ client > - > > Key: IGNITE-22145 > URL: https://issues.apache.org/jira/browse/IGNITE-22145 > Project: Ignite > Issue Type: New Feature > Components: thin client >Reporter: Igor Sapego >Assignee: Igor Sapego >Priority: Major > Labels: ignite-3 > > Let's implement data streamer with receiver for C++ Client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22142) C++ 3.0: Implement Retry Policy for C++ client
[ https://issues.apache.org/jira/browse/IGNITE-22142?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-22142: - Epic Link: IGNITE-22146 > C++ 3.0: Implement Retry Policy for C++ client > -- > > Key: IGNITE-22142 > URL: https://issues.apache.org/jira/browse/IGNITE-22142 > Project: Ignite > Issue Type: New Feature > Components: thin client >Reporter: Igor Sapego >Assignee: Igor Sapego >Priority: Major > Labels: ignite-3 > > Need to implement [IEP-82 Thin Client Retry > Policy|https://cwiki.apache.org/confluence/display/IGNITE/IEP-82+Thin+Client+Retry+Policy] > for C++ Client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22146) C++ 3.0: Feature Parity
Igor Sapego created IGNITE-22146: Summary: C++ 3.0: Feature Parity Key: IGNITE-22146 URL: https://issues.apache.org/jira/browse/IGNITE-22146 Project: Ignite Issue Type: Epic Components: thin client Reporter: Igor Sapego This is an epic to keep track of the features that need to be implemented for C++ Client to have feature parity with Java Client. See https://cwiki.apache.org/confluence/display/IGNITE/Client+Features for details -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22141) C++ 3.0: Implement Partition Awareness for C++ client
[ https://issues.apache.org/jira/browse/IGNITE-22141?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-22141: - Epic Link: IGNITE-22146 > C++ 3.0: Implement Partition Awareness for C++ client > - > > Key: IGNITE-22141 > URL: https://issues.apache.org/jira/browse/IGNITE-22141 > Project: Ignite > Issue Type: New Feature > Components: thin client >Reporter: Igor Sapego >Assignee: Igor Sapego >Priority: Major > Labels: ignite-3 > > Need to implement [IEP-95 Client Partition > Awareness|https://cwiki.apache.org/confluence/display/IGNITE/IEP-95%3A+Client+Partition+Awareness] > for C++ Client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22144) C++ 3.0: Implement Basic Data Streamer for C++ client
[ https://issues.apache.org/jira/browse/IGNITE-22144?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-22144: - Epic Link: IGNITE-22146 > C++ 3.0: Implement Basic Data Streamer for C++ client > - > > Key: IGNITE-22144 > URL: https://issues.apache.org/jira/browse/IGNITE-22144 > Project: Ignite > Issue Type: New Feature > Components: thin client >Reporter: Igor Sapego >Assignee: Igor Sapego >Priority: Major > Labels: ignite-3 > > Let's implement basic version of [IEP-102 > Data > Streamer|https://cwiki.apache.org/confluence/display/IGNITE/IEP-102%3A+Data+Streamer] > for C++ Client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22143) C++ 3.0: Implement Heartbeats for C++ client
[ https://issues.apache.org/jira/browse/IGNITE-22143?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-22143: - Epic Link: IGNITE-22146 > C++ 3.0: Implement Heartbeats for C++ client > > > Key: IGNITE-22143 > URL: https://issues.apache.org/jira/browse/IGNITE-22143 > Project: Ignite > Issue Type: New Feature > Components: thin client >Reporter: Igor Sapego >Assignee: Igor Sapego >Priority: Major > Labels: ignite-3 > > Let's implement [IEP-83 Thin Client > Keepalive|https://cwiki.apache.org/confluence/display/IGNITE/IEP-83+Thin+Client+Keepalive] > for C++ Client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22144) C++ 3.0: Implement Basic Data Streamer for C++ client
Igor Sapego created IGNITE-22144: Summary: C++ 3.0: Implement Basic Data Streamer for C++ client Key: IGNITE-22144 URL: https://issues.apache.org/jira/browse/IGNITE-22144 Project: Ignite Issue Type: New Feature Components: thin client Reporter: Igor Sapego Assignee: Igor Sapego Let's implement basic version of [IEP-102 Data Streamer|https://cwiki.apache.org/confluence/display/IGNITE/IEP-102%3A+Data+Streamer] for C++ Client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22145) C++ 3.0: Implement Data Streamer with Receiver for C++ client
Igor Sapego created IGNITE-22145: Summary: C++ 3.0: Implement Data Streamer with Receiver for C++ client Key: IGNITE-22145 URL: https://issues.apache.org/jira/browse/IGNITE-22145 Project: Ignite Issue Type: New Feature Components: thin client Reporter: Igor Sapego Assignee: Igor Sapego Let's implement data streamer with receiver for C++ Client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22143) C++ 3.0: Implement Heartbeats for C++ client
Igor Sapego created IGNITE-22143: Summary: C++ 3.0: Implement Heartbeats for C++ client Key: IGNITE-22143 URL: https://issues.apache.org/jira/browse/IGNITE-22143 Project: Ignite Issue Type: New Feature Components: thin client Reporter: Igor Sapego Assignee: Igor Sapego Let's implement [IEP-83 Thin Client Keepalive|https://cwiki.apache.org/confluence/display/IGNITE/IEP-83+Thin+Client+Keepalive] for C++ Client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22141) C++ 3.0: Implement Partition Awareness for C++ client
Igor Sapego created IGNITE-22141: Summary: C++ 3.0: Implement Partition Awareness for C++ client Key: IGNITE-22141 URL: https://issues.apache.org/jira/browse/IGNITE-22141 Project: Ignite Issue Type: New Feature Components: thin client Reporter: Igor Sapego Assignee: Igor Sapego Need to implement [IEP-95 Client Partition Awareness|https://cwiki.apache.org/confluence/display/IGNITE/IEP-95%3A+Client+Partition+Awareness] for C++ Client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22142) C++ 3.0: Implement Retry Policy for C++ client
Igor Sapego created IGNITE-22142: Summary: C++ 3.0: Implement Retry Policy for C++ client Key: IGNITE-22142 URL: https://issues.apache.org/jira/browse/IGNITE-22142 Project: Ignite Issue Type: New Feature Components: thin client Reporter: Igor Sapego Assignee: Igor Sapego Need to implement [IEP-82 Thin Client Retry Policy|https://cwiki.apache.org/confluence/display/IGNITE/IEP-82+Thin+Client+Retry+Policy] for C++ Client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-20475) .NET: Thin 3.0: EF Core provider (investigate)
[ https://issues.apache.org/jira/browse/IGNITE-20475?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17842217#comment-17842217 ] Igor Sapego commented on IGNITE-20475: -- [~ptupitsyn] Looks great to me. Feel free to resolve the ticket. > .NET: Thin 3.0: EF Core provider (investigate) > -- > > Key: IGNITE-20475 > URL: https://issues.apache.org/jira/browse/IGNITE-20475 > Project: Ignite > Issue Type: New Feature > Components: platforms, thin client >Affects Versions: 3.0.0-beta1 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: .NET, ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > EF Core provider will allow using Ignite as any other DB supported by EF. > This makes adoption incredibly easy for the users - a matter of a few changed > lines to switch from Postgres/MsSQL/MySQL, keeping all existing code. > This is also a big undertaking and needs more investigation/PoC. > * https://learn.microsoft.com/en-us/ef/core/providers/writing-a-provider > * > https://blog.oneunicorn.com/2016/11/11/so-you-want-to-write-an-ef-core-provider/ -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-22086) Thin 3.0: observableTimestamp is 0 after handshake
[ https://issues.apache.org/jira/browse/IGNITE-22086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17842216#comment-17842216 ] Igor Sapego commented on IGNITE-22086: -- [~ptupitsyn] Looks good overall, but I have left one comment that needs to be addressed. > Thin 3.0: observableTimestamp is 0 after handshake > -- > > Key: IGNITE-22086 > URL: https://issues.apache.org/jira/browse/IGNITE-22086 > Project: Ignite > Issue Type: Bug > Components: platforms, thin client >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 20m > Remaining Estimate: 0h > > We propagate *observableTimestamp* to client with every response (see > *ClientInboundMessageHandler#writeResponseHeader*), but not on handshake. As > a result, the very first operation from the client has > *observableTimestamp=0*, which can lead to causality issues. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-22049) C++: Thin 3.0: Add Gradle task to run tests
[ https://issues.apache.org/jira/browse/IGNITE-22049?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego reassigned IGNITE-22049: Assignee: Igor Sapego (was: Pavel Tupitsyn) > C++: Thin 3.0: Add Gradle task to run tests > --- > > Key: IGNITE-22049 > URL: https://issues.apache.org/jira/browse/IGNITE-22049 > Project: Ignite > Issue Type: Improvement > Components: platforms, thin client >Affects Versions: 3.0.0-beta1 >Reporter: Pavel Tupitsyn >Assignee: Igor Sapego >Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > > Add a Gradle task to run C++ tests. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-22088) retryPolicy of IgniteClient doesn't work on transaction fail
[ https://issues.apache.org/jira/browse/IGNITE-22088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17841967#comment-17841967 ] Igor Sapego commented on IGNITE-22088: -- [~lunigorn] Originally, the client-side Retry Policy was implemented to retry operations on network failures, not on transaction lock. Retry Policy for transactions should be probably implemented on the server side and have different name and implementation. > retryPolicy of IgniteClient doesn't work on transaction fail > > > Key: IGNITE-22088 > URL: https://issues.apache.org/jira/browse/IGNITE-22088 > Project: Ignite > Issue Type: Bug > Components: clients, thin client >Affects Versions: 3.0.0-beta1 >Reporter: Igor >Priority: Major > Labels: ignite-3 > > *Details:* > IgniteClient do not run retry with set retryPolicy on transaction lock. The > default retry policy also doesn't work. The debugging also shows that no any > code inside `RetryReadPolicy` is not used during transaction lock exception. > *Steps to reproduce:* > Run the next code: > {code:java} > AtomicInteger retriesCount = new AtomicInteger(0); > RetryReadPolicy retry = new RetryReadPolicy() { > @Override > public boolean shouldRetry(RetryPolicyContext context) { > System.out.println("CHECK IF RETRY SHOULD HAPPEN"); > retriesCount.addAndGet(1); > return super.shouldRetry(context); > } > }; > try (IgniteClient igniteClient1 = > IgniteClient.builder().retryPolicy(retry).addresses("localhost:10800").build(); > IgniteClient igniteClient2 = > IgniteClient.builder().retryPolicy(retry).addresses("localhost:10800").build()) > { > igniteClient1.sql().execute(null, "CREATE TABLE teachers(id INTEGER > PRIMARY KEY, name VARCHAR(200))"); > Transaction tr1 = igniteClient1.transactions().begin(); > Transaction tr2 = igniteClient2.transactions().begin(); > igniteClient1.sql().execute(tr1, "INSERT INTO TEACHERS (id, name) VALUES > (" + 3 + ", '" + "Pavel" + "')"); > SqlException exception = assertThrows(SqlException.class, () -> > igniteClient2.sql().execute(tr2, "SELECT * FROM teachers")); > assertTrue(exception.getMessage().contains("Failed to acquire a lock due > to a possible deadlock ")); > } > assertEquals(16, retriesCount.get()); {code} > *Expected:* > Executed without errors. > *Actual:* > Fails on the last step expected 16 retries, actual 0. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-22126) C++: Thin 3.0: Implement MapReduce API
[ https://issues.apache.org/jira/browse/IGNITE-22126?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego reassigned IGNITE-22126: Assignee: Igor Sapego > C++: Thin 3.0: Implement MapReduce API > -- > > Key: IGNITE-22126 > URL: https://issues.apache.org/jira/browse/IGNITE-22126 > Project: Ignite > Issue Type: Improvement > Components: compute, platforms, thin client >Reporter: Vadim Pakhnushev >Assignee: Igor Sapego >Priority: Major > Labels: ignite-3 > > Implement {{ClientTaskExecution}} in C++ client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-21663) Cluster load balancing when 1 node is killed doesn't work
[ https://issues.apache.org/jira/browse/IGNITE-21663?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-21663: - Issue Type: Bug (was: Improvement) > Cluster load balancing when 1 node is killed doesn't work > - > > Key: IGNITE-21663 > URL: https://issues.apache.org/jira/browse/IGNITE-21663 > Project: Ignite > Issue Type: Bug > Components: persistence, sql >Affects Versions: 3.0.0-beta1 >Reporter: Igor >Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta1 > > > *Steps to reproduce:* > # Start cluster with 2 nodes running locally. > # Make connection like this: > {code:java} > try (IgniteClient igniteClient = IgniteClient.builder().retryPolicy(new > RetryLimitPolicy()).addresses(thinClientEndpoints.toArray(new > String[]{"localhost:10800","localhost:10801"})).build()) { > try (Session session = igniteClient.sql().createSession()) { > //code here > } > } {code} > 3. Create table with replication 2 > 4. Execute insert 1 row and select from the table. > 5. Kill first node (in list of connection) > 6. Execute select from the table. > *Expected:* > Cluster works with one node. > *Actual:* > The exception on select after first node is killed, the select is not > executed. > {code:java} > org.apache.ignite.sql.SqlException: IGN-CMN-65535 > TraceId:92e48867-2e6e-4730-9781-527a4e204b32 Unable to send fragment > [targetNode=ConnectionTest_cluster_0, fragmentId=1, > cause=io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection > refused: no further information: /192.168.100.5:3344] > at > java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710) > at > org.apache.ignite.internal.util.ExceptionUtils$1.copy(ExceptionUtils.java:765) > at > org.apache.ignite.internal.util.ExceptionUtils$ExceptionFactory.createCopy(ExceptionUtils.java:699) > at > org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCause(ExceptionUtils.java:525) > at > org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCauseInternal(ExceptionUtils.java:634) > at > org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCause(ExceptionUtils.java:476) > at > org.apache.ignite.internal.sql.AbstractSession.execute(AbstractSession.java:63) > at > org.gridgain.ai3tests.tests.teststeps.ThinClientSteps.lambda$executeQuery$0(ThinClientSteps.java:61) > at io.qameta.allure.Allure.lambda$step$1(Allure.java:127) > at io.qameta.allure.Allure.step(Allure.java:181) > at io.qameta.allure.Allure.step(Allure.java:125) > at > org.gridgain.ai3tests.tests.teststeps.ThinClientSteps.executeQuery(ThinClientSteps.java:61) > at > org.gridgain.ai3tests.tests.ConnectionTest.testThinClientConnectionToMultipleHost(ConnectionTest.java:93) > at java.base/java.lang.reflect.Method.invoke(Method.java:566) > at java.base/java.util.ArrayList.forEach(ArrayList.java:1540) > at java.base/java.util.ArrayList.forEach(ArrayList.java:1540) > Caused by: java.util.concurrent.CompletionException: > org.apache.ignite.sql.SqlException: IGN-CMN-65535 > TraceId:92e48867-2e6e-4730-9781-527a4e204b32 Unable to send fragment > [targetNode=ConnectionTest_cluster_0, fragmentId=1, > cause=io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection > refused: no further information: /192.168.100.5:3344] > at > java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331) > at > java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:346) > at > java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:870) > at > java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837) > at > java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) > at > java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088) > at > org.apache.ignite.internal.client.TcpClientChannel.processNextMessage(TcpClientChannel.java:419) > at > org.apache.ignite.internal.client.TcpClientChannel.lambda$onMessage$3(TcpClientChannel.java:238) > at > java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426) > at > java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) > at > java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020) > at > java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656) > at > java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594) > at >
[jira] [Updated] (IGNITE-22011) aimem: repeat of create table and drop column leads to Failed to get the primary replica
[ https://issues.apache.org/jira/browse/IGNITE-22011?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-22011: - Component/s: (was: thin client) > aimem: repeat of create table and drop column leads to Failed to get the > primary replica > > > Key: IGNITE-22011 > URL: https://issues.apache.org/jira/browse/IGNITE-22011 > Project: Ignite > Issue Type: Bug > Components: persistence >Affects Versions: 3.0.0-beta1 > Environment: 2 nodes cluster running on remote machine or locally >Reporter: Igor >Priority: Blocker > Labels: ignite-3 > > *Comment:* > This is the flaky issue and can happen on any operation to table with aimem > persistence if the cluster lives long enough. > h3. Steps to reproduce: > Run the next queries using *IgniteSql* in cycle with 50 repeats in single > connection: > {code:java} > create zone if not exists "AIMEM" engine aimem > create table selectFromDropMultipleJdbc(k1 INTEGER not null, k2 INTEGER not > null, v1 VARCHAR(100), v2 VARCHAR(255), v3 TIMESTAMP not null, primary key > (k1, k2)) with PRIMARY_ZONE='AIMEM' > insert into selectFromDropMultipleJdbc(k1, k2, v1, v2, v3) values (3366, > 3367, null, null, '1980-02-27 01:01:49.0') > insert into selectFromDropMultipleJdbc(k1, k2, v1, v2, v3) values (3367, > 3368, > '1v1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_', > > '1v2_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1', > '1980-02-28 01:01:50.0') > insert into selectFromDropMultipleJdbc(k1, k2, v1, v2, v3) values (3368, > 3369, > '2v1_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_', > > '2v2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2', > '1980-02-29 01:01:51.0') > insert into selectFromDropMultipleJdbc(k1, k2, v1, v2, v3) values (3369, > 3370, > '3v1_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_', > > '3v2_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3', > '1980-03-01 01:01:52.0') > insert into selectFromDropMultipleJdbc(k1, k2, v1, v2, v3) values (3370, > 3371, null, null, '1980-03-02 01:01:53.0') > insert into selectFromDropMultipleJdbc(k1, k2, v1, v2, v3) values (3371, > 3372, > '5v1_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_', > > '5v2_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5', > '1980-03-03 01:01:54.0') > insert into selectFromDropMultipleJdbc(k1, k2, v1, v2, v3) values (3372, > 3373, > '6v1_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_', > > '6v2_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6_6', > '1980-03-04 01:01:55.0') > insert into selectFromDropMultipleJdbc(k1, k2, v1, v2, v3) values (3373, > 3374, > '7v1_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_', > > '7v2_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7', > '1980-03-05 01:01:56.0') > insert into selectFromDropMultipleJdbc(k1, k2, v1, v2, v3) values (3374, > 3375, null, null, '1980-03-06 01:01:57.0') > insert into selectFromDropMultipleJdbc(k1, k2, v1, v2, v3) values (3375, > 3376, > '9v1_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_', > >
[jira] [Commented] (IGNITE-22030) Thin 3.0: Remove jackson-dataformat-msgpack dependency
[ https://issues.apache.org/jira/browse/IGNITE-22030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17836235#comment-17836235 ] Igor Sapego commented on IGNITE-22030: -- Looks good to me. > Thin 3.0: Remove jackson-dataformat-msgpack dependency > -- > > Key: IGNITE-22030 > URL: https://issues.apache.org/jira/browse/IGNITE-22030 > Project: Ignite > Issue Type: Improvement > Components: thin client >Affects Versions: 3.0.0-beta1 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > jackson-dataformat-msgpack dependency is not used, remove it. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-22025) .NET: Console.WriteLine leftovers in DataStreamer
[ https://issues.apache.org/jira/browse/IGNITE-22025?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17835774#comment-17835774 ] Igor Sapego commented on IGNITE-22025: -- Looks good to me. > .NET: Console.WriteLine leftovers in DataStreamer > - > > Key: IGNITE-22025 > URL: https://issues.apache.org/jira/browse/IGNITE-22025 > Project: Ignite > Issue Type: Bug > Components: platforms, thin client >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > *DataStreamer* class has some console output remaining from debugging > sessions - remove that. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-21148) Implement client job execution interface
[ https://issues.apache.org/jira/browse/IGNITE-21148?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-21148: - Ignite Flags: Docs Required > Implement client job execution interface > > > Key: IGNITE-21148 > URL: https://issues.apache.org/jira/browse/IGNITE-21148 > Project: Ignite > Issue Type: Improvement > Components: compute >Reporter: Vadim Pakhnushev >Assignee: Vadim Pakhnushev >Priority: Major > Labels: ignite-3 > Time Spent: 4h 20m > Remaining Estimate: 0h > > Implement methods in the {{ClientJobExecution}} class which is used to > control compute jobs from the thin client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-21289) .NET: Thin 3.0: implement job execution interface
[ https://issues.apache.org/jira/browse/IGNITE-21289?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-21289: - Ignite Flags: Docs Required > .NET: Thin 3.0: implement job execution interface > - > > Key: IGNITE-21289 > URL: https://issues.apache.org/jira/browse/IGNITE-21289 > Project: Ignite > Issue Type: Improvement > Components: compute, platforms, thin client >Affects Versions: 3.0.0-beta1 >Reporter: Vadim Pakhnushev >Assignee: Pavel Tupitsyn >Priority: Major > Labels: .NET, ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 20m > Remaining Estimate: 0h > > Implement {{JobExecution}} interface on the client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-21490) .NET: Thin 3.0: DataStreamer data removal
[ https://issues.apache.org/jira/browse/IGNITE-21490?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17834389#comment-17834389 ] Igor Sapego commented on IGNITE-21490: -- Looks good to me > .NET: Thin 3.0: DataStreamer data removal > - > > Key: IGNITE-21490 > URL: https://issues.apache.org/jira/browse/IGNITE-21490 > Project: Ignite > Issue Type: Improvement > Components: platforms, thin client >Affects Versions: 3.0.0-beta1 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: .NET, ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > Implement data removal in .NET data streamer - see Java API changes in > IGNITE-21403. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-21931) .NET: Thin 3.0: Refactor DataStreamer to use StreamerBatchSend
[ https://issues.apache.org/jira/browse/IGNITE-21931?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17833544#comment-17833544 ] Igor Sapego commented on IGNITE-21931: -- Looks good to me > .NET: Thin 3.0: Refactor DataStreamer to use StreamerBatchSend > -- > > Key: IGNITE-21931 > URL: https://issues.apache.org/jira/browse/IGNITE-21931 > Project: Ignite > Issue Type: Improvement > Components: platforms, thin client >Affects Versions: 3.0.0-beta1 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: .NET, ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > Implement IGNITE-21402 in .NET: Use *StreamerBatchSend* instead of > *TupleUpsertAll* protocol operation for data streamer. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-21765) Java thin 3.0: DataStreamer partition awareness might break if assignment is not available at the moment
[ https://issues.apache.org/jira/browse/IGNITE-21765?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17833127#comment-17833127 ] Igor Sapego commented on IGNITE-21765: -- Looks good to me. > Java thin 3.0: DataStreamer partition awareness might break if assignment is > not available at the moment > > > Key: IGNITE-21765 > URL: https://issues.apache.org/jira/browse/IGNITE-21765 > Project: Ignite > Issue Type: Bug > Components: streaming, thin client >Affects Versions: 3.0.0-beta1 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > * *ClientTable.getPartitionAssignment* might return an empty list > * *AbstractClientStreamerPartitionAwarenessProvider* assumes that partition > count can't change > Therefore, if some server node lags behind and returns an empty assignment > for a given timestamp, streamer partition awareness won't work at all. > *Potential Fixes* > * Wait for assignment on the server, do not return empty/null - might affect > performance > * Return correct partition count, but null values - faster and simpler -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-21877) Wrong column deserialization order in ClientKeyValueView
[ https://issues.apache.org/jira/browse/IGNITE-21877?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17832233#comment-17832233 ] Igor Sapego commented on IGNITE-21877: -- Looks good to me. > Wrong column deserialization order in ClientKeyValueView > > > Key: IGNITE-21877 > URL: https://issues.apache.org/jira/browse/IGNITE-21877 > Project: Ignite > Issue Type: Improvement > Components: thin client >Affects Versions: 3.0.0-beta1 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Blocker > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > IGNITE-21768 fix was incomplete - some places still use old logic: > * *readGetAllResponse* > * *queryMapper* > Make sure to add tests for all operations in all views to > *ItCustomKeyColumnOrderClientTest* . -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-21288) C++ thin client: implement job execution interface
[ https://issues.apache.org/jira/browse/IGNITE-21288?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17832186#comment-17832186 ] Igor Sapego commented on IGNITE-21288: -- Fixed findings. Merged to main. > C++ thin client: implement job execution interface > -- > > Key: IGNITE-21288 > URL: https://issues.apache.org/jira/browse/IGNITE-21288 > Project: Ignite > Issue Type: Improvement > Components: compute, platforms, thin client >Reporter: Vadim Pakhnushev >Assignee: Igor Sapego >Priority: Major > Labels: ignite-3 > Time Spent: 1h 20m > Remaining Estimate: 0h > > Implement {{JobExecution}} interface on the client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-21875) SQL API cleanup - remove properties and reactive methods
[ https://issues.apache.org/jira/browse/IGNITE-21875?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17832177#comment-17832177 ] Igor Sapego commented on IGNITE-21875: -- Looks good to me. > SQL API cleanup - remove properties and reactive methods > > > Key: IGNITE-21875 > URL: https://issues.apache.org/jira/browse/IGNITE-21875 > Project: Ignite > Issue Type: Improvement > Components: sql >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 20m > Remaining Estimate: 0h > > * *Statement#properties* are not used > * Reactive APIs are not implemented > Remove them. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-21768) Wrong key column serialization in ClientKeyValueView
[ https://issues.apache.org/jira/browse/IGNITE-21768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17831841#comment-17831841 ] Igor Sapego commented on IGNITE-21768: -- Looks good to me. > Wrong key column serialization in ClientKeyValueView > > > Key: IGNITE-21768 > URL: https://issues.apache.org/jira/browse/IGNITE-21768 > Project: Ignite > Issue Type: Bug > Components: thin client >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Blocker > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > Attachments: ItTablePutGetThinWithMarshaller.java > > Time Spent: 10m > Remaining Estimate: 0h > > *ClientKeyValueView.writeKeyValueRaw* was not updated as part of IGNITE-21525 > changes and still uses key-first order. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-21413) .NET: Thin 3.0: Add tags to metrics
[ https://issues.apache.org/jira/browse/IGNITE-21413?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17830941#comment-17830941 ] Igor Sapego commented on IGNITE-21413: -- Looks good to me. > .NET: Thin 3.0: Add tags to metrics > --- > > Key: IGNITE-21413 > URL: https://issues.apache.org/jira/browse/IGNITE-21413 > Project: Ignite > Issue Type: Improvement > Components: platforms, thin client >Affects Versions: 3.0.0-beta1 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: .NET, ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > Add tags (= labels in Prometheus = attributes/dimensions in OpenTelemetry) to > the metrics in .NET client. > This will allow the user to monitor entities separately, such as different > client instances, streamers, etc. > https://learn.microsoft.com/en-us/dotnet/core/diagnostics/metrics-instrumentation#multi-dimensional-metrics > Pay attention to performance - large amount of tag combinations can be > problematic: > https://learn.microsoft.com/en-us/dotnet/core/diagnostics/metrics-instrumentation#best-practices-4 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-15179) Thin 3.0: Implement createTable
[ https://issues.apache.org/jira/browse/IGNITE-15179?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-15179: - Labels: ignite-3 (was: iep-76 ignite-3) > Thin 3.0: Implement createTable > --- > > Key: IGNITE-15179 > URL: https://issues.apache.org/jira/browse/IGNITE-15179 > Project: Ignite > Issue Type: Improvement > Components: thin client >Affects Versions: 3.0.0-alpha3 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: ignite-3 > > Implement {{IgniteTables#createTable}} with full configuration support. > Investigate whether {{Consumer}} API should be changed - there > were some plans for that on the dev list. > https://lists.apache.org/thread.html/rc8b28cf0ae7988831ea3867793a5ea72dfd062e8769c1d32f371fc16%40%3Cdev.ignite.apache.org%3E -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-21797) Column's type mismatch during marshalling of pojo (embedded API)
[ https://issues.apache.org/jira/browse/IGNITE-21797?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-21797: - Fix Version/s: 3.0.0-beta2 > Column's type mismatch during marshalling of pojo (embedded API) > > > Key: IGNITE-21797 > URL: https://issues.apache.org/jira/browse/IGNITE-21797 > Project: Ignite > Issue Type: Bug >Reporter: Konstantin Orlov >Priority: Blocker > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > > Take a look at the scenario below: > {code:java} > static class Key { > int int_col; > String str_col; > } > static class Val { > boolean bool_col; > LocalDate date_col; > } > sql("CREATE TABLE test (int_col INT, bool_col BOOLEAN, date_col DATE, > str_col VARCHAR, PRIMARY KEY (int_col, str_col))"); > KeyValueView kvView = CLUSTER.aliveNode().tables() > .table("test") > .keyValueView(Key.class, Val.class); > var key = new Key(); > key.int_col = 1; > key.str_col = "1"; > var val = new Val(); > val.bool_col = true; > val.date_col = LocalDate.now(); > kvView.put(null, key, val); > {code} > Mind the order of primary key fields: the first and the last columns in table > declaration. In that case, {{InvalidTypeException}} is thrown, because after > IGNITE-19744 key columns are not grouped in the very beginning of the row > anymore, but marshaller of embedded client still appends key columns first > (see > {{org.apache.ignite.internal.schema.marshaller.reflection.KvMarshallerImpl#marshal(K, > V)}}). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21790) .NET: Thin 3.0: Client lifecycle Failover Testing
Igor Sapego created IGNITE-21790: Summary: .NET: Thin 3.0: Client lifecycle Failover Testing Key: IGNITE-21790 URL: https://issues.apache.org/jira/browse/IGNITE-21790 Project: Ignite Issue Type: Improvement Components: platforms, thin client Reporter: Igor Sapego Need to implement the following plan for failover tests in .NET client: - One client, two servers. Kill one server, then bring it back up. Make sure client restores the connection to the server; - One client, two servers. Kill both servers, one-by-one. Make sure client reports error to the user when any operation is attempted; -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21791) C++: Thin 3.0: Client lifecycle Failover Testing
Igor Sapego created IGNITE-21791: Summary: C++: Thin 3.0: Client lifecycle Failover Testing Key: IGNITE-21791 URL: https://issues.apache.org/jira/browse/IGNITE-21791 Project: Ignite Issue Type: Improvement Components: platforms, thin client Reporter: Igor Sapego Need to implement the following plan for failover tests in C++ client: - One client, two servers. Kill one server, then bring it back up. Make sure client restores the connection to the server; - One client, two servers. Kill both servers, one-by-one. Make sure client reports error to the user when any operation is attempted; -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21789) Thin 3.0: Client lifecycle Failover Testing
Igor Sapego created IGNITE-21789: Summary: Thin 3.0: Client lifecycle Failover Testing Key: IGNITE-21789 URL: https://issues.apache.org/jira/browse/IGNITE-21789 Project: Ignite Issue Type: Improvement Components: platforms, thin client Reporter: Igor Sapego Need to implement the following plan for failover tests in Java client: - One client, two servers. Kill one server, then bring it back up. Make sure client restores the connection to the server; - One client, two servers. Kill both servers, one-by-one. Make sure client reports error to the user when any operation is attempted; -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21788) C++: Thin 3.0: Client lifecycle Functional Testing
Igor Sapego created IGNITE-21788: Summary: C++: Thin 3.0: Client lifecycle Functional Testing Key: IGNITE-21788 URL: https://issues.apache.org/jira/browse/IGNITE-21788 Project: Ignite Issue Type: Improvement Components: platforms, thin client Reporter: Igor Sapego Need to implement the following plan for integration tests in C++ client: - One client, no servers. Make sure client fails to start if no addresses were provided by the user; - One client, no servers. Make sure client fails to start if no addresses that were provided by the user resolve to the running server; - One client, one server. Make sure client is able to establish connection to the server if its address specified correctly; - One client, one server. Make sure client is able to establish connection to the server if its address specified correctly, but there are also some addresses not leading to a running servers; - One client, two servers, two different clusters. Make sure client is able to establish connection to the first server, but disconnects from the second server after handshake, and does not attempt to connect to it again; - One mock client, one server. Make sure server rejects connection, if the client does not provide a correct magic bytes at the begging of the handshake; - One mock client, one server. Make sure server rejects connection, if the client uses unknown protocol version; - One client, one mock server. Make sure client aborts the connection and provides user with a proper error message, if the server uses unknown protocol version; - One client, three servers. Make sure client connects to all three of servers, when their addresses are provided by a user; -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21786) Thin 3.0: Client lifecycle Functional Testing
Igor Sapego created IGNITE-21786: Summary: Thin 3.0: Client lifecycle Functional Testing Key: IGNITE-21786 URL: https://issues.apache.org/jira/browse/IGNITE-21786 Project: Ignite Issue Type: Improvement Components: platforms, thin client Reporter: Igor Sapego Need to implement the following plan for integration tests in Java client: - One client, no servers. Make sure client fails to start if no addresses were provided by the user; - One client, no servers. Make sure client fails to start if no addresses that were provided by the user resolve to the running server; - One client, one server. Make sure client is able to establish connection to the server if its address specified correctly; - One client, one server. Make sure client is able to establish connection to the server if its address specified correctly, but there are also some addresses not leading to a running servers; - One client, two servers, two different clusters. Make sure client is able to establish connection to the first server, but disconnects from the second server after handshake, and does not attempt to connect to it again; - One mock client, one server. Make sure server rejects connection, if the client does not provide a correct magic bytes at the begging of the handshake; - One mock client, one server. Make sure server rejects connection, if the client uses unknown protocol version; - One client, one mock server. Make sure client aborts the connection and provides user with a proper error message, if the server uses unknown protocol version; - One client, three servers. Make sure client connects to all three of servers, when their addresses are provided by a user; -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21787) .NET: Thin 3.0: Client lifecycle Functional Testing
Igor Sapego created IGNITE-21787: Summary: .NET: Thin 3.0: Client lifecycle Functional Testing Key: IGNITE-21787 URL: https://issues.apache.org/jira/browse/IGNITE-21787 Project: Ignite Issue Type: Improvement Components: platforms, thin client Reporter: Igor Sapego Need to implement the following plan for integration tests in .NET client: - One client, no servers. Make sure client fails to start if no addresses were provided by the user; - One client, no servers. Make sure client fails to start if no addresses that were provided by the user resolve to the running server; - One client, one server. Make sure client is able to establish connection to the server if its address specified correctly; - One client, one server. Make sure client is able to establish connection to the server if its address specified correctly, but there are also some addresses not leading to a running servers; - One client, two servers, two different clusters. Make sure client is able to establish connection to the first server, but disconnects from the second server after handshake, and does not attempt to connect to it again; - One mock client, one server. Make sure server rejects connection, if the client does not provide a correct magic bytes at the begging of the handshake; - One mock client, one server. Make sure server rejects connection, if the client uses unknown protocol version; - One client, one mock server. Make sure client aborts the connection and provides user with a proper error message, if the server uses unknown protocol version; - One client, three servers. Make sure client connects to all three of servers, when their addresses are provided by a user; -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21785) C++ 3.0: Client lifecycle Integration Testing
Igor Sapego created IGNITE-21785: Summary: C++ 3.0: Client lifecycle Integration Testing Key: IGNITE-21785 URL: https://issues.apache.org/jira/browse/IGNITE-21785 Project: Ignite Issue Type: Improvement Components: platforms, thin client Reporter: Igor Sapego Need to implement the following plan for integration tests in C++ client: A logic related to address resolving should be covered if possible: - A single address is provided, that resolves to a single connection point. Make sure the address itself is chosen for the initial connection; - A single address is provided, that resolves to multiple connection points. Make sure a random address is chosen for the initial connection; - Multiple addresses are provided, which resolve to multiple connection points. Make sure a random address is chosen for the initial connection. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21783) Thin 3.0: Client lifecycle Integration Testing
Igor Sapego created IGNITE-21783: Summary: Thin 3.0: Client lifecycle Integration Testing Key: IGNITE-21783 URL: https://issues.apache.org/jira/browse/IGNITE-21783 Project: Ignite Issue Type: Improvement Components: platforms, thin client Reporter: Igor Sapego Need to implement the following plan for integration tests in Java client: A logic related to address resolving should be covered if possible: - A single address is provided, that resolves to a single connection point. Make sure the address itself is chosen for the initial connection; - A single address is provided, that resolves to multiple connection points. Make sure a random address is chosen for the initial connection; - Multiple addresses are provided, which resolve to multiple connection points. Make sure a random address is chosen for the initial connection. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21784) .NET: Thin 3.0: Client lifecycle Integration Testing
Igor Sapego created IGNITE-21784: Summary: .NET: Thin 3.0: Client lifecycle Integration Testing Key: IGNITE-21784 URL: https://issues.apache.org/jira/browse/IGNITE-21784 Project: Ignite Issue Type: Improvement Components: platforms, thin client Reporter: Igor Sapego Need to implement the following plan for integration tests in .NET client: A logic related to address resolving should be covered if possible: - A single address is provided, that resolves to a single connection point. Make sure the address itself is chosen for the initial connection; - A single address is provided, that resolves to multiple connection points. Make sure a random address is chosen for the initial connection; - Multiple addresses are provided, which resolve to multiple connection points. Make sure a random address is chosen for the initial connection. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21782) C++ 3.0: Client lifecycle unit tests
Igor Sapego created IGNITE-21782: Summary: C++ 3.0: Client lifecycle unit tests Key: IGNITE-21782 URL: https://issues.apache.org/jira/browse/IGNITE-21782 Project: Ignite Issue Type: Improvement Components: platforms, thin client Reporter: Igor Sapego Need to implement the following plan for unit tests in C++ client: - Make sure that address parsing from string is covered, if supported; - A logic related to choosing an address for the initial connection should be isolated and covered by the unit tests; - A logic related to choosing the next connectable address (if possible). Make sure round-robin is used from the random position chosen on the previous step; - Make sure that the correct port is used by default, if not specified. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21780) .NET: Thin 3.0: Client lifecycle unit tests
Igor Sapego created IGNITE-21780: Summary: .NET: Thin 3.0: Client lifecycle unit tests Key: IGNITE-21780 URL: https://issues.apache.org/jira/browse/IGNITE-21780 Project: Ignite Issue Type: Improvement Components: platforms, thin client Reporter: Igor Sapego Need to implement the following plan for unit tests in .NET client: - Make sure that address parsing from string is covered, if supported; - A logic related to choosing an address for the initial connection should be isolated and covered by the unit tests; - A logic related to choosing the next connectable address (if possible). Make sure round-robin is used from the random position chosen on the previous step; - Make sure that the correct port is used by default, if not specified. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21779) Thin 3.0: Client lifecycle unit tests
Igor Sapego created IGNITE-21779: Summary: Thin 3.0: Client lifecycle unit tests Key: IGNITE-21779 URL: https://issues.apache.org/jira/browse/IGNITE-21779 Project: Ignite Issue Type: Improvement Components: platforms, thin client Reporter: Igor Sapego Need to implement the following plan for unit tests in Java client: - Make sure that address parsing from string is covered, if supported; - A logic related to choosing an address for the initial connection should be isolated and covered by the unit tests; - A logic related to choosing the next connectable address (if possible). Make sure round-robin is used from the random position chosen on the previous step; - Make sure that the correct port is used by default, if not specified. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21778) Client lifecycle testing
Igor Sapego created IGNITE-21778: Summary: Client lifecycle testing Key: IGNITE-21778 URL: https://issues.apache.org/jira/browse/IGNITE-21778 Project: Ignite Issue Type: Epic Components: platforms, thin client Reporter: Igor Sapego A parent ticket for the tickets created to implement a test plan for the [https://cwiki.apache.org/confluence/display/IGNITE/IEP-90+Client+Lifecycle|IEP-90 Client Lifecycle]. h1. Test Plan h2. Unit Testing - Make sure that address parsing from string is covered, if supported; - A logic related to choosing an address for the initial connection should be isolated and covered by the unit tests; - A logic related to choosing the next connectable address (if possible). Make sure round-robin is used from the random position chosen on the previous step; - Make sure that the correct port is used by default, if not specified. h2. Integration Testing A logic related to address resolving should be covered if possible: - A single address is provided, that resolves to a single connection point. Make sure the address itself is chosen for the initial connection; - A single address is provided, that resolves to multiple connection points. Make sure a random address is chosen for the initial connection; - Multiple addresses are provided, which resolve to multiple connection points. Make sure a random address is chosen for the initial connection. h2. Functional and End-to-End Testing - One client, no servers. Make sure client fails to start if no addresses were provided by the user; - One client, no servers. Make sure client fails to start if no addresses that were provided by the user resolve to the running server; - One client, one server. Make sure client is able to establish connection to the server if its address specified correctly; - One client, one server. Make sure client is able to establish connection to the server if its address specified correctly, but there are also some addresses not leading to a running servers; - One client, two servers, two different clusters. Make sure client is able to establish connection to the first server, but disconnects from the second server after handshake, and does not attempt to connect to it again; - One mock client, one server. Make sure server rejects connection, if the client does not provide a correct magic bytes at the begging of the handshake; - One mock client, one server. Make sure server rejects connection, if the client uses unknown protocol version; - One client, one mock server. Make sure client aborts the connection and provides user with a proper error message, if the server uses unknown protocol version; - One client, three servers. Make sure client connects to all three of servers, when their addresses are provided by a user; h2. Security Testing - It probably makes sense to check our protocol with some kind of vulnerability scanner. h2. Failover Testing - One client, two servers. Kill one server, then bring it back up. Make sure client restores the connection to the server; - One client, two servers. Kill both servers, one-by-one. Make sure client reports error to the user when any operation is attempted; h2. Load/Stress/Volume Testing - Test how many connections can a single server handle at the same time. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-21748) Rename DataStreamerOptions.perNodeParallelOperations to perPartitionParallelOperations
[ https://issues.apache.org/jira/browse/IGNITE-21748?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17827524#comment-17827524 ] Igor Sapego commented on IGNITE-21748: -- Looks good to me. > Rename DataStreamerOptions.perNodeParallelOperations to > perPartitionParallelOperations > -- > > Key: IGNITE-21748 > URL: https://issues.apache.org/jira/browse/IGNITE-21748 > Project: Ignite > Issue Type: Bug > Components: streaming >Affects Versions: 3.0.0-beta1 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > Data streamer batches (pages) are per-partition, not per-node. Current name > is misleading. > Update embedded, client, .NET APIs. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-18258) .NET: LINQ: Clean up inlineConstArgs logic
[ https://issues.apache.org/jira/browse/IGNITE-18258?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17826056#comment-17826056 ] Igor Sapego commented on IGNITE-18258: -- Looks good to me. > .NET: LINQ: Clean up inlineConstArgs logic > -- > > Key: IGNITE-18258 > URL: https://issues.apache.org/jira/browse/IGNITE-18258 > Project: Ignite > Issue Type: Bug > Components: thin client >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: .NET, LINQ, ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > Previously, there was a bug in SQL engine: > *Query* > {code} > select (cast(_T0.KEY as decimal) / ?), cast(_T0.KEY as numeric) from > PUBLIC.TBL_INT32 as _T0 > {code} > *Result* > {code} > org.apache.ignite.lang.IgniteException: IGN-CMN-65535 > TraceId:9b69e26a-0d1e-4891-82bb-f164919a323c For conversion to decimal, > ConverterUtils#convertToDecimal method should be used instead. > at org.apache.ignite.lang.IgniteException.wrap(IgniteException.java:289) > at > org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.lambda$requestNextAsync$0(AsyncSqlCursorImpl.java:77) > at > java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930) > at > java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907) > at > java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) > at > java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088) > at > org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.lambda$closeAsync$0(AsyncRootNode.java:193) > at > java.base/java.util.concurrent.LinkedBlockingQueue.forEachFrom(LinkedBlockingQueue.java:1010) > at > java.base/java.util.concurrent.LinkedBlockingQueue.forEach(LinkedBlockingQueue.java:979) > at > org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.closeAsync(AsyncRootNode.java:193) > at > org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.onError(AsyncRootNode.java:148) > at > org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.lambda$acknowledgeFragment$1(ExecutionServiceImpl.java:453) > at > java.base/java.util.concurrent.CompletableFuture.uniAcceptNow(CompletableFuture.java:753) > at > java.base/java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:731) > at > java.base/java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:2108) > at > org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.acknowledgeFragment(ExecutionServiceImpl.java:452) > at > org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.onMessage(ExecutionServiceImpl.java:310) > at > org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.lambda$start$3(ExecutionServiceImpl.java:183) > at > org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:164) > at > org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.lambda$onMessage$1(MessageServiceImpl.java:135) > at > org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:80) > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > at java.base/java.lang.Thread.run(Thread.java:829) > Caused by: java.lang.AssertionError: For conversion to decimal, > ConverterUtils#convertToDecimal method should be used instead. > at > org.apache.ignite.internal.sql.engine.exec.exp.ConverterUtils.convert(ConverterUtils.java:222) > at > org.apache.ignite.internal.sql.engine.exec.exp.ConverterUtils.convert(ConverterUtils.java:201) > at > org.apache.ignite.internal.sql.engine.exec.exp.RexToLixTranslator.visitDynamicParam(RexToLixTranslator.java:1249) > at > org.apache.ignite.internal.sql.engine.exec.exp.RexToLixTranslator.visitDynamicParam(RexToLixTranslator.java:80) > at > org.apache.calcite.rex.RexDynamicParam.accept(RexDynamicParam.java:60) > at > org.apache.ignite.internal.sql.engine.exec.exp.RexToLixTranslator.visitLocalRef(RexToLixTranslator.java:983) > at > org.apache.ignite.internal.sql.engine.exec.exp.RexToLixTranslator.visitLocalRef(RexToLixTranslator.java:80) > at org.apache.calcite.rex.RexLocalRef.accept(RexLocalRef.java:77) > at >
[jira] [Updated] (IGNITE-21717) Implement doxygen build for C++ API
[ https://issues.apache.org/jira/browse/IGNITE-21717?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-21717: - Component/s: platforms > Implement doxygen build for C++ API > --- > > Key: IGNITE-21717 > URL: https://issues.apache.org/jira/browse/IGNITE-21717 > Project: Ignite > Issue Type: Task > Components: platforms >Reporter: Igor Gusev >Assignee: Igor Sapego >Priority: Major > Labels: ignite-3 > > Currently, there is no way to build C++ API doc. We need to add support for > doxygen-generated doc before release. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-21717) Implement doxygen build for C++ API
[ https://issues.apache.org/jira/browse/IGNITE-21717?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego reassigned IGNITE-21717: Assignee: Igor Sapego > Implement doxygen build for C++ API > --- > > Key: IGNITE-21717 > URL: https://issues.apache.org/jira/browse/IGNITE-21717 > Project: Ignite > Issue Type: Task >Reporter: Igor Gusev >Assignee: Igor Sapego >Priority: Major > Labels: ignite-3 > > Currently, there is no way to build C++ API doc. We need to add support for > doxygen-generated doc before release. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-21685) Thin 3.0: executeColocated does not work with escaped table names
[ https://issues.apache.org/jira/browse/IGNITE-21685?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17824397#comment-17824397 ] Igor Sapego commented on IGNITE-21685: -- Looks good to me. > Thin 3.0: executeColocated does not work with escaped table names > - > > Key: IGNITE-21685 > URL: https://issues.apache.org/jira/browse/IGNITE-21685 > Project: Ignite > Issue Type: Bug > Components: compute, thin client >Affects Versions: 3.0.0-beta1 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > Add the following test to *ItThinClientComputeTest*: > {code:java} > @Test > void testExecuteColocatedEscapedTableName() { > var session = client().sql().sessionBuilder().build(); > session.execute(null, "CREATE TABLE \"TBL ABC\" (key INT PRIMARY KEY, > val INT)"); > var tableName = "\"TBL ABC\""; > client().compute().executeColocated(tableName, > Tuple.create().set("key", 1), List.of(), NodeNameJob.class.getName()); > } > {code} > It fails: > {code} > Caused by: java.lang.IllegalArgumentException: Fully qualified name is not > expected [name=TBL ABC] > at > org.apache.ignite.lang.util.IgniteNameUtils.parseSimpleName(IgniteNameUtils.java:49) > at > org.apache.ignite.internal.table.distributed.TableManager.tableAsync(TableManager.java:1510) > at > org.apache.ignite.client.handler.requests.table.ClientTableGetRequest.process(ClientTableGetRequest.java:45) > at > org.apache.ignite.client.handler.ClientInboundMessageHandler.processOperation(ClientInboundMessageHandler.java:637) > at > org.apache.ignite.client.handler.ClientInboundMessageHandler.processOperation(ClientInboundMessageHandler.java:569) > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-21655) .NET: Fix method naming in Compute API
[ https://issues.apache.org/jira/browse/IGNITE-21655?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17823938#comment-17823938 ] Igor Sapego commented on IGNITE-21655: -- Looks good to me. > .NET: Fix method naming in Compute API > -- > > Key: IGNITE-21655 > URL: https://issues.apache.org/jira/browse/IGNITE-21655 > Project: Ignite > Issue Type: Improvement > Components: compute, platforms, thin client >Affects Versions: 3.0.0-beta1 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: .NET, ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > Async methods (returning Task) should have *Async* suffix: > * Task> Submit > * Task> SubmitColocated > * Task> SubmitColocated -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-21526) .NET: Clean up IEP-54 leftovers
[ https://issues.apache.org/jira/browse/IGNITE-21526?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17823561#comment-17823561 ] Igor Sapego commented on IGNITE-21526: -- Looks good to me. > .NET: Clean up IEP-54 leftovers > --- > > Key: IGNITE-21526 > URL: https://issues.apache.org/jira/browse/IGNITE-21526 > Project: Ignite > Issue Type: Improvement > Components: thin client >Reporter: Igor Sapego >Assignee: Pavel Tupitsyn >Priority: Major > Labels: .NET, ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > Implement IGNITE-19744 for .NET Client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (IGNITE-15179) Thin 3.0: Implement createTable
[ https://issues.apache.org/jira/browse/IGNITE-15179?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego resolved IGNITE-15179. -- Resolution: Won't Fix There is not going to be createTable. Instead, user can use SQL API or ORM for table creation. > Thin 3.0: Implement createTable > --- > > Key: IGNITE-15179 > URL: https://issues.apache.org/jira/browse/IGNITE-15179 > Project: Ignite > Issue Type: Improvement > Components: thin client >Affects Versions: 3.0.0-alpha3 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: iep-76, ignite-3 > > Implement {{IgniteTables#createTable}} with full configuration support. > Investigate whether {{Consumer}} API should be changed - there > were some plans for that on the dev list. > https://lists.apache.org/thread.html/rc8b28cf0ae7988831ea3867793a5ea72dfd062e8769c1d32f371fc16%40%3Cdev.ignite.apache.org%3E -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (IGNITE-17134) Thin 3.0: Implement client SQL session management
[ https://issues.apache.org/jira/browse/IGNITE-17134?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego resolved IGNITE-17134. -- Resolution: Won't Fix It was decided to remove SQL sessions altogether: IGNITE-21669 > Thin 3.0: Implement client SQL session management > - > > Key: IGNITE-17134 > URL: https://issues.apache.org/jira/browse/IGNITE-17134 > Project: Ignite > Issue Type: Improvement > Components: sql, thin client >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Minor > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > > Close all active cursors and cancel queries when client SQL session is closed -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-21669) Remove sessions from SQL API
[ https://issues.apache.org/jira/browse/IGNITE-21669?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego updated IGNITE-21669: - Description: Currently, {{org.apache.ignite.sql.Session}} interface does not bring any value, and can be confusing for the users: * It is simply a property bag and does not hold any other state across queries; * The same properties can be set on {{Statement}}; * {{createSession}} is an extra step for the user; * Some people, even AI3 developers, look at this API and assume something more, like holding open transactions on the server, etc. To do: # Move query execution methods from Session to IgniteSql; # Remove Session interface. {code:java} public interface IgniteSql { ResultSet execute(@Nullable Transaction transaction, String query, @Nullable Object... arguments); ResultSet execute(@Nullable Transaction transaction, Statement statement, @Nullable Object... arguments); Statement.StatementBuilder statementBuilder(); ... } {code} Usage examples: {code:java} // Simple query in one line. sql.execute(null, "delete from my-table where id = ?", 1); // Statement. Statement statement = sql.statementBuilder() .query("select foo from bar") .pageSize(123) .defaultSchema("my-schema") .build(); ResultSet result = sql.execute(null, statement); // Statement as a template (instead of Session as a common property holder). Statement statement2 = statement.toBuilder() .query("select foo from baz") .build(); {code} was: Currently, {{org.apache.ignite.sql.Session}} interface does not bring any value, and can be confusing for the users: * It is simply a property bag and does not hold any other state across queries; * The same properties can be set on {{Statement}}; * {{createSession}} is an extra step for the user; * Some people, even AI3 developers, look at this API and assume something more, like holding open transactions on the server, etc. To do: # Move query execution methods from Session to IgniteSql; # Remove Session interface. {code:java} public interface IgniteSql { ResultSet execute(@Nullable Transaction transaction, String query, @Nullable Object... arguments); ResultSet execute(@Nullable Transaction transaction, Statement statement, @Nullable Object... arguments); Statement.StatementBuilder statementBuilder(); ... } {code} Usage examples: {code:java} // Simple query in one line. sql.execute(null, "delete from my-table where id = ?", 1); // Statement. Statement statement = sql.statementBuilder() .query("select foo from bar") .pageSize(123) .defaultSchema("my-schema") .build(); ResultSet result = sql.execute(null, statement); // Statement as a template (instead of Session as a common property holder). Statement statement2 = statement.toBuilder() .query("select foo from baz") .build(); {code} > Remove sessions from SQL API > > > Key: IGNITE-21669 > URL: https://issues.apache.org/jira/browse/IGNITE-21669 > Project: Ignite > Issue Type: Improvement > Components: sql >Reporter: Igor Sapego >Priority: Major > Labels: ignite-3 > > Currently, {{org.apache.ignite.sql.Session}} interface does not bring any > value, and can be confusing for the users: > * It is simply a property bag and does not hold any other state across > queries; > * The same properties can be set on {{Statement}}; > * {{createSession}} is an extra step for the user; > * Some people, even AI3 developers, look at this API and assume something > more, like holding open transactions on the server, etc. > To do: > # Move query execution methods from Session to IgniteSql; > # Remove Session interface. > {code:java} > public interface IgniteSql { >ResultSet execute(@Nullable Transaction transaction, String query, > @Nullable Object... arguments); >ResultSet execute(@Nullable Transaction transaction, Statement > statement, @Nullable Object... arguments); >Statement.StatementBuilder statementBuilder(); >... > } > {code} > Usage examples: > {code:java} > // Simple query in one line. > sql.execute(null, "delete from my-table where id = ?", 1); > // Statement. > Statement statement = sql.statementBuilder() >.query("select foo from bar") >.pageSize(123) >.defaultSchema("my-schema") >.build(); > ResultSet result = sql.execute(null, statement); > // Statement as a template (instead of Session as a common property holder). > Statement statement2 = statement.toBuilder() >.query("select foo from baz") >.build(); > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21669) Remove sessions from SQL API
Igor Sapego created IGNITE-21669: Summary: Remove sessions from SQL API Key: IGNITE-21669 URL: https://issues.apache.org/jira/browse/IGNITE-21669 Project: Ignite Issue Type: Improvement Components: sql Reporter: Igor Sapego Currently, {{org.apache.ignite.sql.Session}} interface does not bring any value, and can be confusing for the users: * It is simply a property bag and does not hold any other state across queries; * The same properties can be set on {{Statement}}; * {{createSession}} is an extra step for the user; * Some people, even AI3 developers, look at this API and assume something more, like holding open transactions on the server, etc. To do: # Move query execution methods from Session to IgniteSql; # Remove Session interface. {code:java} public interface IgniteSql { ResultSet execute(@Nullable Transaction transaction, String query, @Nullable Object... arguments); ResultSet execute(@Nullable Transaction transaction, Statement statement, @Nullable Object... arguments); Statement.StatementBuilder statementBuilder(); ... } {code} Usage examples: {code:java} // Simple query in one line. sql.execute(null, "delete from my-table where id = ?", 1); // Statement. Statement statement = sql.statementBuilder() .query("select foo from bar") .pageSize(123) .defaultSchema("my-schema") .build(); ResultSet result = sql.execute(null, statement); // Statement as a template (instead of Session as a common property holder). Statement statement2 = statement.toBuilder() .query("select foo from baz") .build(); {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-21334) .NET: Thin 3.0: Implement JobExecutionOptions
[ https://issues.apache.org/jira/browse/IGNITE-21334?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17822477#comment-17822477 ] Igor Sapego commented on IGNITE-21334: -- Looks good to me > .NET: Thin 3.0: Implement JobExecutionOptions > - > > Key: IGNITE-21334 > URL: https://issues.apache.org/jira/browse/IGNITE-21334 > Project: Ignite > Issue Type: Task > Components: platforms, thin client >Affects Versions: 3.0.0-beta1 >Reporter: Dmitry Baranov >Assignee: Pavel Tupitsyn >Priority: Major > Labels: .NET, ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > Java part of this changes https://github.com/apache/ignite-3/pull/3050 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-21525) Java Client: Clean up IEP-54 leftovers
[ https://issues.apache.org/jira/browse/IGNITE-21525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17822117#comment-17822117 ] Igor Sapego commented on IGNITE-21525: -- Looks good to me. > Java Client: Clean up IEP-54 leftovers > -- > > Key: IGNITE-21525 > URL: https://issues.apache.org/jira/browse/IGNITE-21525 > Project: Ignite > Issue Type: Improvement > Components: thin client >Reporter: Igor Sapego >Assignee: Pavel Tupitsyn >Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 10m > Remaining Estimate: 0h > > Implement IGNITE-19744 for Java Client and server counterpart. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21616) Test ClientLoggingTest.testBasicLogging is flaky
Igor Sapego created IGNITE-21616: Summary: Test ClientLoggingTest.testBasicLogging is flaky Key: IGNITE-21616 URL: https://issues.apache.org/jira/browse/IGNITE-21616 Project: Ignite Issue Type: Bug Components: thin client Reporter: Igor Sapego The following test is flaky on TC: https://ci.ignite.apache.org/test/8764679646897676088?currentProjectId=ApacheIgnite3xGradle_Test_RunUnitTests_virtual=true -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-21556) ODBC 3.0: Use after free in SQLExecDirect
[ https://issues.apache.org/jira/browse/IGNITE-21556?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego reassigned IGNITE-21556: Assignee: Igor Sapego > ODBC 3.0: Use after free in SQLExecDirect > - > > Key: IGNITE-21556 > URL: https://issues.apache.org/jira/browse/IGNITE-21556 > Project: Ignite > Issue Type: Bug > Components: platforms >Affects Versions: 3.0 >Reporter: Dmitrii Zabotlin >Assignee: Igor Sapego >Priority: Major > Labels: ignite-3 > > There is a use-after-free bug in the ODBC platforms code. > Steps to reproduce: > 1. Execute query with parameters previously bound. > 2. Execute another query on top of the same statement without parameters (for > example, SELECT). > If previous parameter arrays are already freed crash will occur here: > {code:java} > void parameter::reset_stored_data() { > m_stored_data.clear(); > if (m_buffer.is_data_at_exec()) > m_stored_data.reserve(m_buffer.get_data_at_exec_size()); > } {code} > Method is_data_at_exec reads buffer content: > {code:java} > bool application_data_buffer::is_data_at_exec() const { > const SQLLEN *res_len_ptr = get_result_len(); > if (!res_len_ptr) > return false; > auto s_len = static_cast(*res_len_ptr); > return s_len <= SQL_LEN_DATA_AT_EXEC_OFFSET || s_len == SQL_DATA_AT_EXEC; > }{code} > If parameter type is variable length type, for example, string, res_len_ptr > will not be null and we will read from freed memory. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21604) .NET: Thin 3.0: Pass client time zone to server
Igor Sapego created IGNITE-21604: Summary: .NET: Thin 3.0: Pass client time zone to server Key: IGNITE-21604 URL: https://issues.apache.org/jira/browse/IGNITE-21604 Project: Ignite Issue Type: Improvement Components: thin client Reporter: Pavel Pereslegin Once IGNITE-21551 is implemented, it will be possible to set the time zone in a user session. The session time zone is taken into account when calling functions for obtaining the current time (CURRENT_TIMESTAMP, etc), as well as when processing a string literal for the 'TIMESTAMP WITH LOCAL TIME ZONE' type. For this to work correctly, you need to transfer the client's time zone through the thin client. p.s. check the TODOs that point to this ticket. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-21605) C++ 3.0: Pass client time zone to server
[ https://issues.apache.org/jira/browse/IGNITE-21605?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Sapego reassigned IGNITE-21605: Assignee: Igor Sapego > C++ 3.0: Pass client time zone to server > > > Key: IGNITE-21605 > URL: https://issues.apache.org/jira/browse/IGNITE-21605 > Project: Ignite > Issue Type: Improvement > Components: thin client >Reporter: Pavel Pereslegin >Assignee: Igor Sapego >Priority: Major > Labels: ignite-3 > > Once IGNITE-21551 is implemented, it will be possible to set the time zone in > a user session. > The session time zone is taken into account when calling functions for > obtaining the current time (CURRENT_TIMESTAMP, etc), as well as when > processing a string literal for the 'TIMESTAMP WITH LOCAL TIME ZONE' type. > For this to work correctly, you need to transfer the client's time zone > through the thin client. > p.s. check the TODOs that point to this ticket. -- This message was sent by Atlassian Jira (v8.20.10#820010)