[jira] [Commented] (IGNITE-18083) .NET: Thin 3.0: LINQ: Groupings

2022-11-21 Thread Pavel Tupitsyn (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-18083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17637050#comment-17637050
 ] 

Pavel Tupitsyn commented on IGNITE-18083:
-

Merged to main: 24531434f0ad2f49e65ee2480bdcd6064b5dbda0

> .NET: Thin 3.0: LINQ: Groupings
> ---
>
> Key: IGNITE-18083
> URL: https://issues.apache.org/jira/browse/IGNITE-18083
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, 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
>
> Support queries with groupings in the LINQ provider.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Assigned] (IGNITE-18210) ODBC driver does not work with ADODB

2022-11-21 Thread Igor Sapego (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18210?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Igor Sapego reassigned IGNITE-18210:


Assignee: Igor Sapego

> ODBC driver does not work with ADODB
> 
>
> Key: IGNITE-18210
> URL: https://issues.apache.org/jira/browse/IGNITE-18210
> Project: Ignite
>  Issue Type: Bug
>  Components: odbc
>Affects Versions: 2.14
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: cpp, odbc
> Attachments: SQL_odbcadmin_cursorLocation_Client.LOG, 
> SQL_odbcadmin_cursorLocation_Server.LOG, 
> ignite_odbc_cursorLocation_Client.log, ignite_odbc_cusorLocation_Server.log
>
>
> Here is the code that reproduce problem:
> {code}
> Public Sub QueryIgnite()
>   Dim ADOrs As ADODB.Recordset
>   Dim ADOcon As ADODB.Connection
>   Set ADOcon = New ADODB.Connection
>   ADOcon.ConnectionString = "DSN=Apache-Ignite-DSN"
>   'ADOcon.CursorLocation = adUseClient
>   ADOcon.Open
>   Set ADOrs = New ADODB.Recordset
>   ADOrs.Open "select * from city", ADOcon, adOpenForwardOnly
>   ADOrs.MoveNext
>   Debug.Print ADOrs.Fields("NAME")
>   ADOrs.Close
>   ADOcon.Close
> End Sub
> {code}
> Attached are the logs produced by the code.
> It seems like we do not support a bunch of connection and statement 
> attributes used by ADO. Need to find out which of them are critical and 
> implement them.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18218) Cluster initialization should be covered in docs better

