[jira] [Commented] (IGNITE-22208) Deduplicate DEFAULT_SCHEMA_NAME

2024-05-15 Thread Igor Sapego (Jira)


[ 
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

2024-05-14 Thread Igor Sapego (Jira)
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

2024-05-14 Thread Igor Sapego (Jira)
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

2024-05-14 Thread Igor Sapego (Jira)
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

2024-05-14 Thread Igor Sapego (Jira)


 [ 
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

2024-05-14 Thread Igor Sapego (Jira)


 [ 
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

2024-05-14 Thread Igor Sapego (Jira)
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

2024-05-14 Thread Igor Sapego (Jira)
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

2024-05-14 Thread Igor Sapego (Jira)
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

2024-05-14 Thread Igor Sapego (Jira)
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

2024-05-14 Thread Igor Sapego (Jira)
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

2024-05-14 Thread Igor Sapego (Jira)


 [ 
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

2024-05-14 Thread Igor Sapego (Jira)
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

2024-05-14 Thread Igor Sapego (Jira)
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

2024-05-14 Thread Igor Sapego (Jira)


 [ 
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

2024-05-14 Thread Igor Sapego (Jira)


 [ 
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

2024-05-14 Thread Igor Sapego (Jira)
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

2024-05-14 Thread Igor Sapego (Jira)


[ 
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

2024-05-14 Thread Igor Sapego (Jira)


[ 
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

2024-05-13 Thread Igor Sapego (Jira)


[ 
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

2024-05-13 Thread Igor Sapego (Jira)


[ 
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

2024-05-13 Thread Igor Sapego (Jira)


 [ 
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

2024-05-10 Thread Igor Sapego (Jira)


[ 
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

2024-05-09 Thread Igor Sapego (Jira)


[ 
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

2024-05-02 Thread Igor Sapego (Jira)


[ 
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

2024-05-02 Thread Igor Sapego (Jira)


[ 
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

2024-04-30 Thread Igor Sapego (Jira)


 [ 
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

2024-04-30 Thread Igor Sapego (Jira)


[ 
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

2024-04-30 Thread Igor Sapego (Jira)


 [ 
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

2024-04-30 Thread Igor Sapego (Jira)


 [ 
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

2024-04-30 Thread Igor Sapego (Jira)


 [ 
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

2024-04-30 Thread Igor Sapego (Jira)


 [ 
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

2024-04-30 Thread Igor Sapego (Jira)


 [ 
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

2024-04-30 Thread Igor Sapego (Jira)


 [ 
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

2024-04-30 Thread Igor Sapego (Jira)


 [ 
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

2024-04-30 Thread Igor Sapego (Jira)


 [ 
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

2024-04-30 Thread Igor Sapego (Jira)


 [ 
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

2024-04-30 Thread Igor Sapego (Jira)


 [ 
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

2024-04-30 Thread Igor Sapego (Jira)


 [ 
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

2024-04-30 Thread Igor Sapego (Jira)


 [ 
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

2024-04-30 Thread Igor Sapego (Jira)
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

2024-04-30 Thread Igor Sapego (Jira)


 [ 
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

2024-04-30 Thread Igor Sapego (Jira)


 [ 
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

2024-04-30 Thread Igor Sapego (Jira)


 [ 
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

2024-04-30 Thread Igor Sapego (Jira)
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

2024-04-30 Thread Igor Sapego (Jira)
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

2024-04-30 Thread Igor Sapego (Jira)
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

2024-04-30 Thread Igor Sapego (Jira)
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

2024-04-30 Thread Igor Sapego (Jira)
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)

2024-04-29 Thread Igor Sapego (Jira)


[ 
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

2024-04-29 Thread Igor Sapego (Jira)


[ 
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

2024-04-29 Thread Igor Sapego (Jira)


 [ 
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

2024-04-29 Thread Igor Sapego (Jira)


[ 
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

2024-04-29 Thread Igor Sapego (Jira)


 [ 
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

2024-04-15 Thread Igor Sapego (Jira)


 [ 
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

2024-04-15 Thread Igor Sapego (Jira)


 [ 
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

2024-04-11 Thread Igor Sapego (Jira)


[ 
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

2024-04-10 Thread Igor Sapego (Jira)


[ 
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

2024-04-09 Thread Igor Sapego (Jira)


 [ 
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

2024-04-09 Thread Igor Sapego (Jira)


 [ 
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

2024-04-05 Thread Igor Sapego (Jira)


[ 
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

2024-04-03 Thread Igor Sapego (Jira)


[ 
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

2024-04-02 Thread Igor Sapego (Jira)


[ 
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

2024-03-29 Thread Igor Sapego (Jira)


[ 
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

2024-03-29 Thread Igor Sapego (Jira)


[ 
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

2024-03-29 Thread Igor Sapego (Jira)


[ 
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

2024-03-28 Thread Igor Sapego (Jira)


[ 
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

2024-03-26 Thread Igor Sapego (Jira)


[ 
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

2024-03-25 Thread Igor Sapego (Jira)


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

2024-03-19 Thread Igor Sapego (Jira)


 [ 
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

2024-03-19 Thread Igor Sapego (Jira)
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

2024-03-19 Thread Igor Sapego (Jira)
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

2024-03-19 Thread Igor Sapego (Jira)
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

2024-03-19 Thread Igor Sapego (Jira)
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

2024-03-19 Thread Igor Sapego (Jira)
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

2024-03-19 Thread Igor Sapego (Jira)
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

2024-03-19 Thread Igor Sapego (Jira)
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

2024-03-19 Thread Igor Sapego (Jira)
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

2024-03-19 Thread Igor Sapego (Jira)
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

2024-03-19 Thread Igor Sapego (Jira)
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

2024-03-19 Thread Igor Sapego (Jira)
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

2024-03-19 Thread Igor Sapego (Jira)
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

2024-03-19 Thread Igor Sapego (Jira)
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

2024-03-15 Thread Igor Sapego (Jira)


[ 
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

2024-03-13 Thread Igor Sapego (Jira)


[ 
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

2024-03-08 Thread Igor Sapego (Jira)


 [ 
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

2024-03-08 Thread Igor Sapego (Jira)


 [ 
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

2024-03-07 Thread Igor Sapego (Jira)


[ 
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

2024-03-06 Thread Igor Sapego (Jira)


[ 
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

2024-03-05 Thread Igor Sapego (Jira)


[ 
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

2024-03-05 Thread Igor Sapego (Jira)


 [ 
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

2024-03-05 Thread Igor Sapego (Jira)


 [ 
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

2024-03-04 Thread Igor Sapego (Jira)


 [ 
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

2024-03-04 Thread Igor Sapego (Jira)
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

2024-03-01 Thread Igor Sapego (Jira)


[ 
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

2024-02-29 Thread Igor Sapego (Jira)


[ 
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

2024-02-27 Thread Igor Sapego (Jira)
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

2024-02-26 Thread Igor Sapego (Jira)


 [ 
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

2024-02-26 Thread Igor Sapego (Jira)
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

2024-02-26 Thread Igor Sapego (Jira)


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


  1   2   3   4   5   6   7   8   9   10   >