2022-11-21 Thread Andrey Khitrin (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18218?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrey Khitrin updated IGNITE-18218:

Description: 
While playing with AI3 beta1 deb package, I've noticed that 'ignite3db' service 
doesn't join any cluster after being installed and started. That may be fine 
from the DB's point of view, but this behavior may not obvious for a mere user. 
In order to make AI3 ready to work, user needs to run 'ignite3 cluster init 
...' first. Unfortunately, this point is not currently covered properly neither 
in [DEVNOTES.md|https://github.com/apache/ignite-3/blob/main/DEVNOTES.md] nor 
in [existing 
docs|https://ignite.apache.org/docs/3.0.0-beta/quick-start/getting-started-guide].
 Command 'systemctl status ignite3db.service' says "active (running)", command 
'ignite3 node status' shows "state: starting", DB log says "Components started, 
joining the cluster". Everything seem to work fine, but the next user's step is 
not obvious here. User may try to open SQL console but it will not work until 
cluster is initialized.


I'm afraid a significant part of newcomers may be discouraged by this behavior. 
They could be a step close to the final line, but think "it doesn't work with 
no reason", and refuse to try AI3 anymore. To avoid this, some words about 
"cluster init" should be added to "Getting started guide" and, probably, to 
DEVNOTES.

  was:
While playing with AI3 beta1 deb package, I've noticed that 'ignite3db' service 
doesn't join any cluster after being installed and started. That may be fine 
from the DB's point of view, but this behavior may not obvious for a mere user. 
In order to make AI3 ready to work, user needs to run 'ignite3 cluster init 
...' first. Unfortunately, this point is not currently covered properly neither 
in [DEVNOTES.md|https://github.com/apache/ignite-3/blob/main/DEVNOTES.md] nor 
in [existing 
docs|https://ignite.apache.org/docs/3.0.0-beta/quick-start/getting-started-guide].
 Command 'systemctl status ignite3db.service' says "active (running)", command 
'ignite3 node status' shows "state: starting", DB log says "Components started, 
joining the cluster".  Everything seem to work fine, but the next user's step 
is not obvious here. User may try to open SQL console but it will not work 
until cluster is initialized.
I'm afraid a significant part of newcomers may be discouraged by this behavior. 
They could be a step close to the final line, but think "it doesn't work with 
no reason", and refuse to try AI3 anymore. To avoid this, some words about 
"cluster init" should be added to "Getting started guide" and, probably, to 
DEVNOTES.


> Cluster initialization should be covered in docs better
> ---
>
> Key: IGNITE-18218
> URL: https://issues.apache.org/jira/browse/IGNITE-18218
> Project: Ignite
>  Issue Type: Improvement
>  Components: documentation
>Affects Versions: 3.0.0-beta1
>Reporter: Andrey Khitrin
>Priority: Major
>  Labels: ignite-3
>
> While playing with AI3 beta1 deb package, I've noticed that 'ignite3db' 
> service doesn't join any cluster after being installed and started. That may 
> be fine from the DB's point of view, but this behavior may not obvious for a 
> mere user. In order to make AI3 ready to work, user needs to run 'ignite3 
> cluster init ...' first. Unfortunately, this point is not currently covered 
> properly neither in 
> [DEVNOTES.md|https://github.com/apache/ignite-3/blob/main/DEVNOTES.md] nor in 
> [existing 
> docs|https://ignite.apache.org/docs/3.0.0-beta/quick-start/getting-started-guide].
>  Command 'systemctl status ignite3db.service' says "active (running)", 
> command 'ignite3 node status' shows "state: starting", DB log says 
> "Components started, joining the cluster". Everything seem to work fine, but 
> the next user's step is not obvious here. User may try to open SQL console 
> but it will not work until cluster is initialized.
> I'm afraid a significant part of newcomers may be discouraged by this 
> behavior. They could be a step close to the final line, but think "it doesn't 
> work with no reason", and refuse to try AI3 anymore. To avoid this, some 
> words about "cluster init" should be added to "Getting started guide" and, 
> probably, to DEVNOTES.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-18218) Cluster initialization should be covered in docs better

2022-11-21 Thread Andrey Khitrin (Jira)
Andrey Khitrin created IGNITE-18218:
---

 Summary: Cluster initialization should be covered in docs better
 Key: IGNITE-18218
 URL: https://issues.apache.org/jira/browse/IGNITE-18218
 Project: Ignite
  Issue Type: Improvement
  Components: documentation
Affects Versions: 3.0.0-beta1
Reporter: Andrey Khitrin


While playing with AI3 beta1 deb package, I've noticed that 'ignite3db' service 
doesn't join any cluster after being installed and started. That may be fine 
from the DB's point of view, but this behavior may not obvious for a mere user. 
In order to make AI3 ready to work, user needs to run 'ignite3 cluster init 
...' first. Unfortunately, this point is not currently covered properly neither 
in [DEVNOTES.md|https://github.com/apache/ignite-3/blob/main/DEVNOTES.md] nor 
in [existing 
docs|https://ignite.apache.org/docs/3.0.0-beta/quick-start/getting-started-guide].
 Command 'systemctl status ignite3db.service' says "active (running)", command 
'ignite3 node status' shows "state: starting", DB log says "Components started, 
joining the cluster".  Everything seem to work fine, but the next user's step 
is not obvious here. User may try to open SQL console but it will not work 
until cluster is initialized.
I'm afraid a significant part of newcomers may be discouraged by this behavior. 
They could be a step close to the final line, but think "it doesn't work with 
no reason", and refuse to try AI3 anymore. To avoid this, some words about 
"cluster init" should be added to "Getting started guide" and, probably, to 
DEVNOTES.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-18083) .NET: Thin 3.0: LINQ: Groupings

2022-11-21 Thread Igor Sapego (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-18083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17637028#comment-17637028
 ] 

Igor Sapego commented on IGNITE-18083:
--

[~ptupitsyn] Looks good to me.

> .NET: Thin 3.0: LINQ: Groupings
> ---
>
> Key: IGNITE-18083
> URL: https://issues.apache.org/jira/browse/IGNITE-18083
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET, LINQ, ignite-3
> Fix For: 3.0.0-beta2
>
>
> Support queries with groupings in the LINQ provider.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18196) .NET: Thin 3.0: LINQ: Aggregates

2022-11-21 Thread Pavel Tupitsyn (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18196?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn updated IGNITE-18196:

Description: 
* Add support for Sum, Count, Min, Max, Average, Count, Any, All.
* Handle the case with SQL engine returning *long* instead of *int* for COUNT 
and SUM, which causes an exception during materialization:

{code}
System.ArgumentException : Object of type 'System.Int64' cannot be converted to 
type 'System.Int32'.
   at System.RuntimeType.TryChangeType(Object value, Binder binder, CultureInfo 
culture, Boolean needsSpecialCast)
   at System.RuntimeType.CheckValue(Object value, Binder binder, CultureInfo 
culture, BindingFlags invokeAttr)
   at System.Reflection.MethodBase.CheckArguments(StackAllocedArguments& 
stackArgs, ReadOnlySpan`1 parameters, Binder binder, BindingFlags invokeAttr, 
CultureInfo culture, Signature sig)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, 
Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.ConstructorInfo.Invoke(Object[] parameters)
   at 
Apache.Ignite.Internal.Linq.IgniteQueryExecutor.<>c__DisplayClass9_0`1.b__0(IReadOnlyList`1
 cols, BinaryTupleReader& reader) in 
/home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line
 146
   at Apache.Ignite.Internal.Sql.ResultSet`1.ReadRow(IReadOnlyList`1 cols, 
MessagePackReader& reader) in 
/home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs:line
 226
   at 
Apache.Ignite.Internal.Sql.ResultSet`1.<>c__DisplayClass29_0.d.MoveNext()
 in 
/home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs:line
 269
   at Apache.Ignite.Internal.Sql.ResultSet`1.EnumerateRows()+MoveNext() in 
/home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs:line
 236
   at 
Apache.Ignite.Internal.Sql.ResultSet`1.EnumerateRows()+System.Threading.Tasks.Sources.IValueTaskSource.GetResult()
   at 
Apache.Ignite.Internal.Linq.IgniteQueryExecutor.ExecuteCollection[T](QueryModel 
queryModel)+MoveNext() in 
/home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line
 85
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Apache.Ignite.Tests.Linq.LinqTests.TestGroupByWithCountAndSum() in 
/home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite.Tests/Linq/LinqTests.GroupBy.cs:line
 57
{code}

Reproducer:
{code}
var query = PocoByteView.AsQueryable()
.GroupBy(x => x.Val)
.Select(x => new { x.Key, Count = (long)x.Count(), Sum = x.Sum(e => 
e.Key) })
.OrderBy(x => x.Key);

var res = query.ToList();
{code}

  was:
SQL engine returns *long* instead of *int* for COUNT and SUM, which causes an 
exception during materialization:

{code}
System.ArgumentException : Object of type 'System.Int64' cannot be converted to 
type 'System.Int32'.
   at System.RuntimeType.TryChangeType(Object value, Binder binder, CultureInfo 
culture, Boolean needsSpecialCast)
   at System.RuntimeType.CheckValue(Object value, Binder binder, CultureInfo 
culture, BindingFlags invokeAttr)
   at System.Reflection.MethodBase.CheckArguments(StackAllocedArguments& 
stackArgs, ReadOnlySpan`1 parameters, Binder binder, BindingFlags invokeAttr, 
CultureInfo culture, Signature sig)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, 
Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.ConstructorInfo.Invoke(Object[] parameters)
   at 
Apache.Ignite.Internal.Linq.IgniteQueryExecutor.<>c__DisplayClass9_0`1.b__0(IReadOnlyList`1
 cols, BinaryTupleReader& reader) in 
/home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line
 146
   at Apache.Ignite.Internal.Sql.ResultSet`1.ReadRow(IReadOnlyList`1 cols, 
MessagePackReader& reader) in 
/home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs:line
 226
   at 
Apache.Ignite.Internal.Sql.ResultSet`1.<>c__DisplayClass29_0.d.MoveNext()
 in 
/home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs:line
 269
   at Apache.Ignite.Internal.Sql.ResultSet`1.EnumerateRows()+MoveNext() in 
/home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs:line
 236
   at 
Apache.Ignite.Internal.Sql.ResultSet`1.EnumerateRows()+System.Threading.Tasks.Sources.IValueTaskSource.GetResult()
   at 
Apache.Ignite.Internal.Linq.IgniteQueryExecutor.ExecuteCollection[T](QueryModel 
queryModel)+MoveNext() in 
/home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line
 85
   at 

[jira] [Updated] (IGNITE-18196) .NET: Thin 3.0: LINQ: Aggregates

2022-11-21 Thread Pavel Tupitsyn (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18196?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn updated IGNITE-18196:

Issue Type: Improvement  (was: Bug)

> .NET: Thin 3.0: LINQ: Aggregates
> 
>
> Key: IGNITE-18196
> URL: https://issues.apache.org/jira/browse/IGNITE-18196
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET, LINQ, ignite-3
> Fix For: 3.0.0-beta2
>
>
> SQL engine returns *long* instead of *int* for COUNT and SUM, which causes an 
> exception during materialization:
> {code}
> System.ArgumentException : Object of type 'System.Int64' cannot be converted 
> to type 'System.Int32'.
>at System.RuntimeType.TryChangeType(Object value, Binder binder, 
> CultureInfo culture, Boolean needsSpecialCast)
>at System.RuntimeType.CheckValue(Object value, Binder binder, CultureInfo 
> culture, BindingFlags invokeAttr)
>at System.Reflection.MethodBase.CheckArguments(StackAllocedArguments& 
> stackArgs, ReadOnlySpan`1 parameters, Binder binder, BindingFlags invokeAttr, 
> CultureInfo culture, Signature sig)
>at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags 
> invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
>at System.Reflection.ConstructorInfo.Invoke(Object[] parameters)
>at 
> Apache.Ignite.Internal.Linq.IgniteQueryExecutor.<>c__DisplayClass9_0`1.b__0(IReadOnlyList`1
>  cols, BinaryTupleReader& reader) in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line
>  146
>at Apache.Ignite.Internal.Sql.ResultSet`1.ReadRow(IReadOnlyList`1 cols, 
> MessagePackReader& reader) in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs:line
>  226
>at 
> Apache.Ignite.Internal.Sql.ResultSet`1.<>c__DisplayClass29_0.d.MoveNext()
>  in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs:line
>  269
>at Apache.Ignite.Internal.Sql.ResultSet`1.EnumerateRows()+MoveNext() in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs:line
>  236
>at 
> Apache.Ignite.Internal.Sql.ResultSet`1.EnumerateRows()+System.Threading.Tasks.Sources.IValueTaskSource.GetResult()
>at 
> Apache.Ignite.Internal.Linq.IgniteQueryExecutor.ExecuteCollection[T](QueryModel
>  queryModel)+MoveNext() in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line
>  85
>at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
>at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
>at Apache.Ignite.Tests.Linq.LinqTests.TestGroupByWithCountAndSum() in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite.Tests/Linq/LinqTests.GroupBy.cs:line
>  57
> {code}
> Reproducer:
> {code}
> var query = PocoByteView.AsQueryable()
> .GroupBy(x => x.Val)
> .Select(x => new { x.Key, Count = (long)x.Count(), Sum = x.Sum(e 
> => e.Key) })
> .OrderBy(x => x.Key);
> var res = query.ToList();
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18196) .NET: Thin 3.0: LINQ: Aggregates

2022-11-21 Thread Pavel Tupitsyn (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18196?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn updated IGNITE-18196:

Summary: .NET: Thin 3.0: LINQ: Aggregates  (was: .NET: Thin 3.0: LINQ: Sum 
and Count fail with cast exception)

> .NET: Thin 3.0: LINQ: Aggregates
> 
>
> Key: IGNITE-18196
> URL: https://issues.apache.org/jira/browse/IGNITE-18196
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms, thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET, LINQ, ignite-3
> Fix For: 3.0.0-beta2
>
>
> SQL engine returns *long* instead of *int* for COUNT and SUM, which causes an 
> exception during materialization:
> {code}
> System.ArgumentException : Object of type 'System.Int64' cannot be converted 
> to type 'System.Int32'.
>at System.RuntimeType.TryChangeType(Object value, Binder binder, 
> CultureInfo culture, Boolean needsSpecialCast)
>at System.RuntimeType.CheckValue(Object value, Binder binder, CultureInfo 
> culture, BindingFlags invokeAttr)
>at System.Reflection.MethodBase.CheckArguments(StackAllocedArguments& 
> stackArgs, ReadOnlySpan`1 parameters, Binder binder, BindingFlags invokeAttr, 
> CultureInfo culture, Signature sig)
>at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags 
> invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
>at System.Reflection.ConstructorInfo.Invoke(Object[] parameters)
>at 
> Apache.Ignite.Internal.Linq.IgniteQueryExecutor.<>c__DisplayClass9_0`1.b__0(IReadOnlyList`1
>  cols, BinaryTupleReader& reader) in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line
>  146
>at Apache.Ignite.Internal.Sql.ResultSet`1.ReadRow(IReadOnlyList`1 cols, 
> MessagePackReader& reader) in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs:line
>  226
>at 
> Apache.Ignite.Internal.Sql.ResultSet`1.<>c__DisplayClass29_0.d.MoveNext()
>  in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs:line
>  269
>at Apache.Ignite.Internal.Sql.ResultSet`1.EnumerateRows()+MoveNext() in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs:line
>  236
>at 
> Apache.Ignite.Internal.Sql.ResultSet`1.EnumerateRows()+System.Threading.Tasks.Sources.IValueTaskSource.GetResult()
>at 
> Apache.Ignite.Internal.Linq.IgniteQueryExecutor.ExecuteCollection[T](QueryModel
>  queryModel)+MoveNext() in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line
>  85
>at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
>at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
>at Apache.Ignite.Tests.Linq.LinqTests.TestGroupByWithCountAndSum() in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite.Tests/Linq/LinqTests.GroupBy.cs:line
>  57
> {code}
> Reproducer:
> {code}
> var query = PocoByteView.AsQueryable()
> .GroupBy(x => x.Val)
> .Select(x => new { x.Key, Count = (long)x.Count(), Sum = x.Sum(e 
> => e.Key) })
> .OrderBy(x => x.Key);
> var res = query.ToList();
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-18214) [IEP-80] Remove ThreadPool legacy JMX metrics bean

2022-11-21 Thread Nikolay Izhikov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-18214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17637021#comment-17637021
 ] 

Nikolay Izhikov commented on IGNITE-18214:
--

Hello, [~mmuzaf] 

Can you, please, take a look at my changes?

> [IEP-80] Remove ThreadPool legacy JMX metrics bean
> --
>
> Key: IGNITE-18214
> URL: https://issues.apache.org/jira/browse/IGNITE-18214
> Project: Ignite
>  Issue Type: Sub-task
>Reporter: Nikolay Izhikov
>Assignee: Nikolay Izhikov
>Priority: Minor
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Remove ThreadPool legacy JMX metrics bean
>  
> org.apache.ignite.mxbean.ThreadPoolMXBean



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-18217) [IEP-80] Enable JMX metrics exporter by default

2022-11-21 Thread Nikolay Izhikov (Jira)
Nikolay Izhikov created IGNITE-18217:


 Summary: [IEP-80] Enable JMX metrics exporter by default
 Key: IGNITE-18217
 URL: https://issues.apache.org/jira/browse/IGNITE-18217
 Project: Ignite
  Issue Type: Sub-task
Reporter: Nikolay Izhikov


Enable JMX metrics exporter by default



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-15367) Socket shutdown produce unnecessary output

2022-11-21 Thread Dmitry Pavlov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-15367?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dmitry Pavlov updated IGNITE-15367:
---
Labels: ise  (was: )

> Socket shutdown produce unnecessary output
> --
>
> Key: IGNITE-15367
> URL: https://issues.apache.org/jira/browse/IGNITE-15367
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.10, 2.11
>Reporter: Maxim Muzafarov
>Assignee: Maxim Muzafarov
>Priority: Minor
>  Labels: ise
> Fix For: 2.12
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Socket shutdown and close operations produce unnecessary output when a socket 
> is expected to be closed.
> {code}
> [2021-08-24 15:35:15,380][WARN 
> ][grid-nio-worker-tcp-comm-1-#33%TestRecordingCommunicationSpi%][TestRecordingCommunicationSpi]
>  Failed to shutdown socket: null
> java.nio.channels.ClosedChannelException
>   at 
> sun.nio.ch.SocketChannelImpl.shutdownOutput(SocketChannelImpl.java:794)
>   at sun.nio.ch.SocketAdaptor.shutdownOutput(SocketAdaptor.java:420)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.close(IgniteUtils.java:4242)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.closeKey(GridNioServer.java:2784)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.close(GridNioServer.java:2835)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.close(GridNioServer.java:2794)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$DirectNioClientWorker.processRead(GridNioServer.java:1357)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNioServer.java:2508)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:2273)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1910)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
>   at java.lang.Thread.run(Thread.java:748)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18196) .NET: Thin 3.0: LINQ: Sum and Count fail with cast exception

2022-11-21 Thread Pavel Tupitsyn (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18196?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn updated IGNITE-18196:

Issue Type: Bug  (was: Improvement)

> .NET: Thin 3.0: LINQ: Sum and Count fail with cast exception
> 
>
> Key: IGNITE-18196
> URL: https://issues.apache.org/jira/browse/IGNITE-18196
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms, thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET, LINQ, ignite-3
> Fix For: 3.0.0-beta2
>
>
> SQL engine returns *long* instead of *int* for COUNT and SUM, which causes an 
> exception during materialization:
> {code}
> System.ArgumentException : Object of type 'System.Int64' cannot be converted 
> to type 'System.Int32'.
>at System.RuntimeType.TryChangeType(Object value, Binder binder, 
> CultureInfo culture, Boolean needsSpecialCast)
>at System.RuntimeType.CheckValue(Object value, Binder binder, CultureInfo 
> culture, BindingFlags invokeAttr)
>at System.Reflection.MethodBase.CheckArguments(StackAllocedArguments& 
> stackArgs, ReadOnlySpan`1 parameters, Binder binder, BindingFlags invokeAttr, 
> CultureInfo culture, Signature sig)
>at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags 
> invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
>at System.Reflection.ConstructorInfo.Invoke(Object[] parameters)
>at 
> Apache.Ignite.Internal.Linq.IgniteQueryExecutor.<>c__DisplayClass9_0`1.b__0(IReadOnlyList`1
>  cols, BinaryTupleReader& reader) in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line
>  146
>at Apache.Ignite.Internal.Sql.ResultSet`1.ReadRow(IReadOnlyList`1 cols, 
> MessagePackReader& reader) in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs:line
>  226
>at 
> Apache.Ignite.Internal.Sql.ResultSet`1.<>c__DisplayClass29_0.d.MoveNext()
>  in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs:line
>  269
>at Apache.Ignite.Internal.Sql.ResultSet`1.EnumerateRows()+MoveNext() in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs:line
>  236
>at 
> Apache.Ignite.Internal.Sql.ResultSet`1.EnumerateRows()+System.Threading.Tasks.Sources.IValueTaskSource.GetResult()
>at 
> Apache.Ignite.Internal.Linq.IgniteQueryExecutor.ExecuteCollection[T](QueryModel
>  queryModel)+MoveNext() in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line
>  85
>at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
>at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
>at Apache.Ignite.Tests.Linq.LinqTests.TestGroupByWithCountAndSum() in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite.Tests/Linq/LinqTests.GroupBy.cs:line
>  57
> {code}
> Reproducer:
> {code}
> var query = PocoByteView.AsQueryable()
> .GroupBy(x => x.Val)
> .Select(x => new { x.Key, Count = (long)x.Count(), Sum = x.Sum(e 
> => e.Key) })
> .OrderBy(x => x.Key);
> var res = query.ToList();
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18216) Duplicated CDC test runs on TeamCity

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18216?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-18216:
---
Description: 
As I see, now CDC Test Suite on both TC instances runs tests twice:
*Duplication in TC1 build #350:*
{quote}[22:39:32] : [Step 3/3] [22:39:32] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:00:48] : [Step 3/3] [23:00:48] >>> Starting test class: 
ConflictResolverRestartTest <<<
[23:00:50] : [Step 3/3] [23:00:50] >>> Starting test class: 
CacheConflictOperationsTest <<<
[23:00:51] : [Step 3/3] [23:00:51] >>> Starting test class: 
CdcKafkaReplicationAppsTest <<<
[00:13:57] : [Step 3/3] [00:13:57] >>> Starting test class: 
KafkaToIgniteLoaderTest <<<
[00:13:57] : [Step 3/3] [00:13:57] >>> Starting test class: 
CdcKafkaReplicationTest <<<
{color:#de350b}[01:22:21] : [Step 3/3] [01:22:21] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<{color}
{color:#de350b}[01:22:21] : [Step 3/3] [01:22:21] >>> Starting test class: 
CacheConflictOperationsTest <<<{color}
{color:#de350b}[01:22:22] : [Step 3/3] [01:22:22] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<{color}
{color:#de350b}[01:22:23] : [Step 3/3] [01:22:23] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<{color}
{quote}
*Duplication in TC2 build #285:*
{quote}[23:14:52] : [Step 3/3] [23:14:52] >>> Starting test class: 
ConflictResolverRestartTest <<<
[23:14:55] : [Step 3/3] [23:14:55] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:33:07] : [Step 3/3] [23:33:07] >>> Starting test class: 
CacheConflictOperationsTest <<<
[23:33:08] : [Step 3/3] [23:33:08] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<
[23:33:09] : [Step 3/3] [23:33:09] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:51:14] : [Step 3/3] [23:51:14] >>> Starting test class: 
KafkaToIgniteLoaderTest <<<
[23:51:15] : [Step 3/3] [23:51:15] >>> Starting test class: 
CdcKafkaReplicationTest <<<
[00:32:29] : [Step 3/3] [00:32:29] >>> Starting test class: 
CdcKafkaReplicationAppsTest <<<
{color:#de350b}[01:14:03] : [Step 3/3] [01:14:03] >>> Starting test class: 
ConflictResolverRestartTest <<<{color}
{color:#de350b}[01:14:04] : [Step 3/3] [01:14:04] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<{color}
{color:#de350b}[01:14:04] : [Step 3/3] [01:14:04] >>> Starting test class: 
KafkaToIgniteLoaderTest <<<{color}
{color:#de350b}[01:14:04] : [Step 3/3] [01:14:04] >>> Starting test class: 
CdcKafkaReplicationAppsTest <<<{color}
{color:#de350b}[01:14:04] >>> Starting test class: KafkaToIgniteLoaderTest 
<<<{color}
{color:#de350b}[01:55:29] : [Step 3/3] [01:55:29] >>> Starting test class: 
CdcKafkaReplicationTest <<<{color}
{quote}
It seems, that tests implicitly runs outside of the scope 
{{{}IgniteCdcTestSuite{}}}. We should remove such duplication, because it 
blocks testing of CDC extension. Moreover, we should check, that other 
extensions are tested without such duplication.

Build logs:
#  [^_TESTS_CDC_350.log.zip] 

Links on corresponding TC build:
 # [TC1 build 
#350|https://ci.ignite.apache.org/buildConfiguration/IgniteExtensions_Tests_Cdc/6922925?buildTab=overview=false=true=false=true=true]
 # [TC2 build 
#285|https://ci2.ignite.apache.org/buildConfiguration/IgniteExtensions_Tests_Cdc/6919480?expandBuildProblemsSection=true=false=true=false=true]

  was:
As I see, now CDC Test Suite on both TC instances runs tests twice:
*Duplication in TC1 build #350:*
{quote}[22:39:32] : [Step 3/3] [22:39:32] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:00:48] : [Step 3/3] [23:00:48] >>> Starting test class: 
ConflictResolverRestartTest <<<
[23:00:50] : [Step 3/3] [23:00:50] >>> Starting test class: 
CacheConflictOperationsTest <<<
[23:00:51] : [Step 3/3] [23:00:51] >>> Starting test class: 
CdcKafkaReplicationAppsTest <<<
[00:13:57] : [Step 3/3] [00:13:57] >>> Starting test class: 
KafkaToIgniteLoaderTest <<<
[00:13:57] : [Step 3/3] [00:13:57] >>> Starting test class: 
CdcKafkaReplicationTest <<<
{color:#de350b}[01:22:21] : [Step 3/3] [01:22:21] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<{color}
{color:#de350b}[01:22:21] : [Step 3/3] [01:22:21] >>> Starting test class: 
CacheConflictOperationsTest <<<{color}
{color:#de350b}[01:22:22] : [Step 3/3] [01:22:22] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<{color}
{color:#de350b}[01:22:23] : [Step 3/3] [01:22:23] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<{color}
{quote}
*Duplication in TC2 build #285:*
{quote}[23:14:52] : [Step 3/3] [23:14:52] >>> Starting test class: 
ConflictResolverRestartTest <<<
[23:14:55] : [Step 3/3] [23:14:55] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:33:07] : [Step 3/3] [23:33:07] >>> Starting test class: 
CacheConflictOperationsTest <<<
[23:33:08] : [Step 3/3] 

[jira] [Updated] (IGNITE-18216) Duplicated CDC test runs on TeamCity

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18216?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-18216:
---
Description: 
As I see, now CDC Test Suite on both TC instances runs tests twice:
*Duplication in TC1 build #350:*
{quote}[22:39:32] : [Step 3/3] [22:39:32] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:00:48] : [Step 3/3] [23:00:48] >>> Starting test class: 
ConflictResolverRestartTest <<<
[23:00:50] : [Step 3/3] [23:00:50] >>> Starting test class: 
CacheConflictOperationsTest <<<
[23:00:51] : [Step 3/3] [23:00:51] >>> Starting test class: 
CdcKafkaReplicationAppsTest <<<
[00:13:57] : [Step 3/3] [00:13:57] >>> Starting test class: 
KafkaToIgniteLoaderTest <<<
[00:13:57] : [Step 3/3] [00:13:57] >>> Starting test class: 
CdcKafkaReplicationTest <<<
{color:#de350b}[01:22:21] : [Step 3/3] [01:22:21] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<{color}
{color:#de350b}[01:22:21] : [Step 3/3] [01:22:21] >>> Starting test class: 
CacheConflictOperationsTest <<<{color}
{color:#de350b}[01:22:22] : [Step 3/3] [01:22:22] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<{color}
{color:#de350b}[01:22:23] : [Step 3/3] [01:22:23] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<{color}
{quote}
*Duplication in TC2 build #285:*
{quote}[23:14:52] : [Step 3/3] [23:14:52] >>> Starting test class: 
ConflictResolverRestartTest <<<
[23:14:55] : [Step 3/3] [23:14:55] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:33:07] : [Step 3/3] [23:33:07] >>> Starting test class: 
CacheConflictOperationsTest <<<
[23:33:08] : [Step 3/3] [23:33:08] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<
[23:33:09] : [Step 3/3] [23:33:09] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:51:14] : [Step 3/3] [23:51:14] >>> Starting test class: 
KafkaToIgniteLoaderTest <<<
[23:51:15] : [Step 3/3] [23:51:15] >>> Starting test class: 
CdcKafkaReplicationTest <<<
[00:32:29] : [Step 3/3] [00:32:29] >>> Starting test class: 
CdcKafkaReplicationAppsTest <<<
{color:#de350b}[01:14:03] : [Step 3/3] [01:14:03] >>> Starting test class: 
ConflictResolverRestartTest <<<{color}
{color:#de350b}[01:14:04] : [Step 3/3] [01:14:04] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<{color}
{color:#de350b}[01:14:04] : [Step 3/3] [01:14:04] >>> Starting test class: 
KafkaToIgniteLoaderTest <<<{color}
{color:#de350b}[01:14:04] : [Step 3/3] [01:14:04] >>> Starting test class: 
CdcKafkaReplicationAppsTest <<<{color}
{color:#de350b}[01:14:04] >>> Starting test class: KafkaToIgniteLoaderTest 
<<<{color}
{color:#de350b}[01:55:29] : [Step 3/3] [01:55:29] >>> Starting test class: 
CdcKafkaReplicationTest <<<{color}
{quote}
It seems, that tests implicitly runs outside of the scope 
{{{}IgniteCdcTestSuite{}}}. We should remove such duplication, because it 
blocks testing of CDC extension. Moreover, we should check, that other 
extensions are tested without such duplication.

Build logs:
#  TC1: [^_TESTS_CDC_350.log.zip] 
#  TC2: [^_TESTS_CDC_285.log.zip] 

Links on corresponding TC build:
 # [TC1 build 
#350|https://ci.ignite.apache.org/buildConfiguration/IgniteExtensions_Tests_Cdc/6922925?buildTab=overview=false=true=false=true=true]
 # [TC2 build 
#285|https://ci2.ignite.apache.org/buildConfiguration/IgniteExtensions_Tests_Cdc/6919480?expandBuildProblemsSection=true=false=true=false=true]

  was:
As I see, now CDC Test Suite on both TC instances runs tests twice:
*Duplication in TC1 build #350:*
{quote}[22:39:32] : [Step 3/3] [22:39:32] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:00:48] : [Step 3/3] [23:00:48] >>> Starting test class: 
ConflictResolverRestartTest <<<
[23:00:50] : [Step 3/3] [23:00:50] >>> Starting test class: 
CacheConflictOperationsTest <<<
[23:00:51] : [Step 3/3] [23:00:51] >>> Starting test class: 
CdcKafkaReplicationAppsTest <<<
[00:13:57] : [Step 3/3] [00:13:57] >>> Starting test class: 
KafkaToIgniteLoaderTest <<<
[00:13:57] : [Step 3/3] [00:13:57] >>> Starting test class: 
CdcKafkaReplicationTest <<<
{color:#de350b}[01:22:21] : [Step 3/3] [01:22:21] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<{color}
{color:#de350b}[01:22:21] : [Step 3/3] [01:22:21] >>> Starting test class: 
CacheConflictOperationsTest <<<{color}
{color:#de350b}[01:22:22] : [Step 3/3] [01:22:22] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<{color}
{color:#de350b}[01:22:23] : [Step 3/3] [01:22:23] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<{color}
{quote}
*Duplication in TC2 build #285:*
{quote}[23:14:52] : [Step 3/3] [23:14:52] >>> Starting test class: 
ConflictResolverRestartTest <<<
[23:14:55] : [Step 3/3] [23:14:55] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:33:07] : [Step 3/3] [23:33:07] >>> Starting test class: 

[jira] [Updated] (IGNITE-18216) Duplicated CDC test runs on TeamCity

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18216?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-18216:
---
Description: 
As I see, now CDC Test Suite on both TC instances runs tests twice:
*Duplication in TC1 build #350:*
{quote}[22:39:32] : [Step 3/3] [22:39:32] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:00:48] : [Step 3/3] [23:00:48] >>> Starting test class: 
ConflictResolverRestartTest <<<
[23:00:50] : [Step 3/3] [23:00:50] >>> Starting test class: 
CacheConflictOperationsTest <<<
[23:00:51] : [Step 3/3] [23:00:51] >>> Starting test class: 
CdcKafkaReplicationAppsTest <<<
[00:13:57] : [Step 3/3] [00:13:57] >>> Starting test class: 
KafkaToIgniteLoaderTest <<<
[00:13:57] : [Step 3/3] [00:13:57] >>> Starting test class: 
CdcKafkaReplicationTest <<<
{color:#de350b}[01:22:21] : [Step 3/3] [01:22:21] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<{color}
{color:#de350b}[01:22:21] : [Step 3/3] [01:22:21] >>> Starting test class: 
CacheConflictOperationsTest <<<{color}
{color:#de350b}[01:22:22] : [Step 3/3] [01:22:22] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<{color}
{color:#de350b}[01:22:23] : [Step 3/3] [01:22:23] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<{color}
{quote}
*Duplication in TC2 build #285:*
{quote}[23:14:52] : [Step 3/3] [23:14:52] >>> Starting test class: 
ConflictResolverRestartTest <<<
[23:14:55] : [Step 3/3] [23:14:55] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:33:07] : [Step 3/3] [23:33:07] >>> Starting test class: 
CacheConflictOperationsTest <<<
[23:33:08] : [Step 3/3] [23:33:08] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<
[23:33:09] : [Step 3/3] [23:33:09] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:51:14] : [Step 3/3] [23:51:14] >>> Starting test class: 
KafkaToIgniteLoaderTest <<<
[23:51:15] : [Step 3/3] [23:51:15] >>> Starting test class: 
CdcKafkaReplicationTest <<<
[00:32:29] : [Step 3/3] [00:32:29] >>> Starting test class: 
CdcKafkaReplicationAppsTest <<<
{color:#de350b}[01:14:03] : [Step 3/3] [01:14:03] >>> Starting test class: 
ConflictResolverRestartTest <<<{color}
{color:#de350b}[01:14:04] : [Step 3/3] [01:14:04] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<{color}
{color:#de350b}[01:14:04] : [Step 3/3] [01:14:04] >>> Starting test class: 
KafkaToIgniteLoaderTest <<<{color}
{color:#de350b}[01:14:04] : [Step 3/3] [01:14:04] >>> Starting test class: 
CdcKafkaReplicationAppsTest <<<{color}
{color:#de350b}[01:14:04] >>> Starting test class: KafkaToIgniteLoaderTest 
<<<{color}
{color:#de350b}[01:55:29] : [Step 3/3] [01:55:29] >>> Starting test class: 
CdcKafkaReplicationTest <<<{color}
{quote}
It seems, that tests implicitly runs outside of the scope 
{{{}IgniteCdcTestSuite{}}}. We should remove such duplication, because it 
blocks testing of CDC extension. Moreover, we should check, that other 
extensions are tested without such duplication.

Build logs:
#  [^_TESTS_CDC_350.log.zip] 
#  [^_TESTS_CDC_285.log.zip] 

Links on corresponding TC build:
 # [TC1 build 
#350|https://ci.ignite.apache.org/buildConfiguration/IgniteExtensions_Tests_Cdc/6922925?buildTab=overview=false=true=false=true=true]
 # [TC2 build 
#285|https://ci2.ignite.apache.org/buildConfiguration/IgniteExtensions_Tests_Cdc/6919480?expandBuildProblemsSection=true=false=true=false=true]

  was:
As I see, now CDC Test Suite on both TC instances runs tests twice:
*Duplication in TC1 build #350:*
{quote}[22:39:32] : [Step 3/3] [22:39:32] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:00:48] : [Step 3/3] [23:00:48] >>> Starting test class: 
ConflictResolverRestartTest <<<
[23:00:50] : [Step 3/3] [23:00:50] >>> Starting test class: 
CacheConflictOperationsTest <<<
[23:00:51] : [Step 3/3] [23:00:51] >>> Starting test class: 
CdcKafkaReplicationAppsTest <<<
[00:13:57] : [Step 3/3] [00:13:57] >>> Starting test class: 
KafkaToIgniteLoaderTest <<<
[00:13:57] : [Step 3/3] [00:13:57] >>> Starting test class: 
CdcKafkaReplicationTest <<<
{color:#de350b}[01:22:21] : [Step 3/3] [01:22:21] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<{color}
{color:#de350b}[01:22:21] : [Step 3/3] [01:22:21] >>> Starting test class: 
CacheConflictOperationsTest <<<{color}
{color:#de350b}[01:22:22] : [Step 3/3] [01:22:22] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<{color}
{color:#de350b}[01:22:23] : [Step 3/3] [01:22:23] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<{color}
{quote}
*Duplication in TC2 build #285:*
{quote}[23:14:52] : [Step 3/3] [23:14:52] >>> Starting test class: 
ConflictResolverRestartTest <<<
[23:14:55] : [Step 3/3] [23:14:55] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:33:07] : [Step 3/3] [23:33:07] >>> Starting test class: 
CacheConflictOperationsTest <<<

[jira] [Updated] (IGNITE-18216) Duplicated CDC test runs on TeamCity

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18216?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-18216:
---
Description: 
As I see, now CDC Test Suite on both TC instances runs tests twice:
*Duplication in TC1 build #350:*
{quote}[22:39:32] : [Step 3/3] [22:39:32] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:00:48] : [Step 3/3] [23:00:48] >>> Starting test class: 
ConflictResolverRestartTest <<<
[23:00:50] : [Step 3/3] [23:00:50] >>> Starting test class: 
CacheConflictOperationsTest <<<
[23:00:51] : [Step 3/3] [23:00:51] >>> Starting test class: 
CdcKafkaReplicationAppsTest <<<
[00:13:57] : [Step 3/3] [00:13:57] >>> Starting test class: 
KafkaToIgniteLoaderTest <<<
[00:13:57] : [Step 3/3] [00:13:57] >>> Starting test class: 
CdcKafkaReplicationTest <<<
{color:#de350b}[01:22:21] : [Step 3/3] [01:22:21] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<{color}
{color:#de350b}[01:22:21] : [Step 3/3] [01:22:21] >>> Starting test class: 
CacheConflictOperationsTest <<<{color}
{color:#de350b}[01:22:22] : [Step 3/3] [01:22:22] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<{color}
{color:#de350b}[01:22:23] : [Step 3/3] [01:22:23] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<{color}
{quote}
*Duplication in TC2 build #285:*
{quote}[23:14:52] : [Step 3/3] [23:14:52] >>> Starting test class: 
ConflictResolverRestartTest <<<
[23:14:55] : [Step 3/3] [23:14:55] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:33:07] : [Step 3/3] [23:33:07] >>> Starting test class: 
CacheConflictOperationsTest <<<
[23:33:08] : [Step 3/3] [23:33:08] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<
[23:33:09] : [Step 3/3] [23:33:09] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:51:14] : [Step 3/3] [23:51:14] >>> Starting test class: 
KafkaToIgniteLoaderTest <<<
[23:51:15] : [Step 3/3] [23:51:15] >>> Starting test class: 
CdcKafkaReplicationTest <<<
[00:32:29] : [Step 3/3] [00:32:29] >>> Starting test class: 
CdcKafkaReplicationAppsTest <<<
{color:#de350b}[01:14:03] : [Step 3/3] [01:14:03] >>> Starting test class: 
ConflictResolverRestartTest <<<{color}
{color:#de350b}[01:14:04] : [Step 3/3] [01:14:04] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<{color}
{color:#de350b}[01:14:04] : [Step 3/3] [01:14:04] >>> Starting test class: 
KafkaToIgniteLoaderTest <<<{color}
{color:#de350b}[01:14:04] : [Step 3/3] [01:14:04] >>> Starting test class: 
CdcKafkaReplicationAppsTest <<<{color}
{color:#de350b}[01:14:04] >>> Starting test class: KafkaToIgniteLoaderTest 
<<<{color}
{color:#de350b}[01:55:29] : [Step 3/3] [01:55:29] >>> Starting test class: 
CdcKafkaReplicationTest <<<{color}
{quote}
It seems, that tests implicitly runs outside of the scope 
{{{}IgniteCdcTestSuite{}}}. We should remove such duplication, because it 
blocks testing of CDC extension. Moreover, we should check, that other 
extensions are tested without such duplication.

Links on corresponding TC build:
 # [TC1 build 
#350|https://ci.ignite.apache.org/buildConfiguration/IgniteExtensions_Tests_Cdc/6922925?buildTab=overview=false=true=false=true=true]
 # [TC2 build 
#285|https://ci2.ignite.apache.org/buildConfiguration/IgniteExtensions_Tests_Cdc/6919480?expandBuildProblemsSection=true=false=true=false=true]

  was:
As I see, now CDC Test Suite on both TC instances runs tests twice:
*Duplication in TC1 build #350:*
{quote}
[22:39:32] : [Step 3/3] [22:39:32] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:00:48] : [Step 3/3] [23:00:48] >>> Starting test class: 
ConflictResolverRestartTest <<<
[23:00:50] : [Step 3/3] [23:00:50] >>> Starting test class: 
CacheConflictOperationsTest <<<
[23:00:51] : [Step 3/3] [23:00:51] >>> Starting test class: 
CdcKafkaReplicationAppsTest <<<
[00:13:57] : [Step 3/3] [00:13:57] >>> Starting test class: 
KafkaToIgniteLoaderTest <<<
[00:13:57] : [Step 3/3] [00:13:57] >>> Starting test class: 
CdcKafkaReplicationTest <<<
*[01:22:21] :[Step 3/3] [01:22:21] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<
[01:22:21] : [Step 3/3] [01:22:21] >>> Starting test class: 
CacheConflictOperationsTest <<<
[01:22:22] : [Step 3/3] [01:22:22] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<
[01:22:23] : [Step 3/3] [01:22:23] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<*
{quote}

*Duplication in TC2 build #285:*
{quote}
[23:14:52] : [Step 3/3] [23:14:52] >>> Starting test class: 
ConflictResolverRestartTest <<<
[23:14:55] : [Step 3/3] [23:14:55] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:33:07] : [Step 3/3] [23:33:07] >>> Starting test class: 
CacheConflictOperationsTest <<<
[23:33:08] : [Step 3/3] [23:33:08] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<

[jira] [Created] (IGNITE-18216) Duplicated CDC test runs

2022-11-21 Thread Ilya Shishkov (Jira)
Ilya Shishkov created IGNITE-18216:
--

 Summary: Duplicated CDC test runs
 Key: IGNITE-18216
 URL: https://issues.apache.org/jira/browse/IGNITE-18216
 Project: Ignite
  Issue Type: Bug
  Components: extensions
Reporter: Ilya Shishkov
 Attachments: _TESTS_CDC_285.log.zip, _TESTS_CDC_350.log.zip

As I see, now CDC Test Suite on both TC instances runs tests twice:
*Duplication in TC1 build #350:*
{quote}
[22:39:32] : [Step 3/3] [22:39:32] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:00:48] : [Step 3/3] [23:00:48] >>> Starting test class: 
ConflictResolverRestartTest <<<
[23:00:50] : [Step 3/3] [23:00:50] >>> Starting test class: 
CacheConflictOperationsTest <<<
[23:00:51] : [Step 3/3] [23:00:51] >>> Starting test class: 
CdcKafkaReplicationAppsTest <<<
[00:13:57] : [Step 3/3] [00:13:57] >>> Starting test class: 
KafkaToIgniteLoaderTest <<<
[00:13:57] : [Step 3/3] [00:13:57] >>> Starting test class: 
CdcKafkaReplicationTest <<<
*[01:22:21] :[Step 3/3] [01:22:21] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<
[01:22:21] : [Step 3/3] [01:22:21] >>> Starting test class: 
CacheConflictOperationsTest <<<
[01:22:22] : [Step 3/3] [01:22:22] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<
[01:22:23] : [Step 3/3] [01:22:23] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<*
{quote}

*Duplication in TC2 build #285:*
{quote}
[23:14:52] : [Step 3/3] [23:14:52] >>> Starting test class: 
ConflictResolverRestartTest <<<
[23:14:55] : [Step 3/3] [23:14:55] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:33:07] : [Step 3/3] [23:33:07] >>> Starting test class: 
CacheConflictOperationsTest <<<
[23:33:08] : [Step 3/3] [23:33:08] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<
[23:33:09] : [Step 3/3] [23:33:09] >>> Starting test class: 
CdcIgniteToIgniteReplicationTest <<<
[23:51:14] : [Step 3/3] [23:51:14] >>> Starting test class: 
KafkaToIgniteLoaderTest <<<
[23:51:15] : [Step 3/3] [23:51:15] >>> Starting test class: 
CdcKafkaReplicationTest <<<
[00:32:29] : [Step 3/3] [00:32:29] >>> Starting test class: 
CdcKafkaReplicationAppsTest <<<
*[01:14:03] :[Step 3/3] [01:14:03] >>> Starting test class: 
ConflictResolverRestartTest <<<
[01:14:04] : [Step 3/3] [01:14:04] >>> Starting test class: 
CacheConflictOperationsWithFieldTest <<<
[01:14:04] : [Step 3/3] [01:14:04] >>> Starting test class: 
KafkaToIgniteLoaderTest <<<
[01:14:04] : [Step 3/3] [01:14:04] >>> Starting test class: 
CdcKafkaReplicationAppsTest <<<
[01:14:04] >>> Starting test class: KafkaToIgniteLoaderTest <<<
[01:55:29] : [Step 3/3] [01:55:29] >>> Starting test class: 
CdcKafkaReplicationTest <<<*
{quote}

It seems, that tests implicitly runs outside of the scope 
{{IgniteCdcTestSuite}}. We should remove such duplication, because it blocks 
testing of CDC extension. Moreover, we should check, that other extensions are 
tested without such duplication.

Links on corresponding TC build:
# [TC1 build 
#350|https://ci.ignite.apache.org/buildConfiguration/IgniteExtensions_Tests_Cdc/6922925?buildTab=overview=false=true=false=true=true]
# [TC2 build 
#285|https://ci2.ignite.apache.org/buildConfiguration/IgniteExtensions_Tests_Cdc/6919480?expandBuildProblemsSection=true=false=true=false=true]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18216) Duplicated CDC test runs on TeamCity

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18216?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-18216:
---
Summary: Duplicated CDC test runs on TeamCity  (was: Duplicated CDC test 
runs)

> Duplicated CDC test runs on TeamCity
> 
>
> Key: IGNITE-18216
> URL: https://issues.apache.org/jira/browse/IGNITE-18216
> Project: Ignite
>  Issue Type: Bug
>  Components: extensions
>Reporter: Ilya Shishkov
>Priority: Major
>  Labels: IEP-59, teamcity
> Attachments: _TESTS_CDC_285.log.zip, _TESTS_CDC_350.log.zip
>
>
> As I see, now CDC Test Suite on both TC instances runs tests twice:
> *Duplication in TC1 build #350:*
> {quote}
> [22:39:32] :   [Step 3/3] [22:39:32] >>> Starting test class: 
> CdcIgniteToIgniteReplicationTest <<<
> [23:00:48] :   [Step 3/3] [23:00:48] >>> Starting test class: 
> ConflictResolverRestartTest <<<
> [23:00:50] :   [Step 3/3] [23:00:50] >>> Starting test class: 
> CacheConflictOperationsTest <<<
> [23:00:51] :   [Step 3/3] [23:00:51] >>> Starting test class: 
> CdcKafkaReplicationAppsTest <<<
> [00:13:57] :   [Step 3/3] [00:13:57] >>> Starting test class: 
> KafkaToIgniteLoaderTest <<<
> [00:13:57] :   [Step 3/3] [00:13:57] >>> Starting test class: 
> CdcKafkaReplicationTest <<<
> *[01:22:21] :  [Step 3/3] [01:22:21] >>> Starting test class: 
> CacheConflictOperationsWithFieldTest <<<
> [01:22:21] :   [Step 3/3] [01:22:21] >>> Starting test class: 
> CacheConflictOperationsTest <<<
> [01:22:22] :   [Step 3/3] [01:22:22] >>> Starting test class: 
> CacheConflictOperationsWithFieldTest <<<
> [01:22:23] :   [Step 3/3] [01:22:23] >>> Starting test class: 
> CdcIgniteToIgniteReplicationTest <<<*
> {quote}
> *Duplication in TC2 build #285:*
> {quote}
> [23:14:52] :   [Step 3/3] [23:14:52] >>> Starting test class: 
> ConflictResolverRestartTest <<<
> [23:14:55] :   [Step 3/3] [23:14:55] >>> Starting test class: 
> CdcIgniteToIgniteReplicationTest <<<
> [23:33:07] :   [Step 3/3] [23:33:07] >>> Starting test class: 
> CacheConflictOperationsTest <<<
> [23:33:08] :   [Step 3/3] [23:33:08] >>> Starting test class: 
> CacheConflictOperationsWithFieldTest <<<
> [23:33:09] :   [Step 3/3] [23:33:09] >>> Starting test class: 
> CdcIgniteToIgniteReplicationTest <<<
> [23:51:14] :   [Step 3/3] [23:51:14] >>> Starting test class: 
> KafkaToIgniteLoaderTest <<<
> [23:51:15] :   [Step 3/3] [23:51:15] >>> Starting test class: 
> CdcKafkaReplicationTest <<<
> [00:32:29] :   [Step 3/3] [00:32:29] >>> Starting test class: 
> CdcKafkaReplicationAppsTest <<<
> *[01:14:03] :  [Step 3/3] [01:14:03] >>> Starting test class: 
> ConflictResolverRestartTest <<<
> [01:14:04] :   [Step 3/3] [01:14:04] >>> Starting test class: 
> CacheConflictOperationsWithFieldTest <<<
> [01:14:04] :   [Step 3/3] [01:14:04] >>> Starting test class: 
> KafkaToIgniteLoaderTest <<<
> [01:14:04] :   [Step 3/3] [01:14:04] >>> Starting test class: 
> CdcKafkaReplicationAppsTest <<<
> [01:14:04] >>> Starting test class: KafkaToIgniteLoaderTest <<<
> [01:55:29] :   [Step 3/3] [01:55:29] >>> Starting test class: 
> CdcKafkaReplicationTest <<<*
> {quote}
> It seems, that tests implicitly runs outside of the scope 
> {{IgniteCdcTestSuite}}. We should remove such duplication, because it blocks 
> testing of CDC extension. Moreover, we should check, that other extensions 
> are tested without such duplication.
> Links on corresponding TC build:
> # [TC1 build 
> #350|https://ci.ignite.apache.org/buildConfiguration/IgniteExtensions_Tests_Cdc/6922925?buildTab=overview=false=true=false=true=true]
> # [TC2 build 
> #285|https://ci2.ignite.apache.org/buildConfiguration/IgniteExtensions_Tests_Cdc/6919480?expandBuildProblemsSection=true=false=true=false=true]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18209) Reduce binary metadata synchronization time for CDC through Kafka

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-18209:
---
Description: 
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each Kafka partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}, which returns immediately [1] when data is present in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will remain blocked 
until new data becomes available or request timeout occurs [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining appliers threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. last Kafka partition polling in this chain will happen at 
least after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}} period. For example 
for default timeout and 16 Kafka partitions _last partition will be consumed 
after 1.5 minutes_. 
# Amount of threads in {{KafkaToIgniteCdcStreamer}} does not make sence.
# Data updates are blocked for Kafka partitions with unhandled update markers.

As I understand possible solutions are
* Hold information about replicated types or get it from {{BinaryContext}}. 
Information about type can be sent with {{META_UPDATE_MARKER}}.
* Any other ways to sync appliers?

As a PoC of approach with {{BinaryContext}} I have prepared PR [2].

Links:
# 
https://kafka.apache.org/27/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#poll-java.time.Duration-
# https://github.com/apache/ignite-extensions/pull/187

  was:
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each Kafka partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}, which returns immediately [1] when data is present in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will remain blocked 
until new data becomes available or request timeout occurs [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining appliers threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. last Kafka partition polling in this chain will happen at 
least after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}} period. For example 
for default timeout and 16 Kafka partitions _last partition will be consumed 
after 1.5 minutes_. 
# Amount of threads in {{KafkaToIgniteCdcStreamer}} does not make sence.
# Data updates are blocked for Kafka partitions with unhandled update markers.

Links:
# 
https://kafka.apache.org/27/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#poll-java.time.Duration-


> Reduce binary metadata synchronization time for CDC through Kafka
> -
>
> Key: IGNITE-18209
> URL: https://issues.apache.org/jira/browse/IGNITE-18209
> Project: Ignite
>  Issue Type: Improvement
>  Components: extensions
>Reporter: Ilya Shishkov
>Priority: Minor
>  Labels: IEP-59, ise
>
> Currently, there is a bottleneck in synchronized method 
> {{KafkaToIgniteMetadataUpdater#updateMetadata}}:
> # 

[jira] [Updated] (IGNITE-18215) .NET: Thin 3.0: LINQ: Group by calculated value

2022-11-21 Thread Pavel Tupitsyn (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18215?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn updated IGNITE-18215:

Description: 
Support calculated values in Group By clauses.
Requires IGNITE-18212 to use aliases.

  was:Support calculated values in Group By clauses.


> .NET: Thin 3.0: LINQ: Group by calculated value
> ---
>
> Key: IGNITE-18215
> URL: https://issues.apache.org/jira/browse/IGNITE-18215
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET, LINQ, ignite-3
> Fix For: 3.0.0-beta2
>
>
> Support calculated values in Group By clauses.
> Requires IGNITE-18212 to use aliases.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18215) .NET: Thin 3.0: LINQ: Group by calculated value

2022-11-21 Thread Pavel Tupitsyn (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18215?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn updated IGNITE-18215:

Description: Support calculated values in Group By clauses.  (was: Support 
queries with groupings in the LINQ provider.)

> .NET: Thin 3.0: LINQ: Group by calculated value
> ---
>
> Key: IGNITE-18215
> URL: https://issues.apache.org/jira/browse/IGNITE-18215
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET, LINQ, ignite-3
> Fix For: 3.0.0-beta2
>
>
> Support calculated values in Group By clauses.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-18215) .NET: Thin 3.0: LINQ: Group by calculated value

2022-11-21 Thread Pavel Tupitsyn (Jira)
Pavel Tupitsyn created IGNITE-18215:
---

 Summary: .NET: Thin 3.0: LINQ: Group by calculated value
 Key: IGNITE-18215
 URL: https://issues.apache.org/jira/browse/IGNITE-18215
 Project: Ignite
  Issue Type: Improvement
  Components: platforms, thin client
Reporter: Pavel Tupitsyn
Assignee: Pavel Tupitsyn
 Fix For: 3.0.0-beta2


Support queries with groupings in the LINQ provider.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Assigned] (IGNITE-18214) [IEP-80] Remove ThreadPool legacy JMX metrics bean

2022-11-21 Thread Nikolay Izhikov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18214?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nikolay Izhikov reassigned IGNITE-18214:


Assignee: Nikolay Izhikov

> [IEP-80] Remove ThreadPool legacy JMX metrics bean
> --
>
> Key: IGNITE-18214
> URL: https://issues.apache.org/jira/browse/IGNITE-18214
> Project: Ignite
>  Issue Type: Sub-task
>Reporter: Nikolay Izhikov
>Assignee: Nikolay Izhikov
>Priority: Minor
>
> Remove ThreadPool legacy JMX metrics bean
>  
> org.apache.ignite.mxbean.ThreadPoolMXBean



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-18214) [IEP-80] Remove ThreadPool legacy JMX metrics bean

2022-11-21 Thread Nikolay Izhikov (Jira)
Nikolay Izhikov created IGNITE-18214:


 Summary: [IEP-80] Remove ThreadPool legacy JMX metrics bean
 Key: IGNITE-18214
 URL: https://issues.apache.org/jira/browse/IGNITE-18214
 Project: Ignite
  Issue Type: Sub-task
Reporter: Nikolay Izhikov


Remove ThreadPool legacy JMX metrics bean

 

org.apache.ignite.mxbean.ThreadPoolMXBean



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Assigned] (IGNITE-13919) Calcite integration. Single group aggregates

2022-11-21 Thread Aleksey Plekhanov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-13919?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Plekhanov reassigned IGNITE-13919:
--

Assignee: Aleksey Plekhanov

> Calcite integration. Single group aggregates
> 
>
> Key: IGNITE-13919
> URL: https://issues.apache.org/jira/browse/IGNITE-13919
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Taras Ledkov
>Assignee: Aleksey Plekhanov
>Priority: Minor
>  Labels: calcite2-required, calcite3-required
>
> Investigate the optimization for single group aggregates,
> e.g.: {{SELECT  FROM }}
> Now the hash based aggregates are used for this case. 
> We can obtain a little performance improvement.
> Also the special cases (e.g.: {{SELECT COUNT() FROM }}) 
> may be optimized to use table/cache size.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-18213) Sql. Make exchange rewindable

2022-11-21 Thread Konstantin Orlov (Jira)
Konstantin Orlov created IGNITE-18213:
-

 Summary: Sql. Make exchange rewindable
 Key: IGNITE-18213
 URL: https://issues.apache.org/jira/browse/IGNITE-18213
 Project: Ignite
  Issue Type: Improvement
  Components: sql
Reporter: Konstantin Orlov


This causes the whole table being send over the network and being stored in the 
spool node.

This could be improved by making the exchange operator rewindable.

Need to introduce new type of message similar to InboxCloseMessage, but for 
'rewind' operation. The message should contain list of correlated variables. 
Outbox, in turn, should accept this message, update correlation variables in 
the local context with the received one, and rewind the local execution tree.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-18212) GROUP BY with alias causes column not found in any table error

2022-11-21 Thread Konstantin Orlov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-18212?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17636768#comment-17636768
 ] 

Konstantin Orlov commented on IGNITE-18212:
---

Support of aliases in GROUP BY clause can be enabled in parser's/validator's 
configuration 
{{org.apache.ignite.internal.sql.engine.sql.IgniteSqlConformance}}.

> GROUP BY with alias causes column not found in any table error
> --
>
> Key: IGNITE-18212
> URL: https://issues.apache.org/jira/browse/IGNITE-18212
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> *Query*
> {code}
> select _T0.VAL as G0 from PUBLIC.TBL_INT8 as _T0 group by G0 order by (G0) asc
> {code}
> *Error*
> {code}
> org.apache.calcite.runtime.CalciteContextException: From line 1, column 59 to 
> line 1, column 60: Column 'G0' not found in any table
>   at 
> java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>  Method)
>   at 
> java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>   at 
> java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>   at 
> java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
>   at 
> org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:505)
>   at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:932)
>   at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:917)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:5362)
>   at 
> org.apache.calcite.sql.validate.DelegatingScope.fullyQualify(DelegatingScope.java:273)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl$Expander.visit(SqlValidatorImpl.java:6511)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl$ExtendedExpander.visit(SqlValidatorImpl.java:6740)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl$ExtendedExpander.visit(SqlValidatorImpl.java:6685)
>   at org.apache.calcite.sql.SqlIdentifier.accept(SqlIdentifier.java:324)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl$Expander.go(SqlValidatorImpl.java:6500)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.expandGroupByOrHavingExpr(SqlValidatorImpl.java:6109)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateGroupClause(SqlValidatorImpl.java:4327)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3701)
>   at 
> org.apache.ignite.internal.sql.engine.prepare.IgniteSqlValidator.validateSelect(IgniteSqlValidator.java:207)
>   at 
> org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:64)
>   at 
> org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:89)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1107)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:1078)
>   at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:248)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:1053)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:759)
>   at 
> org.apache.ignite.internal.sql.engine.prepare.IgnitePlanner.validateAndGetTypeMetadata(IgnitePlanner.java:210)
>   at 
> org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.lambda$prepareQuery$1(PrepareServiceImpl.java:227)
>   at 
> java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
>   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: org.apache.calcite.sql.validate.SqlValidatorException: Column 'G0' 
> not found in any table
>   at 
> java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>  Method)
>   at 
> java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>   at 
> java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>   at 
> java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
>   at 
> 

[jira] [Updated] (IGNITE-18212) GROUP BY with alias causes column not found in any table error

2022-11-21 Thread Pavel Tupitsyn (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18212?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn updated IGNITE-18212:

Description: 
*Query: *
{code}
select _T0.VAL as G0 from PUBLIC.TBL_INT8 as _T0 group by G0 order by (G0) asc
{code}

*Error:*
{code}
org.apache.calcite.runtime.CalciteContextException: From line 1, column 59 to 
line 1, column 60: Column 'G0' not found in any table
at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
 Method)
at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at 
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at 
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at 
org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:505)
at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:932)
at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:917)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:5362)
at 
org.apache.calcite.sql.validate.DelegatingScope.fullyQualify(DelegatingScope.java:273)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl$Expander.visit(SqlValidatorImpl.java:6511)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl$ExtendedExpander.visit(SqlValidatorImpl.java:6740)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl$ExtendedExpander.visit(SqlValidatorImpl.java:6685)
at org.apache.calcite.sql.SqlIdentifier.accept(SqlIdentifier.java:324)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl$Expander.go(SqlValidatorImpl.java:6500)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl.expandGroupByOrHavingExpr(SqlValidatorImpl.java:6109)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateGroupClause(SqlValidatorImpl.java:4327)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3701)
at 
org.apache.ignite.internal.sql.engine.prepare.IgniteSqlValidator.validateSelect(IgniteSqlValidator.java:207)
at 
org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:64)
at 
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:89)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1107)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:1078)
at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:248)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:1053)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:759)
at 
org.apache.ignite.internal.sql.engine.prepare.IgnitePlanner.validateAndGetTypeMetadata(IgnitePlanner.java:210)
at 
org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.lambda$prepareQuery$1(PrepareServiceImpl.java:227)
at 
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
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: org.apache.calcite.sql.validate.SqlValidatorException: Column 'G0' 
not found in any table
at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
 Method)
at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at 
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at 
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at 
org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:505)
at org.apache.calcite.runtime.Resources$ExInst.ex(Resources.java:599)
{code}

> GROUP BY with alias causes column not found in any table error
> --
>
> Key: IGNITE-18212
> URL: https://issues.apache.org/jira/browse/IGNITE-18212
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> *Query: *
> {code}
> select _T0.VAL as G0 from PUBLIC.TBL_INT8 as _T0 group by G0 order by (G0) asc
> {code}
> *Error:*
> {code}
> 

[jira] [Updated] (IGNITE-18212) GROUP BY with alias causes column not found in any table error

2022-11-21 Thread Pavel Tupitsyn (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18212?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn updated IGNITE-18212:

Issue Type: Bug  (was: Improvement)

> GROUP BY with alias causes column not found in any table error
> --
>
> Key: IGNITE-18212
> URL: https://issues.apache.org/jira/browse/IGNITE-18212
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> *Query*
> {code}
> select _T0.VAL as G0 from PUBLIC.TBL_INT8 as _T0 group by G0 order by (G0) asc
> {code}
> *Error*
> {code}
> org.apache.calcite.runtime.CalciteContextException: From line 1, column 59 to 
> line 1, column 60: Column 'G0' not found in any table
>   at 
> java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>  Method)
>   at 
> java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>   at 
> java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>   at 
> java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
>   at 
> org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:505)
>   at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:932)
>   at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:917)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:5362)
>   at 
> org.apache.calcite.sql.validate.DelegatingScope.fullyQualify(DelegatingScope.java:273)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl$Expander.visit(SqlValidatorImpl.java:6511)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl$ExtendedExpander.visit(SqlValidatorImpl.java:6740)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl$ExtendedExpander.visit(SqlValidatorImpl.java:6685)
>   at org.apache.calcite.sql.SqlIdentifier.accept(SqlIdentifier.java:324)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl$Expander.go(SqlValidatorImpl.java:6500)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.expandGroupByOrHavingExpr(SqlValidatorImpl.java:6109)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateGroupClause(SqlValidatorImpl.java:4327)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3701)
>   at 
> org.apache.ignite.internal.sql.engine.prepare.IgniteSqlValidator.validateSelect(IgniteSqlValidator.java:207)
>   at 
> org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:64)
>   at 
> org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:89)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1107)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:1078)
>   at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:248)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:1053)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:759)
>   at 
> org.apache.ignite.internal.sql.engine.prepare.IgnitePlanner.validateAndGetTypeMetadata(IgnitePlanner.java:210)
>   at 
> org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.lambda$prepareQuery$1(PrepareServiceImpl.java:227)
>   at 
> java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
>   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: org.apache.calcite.sql.validate.SqlValidatorException: Column 'G0' 
> not found in any table
>   at 
> java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>  Method)
>   at 
> java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>   at 
> java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>   at 
> java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
>   at 
> org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:505)
>   at org.apache.calcite.runtime.Resources$ExInst.ex(Resources.java:599)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18212) GROUP BY with alias causes column not found in any table error

2022-11-21 Thread Pavel Tupitsyn (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18212?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn updated IGNITE-18212:

Description: 
*Query*
{code}
select _T0.VAL as G0 from PUBLIC.TBL_INT8 as _T0 group by G0 order by (G0) asc
{code}

*Error*
{code}
org.apache.calcite.runtime.CalciteContextException: From line 1, column 59 to 
line 1, column 60: Column 'G0' not found in any table
at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
 Method)
at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at 
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at 
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at 
org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:505)
at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:932)
at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:917)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:5362)
at 
org.apache.calcite.sql.validate.DelegatingScope.fullyQualify(DelegatingScope.java:273)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl$Expander.visit(SqlValidatorImpl.java:6511)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl$ExtendedExpander.visit(SqlValidatorImpl.java:6740)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl$ExtendedExpander.visit(SqlValidatorImpl.java:6685)
at org.apache.calcite.sql.SqlIdentifier.accept(SqlIdentifier.java:324)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl$Expander.go(SqlValidatorImpl.java:6500)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl.expandGroupByOrHavingExpr(SqlValidatorImpl.java:6109)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateGroupClause(SqlValidatorImpl.java:4327)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3701)
at 
org.apache.ignite.internal.sql.engine.prepare.IgniteSqlValidator.validateSelect(IgniteSqlValidator.java:207)
at 
org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:64)
at 
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:89)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1107)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:1078)
at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:248)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:1053)
at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:759)
at 
org.apache.ignite.internal.sql.engine.prepare.IgnitePlanner.validateAndGetTypeMetadata(IgnitePlanner.java:210)
at 
org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.lambda$prepareQuery$1(PrepareServiceImpl.java:227)
at 
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
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: org.apache.calcite.sql.validate.SqlValidatorException: Column 'G0' 
not found in any table
at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
 Method)
at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at 
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at 
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at 
org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:505)
at org.apache.calcite.runtime.Resources$ExInst.ex(Resources.java:599)
{code}

  was:
*Query: *
{code}
select _T0.VAL as G0 from PUBLIC.TBL_INT8 as _T0 group by G0 order by (G0) asc
{code}

*Error:*
{code}
org.apache.calcite.runtime.CalciteContextException: From line 1, column 59 to 
line 1, column 60: Column 'G0' not found in any table
at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
 Method)
at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at 
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at 

[jira] [Updated] (IGNITE-18212) GROUP BY with alias causes column not found in any table error

2022-11-21 Thread Pavel Tupitsyn (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18212?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn updated IGNITE-18212:

Fix Version/s: 3.0.0-beta2

> GROUP BY with alias causes column not found in any table error
> --
>
> Key: IGNITE-18212
> URL: https://issues.apache.org/jira/browse/IGNITE-18212
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-18212) GROUP BY with alias causes column not found in any table error

2022-11-21 Thread Pavel Tupitsyn (Jira)
Pavel Tupitsyn created IGNITE-18212:
---

 Summary: GROUP BY with alias causes column not found in any table 
error
 Key: IGNITE-18212
 URL: https://issues.apache.org/jira/browse/IGNITE-18212
 Project: Ignite
  Issue Type: Improvement
  Components: sql
Reporter: Pavel Tupitsyn






--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18209) Reduce binary metadata synchronization time for CDC through Kafka

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-18209:
---
Description: 
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each Kafka partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}, which returns immediately [1] when data is present in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will remain blocked 
until new data becomes available or request timeout occurs [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining appliers threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. last Kafka partition polling in this chain will happen at 
least after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}} period. For example 
for default timeout and 16 Kafka partitions _last partition will be consumed 
after 1.5 minutes_. 
# Amount of threads in {{KafkaToIgniteCdcStreamer}} does not make sence.
# Data updates are blocked for Kafka partitions with unhandled update markers.

Links:
# 
https://kafka.apache.org/27/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#poll-java.time.Duration-

  was:
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each Kafka partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will remain blocked 
until new data becomes available or request timeout occurs [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining appliers threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. last Kafka partition polling in this chain will happen at 
least after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}} period. For example 
for default timeout and 16 Kafka partitions _last partition will be consumed 
after 1.5 minutes_. 
# Amount of threads in {{KafkaToIgniteCdcStreamer}} does not make sence.
# Data updates are blocked for Kafka partitions with unhandled update markers.

Links:
# 
https://kafka.apache.org/27/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#poll-java.time.Duration-


> Reduce binary metadata synchronization time for CDC through Kafka
> -
>
> Key: IGNITE-18209
> URL: https://issues.apache.org/jira/browse/IGNITE-18209
> Project: Ignite
>  Issue Type: Improvement
>  Components: extensions
>Reporter: Ilya Shishkov
>Priority: Minor
>  Labels: IEP-59, ise
>
> Currently, there is a bottleneck in synchronized method 
> {{KafkaToIgniteMetadataUpdater#updateMetadata}}:
> # {{KafkaToIgniteCdcStreamer}} contains multiple 
> {{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
> {{KafkaToIgniteMetadataUpdater}}.
> # All appliers handle corrsponding partitions consequently.
> # {{META_UPDATE_MARKER}} is sent twice to each Kafka partition of event 
> topic: firstly, in case of type mappings updates, 

[jira] [Updated] (IGNITE-18209) Reduce binary metadata synchronization time for CDC through Kafka

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-18209:
---
Description: 
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each Kafka partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will remain blocked 
until new data becomes available or request timeout occurs [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining appliers threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. last Kafka partition polling in this chain will happen at 
least after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}} period. For example 
for default timeout and 16 Kafka partitions _last partition will be consumed 
after 1.5 minutes_. 
# Amount of threads in {{KafkaToIgniteCdcStreamer}} does not make sence.
# Data updates are blocked for Kafka partitions with unhandled update markers.

Links:
# 
https://kafka.apache.org/27/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#poll-java.time.Duration-

  was:
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will remain blocked 
until new data becomes available or request timeout occurs [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining appliers threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. last partition polling in this chain will happen at least 
after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}} period. For example for 
default timeout and 16 partitions _last partition will be consumed after 1.5 
minutes_. 
# Amount of threads in {{KafkaToIgniteCdcStreamer}} does not make sence.
# Data updates are in fact blocked for partitions with unhandled update markers.

Links:
# 
https://kafka.apache.org/27/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#poll-java.time.Duration-


> Reduce binary metadata synchronization time for CDC through Kafka
> -
>
> Key: IGNITE-18209
> URL: https://issues.apache.org/jira/browse/IGNITE-18209
> Project: Ignite
>  Issue Type: Improvement
>  Components: extensions
>Reporter: Ilya Shishkov
>Priority: Minor
>  Labels: IEP-59, ise
>
> Currently, there is a bottleneck in synchronized method 
> {{KafkaToIgniteMetadataUpdater#updateMetadata}}:
> # {{KafkaToIgniteCdcStreamer}} contains multiple 
> {{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
> {{KafkaToIgniteMetadataUpdater}}.
> # All appliers handle corrsponding partitions consequently.
> # {{META_UPDATE_MARKER}} is sent twice to each Kafka partition of event 
> topic: firstly, in case of type mappings updates, 

[jira] [Updated] (IGNITE-18209) Reduce binary metadata synchronization time for CDC through Kafka

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-18209:
---
Description: 
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will remain blocked 
until new data becomes available or request timeout occurs [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining appliers threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. last partition polling in this chain will happen at least 
after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}} period. For example for 
default timeout and 16 partitions _last partition will be consumed after 1.5 
minutes_. 
# Amount of threads in {{KafkaToIgniteCdcStreamer}} does not make sence.
# Data updates are in fact blocked for partitions with unhandled update markers.

Links:
# 
https://kafka.apache.org/27/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#poll-java.time.Duration-

  was:
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will remain blocked 
until new data becomes available or request timeout occurs [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining appliers threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. last partition polling in this chain will happen at least 
after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}} period. For example for 
default timeout and 16 partitions _last partition will be consumed after 1.5 
minutes_. 
# Amount of threads in {{KafkaToIgniteCdcStreamer}} does not make sence.

Links:
# 
https://kafka.apache.org/27/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#poll-java.time.Duration-


> Reduce binary metadata synchronization time for CDC through Kafka
> -
>
> Key: IGNITE-18209
> URL: https://issues.apache.org/jira/browse/IGNITE-18209
> Project: Ignite
>  Issue Type: Improvement
>  Components: extensions
>Reporter: Ilya Shishkov
>Priority: Minor
>  Labels: IEP-59, ise
>
> Currently, there is a bottleneck in synchronized method 
> {{KafkaToIgniteMetadataUpdater#updateMetadata}}:
> # {{KafkaToIgniteCdcStreamer}} contains multiple 
> {{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
> {{KafkaToIgniteMetadataUpdater}}.
> # All appliers handle corrsponding partitions consequently.
> # {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
> firstly, in case of type mappings updates, secondly, in case of binary types 
> update.
> # When first {{KafkaToIgniteCdcStreamerApplier}} meets 

[jira] [Updated] (IGNITE-18209) Reduce binary metadata synchronization time for CDC through Kafka

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-18209:
---
Description: 
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will remain blocked 
until new data becomes available or request timeout occurs [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining appliers threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. last partition polling in this chain will happen at least 
after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}} period. For example for 
default timeout and 16 partitions _last partition will be consumed after 1.5 
minutes_. 
# Amount of threads in {{KafkaToIgniteCdcStreamer}} does not make sence.

Links:
# 
https://kafka.apache.org/27/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#poll-java.time.Duration-

  was:
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will remain blocked 
until new data becomes available or request timeout occurs [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining appliers threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. last partition polling in this chain will happen after 
{{(partitionsCount x 2 - 1) x kafkaReqTimeout}}. For example for default 
timeout and 16 partitions _last partition will be consumed after approximately 
1.5 minutes_. 
# Amount of threads in {{KafkaToIgniteCdcStreamer}} does not make sence.

Links:
# 
https://kafka.apache.org/27/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#poll-java.time.Duration-


> Reduce binary metadata synchronization time for CDC through Kafka
> -
>
> Key: IGNITE-18209
> URL: https://issues.apache.org/jira/browse/IGNITE-18209
> Project: Ignite
>  Issue Type: Improvement
>  Components: extensions
>Reporter: Ilya Shishkov
>Priority: Minor
>  Labels: IEP-59, ise
>
> Currently, there is a bottleneck in synchronized method 
> {{KafkaToIgniteMetadataUpdater#updateMetadata}}:
> # {{KafkaToIgniteCdcStreamer}} contains multiple 
> {{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
> {{KafkaToIgniteMetadataUpdater}}.
> # All appliers handle corrsponding partitions consequently.
> # {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
> firstly, in case of type mappings updates, secondly, in case of binary types 
> update.
> # When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
> it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which 

[jira] [Updated] (IGNITE-18209) Reduce binary metadata synchronization time for CDC through Kafka

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-18209:
---
Description: 
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will remain blocked 
until new data becomes available or request timeout occurs [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining appliers threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. last partition polling in this chain will happen after 
{{(partitionsCount x 2 - 1) x kafkaReqTimeout}}. For example for default 
timeout and 16 partitions _last partition will be consumed after approximately 
1.5 minutes_. 
# Amount of threads in {{KafkaToIgniteCdcStreamer}} does not make sence.

Links:
# 
https://kafka.apache.org/27/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#poll-java.time.Duration-

  was:
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will remain blocked 
until new data becomes available or request timeout occurs [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining appliers threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. last partition polling in this chain will happen after 
{{(partitionsCount x 2 - 1) x kafkaReqTimeout}}. For example for default 
timeout and 16 partitions _last partition will be consumed after approximately 
1.5 minutes_. 
# Amount of threads in {{KafkaToIgniteCdcStreamer}} does not make sence.


> Reduce binary metadata synchronization time for CDC through Kafka
> -
>
> Key: IGNITE-18209
> URL: https://issues.apache.org/jira/browse/IGNITE-18209
> Project: Ignite
>  Issue Type: Improvement
>  Components: extensions
>Reporter: Ilya Shishkov
>Priority: Minor
>  Labels: IEP-59, ise
>
> Currently, there is a bottleneck in synchronized method 
> {{KafkaToIgniteMetadataUpdater#updateMetadata}}:
> # {{KafkaToIgniteCdcStreamer}} contains multiple 
> {{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
> {{KafkaToIgniteMetadataUpdater}}.
> # All appliers handle corrsponding partitions consequently.
> # {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
> firstly, in case of type mappings updates, secondly, in case of binary types 
> update.
> # When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
> it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
> {{KafkaConsumer#poll}}.
> # {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
> metadata 

[jira] [Updated] (IGNITE-18211) Sql. Adjust Affinity distribution to the new colocation rules

2022-11-21 Thread Konstantin Orlov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18211?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konstantin Orlov updated IGNITE-18211:
--
Ignite Flags:   (was: Release Notes Required)

> Sql. Adjust Affinity distribution to the new colocation rules
> -
>
> Key: IGNITE-18211
> URL: https://issues.apache.org/jira/browse/IGNITE-18211
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Konstantin Orlov
>Priority: Major
>  Labels: ignite-3
>
> Need to adjust affinity function to be prepared to upcoming concept of 
> [Distribution Zones|https://issues.apache.org/jira/browse/IGNITE-17924].
> Following changes are required:
> * AffinityFunction has to be updated with id (name) of the distribution zone
> * (De-)Serialization of the DistributionFunction need to be adjusted as well
> * Integration with table
> Besides, it looks like the following condition is no more valid, thus should 
> be removed: 
> {code:java}
> // 
> org.apache.ignite.internal.sql.engine.trait.TraitUtils#convertDistribution
> if (toTrait.function().affinity() && toTrait.getKeys().size() > 1) {
> return null;
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-18211) Sql. Adjust Affinity distribution to the new colocation rules

2022-11-21 Thread Konstantin Orlov (Jira)
Konstantin Orlov created IGNITE-18211:
-

 Summary: Sql. Adjust Affinity distribution to the new colocation 
rules
 Key: IGNITE-18211
 URL: https://issues.apache.org/jira/browse/IGNITE-18211
 Project: Ignite
  Issue Type: Improvement
  Components: sql
Reporter: Konstantin Orlov


Need to adjust affinity function to be prepared to upcoming concept of 
[Distribution Zones|https://issues.apache.org/jira/browse/IGNITE-17924].

Following changes are required:
* AffinityFunction has to be updated with id (name) of the distribution zone
* (De-)Serialization of the DistributionFunction need to be adjusted as well
* Integration with table

Besides, it looks like the following condition is no more valid, thus should be 
removed: 

{code:java}
// 
org.apache.ignite.internal.sql.engine.trait.TraitUtils#convertDistribution

if (toTrait.function().affinity() && toTrait.getKeys().size() > 1) {
return null;
}
{code}




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18211) Sql. Adjust Affinity distribution to the new colocation rules

2022-11-21 Thread Konstantin Orlov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18211?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konstantin Orlov updated IGNITE-18211:
--
Ignite Flags: Release Notes Required  (was: Docs Required,Release Notes 
Required)

> Sql. Adjust Affinity distribution to the new colocation rules
> -
>
> Key: IGNITE-18211
> URL: https://issues.apache.org/jira/browse/IGNITE-18211
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Konstantin Orlov
>Priority: Major
>  Labels: ignite-3
>
> Need to adjust affinity function to be prepared to upcoming concept of 
> [Distribution Zones|https://issues.apache.org/jira/browse/IGNITE-17924].
> Following changes are required:
> * AffinityFunction has to be updated with id (name) of the distribution zone
> * (De-)Serialization of the DistributionFunction need to be adjusted as well
> * Integration with table
> Besides, it looks like the following condition is no more valid, thus should 
> be removed: 
> {code:java}
> // 
> org.apache.ignite.internal.sql.engine.trait.TraitUtils#convertDistribution
> if (toTrait.function().affinity() && toTrait.getKeys().size() > 1) {
> return null;
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18209) Reduce binary metadata synchronization time for CDC through Kafka

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-18209:
---
Description: 
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will remain blocked 
until new data becomes available or request timeout occurs [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining appliers threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. last partition polling in this chain will happen after 
{{(partitionsCount x 2 - 1) x kafkaReqTimeout}}. For example for default 
timeout and 16 partitions _last partition will be consumed after approximately 
1.5 minutes_. 
# Amount of threads in {{KafkaToIgniteCdcStreamer}} does not make sence.

  was:
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will remain blocked 
until new data becomes available or request timeout occurs [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining appliers threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. last partition polling in this chain will happen after 
{{(partitionsCount x 2 - 1) x kafkaReqTimeout}}. For example for default 
timeout and 16 partitions _last partition will be consumed after approximately 
1.5 minutes_. Amount of thread does not make sence.


> Reduce binary metadata synchronization time for CDC through Kafka
> -
>
> Key: IGNITE-18209
> URL: https://issues.apache.org/jira/browse/IGNITE-18209
> Project: Ignite
>  Issue Type: Improvement
>  Components: extensions
>Reporter: Ilya Shishkov
>Priority: Minor
>  Labels: IEP-59, ise
>
> Currently, there is a bottleneck in synchronized method 
> {{KafkaToIgniteMetadataUpdater#updateMetadata}}:
> # {{KafkaToIgniteCdcStreamer}} contains multiple 
> {{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
> {{KafkaToIgniteMetadataUpdater}}.
> # All appliers handle corrsponding partitions consequently.
> # {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
> firstly, in case of type mappings updates, secondly, in case of binary types 
> update.
> # When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
> it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
> {{KafkaConsumer#poll}}.
> # {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
> metadata topic. If there are few binary types and mappings to update, some 
> {{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
> metadata topic.

[jira] [Updated] (IGNITE-18191) .NET: Add specific Java launch arguments for Java 15+

2022-11-21 Thread Pavel Tupitsyn (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18191?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn updated IGNITE-18191:

Release Note: .NET: Fixed startup on Java 15+.

> .NET: Add specific Java launch arguments for Java 15+
> -
>
> Key: IGNITE-18191
> URL: https://issues.apache.org/jira/browse/IGNITE-18191
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Andrey Khitrin
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET
> Fix For: 2.15
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> Looks like .Net platform and examples do not support recent versions of Java. 
> It requires a special set of JVM arguments to run AI on Java 15+ (see 
> [jvmdefaults.sh|https://github.com/apache/ignite/blob/master/bin/include/jvmdefaults.sh]),
>  but .Net runner only contains checks and arguments for Java 9+ (see 
> [Jmv.cs|https://github.com/apache/ignite/blob/master/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/Jni/Jvm.cs]).
>  Looks like new arguments should be added here.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18209) Reduce binary metadata synchronization time for CDC through Kafka

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-18209:
---
Description: 
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will remain blocked 
until new data becomes available or request timeout occurs [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining appliers threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. last partition polling in this chain will happen after 
{{(partitionsCount x 2 - 1) x kafkaReqTimeout}}. For example for default 
timeout and 16 partitions _last partition will be consumed after approximately 
1.5 minutes_. Amount of thread does not make sence.

  was:
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will remain blocked 
until new data becomes available or request timeout occurs [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining appliers threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. part last partition update in this chain will happen 
after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}}. For example for default 
timeout and 16 partitions _last partition will be consumed after approximately 
1.5 minutes_. Amount of thread does not make sence.


> Reduce binary metadata synchronization time for CDC through Kafka
> -
>
> Key: IGNITE-18209
> URL: https://issues.apache.org/jira/browse/IGNITE-18209
> Project: Ignite
>  Issue Type: Improvement
>  Components: extensions
>Reporter: Ilya Shishkov
>Priority: Minor
>  Labels: IEP-59, ise
>
> Currently, there is a bottleneck in synchronized method 
> {{KafkaToIgniteMetadataUpdater#updateMetadata}}:
> # {{KafkaToIgniteCdcStreamer}} contains multiple 
> {{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
> {{KafkaToIgniteMetadataUpdater}}.
> # All appliers handle corrsponding partitions consequently.
> # {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
> firstly, in case of type mappings updates, secondly, in case of binary types 
> update.
> # When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
> it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
> {{KafkaConsumer#poll}}.
> # {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
> metadata topic. If there are few binary types and mappings to update, some 
> {{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
> metadata topic.
> # All other threads of all 

[jira] [Updated] (IGNITE-18191) .NET: Add specific Java launch arguments for Java 15+

2022-11-21 Thread Pavel Tupitsyn (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18191?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn updated IGNITE-18191:

Ignite Flags: Release Notes Required  (was: Docs Required,Release Notes 
Required)

> .NET: Add specific Java launch arguments for Java 15+
> -
>
> Key: IGNITE-18191
> URL: https://issues.apache.org/jira/browse/IGNITE-18191
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Andrey Khitrin
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET
> Fix For: 2.15
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> Looks like .Net platform and examples do not support recent versions of Java. 
> It requires a special set of JVM arguments to run AI on Java 15+ (see 
> [jvmdefaults.sh|https://github.com/apache/ignite/blob/master/bin/include/jvmdefaults.sh]),
>  but .Net runner only contains checks and arguments for Java 9+ (see 
> [Jmv.cs|https://github.com/apache/ignite/blob/master/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/Jni/Jvm.cs]).
>  Looks like new arguments should be added here.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18209) Reduce binary metadata synchronization time for CDC through Kafka

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-18209:
---
Description: 
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will remain blocked 
until new data becomes available or request timeout occurs [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining appliers threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. part last partition update in this chain will happen 
after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}}. For example for default 
timeout and 16 partitions _last partition will be consumed after approximately 
1.5 minutes_. Amount of thread does not make sence.

  was:
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will remain blocked 
until new data becomes available or request timeout occurs [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining applier threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. part last partition update in this chain will happen 
after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}}. For example for default 
timeout and 16 partitions _last partition will be consumed after approximately 
1.5 minutes_. Amount of thread does not make sence.


> Reduce binary metadata synchronization time for CDC through Kafka
> -
>
> Key: IGNITE-18209
> URL: https://issues.apache.org/jira/browse/IGNITE-18209
> Project: Ignite
>  Issue Type: Improvement
>  Components: extensions
>Reporter: Ilya Shishkov
>Priority: Minor
>  Labels: IEP-59, ise
>
> Currently, there is a bottleneck in synchronized method 
> {{KafkaToIgniteMetadataUpdater#updateMetadata}}:
> # {{KafkaToIgniteCdcStreamer}} contains multiple 
> {{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
> {{KafkaToIgniteMetadataUpdater}}.
> # All appliers handle corrsponding partitions consequently.
> # {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
> firstly, in case of type mappings updates, secondly, in case of binary types 
> update.
> # When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
> it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
> {{KafkaConsumer#poll}}.
> # {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
> metadata topic. If there are few binary types and mappings to update, some 
> {{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
> metadata topic.
> # All other threads of all 

[jira] [Updated] (IGNITE-18209) Reduce binary metadata synchronization time for CDC through Kafka

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-18209:
---
Description: 
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will remain blocked 
until new data becomes available or request timeout occurs [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining applier threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. part last partition update in this chain will happen 
after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}}. For example for default 
timeout and 16 partitions _last partition will be consumed after approximately 
1.5 minutes_. Amount of thread does not make sence.

  was:
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will be blocked until 
new data will become available or request timeout will occur [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining applier threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. part last partition update in this chain will happen 
after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}}. For example for default 
timeout and 16 partitions _last partition will be consumed after approximately 
1.5 minutes_. Amount of thread does not make sence.


> Reduce binary metadata synchronization time for CDC through Kafka
> -
>
> Key: IGNITE-18209
> URL: https://issues.apache.org/jira/browse/IGNITE-18209
> Project: Ignite
>  Issue Type: Improvement
>  Components: extensions
>Reporter: Ilya Shishkov
>Priority: Minor
>  Labels: IEP-59, ise
>
> Currently, there is a bottleneck in synchronized method 
> {{KafkaToIgniteMetadataUpdater#updateMetadata}}:
> # {{KafkaToIgniteCdcStreamer}} contains multiple 
> {{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
> {{KafkaToIgniteMetadataUpdater}}.
> # All appliers handle corrsponding partitions consequently.
> # {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
> firstly, in case of type mappings updates, secondly, in case of binary types 
> update.
> # When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
> it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
> {{KafkaConsumer#poll}}.
> # {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
> metadata topic. If there are few binary types and mappings to update, some 
> {{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
> metadata topic.
> # All other threads of 

[jira] [Updated] (IGNITE-18209) Reduce binary metadata synchronization time for CDC through Kafka

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-18209:
---
Description: 
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} from empty metadata topic, which will be blocked until 
new data will become available or request timeout will occur [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining applier threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. part last partition update in this chain will happen 
after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}}. For example for default 
timeout and 16 partitions _last partition will be consumed after approximately 
1.5 minutes_. Amount of thread does not make sence.

  was:
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} for empty metadata topic, which will be blocked until 
new data will become available or request timeout will occur [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining applier threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. part last partition update in this chain will happen 
after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}}. For example for default 
timeout and 16 partitions _last partition will be consumed after approximately 
1.5 minutes_. Amount of thread does not make sence.


> Reduce binary metadata synchronization time for CDC through Kafka
> -
>
> Key: IGNITE-18209
> URL: https://issues.apache.org/jira/browse/IGNITE-18209
> Project: Ignite
>  Issue Type: Improvement
>  Components: extensions
>Reporter: Ilya Shishkov
>Priority: Minor
>  Labels: IEP-59, ise
>
> Currently, there is a bottleneck in synchronized method 
> {{KafkaToIgniteMetadataUpdater#updateMetadata}}:
> # {{KafkaToIgniteCdcStreamer}} contains multiple 
> {{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
> {{KafkaToIgniteMetadataUpdater}}.
> # All appliers handle corrsponding partitions consequently.
> # {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
> firstly, in case of type mappings updates, secondly, in case of binary types 
> update.
> # When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
> it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
> {{KafkaConsumer#poll}}.
> # {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
> metadata topic. If there are few binary types and mappings to update, some 
> {{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
> metadata topic.
> # All other threads 

[jira] [Commented] (IGNITE-17708) Add specific java launch arguments for Java15+ in Ignition.cpp

2022-11-21 Thread Pavel Tupitsyn (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-17708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17636739#comment-17636739
 ] 

Pavel Tupitsyn commented on IGNITE-17708:
-

[~isapego] looks good to me.

> Add specific java launch arguments for Java15+ in Ignition.cpp
> --
>
> Key: IGNITE-17708
> URL: https://issues.apache.org/jira/browse/IGNITE-17708
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Roman Puchkovskiy
>Assignee: Igor Sapego
>Priority: Major
> Fix For: 2.15
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> In a few places (like FeatureChecker), we have same logic of adding specific 
> java command line keys (like add-opens). In all cases, keys for Java 15+ is 
> different from keys for Java 9-14. But in Ignition.cpp, only Java 9+ is 
> handled. Probably, handling for Java 15+ should be added.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18209) Reduce binary metadata synchronization time for CDC through Kafka

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-18209:
---
Description: 
Currently, there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} for empty metadata topic, which will be blocked until 
new data will become available or request timeout will occur [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining applier threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. part last partition update in this chain will happen 
after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}}. For example for default 
timeout and 16 partitions _last partition will be consumed after approximately 
1.5 minutes_. Amount of thread does not make sence.

  was:
Now there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} for empty metadata topic, which will be blocked until 
new data will become available or request timeout will occur [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining applier threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. part last partition update in this chain will happen 
after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}}. For example for default 
timeout and 16 partitions _last partition will be consumed after approximately 
1.5 minutes_. Amount of thread does not make sence.


> Reduce binary metadata synchronization time for CDC through Kafka
> -
>
> Key: IGNITE-18209
> URL: https://issues.apache.org/jira/browse/IGNITE-18209
> Project: Ignite
>  Issue Type: Improvement
>  Components: extensions
>Reporter: Ilya Shishkov
>Priority: Minor
>  Labels: IEP-59, ise
>
> Currently, there is a bottleneck in synchronized method 
> {{KafkaToIgniteMetadataUpdater#updateMetadata}}:
> # {{KafkaToIgniteCdcStreamer}} contains multiple 
> {{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
> {{KafkaToIgniteMetadataUpdater}}.
> # All appliers handle corrsponding partitions consequently.
> # {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
> firstly, in case of type mappings updates, secondly, in case of binary types 
> update.
> # When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
> it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
> {{KafkaConsumer#poll}}.
> # {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
> metadata topic. If there are few binary types and mappings to update, some 
> {{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
> metadata topic.
> # All other threads of all 

[jira] [Updated] (IGNITE-18209) Reduce binary metadata synchronization time for CDC through Kafka

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-18209:
---
Description: 
Now there is a bottleneck in synchronized method 
{{KafkaToIgniteMetadataUpdater#updateMetadata}}:
# {{KafkaToIgniteCdcStreamer}} contains multiple 
{{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
{{KafkaToIgniteMetadataUpdater}}.
# All appliers handle corrsponding partitions consequently.
# {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
firstly, in case of type mappings updates, secondly, in case of binary types 
update.
# When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
{{KafkaConsumer#poll}}.
# {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
metadata topic. If there are few binary types and mappings to update, some 
{{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
metadata topic.
# All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
{{KafkaConsumer#poll}} for empty metadata topic, which will be blocked until 
new data will become available or request timeout will occur [1].
# Because of {{synchronized}} access to 
{{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
{{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
will block remaining applier threads for {{kafkaReqTimeout}} period (if 
metadata topic remains empty).
# The last call, i.e. part last partition update in this chain will happen 
after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}}. For example for default 
timeout and 16 partitions _last partition will be consumed after approximately 
1.5 minutes_. Amount of thread does not make sence.

> Reduce binary metadata synchronization time for CDC through Kafka
> -
>
> Key: IGNITE-18209
> URL: https://issues.apache.org/jira/browse/IGNITE-18209
> Project: Ignite
>  Issue Type: Improvement
>  Components: extensions
>Reporter: Ilya Shishkov
>Priority: Minor
>  Labels: IEP-59, ise
>
> Now there is a bottleneck in synchronized method 
> {{KafkaToIgniteMetadataUpdater#updateMetadata}}:
> # {{KafkaToIgniteCdcStreamer}} contains multiple 
> {{KafkaToIgniteCdcStreamerApplier}} which shares _single_ 
> {{KafkaToIgniteMetadataUpdater}}.
> # All appliers handle corrsponding partitions consequently.
> # {{META_UPDATE_MARKER}} is sent twice to each partition of event topic: 
> firstly, in case of type mappings updates, secondly, in case of binary types 
> update.
> # When first {{KafkaToIgniteCdcStreamerApplier}} meets {{META_UPDATE_MARKER}} 
> it calls {{KafkaToIgniteMetadataUpdater#updateMetadata}} which in turn calls 
> {{KafkaConsumer#poll}}.
> # {{KafkaConsumer#poll}} returns immediately [1] when there are data in 
> metadata topic. If there are few binary types and mappings to update, some 
> {{KafkaToIgniteCdcStreamerApplier}} thread will consume all entries from 
> metadata topic.
> # All other threads of all {{KafkaToIgniteCdcStreamerApplier}} will call 
> {{KafkaConsumer#poll}} for empty metadata topic, which will be blocked until 
> new data will become available or request timeout will occur [1].
> # Because of {{synchronized}} access to 
> {{KafkaToIgniteMetadataUpdater#updateMetadata}} all threads of all 
> {{KafkaToIgniteCdcStreamerApplier}} will form a sequence of calls. Each call 
> will block remaining applier threads for {{kafkaReqTimeout}} period (if 
> metadata topic remains empty).
> # The last call, i.e. part last partition update in this chain will happen 
> after {{(partitionsCount x 2 - 1) x kafkaReqTimeout}}. For example for 
> default timeout and 16 partitions _last partition will be consumed after 
> approximately 1.5 minutes_. Amount of thread does not make sence.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Assigned] (IGNITE-18156) Sql. Extend SQL grammar with CREATE/DROP ZONE statement

2022-11-21 Thread Pavel Pereslegin (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18156?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Pereslegin reassigned IGNITE-18156:
-

Assignee: Pavel Pereslegin

> Sql. Extend SQL grammar with CREATE/DROP ZONE statement
> ---
>
> Key: IGNITE-18156
> URL: https://issues.apache.org/jira/browse/IGNITE-18156
> Project: Ignite
>  Issue Type: Sub-task
>  Components: sql
>Reporter: Yury Gerzhedovich
>Assignee: Pavel Pereslegin
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> We need to provide an ability to configure distribution zones  by DDL 
> commands.
> Let's extend SQL grammar with following syntax:
> {code:java}
> CREATE ZONE
>     { fq_zone_name | simple_zone_name }
>     [WITH
>         [
>              |
>             DATA_NODES_FILTER filter |
>             (, DATA_NODES_FILTER filter)
>         ],
>         [PARTITIONS = partitions],
>         [REPLICAS = replicas],
>         [AFFINITY_FUNCTION = function]
>     ]
> [;]
>  
>  ::= [
>     DATA_NODES_AUTO_ADJUST_SCALE_UP = scale_up_value |
>     DATA_NODES_AUTO_ADJUST_SCALE_DOWN = scale_down_value |
>     (DATA_NODES_AUTO_ADJUST_SCALE_UP = scale_up_value & 
> DATA_NODES_AUTO_ADJUST_SCALE_DOWN = scale_down_value) | 
> DATA_NODES_AUTO_ADJUST  = auto_adjust_value
> ]{code}
> {code:java}
> DROP ZONE {fq_zone_name | simple_zone_name}{code}
> As a result the parser should be able to parse mentioned statements and 
> provide a valid AST representing those statements.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-17708) Add specific java launch arguments for Java15+ in Ignition.cpp

2022-11-21 Thread Ignite TC Bot (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-17708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17636722#comment-17636722
 ] 

Ignite TC Bot commented on IGNITE-17708:


{panel:title=Branch: [pull/10388/head] Base: [master] : Possible Blockers 
(1)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}
{color:#d04437}Platform C++ CMake (Win x64 / Debug){color} [[tests 
1|https://ci.ignite.apache.org/viewLog.html?buildId=6922567]]
* IgniteThinClientTest: SslTestSuite: SslConnectionErrorNonExistingKey - 
History for base branch is absent.

{panel}
{panel:title=Branch: [pull/10388/head] Base: [master] : New Tests 
(1064)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#8b}Platform C++ CMake (Win x64 / Debug){color} [[tests 
1064|https://ci.ignite.apache.org/viewLog.html?buildId=6922567]]
* {color:#013220}IgniteThinClientTest: SqlFieldsQueryTestSuite: SelectTwoValues 
- PASSED{color}
* {color:#013220}IgniteOdbcTest: SqlNumericFunctionTestSuite: 
TestNumericFunctionFloor - PASSED{color}
* {color:#013220}IgniteThinClientTest: SqlFieldsQueryTestSuite: 
SelectSingleValue - PASSED{color}
* {color:#013220}IgniteOdbcTest: SqlNumericFunctionTestSuite: 
TestNumericFunctionLog - PASSED{color}
* {color:#013220}IgniteThinClientTest: SqlFieldsQueryTestSuite: 
CreateTableInsertSelect - PASSED{color}
* {color:#013220}IgniteOdbcTest: SqlDateTimeFunctionTestSuite: TestCurrentDate 
- PASSED{color}
* {color:#013220}IgniteThinClientTest: SqlFieldsQueryTestSuite: 
SelectTwoValuesInDifferentOrder - PASSED{color}
* {color:#013220}IgniteCoreTest: ClusterTestSuite: IgniteForCacheNodes - 
PASSED{color}
* {color:#013220}IgniteCoreTest: ClusterTestSuite: IgniteForClientNodes - 
PASSED{color}
* {color:#013220}IgniteCoreTest: CacheQueryTestSuite: 
TestFieldsQueryByteArrayInsertSelect - PASSED{color}
* {color:#013220}IgniteCoreTest: ClusterTestSuite: IgniteForDaemons - 
PASSED{color}
... and 1053 new tests

{panel}
[TeamCity *- Run :: CPP* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=6922571buildTypeId=IgniteTests24Java8_RunCpp]

> Add specific java launch arguments for Java15+ in Ignition.cpp
> --
>
> Key: IGNITE-17708
> URL: https://issues.apache.org/jira/browse/IGNITE-17708
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Roman Puchkovskiy
>Assignee: Igor Sapego
>Priority: Major
> Fix For: 2.15
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> In a few places (like FeatureChecker), we have same logic of adding specific 
> java command line keys (like add-opens). In all cases, keys for Java 15+ is 
> different from keys for Java 9-14. But in Ignition.cpp, only Java 9+ is 
> handled. Probably, handling for Java 15+ should be added.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18155) Update changePeersAsync method to support learners configuration

2022-11-21 Thread Kirill Tkalenko (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18155?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kirill Tkalenko updated IGNITE-18155:
-
Fix Version/s: 3.0.0-beta2

> Update changePeersAsync method to support learners configuration
> 
>
> Key: IGNITE-18155
> URL: https://issues.apache.org/jira/browse/IGNITE-18155
> Project: Ignite
>  Issue Type: Task
>Reporter: Aleksandr Polovtcev
>Assignee: Aleksandr Polovtcev
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 2h 50m
>  Remaining Estimate: 0h
>
> Update {{RaftGroupService#changePeersAsync}} method to support changing 
> learners configuration. It should work the same way, we simply need to update 
> internal Raft configuration for learners as well as for peers. The new 
> signature will look like the following: 
> {code:java}
> /**
>  * @param peers New peers.
>  * @param learners New leaners.
>  * @param term Current known leader term.
>  * If real raft group term will be different - changePeers will 
> be skipped.
>  * @return A future.
>  */
> CompletableFuture changePeersAsync(List peers, List 
> learners, long term);
> {code}
> This also implies changing the signature of 
> {{RaftGroupEventsListener#onNewPeersConfigurationApplied}}:
> {code:java}
> /**
>  * Invoked on the leader, when new peers' configuration applied to raft group.
>  *
>  * @param peers list of peers, which was applied by raft group membership 
> configuration.
>  * @param learners list of learners, which was applied by raft group 
> membership configuration.
>  */
> void onNewPeersConfigurationApplied(List peers, List 
> learners);
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18210) ODBC driver does not work with ADODB

2022-11-21 Thread Igor Sapego (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18210?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Igor Sapego updated IGNITE-18210:
-
Attachment: SQL_odbcadmin_cursorLocation_Server.LOG
SQL_odbcadmin_cursorLocation_Client.LOG
ignite_odbc_cusorLocation_Server.log
ignite_odbc_cursorLocation_Client.log

> ODBC driver does not work with ADODB
> 
>
> Key: IGNITE-18210
> URL: https://issues.apache.org/jira/browse/IGNITE-18210
> Project: Ignite
>  Issue Type: Bug
>  Components: odbc
>Affects Versions: 2.14
>Reporter: Igor Sapego
>Priority: Major
>  Labels: cpp, odbc
> Attachments: SQL_odbcadmin_cursorLocation_Client.LOG, 
> SQL_odbcadmin_cursorLocation_Server.LOG, 
> ignite_odbc_cursorLocation_Client.log, ignite_odbc_cusorLocation_Server.log
>
>
> Here is the code that reproduce problem:
> {code}
> Public Sub QueryIgnite()
>   Dim ADOrs As ADODB.Recordset
>   Dim ADOcon As ADODB.Connection
>   Set ADOcon = New ADODB.Connection
>   ADOcon.ConnectionString = "DSN=Apache-Ignite-DSN"
>   'ADOcon.CursorLocation = adUseClient
>   ADOcon.Open
>   Set ADOrs = New ADODB.Recordset
>   ADOrs.Open "select * from city", ADOcon, adOpenForwardOnly
>   ADOrs.MoveNext
>   Debug.Print ADOrs.Fields("NAME")
>   ADOrs.Close
>   ADOcon.Close
> End Sub
> {code}
> Attached are the logs produced by the code.
> It seems like we do not support a bunch of connection and statement 
> attributes used by ADO. Need to find out which of them are critical and 
> implement them.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-18210) ODBC driver does not work with ADODB

2022-11-21 Thread Igor Sapego (Jira)
Igor Sapego created IGNITE-18210:


 Summary: ODBC driver does not work with ADODB
 Key: IGNITE-18210
 URL: https://issues.apache.org/jira/browse/IGNITE-18210
 Project: Ignite
  Issue Type: Bug
  Components: odbc
Affects Versions: 2.14
Reporter: Igor Sapego
 Attachments: SQL_odbcadmin_cursorLocation_Client.LOG, 
SQL_odbcadmin_cursorLocation_Server.LOG, ignite_odbc_cursorLocation_Client.log, 
ignite_odbc_cusorLocation_Server.log

Here is the code that reproduce problem:
{code}
Public Sub QueryIgnite()
Dim ADOrs As ADODB.Recordset

Dim ADOcon As ADODB.Connection
Set ADOcon = New ADODB.Connection
ADOcon.ConnectionString = "DSN=Apache-Ignite-DSN"
'ADOcon.CursorLocation = adUseClient
ADOcon.Open

Set ADOrs = New ADODB.Recordset
ADOrs.Open "select * from city", ADOcon, adOpenForwardOnly
ADOrs.MoveNext
Debug.Print ADOrs.Fields("NAME")
ADOrs.Close
ADOcon.Close
End Sub
{code}

Attached are the logs produced by the code.

It seems like we do not support a bunch of connection and statement attributes 
used by ADO. Need to find out which of them are critical and implement them.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-18155) Update changePeersAsync method to support learners configuration

2022-11-21 Thread Kirill Gusakov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-18155?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17636703#comment-17636703
 ] 

Kirill Gusakov commented on IGNITE-18155:
-

LGTM, thanks!

> Update changePeersAsync method to support learners configuration
> 
>
> Key: IGNITE-18155
> URL: https://issues.apache.org/jira/browse/IGNITE-18155
> Project: Ignite
>  Issue Type: Task
>Reporter: Aleksandr Polovtcev
>Assignee: Aleksandr Polovtcev
>Priority: Major
>  Labels: ignite-3
>  Time Spent: 2h 40m
>  Remaining Estimate: 0h
>
> Update {{RaftGroupService#changePeersAsync}} method to support changing 
> learners configuration. It should work the same way, we simply need to update 
> internal Raft configuration for learners as well as for peers. The new 
> signature will look like the following: 
> {code:java}
> /**
>  * @param peers New peers.
>  * @param learners New leaners.
>  * @param term Current known leader term.
>  * If real raft group term will be different - changePeers will 
> be skipped.
>  * @return A future.
>  */
> CompletableFuture changePeersAsync(List peers, List 
> learners, long term);
> {code}
> This also implies changing the signature of 
> {{RaftGroupEventsListener#onNewPeersConfigurationApplied}}:
> {code:java}
> /**
>  * Invoked on the leader, when new peers' configuration applied to raft group.
>  *
>  * @param peers list of peers, which was applied by raft group membership 
> configuration.
>  * @param learners list of learners, which was applied by raft group 
> membership configuration.
>  */
> void onNewPeersConfigurationApplied(List peers, List 
> learners);
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-18191) .NET: Add specific Java launch arguments for Java 15+

2022-11-21 Thread Pavel Tupitsyn (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-18191?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17636691#comment-17636691
 ] 

Pavel Tupitsyn commented on IGNITE-18191:
-

Merged to master: 3fda745063ce2a0c969147aadb88a6025c4ce0bc

> .NET: Add specific Java launch arguments for Java 15+
> -
>
> Key: IGNITE-18191
> URL: https://issues.apache.org/jira/browse/IGNITE-18191
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Andrey Khitrin
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET
> Fix For: 2.15
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> Looks like .Net platform and examples do not support recent versions of Java. 
> It requires a special set of JVM arguments to run AI on Java 15+ (see 
> [jvmdefaults.sh|https://github.com/apache/ignite/blob/master/bin/include/jvmdefaults.sh]),
>  but .Net runner only contains checks and arguments for Java 9+ (see 
> [Jmv.cs|https://github.com/apache/ignite/blob/master/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/Jni/Jvm.cs]).
>  Looks like new arguments should be added here.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-18209) Reduce binary metadata synchronization time for CDC through Kafka

2022-11-21 Thread Ilya Shishkov (Jira)
Ilya Shishkov created IGNITE-18209:
--

 Summary: Reduce binary metadata synchronization time for CDC 
through Kafka
 Key: IGNITE-18209
 URL: https://issues.apache.org/jira/browse/IGNITE-18209
 Project: Ignite
  Issue Type: Improvement
  Components: extensions
Reporter: Ilya Shishkov






--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18179) KafkaPoducer and KafkaConsumer classes missed in ignite-cdc-ext build

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18179?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-18179:
---
Labels: IEP-59 ise  (was: ise)

> KafkaPoducer and KafkaConsumer classes missed in ignite-cdc-ext build
> -
>
> Key: IGNITE-18179
> URL: https://issues.apache.org/jira/browse/IGNITE-18179
> Project: Ignite
>  Issue Type: Bug
>  Components: extensions
>Reporter: Ilya Shishkov
>Assignee: Ilya Shishkov
>Priority: Major
>  Labels: IEP-59, ise
> Attachments: cdc-ext-build-patch.patch, ignite-cdc-ext-current.txt, 
> ignite-cdc-ext-old.txt, ignite-cdc-ext-patch.txt
>
>
> CDC though Kafka uses {{KafkaConsumer}} and {{KafkaProducer}}, which are 
> parts of  {{kafka-clients}} module. 
> But when you build ignite-cdc-ext with a below command:
> {code}
> mvn clean package -f modules/cdc-ext/ -P checkstyle,extension-release 
> -DskipTests
> {code}
> you will obtain zip file with a structure  [^ignite-cdc-ext-current.txt], 
> where {{kafka-clients}} dependency _*is missing*_.
> So, when you try to start {{KafkaToIgniteCdcStreamer}} or 
> {{IgniteToKafkaCdcStreamer}} you will obtain missing classes error.
> Building of module changed after IGNITE-16847, IGNITE-16815. Structure was:  
> [^ignite-cdc-ext-old.txt]. As you can see, there was many jar libraries 
> included, but i'm not sure whether all of them needed to run CDC.
> I have prepared a patch [^cdc-ext-build-patch.patch], which replaces 
> _kafka_2.12-2.7.0.jar_ by _kafka-clients-2.7.0.jar_ and tested it locally: 
> problems with missed classes eliminated and it seems, that simple 
> active-active replication cases works fine. But, patch does not fix other 
> dependencies from old build assembly structure (I'm not sure, that all 
> dependencies satisfied). 
> Structure after patch:   [^ignite-cdc-ext-patch.txt] 
> Also, proposed patch affects other modules, which uses 
> {{/assembly/bin-component-shared.xml}} in build process.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-18191) .NET: Add specific Java launch arguments for Java 15+

2022-11-21 Thread Igor Sapego (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-18191?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17636688#comment-17636688
 ] 

Igor Sapego commented on IGNITE-18191:
--

[~ptupitsyn] looks good to me, added only one question.

> .NET: Add specific Java launch arguments for Java 15+
> -
>
> Key: IGNITE-18191
> URL: https://issues.apache.org/jira/browse/IGNITE-18191
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Andrey Khitrin
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET
> Fix For: 2.15
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Looks like .Net platform and examples do not support recent versions of Java. 
> It requires a special set of JVM arguments to run AI on Java 15+ (see 
> [jvmdefaults.sh|https://github.com/apache/ignite/blob/master/bin/include/jvmdefaults.sh]),
>  but .Net runner only contains checks and arguments for Java 9+ (see 
> [Jmv.cs|https://github.com/apache/ignite/blob/master/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/Jni/Jvm.cs]).
>  Looks like new arguments should be added here.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-18191) .NET: Add specific Java launch arguments for Java 15+

2022-11-21 Thread Ignite TC Bot (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-18191?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17636680#comment-17636680
 ] 

Ignite TC Bot commented on IGNITE-18191:


{panel:title=Branch: [pull/10387/head] Base: [master] : Possible Blockers 
(7)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}
{color:#d04437}Cache 6{color} [[tests 0 TIMEOUT , Exit Code , Failure on metric 
|https://ci.ignite.apache.org/viewLog.html?buildId=6922365]]

{color:#d04437}SPI (Discovery){color} [[tests 0 TIMEOUT , Exit Code , Failure 
on metric |https://ci.ignite.apache.org/viewLog.html?buildId=6922445]]

{color:#d04437}Queries 1 (lazy=true){color} [[tests 
1|https://ci.ignite.apache.org/viewLog.html?buildId=6922431]]
* IgniteBinaryCacheQueryLazyTestSuite: 
DynamicIndexServerCoordinatorBasicSelfTest.testCreateReplicatedAtomic - Test 
has low fail rate in base branch 0,0% and is not flaky

{color:#d04437}Cache 1{color} [[tests 1 TIMEOUT , Out Of Memory Error , Exit 
Code |https://ci.ignite.apache.org/viewLog.html?buildId=6922356]]
* IgniteBinaryCacheTestSuite: 
DataStreamProcessorPersistenceSelfTest.testReplicatedIsolated - Test has low 
fail rate in base branch 0,0% and is not flaky

{color:#d04437}Client Nodes{color} [[tests 1 TIMEOUT , Exit Code , Failure on 
metric |https://ci.ignite.apache.org/viewLog.html?buildId=6922384]]
* IgniteClientReconnectTestSuite: 
IgniteClientReconnectAtomicsWithLostPartitionsTest.testAtomicSequenceGetAndIncrement
 - Test has low fail rate in base branch 0,0% and is not flaky

{panel}
{panel:title=Branch: [pull/10387/head] Base: [master] : No new tests 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}{panel}
[TeamCity *-- Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=6922461buildTypeId=IgniteTests24Java8_RunAll]

> .NET: Add specific Java launch arguments for Java 15+
> -
>
> Key: IGNITE-18191
> URL: https://issues.apache.org/jira/browse/IGNITE-18191
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Andrey Khitrin
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET
> Fix For: 2.15
>
>
> Looks like .Net platform and examples do not support recent versions of Java. 
> It requires a special set of JVM arguments to run AI on Java 15+ (see 
> [jvmdefaults.sh|https://github.com/apache/ignite/blob/master/bin/include/jvmdefaults.sh]),
>  but .Net runner only contains checks and arguments for Java 9+ (see 
> [Jmv.cs|https://github.com/apache/ignite/blob/master/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/Jni/Jvm.cs]).
>  Looks like new arguments should be added here.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Assigned] (IGNITE-18085) Implement logical topology events subscription and notification

2022-11-21 Thread Roman Puchkovskiy (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18085?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Roman Puchkovskiy reassigned IGNITE-18085:
--

Assignee: Roman Puchkovskiy

> Implement logical topology events subscription and notification
> ---
>
> Key: IGNITE-18085
> URL: https://issues.apache.org/jira/browse/IGNITE-18085
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexander Lapin
>Assignee: Roman Puchkovskiy
>Priority: Major
>
> h3. Motivation
> There are two types of typologies in Apache Ignite 3
>  * Physical(Network) - nodes that are visible through network layer.
>  * Logical - nodes that successfully passed the join procedure including 
> local recovery and catch up phases, thus nodes that are ready to handle user 
> load. More details in IEP-77
> In order to recalculate data nodes for specific distribution zone (see 
> [IEP-97|https://cwiki.apache.org/confluence/display/IGNITE/IEP-97%3A+Distribution+Zones])
>  it's required for distribution zone manager to receive notifications about 
> logical topology updates along with logical topology version similar to ones 
> we have in network topology:
>  * onAppeared
>  * onDisappeared
> h3. Definition of Done
>  * It's possible to register listeners for logical topology 
> onAppeared/onDisappeared events
>  * Events are fired in a distributed manner to all recipients.
>  * Each event produces ClusterNode.consistentId that was either added or 
> removed and *logical topology version.* It's required to solve ABA problem on 
> topology events, see https://issues.apache.org/jira/browse/IGNITE-18087 for 
> more details. 
>  * Events are ordered within each Producer to Recipient communication channel.
>  * It's valid to have multiple producers, e.g. during CMG leader change, thus 
> it's valid to send same set of event twice but order still matters. 
>  * It's not valid to skip events, even in case of of CMG leader change.
>  * Delivery guarantee is required.
>  * Besides events, there should be a method to get current logical topology 
> along with topology version.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-18195) Improve message for restart after WAL disabled

2022-11-21 Thread Ignite TC Bot (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-18195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17636669#comment-17636669
 ] 

Ignite TC Bot commented on IGNITE-18195:


{panel:title=Branch: [pull/10386/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/10386/head] Base: [master] : No new tests 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}{panel}
[TeamCity *-- Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=6918230buildTypeId=IgniteTests24Java8_RunAll]

> Improve message for restart after WAL disabled
> --
>
> Key: IGNITE-18195
> URL: https://issues.apache.org/jira/browse/IGNITE-18195
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Sergey Chugunov
>Assignee: Sergey Chugunov
>Priority: Major
> Fix For: 2.15
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently we have this message
> {noformat}
> Cache groups with potentially corrupted partition files found. To cleanup 
> them maintenance is needed, node will enter maintenance mode on next restart. 
> Cleanup cache group folders manually or trigger maintenance action to do that 
> and restart the node. Corrupted files are located in subdirectories
> {noformat}
> The message is not very informative and doesn't provide detailed instructions 
> of how to deal with the situation.
> The better message could be:
> {noformat}
> Ignite node with disabled WAL was stopped in the middle of a checkpoint, data 
> files may be corrupted. Node will stop and enter the Maintenance Mode on next 
> start.
> In the Maintenance Mode, use the Control Utility *persistence* command to 
> clean and optionally back up corrupted files. When cleaning is done, restart 
> the node manually.
> Possible corruption affects the following cache groups: 
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Assigned] (IGNITE-17908) AssertionError LWM after reserved on data insertion after the cluster restart

2022-11-21 Thread Maksim Timonin (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-17908?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maksim Timonin reassigned IGNITE-17908:
---

Assignee: Maksim Timonin

> AssertionError LWM after reserved on data insertion after the cluster restart
> -
>
> Key: IGNITE-17908
> URL: https://issues.apache.org/jira/browse/IGNITE-17908
> Project: Ignite
>  Issue Type: Sub-task
>Reporter: Anton Vinogradov
>Assignee: Maksim Timonin
>Priority: Major
>  Labels: ise
> Attachments: LwmAfterReservedTest.java
>
>
> After the cluster restart you may see the following assertion:
> {code}
> java.lang.AssertionError: LWM after reserved: lwm=2030, reserved=2010, 
> cntr=Counter [lwm=2030, missed=[], hwm=2030, reserved=2011]
>   at 
> org.apache.ignite.internal.processors.cache.PartitionUpdateCounterTrackingImpl.reserve(PartitionUpdateCounterTrackingImpl.java:270)
>   at 
> org.apache.ignite.internal.processors.cache.PartitionUpdateCounterErrorWrapper.reserve(PartitionUpdateCounterErrorWrapper.java:58)
>   at 
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.getAndIncrementUpdateCounter(IgniteCacheOffheapManagerImpl.java:1594)
>   at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager$GridCacheDataStore.getAndIncrementUpdateCounter(GridCacheOffheapManager.java:2483)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition.getAndIncrementUpdateCounter(GridDhtLocalPartition.java:942)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalAdapter.calculatePartitionUpdateCounters(IgniteTxLocalAdapter.java:510)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.prepare0(GridDhtTxPrepareFuture.java:1356)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.mapIfLocked(GridDhtTxPrepareFuture.java:726)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.prepare(GridDhtTxPrepareFuture.java:1132)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.prepareAsyncLocal(GridNearTxLocal.java:4282)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.prepareColocatedTx(IgniteTxHandler.java:303)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearOptimisticTxPrepareFuture.proceedPrepare(GridNearOptimisticTxPrepareFuture.java:565)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearOptimisticTxPrepareFuture.prepareSingle(GridNearOptimisticTxPrepareFuture.java:392)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearOptimisticTxPrepareFuture.prepare0(GridNearOptimisticTxPrepareFuture.java:335)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearOptimisticTxPrepareFutureAdapter.prepareOnTopology(GridNearOptimisticTxPrepareFutureAdapter.java:205)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearOptimisticTxPrepareFutureAdapter.prepare(GridNearOptimisticTxPrepareFutureAdapter.java:129)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.prepareNearTxLocal(GridNearTxLocal.java:3946)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.commitNearTxLocalAsync(GridNearTxLocal.java:3994)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.optimisticPutFuture(GridNearTxLocal.java:3051)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.putAsync0(GridNearTxLocal.java:729)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.putAsync(GridNearTxLocal.java:484)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheAdapter$20.op(GridCacheAdapter.java:2511)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheAdapter$20.op(GridCacheAdapter.java:2509)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.syncOp(GridCacheAdapter.java:4284)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.put0(GridCacheAdapter.java:2509)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.put(GridCacheAdapter.java:2487)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.put(GridCacheAdapter.java:2466)
>   at 
> org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.put(IgniteCacheProxyImpl.java:1332)
>   at 
> 

[jira] [Commented] (IGNITE-18049) Cursor#close() should not declare any exceptions in throws clause

2022-11-21 Thread Roman Puchkovskiy (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-18049?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17636653#comment-17636653
 ] 

Roman Puchkovskiy commented on IGNITE-18049:


Thanks!

> Cursor#close() should not declare any exceptions in throws clause
> -
>
> Key: IGNITE-18049
> URL: https://issues.apache.org/jira/browse/IGNITE-18049
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Roman Puchkovskiy
>Assignee: Roman Puchkovskiy
>Priority: Major
>  Labels: ignite-3, tech-debt
> Fix For: 3.0.0-beta2
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> When an {{AutoCloseable}} subinterface/implementation declares {{throws 
> Exception}} in its {{close()}} method, it makes it very inconvenient to work 
> with such a type using try-with-resources because the using code must use 
> something like {{catch (Exception e)}} which makes it difficult to process 
> exceptions that might arise in the {{try}} block.
> The suggestion is to make {{Cursor#close()}} not declare any checked 
> exceptions. Most of the current implementations of {{Cursor}} already obey to 
> this restriction, and a few that don't can be easily reworked to obey.
> The only problem is adapters (when we adapt an {{Iterator}} producing a 
> {{{}Cursor{}}}). Here, we must be prepared to get an {{Iterator}} that is a 
> resource itself (is an {{{}AutoCloseable{}}}) and hence needs to be closed 
> when the cursor is closed. But {{AutoCloseable#close()}} might throw a 
> checked exception. It is unacceptable to swallow it, and it is not too good 
> to just automatically wrap it in an unchecked exception.
>  # The best thing is that developers (who know their resources) write their 
> own custom {{Cursor}} implementations handling the closure.
>  # We also need a way to adapt 'safe close' iterators (obtained from 
> in-memory collections, for example). We should add a method like 
> {{Cursor#fromPurIterator(Iterator)}} that will check (at the moment of 
> invocation that the provided iterator is NOT an AutoCloseable and will throw 
> if it is)
>  # We can also provide a generic way to adapt a closeable iterator with a 
> method like {{ & AutoCloseable> 
> Cursor#fromCloseableIterator(IT iterator)}} adding a Javadoc urging the user 
> to use this method only when absolutely necessary
>  # We probably should not add an omnivorous method that could adapt both pure 
> and closeable iterators for now to prevent abuses.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-18208) Sql. Restructuring of the planner tests for aggregates

2022-11-21 Thread Konstantin Orlov (Jira)
Konstantin Orlov created IGNITE-18208:
-

 Summary: Sql. Restructuring of the planner tests for aggregates 
 Key: IGNITE-18208
 URL: https://issues.apache.org/jira/browse/IGNITE-18208
 Project: Ignite
  Issue Type: Improvement
Reporter: Konstantin Orlov


Currently, planner tests for aggregates doesn't have any logical structure. As 
a result it hard to say which queries should be processed by 2-phase aggregate, 
and which by colocated aggregates.

Let's restructure the tests in order to get answer on following questions:
* which queries should be processed by colocated aggregates
* which queries should be processed by 2-phase aggregates
* which queries should leverage the sorted aggregates



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-18207) Sql. Pushdown DISTINCT aggregate with no particular function

2022-11-21 Thread Konstantin Orlov (Jira)
Konstantin Orlov created IGNITE-18207:
-

 Summary: Sql. Pushdown DISTINCT aggregate with no particular 
function
 Key: IGNITE-18207
 URL: https://issues.apache.org/jira/browse/IGNITE-18207
 Project: Ignite
  Issue Type: Improvement
  Components: sql
Reporter: Konstantin Orlov


In order to reduce amount of rows to send over the network, for cases with 
DISTINCT aggregates and no particular aggregation function, 
IgniteAggregate[dist=single] can be copied to under the exchange with hash 
distribution.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-18206) Sql. Prohibit using of DISTINCT 2-phase aggregates

2022-11-21 Thread Konstantin Orlov (Jira)
Konstantin Orlov created IGNITE-18206:
-

 Summary: Sql. Prohibit using of DISTINCT 2-phase aggregates
 Key: IGNITE-18206
 URL: https://issues.apache.org/jira/browse/IGNITE-18206
 Project: Ignite
  Issue Type: Improvement
  Components: sql
Reporter: Konstantin Orlov


Currently, 2-phase aggregate is used even for aggregates with DISTINCT and 
ORDER BY clauses. This is possible because of unnatural resulting row produced 
by a MAP aggregate: in a single column it accumulates all rows belonging to a 
particular group.

Such an approach causes errors in cost calculation, as well as closes the door 
for further optimizations, like reusing BinaryTuple for sql row, because of a 
complex structure of the row.

As a first step, let's prohibit using of 2-phase aggregates for cases where 
collection of rows for particular row should be preserved in order to compute 
the final result (DISTINCT aggregates).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Assigned] (IGNITE-18179) KafkaPoducer and KafkaConsumer classes missed in ignite-cdc-ext build

2022-11-21 Thread Ilya Shishkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-18179?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov reassigned IGNITE-18179:
--

Assignee: Ilya Shishkov

> KafkaPoducer and KafkaConsumer classes missed in ignite-cdc-ext build
> -
>
> Key: IGNITE-18179
> URL: https://issues.apache.org/jira/browse/IGNITE-18179
> Project: Ignite
>  Issue Type: Bug
>  Components: extensions
>Reporter: Ilya Shishkov
>Assignee: Ilya Shishkov
>Priority: Major
>  Labels: ise
> Attachments: cdc-ext-build-patch.patch, ignite-cdc-ext-current.txt, 
> ignite-cdc-ext-old.txt, ignite-cdc-ext-patch.txt
>
>
> CDC though Kafka uses {{KafkaConsumer}} and {{KafkaProducer}}, which are 
> parts of  {{kafka-clients}} module. 
> But when you build ignite-cdc-ext with a below command:
> {code}
> mvn clean package -f modules/cdc-ext/ -P checkstyle,extension-release 
> -DskipTests
> {code}
> you will obtain zip file with a structure  [^ignite-cdc-ext-current.txt], 
> where {{kafka-clients}} dependency _*is missing*_.
> So, when you try to start {{KafkaToIgniteCdcStreamer}} or 
> {{IgniteToKafkaCdcStreamer}} you will obtain missing classes error.
> Building of module changed after IGNITE-16847, IGNITE-16815. Structure was:  
> [^ignite-cdc-ext-old.txt]. As you can see, there was many jar libraries 
> included, but i'm not sure whether all of them needed to run CDC.
> I have prepared a patch [^cdc-ext-build-patch.patch], which replaces 
> _kafka_2.12-2.7.0.jar_ by _kafka-clients-2.7.0.jar_ and tested it locally: 
> problems with missed classes eliminated and it seems, that simple 
> active-active replication cases works fine. But, patch does not fix other 
> dependencies from old build assembly structure (I'm not sure, that all 
> dependencies satisfied). 
> Structure after patch:   [^ignite-cdc-ext-patch.txt] 
> Also, proposed patch affects other modules, which uses 
> {{/assembly/bin-component-shared.xml}} in build process.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-18163) Old-style join on different column types fails with ClassCastException

2022-11-21 Thread Konstantin Orlov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-18163?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17636564#comment-17636564
 ] 

Konstantin Orlov commented on IGNITE-18163:
---

Looks like we miss a cast when creating a comparator for MergeJoin

> Old-style join on different column types fails with ClassCastException
> --
>
> Key: IGNITE-18163
> URL: https://issues.apache.org/jira/browse/IGNITE-18163
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Priority: Major
>  Labels: calcite3-required, ignite-3
> Fix For: 3.0.0-beta2
>
>
> Query:
> {code}
> select _T0.KEY, _T1.VAL from PUBLIC.TBL1 as _T0, PUBLIC.TBL_INT32 as _T1 
> where _T0.KEY IS NOT DISTINCT FROM _T1.KEY
> {code}
> Result:
> {code}
> org.apache.ignite.lang.IgniteException: IGN-CMN-65535 
> TraceId:ef4217b1-04ef-4f08-b1c3-76effc3fc262 class java.lang.Long cannot be 
> cast to class java.lang.Integer (java.lang.Long and java.lang.Integer are in 
> module java.base of loader 'bootstrap')
>   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.rel.AbstractNode.onError(AbstractNode.java:155)
>   at 
> org.apache.ignite.internal.sql.engine.exec.rel.AbstractNode.onError(AbstractNode.java:155)
>   at 
> org.apache.ignite.internal.sql.engine.exec.rel.AbstractNode.onError(AbstractNode.java:155)
>   at 
> org.apache.ignite.internal.sql.engine.exec.rel.AbstractNode.onError(AbstractNode.java:155)
>   at 
> org.apache.ignite.internal.sql.engine.exec.rel.MergeJoinNode$1.onError(MergeJoinNode.java:124)
>   at 
> org.apache.ignite.internal.sql.engine.exec.rel.AbstractNode.onError(AbstractNode.java:155)
>   at 
> org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.onMessage(ExchangeServiceImpl.java:205)
>   at 
> org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.lambda$start$2(ExchangeServiceImpl.java:81)
>   at 
> org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:164)
>   at 
> org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.lambda$onMessage$3(MessageServiceImpl.java:133)
>   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.ClassCastException: class java.lang.Long cannot be cast 
> to class java.lang.Integer (java.lang.Long and java.lang.Integer are in 
> module java.base of loader 'bootstrap')
>   at java.base/java.lang.Integer.compareTo(Integer.java:59)
>   at 
> org.apache.calcite.rel.RelFieldCollation.compare(RelFieldCollation.java:43)
>   at 
> org.apache.ignite.internal.sql.engine.exec.exp.ExpressionFactoryImpl.compare(ExpressionFactoryImpl.java:235)
>   at 
> org.apache.ignite.internal.sql.engine.exec.exp.ExpressionFactoryImpl$2.compare(ExpressionFactoryImpl.java:217)
>   at 
> org.apache.ignite.internal.sql.engine.exec.rel.MergeJoinNode$InnerJoin.join(MergeJoinNode.java:318)
>   at 
> org.apache.ignite.internal.sql.engine.exec.rel.MergeJoinNode.pushLeft(MergeJoinNode.java:162)
>   at 
> org.apache.ignite.internal.sql.engine.exec.rel.MergeJoinNode$1.push(MergeJoinNode.java:112)
>   at 
> 

[jira] [Commented] (IGNITE-18174) SQL: implement expanded NULL predicate

2022-11-21 Thread Andrey Mashenkov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-18174?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17636557#comment-17636557
 ] 

Andrey Mashenkov commented on IGNITE-18174:
---

Feature is not supported in Calcite yet.

> SQL: implement expanded NULL predicate
> --
>
> Key: IGNITE-18174
> URL: https://issues.apache.org/jira/browse/IGNITE-18174
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Andrey Khitrin
>Priority: Major
>  Labels: ignite-3
>
> "Expanded NULL predicate" is referenced in SQL standard as F481 feature. It 
> allows to use something other than a column reference as row value expression.
> The following query works in AI2:
> {code:sql}
> create table tmp_simple_table (key_field INT PRIMARY KEY,x INT,y INT,z INT);
> insert into tmp_simple_table (key_field,x,y,z) values (1, 1,1,1);
> insert into tmp_simple_table (key_field,x,y,z) values (2, 2,2,2);
> insert into tmp_simple_table (key_field,x,y,z) values (3, null,3,null);
> insert into tmp_simple_table (key_field,x,y,z) values (4, 4,null,null);
> insert into tmp_simple_table (key_field,x,y,z) values (5, null,null,null);
> select x, y, z from tmp_simple_table t 
>   where (select x, z from tmp_simple_table where x=t.x and y=t.y and z=t.z) 
> is not NULL;  -- expanded NULL predicate
> {code}
> But in AI3 beta1 it's not implemented yet.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)