[jira] [Updated] (IGNITE-19483) Transform TableManager and IndexManager to internally work against Catalog event types

2023-06-02 Thread Roman Puchkovskiy (Jira)


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

Roman Puchkovskiy updated IGNITE-19483:
---
Description: 
Currently, when an event like 'table was added to configuration' happens, the 
listener polls the table config by itself and then uses it to create the table.

This should be changed: the table configuration object should be converted to 
an object from Catalog domain and pushed to the listeners.

Same should be done to indices.

Requires investigation.

Also, we need to stop passing configuration to deeply-nested components (like 
storages). Also requires investigation.

  was:
Currently, when an event like 'table was added to configuration' happens, the 
listener pools the table config by itself and then uses it to create the table.

This should be changed: the table configuration object should be converted to 
an object from Catalog domain and pushed to the listeners.

Same should be done to indices.

Requires investigation.

Also, we need to stop passing configuration to deeply-nested components (like 
storages). Also requires investigation.


> Transform TableManager and IndexManager to internally work against Catalog 
> event types
> --
>
> Key: IGNITE-19483
> URL: https://issues.apache.org/jira/browse/IGNITE-19483
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Roman Puchkovskiy
>Assignee: Roman Puchkovskiy
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Currently, when an event like 'table was added to configuration' happens, the 
> listener polls the table config by itself and then uses it to create the 
> table.
> This should be changed: the table configuration object should be converted to 
> an object from Catalog domain and pushed to the listeners.
> Same should be done to indices.
> Requires investigation.
> Also, we need to stop passing configuration to deeply-nested components (like 
> storages). Also requires investigation.



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


[jira] [Created] (IGNITE-19629) Missing few metrics in new metrics system

2023-06-02 Thread Nikolay (Jira)
Nikolay created IGNITE-19629:


 Summary: Missing few metrics in new metrics system
 Key: IGNITE-19629
 URL: https://issues.apache.org/jira/browse/IGNITE-19629
 Project: Ignite
  Issue Type: Bug
  Components: general
Affects Versions: 2.15
Reporter: Nikolay


In apache ignite 2.15 CacheMetricsMXBean was removed. Legacy metrics system 
could give us some valuable metrics regarding cache's health. For example,

[isValidForReading|https://ignite.apache.org/releases/2.14.0/javadoc/org/apache/ignite/mxbean/CacheMetricsMXBean.html#isValidForReading–]
[isValidForWriting|https://ignite.apache.org/releases/2.14.0/javadoc/org/apache/ignite/cache/CacheMetrics.html#isValidForWriting–]

In the latest version of apache ignite we miss such metrics, it is hard to 
understand now when there is a lost_partition situation in caches. Previously 
these metrics were telling us to go and fix such caches. Can we bring them back?



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


[jira] [Updated] (IGNITE-19452) Blacklist for non-marshallable classes

2023-06-02 Thread Aleksandr Polovtcev (Jira)


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

Aleksandr Polovtcev updated IGNITE-19452:
-
Fix Version/s: 3.0.0-beta2

> Blacklist for non-marshallable classes
> --
>
> Key: IGNITE-19452
> URL: https://issues.apache.org/jira/browse/IGNITE-19452
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Ivan Bessonov
>Assignee: Aleksandr Polovtcev
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Following IGNITE-19451, we should ban classes like BinaryTuple, 
> BinaryTuplePrefix, from being declared as marshallable. Blacklist mechanism 
> is proposed.
> We could also include classes like List/Collection into it, or even Object. 
> Natively marshallable classes like UUID must be banned as well.
> I'd go as far as banning boxed primitives, but they lack native support, so 
> it's up to a developer.



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


[jira] [Created] (IGNITE-19630) Convert default value from Column to TableColumnDescriptor

2023-06-02 Thread Roman Puchkovskiy (Jira)
Roman Puchkovskiy created IGNITE-19630:
--

 Summary: Convert default value from Column to TableColumnDescriptor
 Key: IGNITE-19630
 URL: https://issues.apache.org/jira/browse/IGNITE-19630
 Project: Ignite
  Issue Type: Improvement
Reporter: Roman Puchkovskiy
Assignee: Roman Puchkovskiy
 Fix For: 3.0.0-beta2


In both cases, we must support both constants and function calls



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


[jira] [Created] (IGNITE-19631) No way to pass JVM options when using bin/ignite3db

2023-06-02 Thread Ivan Artukhov (Jira)
Ivan Artukhov created IGNITE-19631:
--

 Summary: No way to pass JVM options when using bin/ignite3db
 Key: IGNITE-19631
 URL: https://issues.apache.org/jira/browse/IGNITE-19631
 Project: Ignite
  Issue Type: Bug
Reporter: Ivan Artukhov


There is no way to set custom JVM options when starting an Ignite node via 
`bin/ignite3db` script. 
The {{${IGNITE_HOME}/etc/vars.env}} file contains the 
{{IGNITE3_EXTRA_JVM_ARGS}} parameter, but currently its value is placed after 
the {{IgniteRunner}} in the command-line which is wrong. See 
[bootstrap-functions.sh|https://github.com/apache/ignite-3/blob/ae3c4660ab9ae0be9a4f4bef84b002e9e392c243/packaging/common/bootstrap-functions.sh#L51].
 



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


[jira] [Assigned] (IGNITE-19271) Persist revision-safeTime mapping in meta-storage

2023-06-02 Thread Semyon Danilov (Jira)


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

Semyon Danilov reassigned IGNITE-19271:
---

Assignee: Semyon Danilov

> Persist revision-safeTime mapping in meta-storage
> -
>
> Key: IGNITE-19271
> URL: https://issues.apache.org/jira/browse/IGNITE-19271
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Ivan Bessonov
>Assignee: Semyon Danilov
>Priority: Major
>  Labels: ignite-3
>
> IEP-98 states:
> {code:java}
> When creating a message M telling the cluster about a schema update 
> activation moment, choose the message timestamp Tm (moving safeTime forward) 
> equal to Now, but assign Tu (activation moment) contained in that M to be 
> Tm+DD {code}
> This is hard to achieve.
> h3. Problem
> We need {{{}Tu==Tm+DD{}}}. Right now, with what we have in IGNITE-19028, it's 
> not straightforward. This is because we have too many actors:
>  * There's a {_}client{_}, that chooses Tu, because it's the only actor that 
> can affect message content.
>  * There's a meta-storage {_}lease-holder{_}, or {_}leader{_}, that chooses 
> Tm.
>  * There's everybody else, who expect a correspondence between Tu and Tm.
> First two actors are important, because they have independent clocks, but 
> must coordinate the same event. This is impossible with described protocol.
> h3. Discussion
> Let's consider these two solutions:
>  # Client generates Tm.
>  # Meta-storage generates Tu.
> Option 1 is out of question, there must be only a single node at any given 
> moment in time, that's responsible for the linear order of time in messages.
> What about option 2? Since meta-storage doesn't know anything about commands 
> semantics, it can't really generate any data. So this solution doesn't work 
> either.
> h3. Solution
> Combined solution could be the following:
>  * Client sends DD as part of the command (this is not a constant, user _can_ 
> configure it, if they really feel like doing it)
>  * Meta-storage generates {{Tm}}
>  * Every node, upon receiving the update, calculates {{Tu}}
> This could work, if nodes would have never been restarted. There's one 
> problem that needs to be solved: recovering the values of {{Tm}} from the 
> (old) data upon node restart.
> This can be achieved by persisting safeTime along with revision as a part of 
> metadata, that can be retrieved back through the meta-storage service API.
> In other words:
> 1. Client sends
> {code:java}
> schema.latest   = 5
> schema.5.data   = ...
> schema.5.dd = 30s{code}
> 2. Lease-holder adds meta-data to the command:
> {code:java}
> safeTime = 10:10
> {code}
> 3. Meta-storage listener writes the data:
> {code:java}
> revision = 33
>     schema.latest = 5
> schema.5.data = ...
> schema.5.dd   = 30s
> revision.33.safeTime = 10:10:00{code}
>  
> How can you read {{{}Tu{}}}:
>  * read "{{{}schema.5.dd"{}}};
>  * read its revision, it's 33;
>  * read a timestamp of revision 33 via specialized API;
>  * add two values together.
> h3. Implications and restrictions
> There's a cleanup process in the meta-storage. It will eventually remove any 
> "revision.x.safeTime" values, because corresponding revision became obsolete.
> But, we should somehow preserve timestamps of revisions that are used by 
> schemas. Such behaviour can be achieved, if components can reserve a 
> revision, and meta-storage can't compact it unless the reservation has been 
> revoked.



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


[jira] [Resolved] (IGNITE-19271) Persist revision-safeTime mapping in meta-storage

2023-06-02 Thread Semyon Danilov (Jira)


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

Semyon Danilov resolved IGNITE-19271.
-
Fix Version/s: 3.0.0-beta2
   Resolution: Fixed

Fixed by IGNITE-19532

> Persist revision-safeTime mapping in meta-storage
> -
>
> Key: IGNITE-19271
> URL: https://issues.apache.org/jira/browse/IGNITE-19271
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Ivan Bessonov
>Assignee: Semyon Danilov
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> IEP-98 states:
> {code:java}
> When creating a message M telling the cluster about a schema update 
> activation moment, choose the message timestamp Tm (moving safeTime forward) 
> equal to Now, but assign Tu (activation moment) contained in that M to be 
> Tm+DD {code}
> This is hard to achieve.
> h3. Problem
> We need {{{}Tu==Tm+DD{}}}. Right now, with what we have in IGNITE-19028, it's 
> not straightforward. This is because we have too many actors:
>  * There's a {_}client{_}, that chooses Tu, because it's the only actor that 
> can affect message content.
>  * There's a meta-storage {_}lease-holder{_}, or {_}leader{_}, that chooses 
> Tm.
>  * There's everybody else, who expect a correspondence between Tu and Tm.
> First two actors are important, because they have independent clocks, but 
> must coordinate the same event. This is impossible with described protocol.
> h3. Discussion
> Let's consider these two solutions:
>  # Client generates Tm.
>  # Meta-storage generates Tu.
> Option 1 is out of question, there must be only a single node at any given 
> moment in time, that's responsible for the linear order of time in messages.
> What about option 2? Since meta-storage doesn't know anything about commands 
> semantics, it can't really generate any data. So this solution doesn't work 
> either.
> h3. Solution
> Combined solution could be the following:
>  * Client sends DD as part of the command (this is not a constant, user _can_ 
> configure it, if they really feel like doing it)
>  * Meta-storage generates {{Tm}}
>  * Every node, upon receiving the update, calculates {{Tu}}
> This could work, if nodes would have never been restarted. There's one 
> problem that needs to be solved: recovering the values of {{Tm}} from the 
> (old) data upon node restart.
> This can be achieved by persisting safeTime along with revision as a part of 
> metadata, that can be retrieved back through the meta-storage service API.
> In other words:
> 1. Client sends
> {code:java}
> schema.latest   = 5
> schema.5.data   = ...
> schema.5.dd = 30s{code}
> 2. Lease-holder adds meta-data to the command:
> {code:java}
> safeTime = 10:10
> {code}
> 3. Meta-storage listener writes the data:
> {code:java}
> revision = 33
>     schema.latest = 5
> schema.5.data = ...
> schema.5.dd   = 30s
> revision.33.safeTime = 10:10:00{code}
>  
> How can you read {{{}Tu{}}}:
>  * read "{{{}schema.5.dd"{}}};
>  * read its revision, it's 33;
>  * read a timestamp of revision 33 via specialized API;
>  * add two values together.
> h3. Implications and restrictions
> There's a cleanup process in the meta-storage. It will eventually remove any 
> "revision.x.safeTime" values, because corresponding revision became obsolete.
> But, we should somehow preserve timestamps of revisions that are used by 
> schemas. Such behaviour can be achieved, if components can reserve a 
> revision, and meta-storage can't compact it unless the reservation has been 
> revoked.



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


[jira] [Updated] (IGNITE-19628) Add IndexQuery to performance statistics

2023-06-02 Thread Nikita Amelchev (Jira)


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

Nikita Amelchev updated IGNITE-19628:
-
Labels: ise  (was: )

> Add IndexQuery to performance statistics
> 
>
> Key: IGNITE-19628
> URL: https://issues.apache.org/jira/browse/IGNITE-19628
> Project: Ignite
>  Issue Type: Task
>Reporter: Nikita Amelchev
>Assignee: Nikita Amelchev
>Priority: Major
>  Labels: ise
> Fix For: 2.16
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Add IndexQuery to performance statistics.



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


[jira] [Assigned] (IGNITE-19451) Don't marshal binary tuples or binary rows

2023-06-02 Thread Aleksandr Polovtcev (Jira)


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

Aleksandr Polovtcev reassigned IGNITE-19451:


Assignee: Aleksandr Polovtcev

> Don't marshal binary tuples or binary rows
> --
>
> Key: IGNITE-19451
> URL: https://issues.apache.org/jira/browse/IGNITE-19451
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Ivan Bessonov
>Assignee: Aleksandr Polovtcev
>Priority: Major
>  Labels: ignite-3
>
> Messages like 
> {{org.apache.ignite.internal.table.distributed.replication.request.ScanRetrieveBatchReplicaRequest}}
>  declare tuples/rows as marshalable objects.
> This is bad for the footprint size - every tuple also encodes its schema, 
> which makes the payload orders of magnitude bigger than it should be. We need 
> to provide alternative transferable classes and refactor existing messages.
>  
> It would also be nice to have benchmarks, so that we could check the 
> before/after difference. There's already 
> org.apache.ignite.internal.network.SerializationMicroBenchmark, but it's for 
> UOS specifically, we should probably do something analogous, with the ability 
> to customize message type



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


[jira] [Updated] (IGNITE-19632) .NET: Thin 3.0: Optimize Data Streamer for single connection use case

2023-06-02 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn updated IGNITE-19632:

Description: 
Optimize .NET client data streamer for a use case when only one connection 
exists. In this case we don't need to deal with partition awareness and 
per-node buffers.

This can be detected automatically or by a flag in DataStreamerOptions.

  was:
Optimize Java client data streamer for a use case when only one connection 
exists. In this case we don't need to deal with partition awareness and 
per-node buffers.

This can be detected automatically or by a flag in DataStreamerOptions.


> .NET: Thin 3.0: Optimize Data Streamer for single connection use case
> -
>
> Key: IGNITE-19632
> URL: https://issues.apache.org/jira/browse/IGNITE-19632
> Project: Ignite
>  Issue Type: Task
>  Components: thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: iep-102, ignite-3
> Fix For: 3.0.0-beta2
>
>
> Optimize .NET client data streamer for a use case when only one connection 
> exists. In this case we don't need to deal with partition awareness and 
> per-node buffers.
> This can be detected automatically or by a flag in DataStreamerOptions.



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


[jira] [Updated] (IGNITE-19632) .NET: Thin 3.0: Optimize Data Streamer for single connection use case

2023-06-02 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn updated IGNITE-19632:

Labels: .NET iep-102 ignite-3  (was: iep-102 ignite-3)

> .NET: Thin 3.0: Optimize Data Streamer for single connection use case
> -
>
> Key: IGNITE-19632
> URL: https://issues.apache.org/jira/browse/IGNITE-19632
> Project: Ignite
>  Issue Type: Task
>  Components: thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET, iep-102, ignite-3
> Fix For: 3.0.0-beta2
>
>
> Optimize .NET client data streamer for a use case when only one connection 
> exists. In this case we don't need to deal with partition awareness and 
> per-node buffers.
> This can be detected automatically or by a flag in DataStreamerOptions.



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


[jira] [Created] (IGNITE-19632) .NET: Thin 3.0: Optimize Data Streamer for single connection use case

2023-06-02 Thread Pavel Tupitsyn (Jira)
Pavel Tupitsyn created IGNITE-19632:
---

 Summary: .NET: Thin 3.0: Optimize Data Streamer for single 
connection use case
 Key: IGNITE-19632
 URL: https://issues.apache.org/jira/browse/IGNITE-19632
 Project: Ignite
  Issue Type: Task
  Components: thin client
Reporter: Pavel Tupitsyn
Assignee: Pavel Tupitsyn
 Fix For: 3.0.0-beta2


Optimize Java client data streamer for a use case when only one connection 
exists. In this case we don't need to deal with partition awareness and 
per-node buffers.

This can be detected automatically or by a flag in DataStreamerOptions.



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


[jira] [Commented] (IGNITE-19605) ItDeploymentUnitTest is flaky

2023-06-02 Thread Aleksandr (Jira)


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

Aleksandr commented on IGNITE-19605:


This test fail happens when previous test used connect command without paired 
disconnect, which leaves the periodic session task running.
When starting the nodes in the next test, it so happens that the request for 
the node configuration from the JdbcUrlRegistryImpl or any other periodic task 
is received while the Micronaut's context is starting in the RestController for 
the second node. In this case the 
io.micronaut.core.convert.ConversionService#SHARED is cleared and is not yet 
populated.
It's not entirely clear what happens next, but most probably the HTTP server 
caches the state where there's no corresponding type converter and this leaves 
the node in the broken state.

It doesn't seem possible to properly fix this outside of Micronaut, so there's 
just a workaround which adds missing disconnect calls.

> ItDeploymentUnitTest is flaky
> -
>
> Key: IGNITE-19605
> URL: https://issues.apache.org/jira/browse/IGNITE-19605
> Project: Ignite
>  Issue Type: Bug
>  Components: compute
>Reporter: Vadim Pakhnushev
>Assignee: Vadim Pakhnushev
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Even after the IGNITE-19139 was fixed, the {{ItDeploymentUnitTest}} is still 
> flaky, the root cause is still looks like the Micronaut's shared converters 
> registry. We should look for a better workaround.



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


[jira] [Created] (IGNITE-19633) Exclude org.apache.calcite.plan.volcano from Javadoc

2023-06-02 Thread Mikhail Pochatkin (Jira)
Mikhail Pochatkin created IGNITE-19633:
--

 Summary: Exclude org.apache.calcite.plan.volcano from Javadoc 
 Key: IGNITE-19633
 URL: https://issues.apache.org/jira/browse/IGNITE-19633
 Project: Ignite
  Issue Type: Improvement
Reporter: Mikhail Pochatkin






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


[jira] [Updated] (IGNITE-19452) Blacklist for non-marshallable classes

2023-06-02 Thread Aleksandr Polovtcev (Jira)


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

Aleksandr Polovtcev updated IGNITE-19452:
-
Reviewer: Ivan Bessonov

> Blacklist for non-marshallable classes
> --
>
> Key: IGNITE-19452
> URL: https://issues.apache.org/jira/browse/IGNITE-19452
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Ivan Bessonov
>Assignee: Aleksandr Polovtcev
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Following IGNITE-19451, we should ban classes like BinaryTuple, 
> BinaryTuplePrefix, from being declared as marshallable. Blacklist mechanism 
> is proposed.
> We could also include classes like List/Collection into it, or even Object. 
> Natively marshallable classes like UUID must be banned as well.
> I'd go as far as banning boxed primitives, but they lack native support, so 
> it's up to a developer.



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


[jira] [Updated] (IGNITE-19634) Fix PMD error when building the SQL module

2023-06-02 Thread Aleksandr Polovtcev (Jira)


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

Aleksandr Polovtcev updated IGNITE-19634:
-
Labels: ignite-3  (was: )

> Fix PMD error when building the SQL module
> --
>
> Key: IGNITE-19634
> URL: https://issues.apache.org/jira/browse/IGNITE-19634
> Project: Ignite
>  Issue Type: Bug
>Reporter: Aleksandr Polovtcev
>Assignee: Aleksandr Polovtcev
>Priority: Trivial
>  Labels: ignite-3
>
> When build



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


[jira] [Updated] (IGNITE-19634) Fix PMD error when building the SQL module

2023-06-02 Thread Aleksandr Polovtcev (Jira)


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

Aleksandr Polovtcev updated IGNITE-19634:
-
Ignite Flags:   (was: Docs Required,Release Notes Required)

> Fix PMD error when building the SQL module
> --
>
> Key: IGNITE-19634
> URL: https://issues.apache.org/jira/browse/IGNITE-19634
> Project: Ignite
>  Issue Type: Bug
>Reporter: Aleksandr Polovtcev
>Assignee: Aleksandr Polovtcev
>Priority: Trivial
>  Labels: ignite-3
>
> When build



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


[jira] [Created] (IGNITE-19634) Fix PMD error when building the SQL module

2023-06-02 Thread Aleksandr Polovtcev (Jira)
Aleksandr Polovtcev created IGNITE-19634:


 Summary: Fix PMD error when building the SQL module
 Key: IGNITE-19634
 URL: https://issues.apache.org/jira/browse/IGNITE-19634
 Project: Ignite
  Issue Type: Bug
Reporter: Aleksandr Polovtcev
Assignee: Aleksandr Polovtcev






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


[jira] [Updated] (IGNITE-19634) Fix PMD error when building the SQL module

2023-06-02 Thread Aleksandr Polovtcev (Jira)


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

Aleksandr Polovtcev updated IGNITE-19634:
-
Description: When build

> Fix PMD error when building the SQL module
> --
>
> Key: IGNITE-19634
> URL: https://issues.apache.org/jira/browse/IGNITE-19634
> Project: Ignite
>  Issue Type: Bug
>Reporter: Aleksandr Polovtcev
>Assignee: Aleksandr Polovtcev
>Priority: Trivial
>
> When build



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


[jira] [Updated] (IGNITE-19634) Fix PMD error when building the SQL module

2023-06-02 Thread Aleksandr Polovtcev (Jira)


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

Aleksandr Polovtcev updated IGNITE-19634:
-
Description: 
When building the project, I get the following error when executing the 
{{:ignite-sql-engine:pmdMain}} task:

{noformat}
PMDException: Error while parsing 
modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/RexToLixTranslator.java
{noformat}

Looks like updating the PMD plugin solves this issue.

  was:When build


> Fix PMD error when building the SQL module
> --
>
> Key: IGNITE-19634
> URL: https://issues.apache.org/jira/browse/IGNITE-19634
> Project: Ignite
>  Issue Type: Bug
>Reporter: Aleksandr Polovtcev
>Assignee: Aleksandr Polovtcev
>Priority: Trivial
>  Labels: ignite-3
>
> When building the project, I get the following error when executing the 
> {{:ignite-sql-engine:pmdMain}} task:
> {noformat}
> PMDException: Error while parsing 
> modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/RexToLixTranslator.java
> {noformat}
> Looks like updating the PMD plugin solves this issue.



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


[jira] [Assigned] (IGNITE-19483) Transform TableManager and IndexManager to internally work against Catalog event types

2023-06-02 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko reassigned IGNITE-19483:


Assignee: Kirill Tkalenko  (was: Roman Puchkovskiy)

> Transform TableManager and IndexManager to internally work against Catalog 
> event types
> --
>
> Key: IGNITE-19483
> URL: https://issues.apache.org/jira/browse/IGNITE-19483
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Roman Puchkovskiy
>Assignee: Kirill Tkalenko
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Currently, when an event like 'table was added to configuration' happens, the 
> listener polls the table config by itself and then uses it to create the 
> table.
> This should be changed: the table configuration object should be converted to 
> an object from Catalog domain and pushed to the listeners.
> Same should be done to indices.
> Requires investigation.
> Also, we need to stop passing configuration to deeply-nested components (like 
> storages). Also requires investigation.



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


[jira] [Resolved] (IGNITE-19630) Convert default value from Column to TableColumnDescriptor

2023-06-02 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko resolved IGNITE-19630.
--
Resolution: Fixed

> Convert default value from Column to TableColumnDescriptor
> --
>
> Key: IGNITE-19630
> URL: https://issues.apache.org/jira/browse/IGNITE-19630
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Roman Puchkovskiy
>Assignee: Roman Puchkovskiy
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> In both cases, we must support both constants and function calls



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


[jira] [Updated] (IGNITE-19622) [IEP-104] Add Realtime CDC buffer

2023-06-02 Thread Maksim Timonin (Jira)


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

Maksim Timonin updated IGNITE-19622:

Description: 
Realtime CDC buffer requirements:
 # Size is configured with DataStorageConfiguration#cdcBufSize
 # Must be FIFO
 # Is filled by the wal-syncer-thread with ReadSegment data
 # API: offer, poll, clear, currentSize
 # After it become full it has not receive any data, even data is polled.

For this ticket, the buffer must be filled if CDC option is enabled in 
IgniteConfiguration. If it is full, then log stop accept new data, log warn, 
clear the buffer.

This should work for ordinary WAL configuration (mmap=true, no FULL_SYNC)

  was:
Realtime CDC buffer requirements:
 # Size is configured with DataStorageConfiguration#cdcBufSize
 # Must be FIFO
 # Is filled by the wal-syncer-thread with ReadSegment data
 # API: offer, poll, clear, currentSize
 # After it become full it has not receive any data, even data is polled.


> [IEP-104] Add Realtime CDC buffer
> -
>
> Key: IGNITE-19622
> URL: https://issues.apache.org/jira/browse/IGNITE-19622
> Project: Ignite
>  Issue Type: Sub-task
>Reporter: Maksim Timonin
>Assignee: Maksim Timonin
>Priority: Major
>  Labels: IEP-104, ise
>
> Realtime CDC buffer requirements:
>  # Size is configured with DataStorageConfiguration#cdcBufSize
>  # Must be FIFO
>  # Is filled by the wal-syncer-thread with ReadSegment data
>  # API: offer, poll, clear, currentSize
>  # After it become full it has not receive any data, even data is polled.
> For this ticket, the buffer must be filled if CDC option is enabled in 
> IgniteConfiguration. If it is full, then log stop accept new data, log warn, 
> clear the buffer.
> This should work for ordinary WAL configuration (mmap=true, no FULL_SYNC)



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


[jira] [Commented] (IGNITE-19596) Partition creation fails with NSFE

2023-06-02 Thread Roman Puchkovskiy (Jira)


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

Roman Puchkovskiy commented on IGNITE-19596:


The patch looks good to me, thanks!

> Partition creation fails with NSFE
> --
>
> Key: IGNITE-19596
> URL: https://issues.apache.org/jira/browse/IGNITE-19596
> Project: Ignite
>  Issue Type: Bug
>Reporter: Ivan Bessonov
>Assignee: Kirill Tkalenko
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> You can reproduce it by creating tables in a loop. I did that with fsync 
> disabled.
> {noformat}
> java.util.concurrent.CompletionException: java.io.UncheckedIOException: 
> java.nio.file.NoSuchFileException: 
> build/work/ItSqlLogicTest/static_2773294090214/sqllogic0/db/db/table-89/part-6-delta-0.bin.tmp
>     at 
> java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
>     at 
> java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:683)
>     at 
> java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:658)
>     at 
> java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2094)
>     at 
> org.apache.ignite.internal.storage.util.MvPartitionStorages.create(MvPartitionStorages.java:122)
>     at 
> org.apache.ignite.internal.storage.pagememory.AbstractPageMemoryTableStorage.lambda$createMvPartition$5(AbstractPageMemoryTableStorage.java:173)
>     at 
> org.apache.ignite.internal.util.IgniteUtils.inBusyLock(IgniteUtils.java:877)
>     at 
> org.apache.ignite.internal.storage.pagememory.AbstractPageMemoryTableStorage.busy(AbstractPageMemoryTableStorage.java:229)
>     at 
> org.apache.ignite.internal.storage.pagememory.AbstractPageMemoryTableStorage.createMvPartition(AbstractPageMemoryTableStorage.java:173)
>     at 
> org.apache.ignite.internal.table.distributed.TableManager.getOrCreatePartitionStorages(TableManager.java:2288)
>     at 
> org.apache.ignite.internal.table.distributed.TableManager.lambda$updateAssignmentInternal$21(TableManager.java:682)
>     at 
> org.apache.ignite.internal.util.IgniteUtils.inBusyLock(IgniteUtils.java:877)
>     at 
> org.apache.ignite.internal.table.distributed.TableManager.lambda$updateAssignmentInternal$22(TableManager.java:648)
>     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.complete(CompletableFuture.java:2073)
>     at 
> org.apache.ignite.internal.causality.BaseVersionedValue.lambda$copyState$6(BaseVersionedValue.java:307)
>     at 
> java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
>     at 
> java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:883)
>     at 
> java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2251)
>     at 
> org.apache.ignite.internal.causality.BaseVersionedValue.copyState(BaseVersionedValue.java:303)
>     at 
> org.apache.ignite.internal.causality.BaseVersionedValue.complete(BaseVersionedValue.java:189)
>     at 
> org.apache.ignite.internal.causality.IncrementalVersionedValue.lambda$completeInternal$1(IncrementalVersionedValue.java:236)
>     at 
> java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
>     at 
> java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
>     at 
> java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
>     at 
> java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
>     at 
> org.apache.ignite.internal.raft.RaftGroupServiceImpl.lambda$sendWithRetry$39(RaftGroupServiceImpl.java:540)
>     at 
> java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
>     at 
> java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
>     at 
> java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
>     at 
> java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
>     at 
> org.apache.ignite.network.DefaultMessagingService.onInvokeResponse(DefaultMessagingService.java:371)
>     at 
> org.apache.ignite.network.DefaultMessagingService.send0(DefaultMessagingService.java:194)
>     at 
> org.apache.ignite.

[jira] [Assigned] (IGNITE-19611) Drop ifExists flag from Catalog actions params

2023-06-02 Thread Andrey Mashenkov (Jira)


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

Andrey Mashenkov reassigned IGNITE-19611:
-

Assignee: Andrey Mashenkov

> Drop ifExists flag from Catalog actions params
> --
>
> Key: IGNITE-19611
> URL: https://issues.apache.org/jira/browse/IGNITE-19611
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Andrey Mashenkov
>Assignee: Andrey Mashenkov
>Priority: Major
>  Labels: ignite-3, tech-debt
>
> Let's drop dead code from {{org.apache.ignite.internal.catalog.commands}} 
> classes
> E.g. AbstractTableCommandParams.ifTableExists



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


[jira] [Created] (IGNITE-19635) [IEP-104] Add cdc worker thread to handle captured data

2023-06-02 Thread Maksim Timonin (Jira)
Maksim Timonin created IGNITE-19635:
---

 Summary: [IEP-104] Add cdc worker thread to handle captured data
 Key: IGNITE-19635
 URL: https://issues.apache.org/jira/browse/IGNITE-19635
 Project: Ignite
  Issue Type: Sub-task
Reporter: Maksim Timonin


CdcWorker for this ticket:
 # Initialized if CDC is enabled in IgniteConfiguration
 # Consumes the CdcBuffer, delivers data to CdcConsumer
 # Prepares CdcEvents from byte array (incl filtering WALRecords)



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


[jira] [Created] (IGNITE-19636) [IEP-104] Add CdcConsumerState

2023-06-02 Thread Maksim Timonin (Jira)
Maksim Timonin created IGNITE-19636:
---

 Summary: [IEP-104] Add CdcConsumerState
 Key: IGNITE-19636
 URL: https://issues.apache.org/jira/browse/IGNITE-19636
 Project: Ignite
  Issue Type: Sub-task
Reporter: Maksim Timonin


# CdcWorker should persist state into the local MetaStorage (by command from 
CdcConsumer)
 # It should be filled with OFF flag when the buffer is full.
 # CdcWorker should check the state during intialization.



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


[jira] [Created] (IGNITE-19637) [IEP-104] Restore CDC state during ignite node start up

2023-06-02 Thread Maksim Timonin (Jira)
Maksim Timonin created IGNITE-19637:
---

 Summary: [IEP-104] Restore CDC state during ignite node start up
 Key: IGNITE-19637
 URL: https://issues.apache.org/jira/browse/IGNITE-19637
 Project: Ignite
  Issue Type: Sub-task
Reporter: Maksim Timonin


On Ignite node startup it should fill the buffer with data since last 
CdcConsumerState with replaying existing WAL segments.



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


[jira] [Created] (IGNITE-19638) [IEP-104] Add metrics for Realtime CDC

2023-06-02 Thread Maksim Timonin (Jira)
Maksim Timonin created IGNITE-19638:
---

 Summary: [IEP-104] Add metrics for Realtime CDC
 Key: IGNITE-19638
 URL: https://issues.apache.org/jira/browse/IGNITE-19638
 Project: Ignite
  Issue Type: Sub-task
Reporter: Maksim Timonin


# Actual status
 # Actual buffer size
 # Actual WAL segment capturing
 # Sent entries/segments
 # Lag between head of the buffer and actual data



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


[jira] [Created] (IGNITE-19639) [IEP-104] Add Cdc WAL records

2023-06-02 Thread Maksim Timonin (Jira)
Maksim Timonin created IGNITE-19639:
---

 Summary: [IEP-104] Add Cdc WAL records
 Key: IGNITE-19639
 URL: https://issues.apache.org/jira/browse/IGNITE-19639
 Project: Ignite
  Issue Type: Sub-task
Reporter: Maksim Timonin


In this ticket:
 # RealtimeCdcRecord (with persisting CdcConsumerState?)
 # StopRealtimeCdcRecord

 



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


[jira] [Created] (IGNITE-19640) [IEP-104] Add ignite-cdc backup mode

2023-06-02 Thread Maksim Timonin (Jira)
Maksim Timonin created IGNITE-19640:
---

 Summary: [IEP-104] Add ignite-cdc backup mode
 Key: IGNITE-19640
 URL: https://issues.apache.org/jira/browse/IGNITE-19640
 Project: Ignite
  Issue Type: Sub-task
Reporter: Maksim Timonin


ignite-cdc should fetch IgniteConfiguration, and run in backup mode if 
RealtimeCdc is enabled
 # In backup mode should consume Cdc WAL records
 # Switch to active state after get StopRealtimeCdcRecord
 # Persist actual state.



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


[jira] [Updated] (IGNITE-19611) Drop ifExists flag from Catalog actions params

2023-06-02 Thread Andrey Mashenkov (Jira)


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

Andrey Mashenkov updated IGNITE-19611:
--
Fix Version/s: 3.0.0-beta2

> Drop ifExists flag from Catalog actions params
> --
>
> Key: IGNITE-19611
> URL: https://issues.apache.org/jira/browse/IGNITE-19611
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Andrey Mashenkov
>Assignee: Andrey Mashenkov
>Priority: Major
>  Labels: ignite-3, tech-debt
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Let's drop dead code from {{org.apache.ignite.internal.catalog.commands}} 
> classes
> E.g. AbstractTableCommandParams.ifTableExists



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


[jira] [Created] (IGNITE-19641) Catalog events are triggered too early.

2023-06-02 Thread Andrey Mashenkov (Jira)
Andrey Mashenkov created IGNITE-19641:
-

 Summary: Catalog events are triggered too early.
 Key: IGNITE-19641
 URL: https://issues.apache.org/jira/browse/IGNITE-19641
 Project: Ignite
  Issue Type: Bug
  Components: sql
Reporter: Andrey Mashenkov


As of now, Catalog events are triggered before a new version of Catalog is 
registered.
Catalog events doesn’t provide a new version of Catalog itself, but only a 
version number.
Thus, events doesn’t contain enough information in a context, which some 
components may need, and Catalog doesn’t contains a new version.



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


[jira] [Created] (IGNITE-19642) CatalogService should use HybridClock to register new Catalog version.

2023-06-02 Thread Andrey Mashenkov (Jira)
Andrey Mashenkov created IGNITE-19642:
-

 Summary: CatalogService should use HybridClock to register new 
Catalog version.
 Key: IGNITE-19642
 URL: https://issues.apache.org/jira/browse/IGNITE-19642
 Project: Ignite
  Issue Type: Bug
  Components: sql
Reporter: Andrey Mashenkov


As of now we use System.currentTimestamp to assign timestamp for a new Catalog 
version.
Let's use HybridClock instead.

Also, there are bunch of Thread.sleep(5) in CatalogServiceSelftTest tests as a 
workaround for this issue. Let's also remove any waiting in tests.



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


[jira] [Updated] (IGNITE-19642) CatalogService should use HybridClock to register new Catalog version.

2023-06-02 Thread Andrey Mashenkov (Jira)


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

Andrey Mashenkov updated IGNITE-19642:
--
Fix Version/s: 3.0.0-beta2

> CatalogService should use HybridClock to register new Catalog version.
> --
>
> Key: IGNITE-19642
> URL: https://issues.apache.org/jira/browse/IGNITE-19642
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Andrey Mashenkov
>Priority: Major
>  Labels: ignite-3, tech-debt
> Fix For: 3.0.0-beta2
>
>
> As of now we use System.currentTimestamp to assign timestamp for a new 
> Catalog version.
> Let's use HybridClock instead.
> Also, there are bunch of Thread.sleep(5) in CatalogServiceSelftTest tests as 
> a workaround for this issue. Let's also remove any waiting in tests.



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


[jira] [Updated] (IGNITE-19642) CatalogService should use HybridClock to register new Catalog version.

2023-06-02 Thread Andrey Mashenkov (Jira)


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

Andrey Mashenkov updated IGNITE-19642:
--
Epic Link: IGNITE-19502

> CatalogService should use HybridClock to register new Catalog version.
> --
>
> Key: IGNITE-19642
> URL: https://issues.apache.org/jira/browse/IGNITE-19642
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Andrey Mashenkov
>Priority: Major
>  Labels: ignite-3, tech-debt
>
> As of now we use System.currentTimestamp to assign timestamp for a new 
> Catalog version.
> Let's use HybridClock instead.
> Also, there are bunch of Thread.sleep(5) in CatalogServiceSelftTest tests as 
> a workaround for this issue. Let's also remove any waiting in tests.



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


[jira] [Updated] (IGNITE-19641) Catalog events are triggered too early.

2023-06-02 Thread Andrey Mashenkov (Jira)


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

Andrey Mashenkov updated IGNITE-19641:
--
Fix Version/s: 3.0.0-beta2

> Catalog events are triggered too early.
> ---
>
> Key: IGNITE-19641
> URL: https://issues.apache.org/jira/browse/IGNITE-19641
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Andrey Mashenkov
>Priority: Major
>  Labels: ignite-3, tech-debt
> Fix For: 3.0.0-beta2
>
>
> As of now, Catalog events are triggered before a new version of Catalog is 
> registered.
> Catalog events doesn’t provide a new version of Catalog itself, but only a 
> version number.
> Thus, events doesn’t contain enough information in a context, which some 
> components may need, and Catalog doesn’t contains a new version.



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


[jira] [Created] (IGNITE-19643) Catalog validation code refactoring.

2023-06-02 Thread Andrey Mashenkov (Jira)
Andrey Mashenkov created IGNITE-19643:
-

 Summary: Catalog validation code refactoring.
 Key: IGNITE-19643
 URL: https://issues.apache.org/jira/browse/IGNITE-19643
 Project: Ignite
  Issue Type: Improvement
  Components: sql
Reporter: Andrey Mashenkov


Let's implement some validation rules that each Catalog command should check 
before the execution. Then replace current boilerplate validation code with 
applying these rules using Visitor pattern.



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


[jira] [Created] (IGNITE-19644) Drop 'COLUMN IF (NOT) EXISTS' syntax sypport.

2023-06-02 Thread Andrey Mashenkov (Jira)
Andrey Mashenkov created IGNITE-19644:
-

 Summary: Drop 'COLUMN IF (NOT) EXISTS' syntax sypport.
 Key: IGNITE-19644
 URL: https://issues.apache.org/jira/browse/IGNITE-19644
 Project: Ignite
  Issue Type: Improvement
  Components: sql
Reporter: Andrey Mashenkov


Let's drop supporting ambiguous "COLUMN IF (NOT) EXISTS" syntax.

Motivation.
"IF EXISTS/IF NOT EXISTS" clause is not a part of SQL standard.
It usage looks ambiguous when statement contains multiple actions for 
adding/dropping multiple columns. Multiple actions support is desirable due to 
performance reasons. 



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


[jira] [Assigned] (IGNITE-19522) Modify deploy unit command

2023-06-02 Thread Vadim Pakhnushev (Jira)


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

Vadim Pakhnushev reassigned IGNITE-19522:
-

Assignee: Vadim Pakhnushev

> Modify deploy unit command 
> ---
>
> Key: IGNITE-19522
> URL: https://issues.apache.org/jira/browse/IGNITE-19522
> Project: Ignite
>  Issue Type: New Feature
>  Components: cli, rest
>Reporter: Mikhail Pochatkin
>Assignee: Vadim Pakhnushev
>Priority: Major
>  Labels: iep-103, ignite-3
>
> ignite3 unit deploy  --version (-uv) 
>  --path (-up) | [--nodes 
> MAJORITY|ALL|]
>  
> Options:
>  * --version -uv - defines the deployment unit’s version 
> ().
>  * --path -up - path to JAR-file () or to the directory () which 
> contains all required class files and resources.
>  * --nodes - defines the set of target nodes where the deployment unit will 
> be deployed. The possible options are possible:
>  * MAJORITY - Default value. The CMG majority nodes will be chosen as the 
> target nodes (including the leader node).
>  * ALL - All available nodes will be chosen as the target nodes. In this case 
> “available” means The CMG majority nodes (see MAJORITY option) and all nodes 
> that will be live during the deployment process. If some node will go offline 
> (excluding the CMG majority nodes) then this node will not finish the 
> deployment process and will request deployment on-demand.
>  *  - All nodes with corresponding consistent IDs in form  node_id2, …]>.  Note, that these nodes are treated as an addition to the CMG 
> majority nodes and behavior is similar to the ALL option (the deployment unit 
> will be deployed only on available nodes).



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


[jira] [Commented] (IGNITE-19405) Remove assignments from table configuration

2023-06-02 Thread Vladislav Pyatkov (Jira)


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

Vladislav Pyatkov commented on IGNITE-19405:


Merged 7f366d667cea9295f035dc21fa87ccd4cbe70378

> Remove assignments from table configuration
> ---
>
> Key: IGNITE-19405
> URL: https://issues.apache.org/jira/browse/IGNITE-19405
> Project: Ignite
>  Issue Type: Task
>Reporter: Kirill Gusakov
>Assignee: Kirill Gusakov
>Priority: Major
>  Labels: ignite-3
>  Time Spent: 3h 40m
>  Remaining Estimate: 0h
>
> *Motivation:*
> At the moment we have a duplication of table assignments in the metastore 
> keys and table configurations. Because of that fact, we need to update the 
> both variants (in the rebalance logic, for example) and handle updates of the 
> both assignments sources. We should use the metastore keys only assignments 
> in all places, instead.
> *Definition of done:*
> - Table assignments are removed from configuration
> - All logic connected with listen/update of configuration assignments must be 
> replaced by appropriate metastore keys



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


[jira] [Created] (IGNITE-19645) Suppress an illegal reflective access runtime warning for JDK11

2023-06-02 Thread Sergey Korotkov (Jira)
Sergey Korotkov created IGNITE-19645:


 Summary: Suppress an illegal reflective access runtime warning for 
JDK11
 Key: IGNITE-19645
 URL: https://issues.apache.org/jira/browse/IGNITE-19645
 Project: Ignite
  Issue Type: Task
Reporter: Sergey Korotkov
Assignee: Sergey Korotkov


Currently the following runtime warnings are printed to console by command line 
utilities like ignite.sh or control.sh if used with JDK11:

 
{noformat}
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by 
org.apache.ignite.internal.util.GridUnsafe$2 
(file:/opt/ignite/libs/ignite-core-2.15.0.jar) to field java.nio.Buffer.address
WARNING: Please consider reporting this to the maintainers of 
org.apache.ignite.internal.util.GridUnsafe$2
WARNING: Use --illegal-access=warn to enable warnings of further illegal 
reflective access operations
WARNING: All illegal access operations will be denied in a future release
{noformat}
 

Other such warnings are suppressed by the corresponding _--add-opens_ JVM 
options in the {{bin/include/jvmdefaults.sh}} (and 
{{{}bin/include/jvmdefaults.bat{}}}) files. But not this one.

Warning needs to be suppressed by the 
_--add-opens=java.base/java.nio=ALL-UNNAMED_ JVM option.



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


[jira] [Updated] (IGNITE-19634) Fix PMD error when building the SQL module

2023-06-02 Thread Aleksandr Polovtcev (Jira)


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

Aleksandr Polovtcev updated IGNITE-19634:
-
Fix Version/s: 3.0.0-beta2

> Fix PMD error when building the SQL module
> --
>
> Key: IGNITE-19634
> URL: https://issues.apache.org/jira/browse/IGNITE-19634
> Project: Ignite
>  Issue Type: Bug
>Reporter: Aleksandr Polovtcev
>Assignee: Aleksandr Polovtcev
>Priority: Trivial
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> When building the project, I get the following error when executing the 
> {{:ignite-sql-engine:pmdMain}} task:
> {noformat}
> PMDException: Error while parsing 
> modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/RexToLixTranslator.java
> {noformat}
> Looks like updating the PMD plugin solves this issue.



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


[jira] [Updated] (IGNITE-19634) Fix PMD error when building the SQL module

2023-06-02 Thread Aleksandr Polovtcev (Jira)


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

Aleksandr Polovtcev updated IGNITE-19634:
-
Reviewer: Semyon Danilov

> Fix PMD error when building the SQL module
> --
>
> Key: IGNITE-19634
> URL: https://issues.apache.org/jira/browse/IGNITE-19634
> Project: Ignite
>  Issue Type: Bug
>Reporter: Aleksandr Polovtcev
>Assignee: Aleksandr Polovtcev
>Priority: Trivial
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When building the project, I get the following error when executing the 
> {{:ignite-sql-engine:pmdMain}} task:
> {noformat}
> PMDException: Error while parsing 
> modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/RexToLixTranslator.java
> {noformat}
> Looks like updating the PMD plugin solves this issue.



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


[jira] [Created] (IGNITE-19646) Transform IndexManager to internally work against Catalog event types

2023-06-02 Thread Kirill Tkalenko (Jira)
Kirill Tkalenko created IGNITE-19646:


 Summary: Transform IndexManager to internally work against Catalog 
event types
 Key: IGNITE-19646
 URL: https://issues.apache.org/jira/browse/IGNITE-19646
 Project: Ignite
  Issue Type: Improvement
Reporter: Kirill Tkalenko
Assignee: Kirill Tkalenko
 Fix For: 3.0.0-beta2


Part of ticket IGNITE-19483 which will have changes for IndexManager.



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


[jira] [Created] (IGNITE-19647) Our Cache Templates introductory documentation is misleading -- implies SQL Create Table only

2023-06-02 Thread Alex Levitski (Jira)
Alex Levitski created IGNITE-19647:
--

 Summary: Our Cache Templates introductory documentation is 
misleading -- implies SQL Create Table only
 Key: IGNITE-19647
 URL: https://issues.apache.org/jira/browse/IGNITE-19647
 Project: Ignite
  Issue Type: Task
  Components: documentation
Reporter: Alex Levitski
Assignee: Alex Levitski


Identical to [https://ggsystems.atlassian.net/browse/GG-36709] 



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


[jira] [Resolved] (IGNITE-18528) Distribution Zones [Part2]

2023-06-02 Thread Vyacheslav Koptilin (Jira)


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

Vyacheslav Koptilin resolved IGNITE-18528.
--
Fix Version/s: 3.0.0-beta2
   Resolution: Fixed

> Distribution Zones [Part2]
> --
>
> Key: IGNITE-18528
> URL: https://issues.apache.org/jira/browse/IGNITE-18528
> Project: Ignite
>  Issue Type: Epic
>Reporter: Alexander Lapin
>Assignee: Mirza Aliev
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>




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


[jira] [Assigned] (IGNITE-18528) Distribution Zones [Part2]

2023-06-02 Thread Vyacheslav Koptilin (Jira)


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

Vyacheslav Koptilin reassigned IGNITE-18528:


Assignee: Mirza Aliev

> Distribution Zones [Part2]
> --
>
> Key: IGNITE-18528
> URL: https://issues.apache.org/jira/browse/IGNITE-18528
> Project: Ignite
>  Issue Type: Epic
>Reporter: Alexander Lapin
>Assignee: Mirza Aliev
>Priority: Major
>  Labels: ignite-3
>




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


[jira] [Updated] (IGNITE-19570) Write intent resolution for RW transactions

2023-06-02 Thread Vyacheslav Koptilin (Jira)


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

Vyacheslav Koptilin updated IGNITE-19570:
-
Description: 
*Motivation*
Currently, RW transaction resolves only write intents by itself. If RW 
transaction steps on a write intent from another transaction, an assertion 
error will appear.
{code:java}
// Should never happen, currently, locks prevent reading another 
transaction intents during RW requests.
throw new AssertionError("Mismatched transaction id, expectedTxId={" + txId 
+ "},"
+ " actualTxId={" + retrievedResultTxId + '}');
{code}
Really, we will be able to leave write intent in case when node restarted 
before it can handle cleanup message. Now, we workaround the case by scanning 
storage for logging for write intent and commit them on start:
{code:java}
try (PartitionTimestampCursor cursor = 
partitionDataStorage.scan(HybridTimestamp.MAX_VALUE)) {
while (cursor.hasNext()) {
ReadResult readResult = cursor.next();

if (readResult.isWriteIntent()) {

txsPendingRowIds.computeIfAbsent(readResult.transactionId(), key -> new 
TreeSet<>()).add(readResult.rowId());
}
}
}
{code}
But this is very time-consuming.

  was:
*Motivation*
Currently, RW transaction resolves only write intents by itself. If RW 
transaction steps on a write intent from another transaction, an assertion 
error will appear.
{code}
// Should never happen, currently, locks prevent reading another 
transaction intents during RW requests.
throw new AssertionError("Mismatched transaction id, expectedTxId={" + txId 
+ "},"
+ " actualTxId={" + retrievedResultTxId + '}');
{code}
Really, we will be able to leave write intent in case when node restarted 
before is can handle cleanup message. Now, we workaround the case by scanning 
storage for logging for write intent and commit them on start:
{code}
try (PartitionTimestampCursor cursor = 
partitionDataStorage.scan(HybridTimestamp.MAX_VALUE)) {
while (cursor.hasNext()) {
ReadResult readResult = cursor.next();

if (readResult.isWriteIntent()) {

txsPendingRowIds.computeIfAbsent(readResult.transactionId(), key -> new 
TreeSet<>()).add(readResult.rowId());
}
}
}
{code}
But this is very time-consuming.


> Write intent resolution for RW transactions
> ---
>
> Key: IGNITE-19570
> URL: https://issues.apache.org/jira/browse/IGNITE-19570
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Vladislav Pyatkov
>Priority: Major
>  Labels: ignite-3
>
> *Motivation*
> Currently, RW transaction resolves only write intents by itself. If RW 
> transaction steps on a write intent from another transaction, an assertion 
> error will appear.
> {code:java}
>   // Should never happen, currently, locks prevent reading another 
> transaction intents during RW requests.
> throw new AssertionError("Mismatched transaction id, expectedTxId={" + 
> txId + "},"
> + " actualTxId={" + retrievedResultTxId + '}');
> {code}
> Really, we will be able to leave write intent in case when node restarted 
> before it can handle cleanup message. Now, we workaround the case by scanning 
> storage for logging for write intent and commit them on start:
> {code:java}
> try (PartitionTimestampCursor cursor = 
> partitionDataStorage.scan(HybridTimestamp.MAX_VALUE)) {
> while (cursor.hasNext()) {
> ReadResult readResult = cursor.next();
> if (readResult.isWriteIntent()) {
> 
> txsPendingRowIds.computeIfAbsent(readResult.transactionId(), key -> new 
> TreeSet<>()).add(readResult.rowId());
> }
> }
> }
> {code}
> But this is very time-consuming.



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


[jira] [Created] (IGNITE-19648) Failed to cancel rebalance

2023-06-02 Thread Ivan Bessonov (Jira)
Ivan Bessonov created IGNITE-19648:
--

 Summary: Failed to cancel rebalance
 Key: IGNITE-19648
 URL: https://issues.apache.org/jira/browse/IGNITE-19648
 Project: Ignite
  Issue Type: Bug
Reporter: Ivan Bessonov


{noformat}
Caused by: org.apache.ignite.internal.storage.StorageRebalanceException: 
IGN-STORAGE-4 TraceId:8e22c456-103e-4445-9b35-e021e22cd615 Storage in the 
process of starting a rebalance: [table=TEST, partitionId=0]
at 
org.apache.ignite.internal.storage.util.MvPartitionStorages.throwExceptionDependingOnOperationForRebalance(MvPartitionStorages.java:400)
at 
org.apache.ignite.internal.storage.util.MvPartitionStorages.lambda$abortRebalance$16(MvPartitionStorages.java:265)
at 
java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1932)
at 
org.apache.ignite.internal.storage.util.MvPartitionStorages.abortRebalance(MvPartitionStorages.java:261)
at 
org.apache.ignite.internal.storage.pagememory.AbstractPageMemoryTableStorage.lambda$abortRebalancePartition$17(AbstractPageMemoryTableStorage.java:250)
at 
org.apache.ignite.internal.util.IgniteUtils.inBusyLock(IgniteUtils.java:897)
at 
org.apache.ignite.internal.storage.pagememory.AbstractPageMemoryTableStorage.abortRebalancePartition(AbstractPageMemoryTableStorage.java:250)
at 
org.apache.ignite.internal.table.distributed.raft.snapshot.PartitionAccessImpl.abortRebalance(PartitionAccessImpl.java:221){noformat}
Unfortunately, the entire log is lost. Issue occurred in one of 
org.apache.ignite.internal.raftsnapshot.ItTableRaftSnapshotsTest tests.



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


[jira] [Commented] (IGNITE-17985) intermittent failure: long pathname prevents server node start on Windows 11 with working IPv6 network

2023-06-02 Thread Jeremy McMillan (Jira)


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

Jeremy McMillan commented on IGNITE-17985:
--

Matching GitHub issue 
[#10648|[http://example.com|https://github.com/apache/ignite/issues/10648]] has 
additional information.

> intermittent failure: long pathname prevents server node start on Windows 11 
> with working IPv6 network
> --
>
> Key: IGNITE-17985
> URL: https://issues.apache.org/jira/browse/IGNITE-17985
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.14
> Environment: Windows 11
> OpenJDK 17
> Apache Ignite 2.14
>Reporter: Jeremy McMillan
>Priority: Critical
>
> Depending on the IP addresses assigned to nodes before startup, Ignite 
> default behavior constructs a consistent ID from a tuple of IP addresses and 
> ports identifying the node, which will result in a failure to create local 
> page cache folder using the consistent ID as a pathname, 
> non-deterministically preventing node startup.
> example log message:
> {{[08:52:17] Ignite node stopped wih ERRORS [uptime=00:00:02.143]}}
> {{class org.apache.ignite.IgniteException: Failed to start processor: 
> GridProcessorAdapter []}}
> {{        at 
> org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:1145)}}
> {{        at org.apache.ignite.Ignition.start(Ignition.java:356)}}
> {{        at 
> org.apache.ignite.startup.cmdline.CommandLineStartup.main(CommandLineStartup.java:365)}}
> {{Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start 
> processor: GridProcessorAdapter []}}
> {{        at 
> org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:1787)}}
> {{        at 
> org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1066)}}
> {{        at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1757)}}
> {{        at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1679)}}
> {{        at 
> org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1121)}}
> {{        at 
> org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:1015)}}
> {{        at 
> org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:921)}}
> {{        at 
> org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:840)}}
> {{        at 
> org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:710)}}
> {{        at 
> org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:679)}}
> {{        at org.apache.ignite.Ignition.start(Ignition.java:353)}}
> {{        ... 1 more}}
> {{Caused by: class org.apache.ignite.IgniteCheckedException: Failed to create 
> page store work directory: 
> C:\Users\jt\AppData\Local\IgniteCluster\node0\db\0_0_0_0_0_0_0_1_10_0_1_84_127_0_0_1_2600_1700_5650_3cff_481f_54f_adb9_437_2600_1700_5650_3cff_8188_5e65_f1fc_237_2600_1700_5650_3cff_84a4_9fdf_feb2_b01f_2600_1700_5650_3cff_9194_cd0d_813f_2e71_2600_1700_5650_3cff_a042_5e6f_9b0b_492b_2600_1700_5650_3cff_bcc4_3dca_bcd5_41cb_47500}}
> {{        at 
> org.apache.ignite.internal.util.IgniteUtils.ensureDirectory(IgniteUtils.java:9971)}}
> {{        at 
> org.apache.ignite.internal.processors.cache.GridLocalConfigManager.(GridLocalConfigManager.java:127)}}
> {{        at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.start(GridCacheProcessor.java:618)}}
> {{        at 
> org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:1784)}}
> {{        ... 11 more}}
> {{Failed to start grid: Failed to start processor: GridProcessorAdapter []}}
> Bad workaround: reboot the node. With good luck, the IP addresses will 
> normalize to a shorter string, and the node will start. With bad luck, the IP 
> addresses will be too long: try again.
> Acceptable workaround: override the nodes' consistent IDs by [setting the 
> property or environment 
> variable|https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/IgniteSystemProperties.html#IGNITE_OVERRIDE_CONSISTENT_ID]
>  at startup time to an appropriate value.
> Factors:
>  * #IGNITE-9995
>  * #IGNITE-2416



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


[jira] [Comment Edited] (IGNITE-17985) intermittent failure: long pathname prevents server node start on Windows 11 with working IPv6 network

2023-06-02 Thread Jeremy McMillan (Jira)


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

Jeremy McMillan edited comment on IGNITE-17985 at 6/2/23 2:50 PM:
--

Matching GitHub issue [#10648|https://github.com/apache/ignite/issues/10648] 
has additional information.


was (Author: JIRAUSER292640):
Matching GitHub issue 
[#10648|[http://example.com|https://github.com/apache/ignite/issues/10648]] has 
additional information.

> intermittent failure: long pathname prevents server node start on Windows 11 
> with working IPv6 network
> --
>
> Key: IGNITE-17985
> URL: https://issues.apache.org/jira/browse/IGNITE-17985
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.14
> Environment: Windows 11
> OpenJDK 17
> Apache Ignite 2.14
>Reporter: Jeremy McMillan
>Priority: Critical
>
> Depending on the IP addresses assigned to nodes before startup, Ignite 
> default behavior constructs a consistent ID from a tuple of IP addresses and 
> ports identifying the node, which will result in a failure to create local 
> page cache folder using the consistent ID as a pathname, 
> non-deterministically preventing node startup.
> example log message:
> {{[08:52:17] Ignite node stopped wih ERRORS [uptime=00:00:02.143]}}
> {{class org.apache.ignite.IgniteException: Failed to start processor: 
> GridProcessorAdapter []}}
> {{        at 
> org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:1145)}}
> {{        at org.apache.ignite.Ignition.start(Ignition.java:356)}}
> {{        at 
> org.apache.ignite.startup.cmdline.CommandLineStartup.main(CommandLineStartup.java:365)}}
> {{Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start 
> processor: GridProcessorAdapter []}}
> {{        at 
> org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:1787)}}
> {{        at 
> org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1066)}}
> {{        at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1757)}}
> {{        at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1679)}}
> {{        at 
> org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1121)}}
> {{        at 
> org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:1015)}}
> {{        at 
> org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:921)}}
> {{        at 
> org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:840)}}
> {{        at 
> org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:710)}}
> {{        at 
> org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:679)}}
> {{        at org.apache.ignite.Ignition.start(Ignition.java:353)}}
> {{        ... 1 more}}
> {{Caused by: class org.apache.ignite.IgniteCheckedException: Failed to create 
> page store work directory: 
> C:\Users\jt\AppData\Local\IgniteCluster\node0\db\0_0_0_0_0_0_0_1_10_0_1_84_127_0_0_1_2600_1700_5650_3cff_481f_54f_adb9_437_2600_1700_5650_3cff_8188_5e65_f1fc_237_2600_1700_5650_3cff_84a4_9fdf_feb2_b01f_2600_1700_5650_3cff_9194_cd0d_813f_2e71_2600_1700_5650_3cff_a042_5e6f_9b0b_492b_2600_1700_5650_3cff_bcc4_3dca_bcd5_41cb_47500}}
> {{        at 
> org.apache.ignite.internal.util.IgniteUtils.ensureDirectory(IgniteUtils.java:9971)}}
> {{        at 
> org.apache.ignite.internal.processors.cache.GridLocalConfigManager.(GridLocalConfigManager.java:127)}}
> {{        at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.start(GridCacheProcessor.java:618)}}
> {{        at 
> org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:1784)}}
> {{        ... 11 more}}
> {{Failed to start grid: Failed to start processor: GridProcessorAdapter []}}
> Bad workaround: reboot the node. With good luck, the IP addresses will 
> normalize to a shorter string, and the node will start. With bad luck, the IP 
> addresses will be too long: try again.
> Acceptable workaround: override the nodes' consistent IDs by [setting the 
> property or environment 
> variable|https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/IgniteSystemProperties.html#IGNITE_OVERRIDE_CONSISTENT_ID]
>  at startup time to an appropriate value.
> Factors:
>  * #IGNITE-9995
>  * #IGNITE-2416



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


[jira] [Commented] (IGNITE-19590) Calcite engine. Hide sensitive information in diagnostic tools

2023-06-02 Thread Ignite TC Bot (Jira)


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

Ignite TC Bot commented on IGNITE-19590:


{panel:title=Branch: [pull/10760/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/10760/head] Base: [master] : New Tests 
(1)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#8b}Calcite SQL{color} [[tests 
1|https://ci2.ignite.apache.org/viewLog.html?buildId=7199360]]
* {color:#013220}IgniteCalciteTestSuite: 
SqlDiagnosticIntegrationTest.testSensitiveInformationHiding - PASSED{color}

{panel}
[TeamCity *--> Run :: All* 
Results|https://ci2.ignite.apache.org/viewLog.html?buildId=7199441&buildTypeId=IgniteTests24Java8_RunAll]

> Calcite engine. Hide sensitive information in diagnostic tools
> --
>
> Key: IGNITE-19590
> URL: https://issues.apache.org/jira/browse/IGNITE-19590
> Project: Ignite
>  Issue Type: Sub-task
>Reporter: Aleksey Plekhanov
>Assignee: Aleksey Plekhanov
>Priority: Major
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> We need to hide sensitive information in queries exposed to diagnostic tools 
> for the Calcite-based SQL engine, if flag IGNITE_TO_STRING_INCLUDE_SENSITIVE 
> is not set.



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


[jira] [Updated] (IGNITE-19466) Empty data nodes on table creation

2023-06-02 Thread Sergey Uttsel (Jira)


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

Sergey Uttsel updated IGNITE-19466:
---
Description: 
h3. *Motivation*

After introducing data nodes from DistributionZoneManager on table creation it 
became possible that a table is created with an empty data nodes value and 
therefore with empty assignments. It causes an exceptions like 
{code:java}
Caused by: java.lang.AssertionError
at 
org.apache.ignite.internal.raft.RaftGroupServiceImpl.randomNode(RaftGroupServiceImpl.java:680)
at 
org.apache.ignite.internal.raft.RaftGroupServiceImpl.randomNode(RaftGroupServiceImpl.java:667)
at 
org.apache.ignite.internal.raft.RaftGroupServiceImpl.refreshLeader(RaftGroupServiceImpl.java:222)
at 
org.apache.ignite.internal.raft.RaftGroupServiceImpl.start(RaftGroupServiceImpl.java:178)
 {code}
because there are an empty peers on RaftGroupServiceImpl#start. The proper 
solution when a table is created with empty peers but remains unusable until 
the data nodes for the zone is updated and RaftGroupServiceImpl is started with 
peers.
h3. *Definition of Done*

If the date nodes for the zone are empty, then create a table without a raft 
group.

Start raft groups and other components when the data nodes value is updated.
h3. *Implementation Notes*

We have two issues.
 # The first is a table creation when the data nodes values of the zone is 
empty. In this case createTablePartitionsLocally method gets an empty 
newPartAssignment. So it is not possible to do startRaftGroupNode without 
peers. Need to skip it if the data nodes is empty.
 # The second is starting raft groups when data nodes value is updated. In this 
case handleChangePendingAssignmentEvent gets an empty stableAssignments and not 
empty pendingAssignments. Currently handleChangePendingAssignmentEvent invokes 
startRaftGroupNode to start raft group node with stable assignment and then 
invokes changePeersAsync with pendingAssignments. We need to skip it if 
stableAssignments is empty and start new raft group with pendingAssignments.

  was:
h3. *Motivation*

After introducing data nodes from DistributionZoneManager on table creation it 
became possible that a table is created with an empty data nodes value and 
therefore with empty assignments. It causes an exceptions like 
{code:java}
Caused by: java.lang.AssertionError
at 
org.apache.ignite.internal.raft.RaftGroupServiceImpl.randomNode(RaftGroupServiceImpl.java:680)
at 
org.apache.ignite.internal.raft.RaftGroupServiceImpl.randomNode(RaftGroupServiceImpl.java:667)
at 
org.apache.ignite.internal.raft.RaftGroupServiceImpl.refreshLeader(RaftGroupServiceImpl.java:222)
at 
org.apache.ignite.internal.raft.RaftGroupServiceImpl.start(RaftGroupServiceImpl.java:178)
 {code}
because there are an empty peers on RaftGroupServiceImpl#start. The proper 
solution when a table is created with empty peers but remains unusable until 
the data nodes for the zone is updated and RaftGroupServiceImpl is started with 
peers.
h3. *Definition of Done*

If the date nodes for the zone are empty, then create a table without a raft 
group.


> Empty data nodes on table creation
> --
>
> Key: IGNITE-19466
> URL: https://issues.apache.org/jira/browse/IGNITE-19466
> Project: Ignite
>  Issue Type: Bug
>Reporter: Sergey Uttsel
>Priority: Major
>  Labels: ignite-3
>
> h3. *Motivation*
> After introducing data nodes from DistributionZoneManager on table creation 
> it became possible that a table is created with an empty data nodes value and 
> therefore with empty assignments. It causes an exceptions like 
> {code:java}
> Caused by: java.lang.AssertionError
> at 
> org.apache.ignite.internal.raft.RaftGroupServiceImpl.randomNode(RaftGroupServiceImpl.java:680)
> at 
> org.apache.ignite.internal.raft.RaftGroupServiceImpl.randomNode(RaftGroupServiceImpl.java:667)
> at 
> org.apache.ignite.internal.raft.RaftGroupServiceImpl.refreshLeader(RaftGroupServiceImpl.java:222)
> at 
> org.apache.ignite.internal.raft.RaftGroupServiceImpl.start(RaftGroupServiceImpl.java:178)
>  {code}
> because there are an empty peers on RaftGroupServiceImpl#start. The proper 
> solution when a table is created with empty peers but remains unusable until 
> the data nodes for the zone is updated and RaftGroupServiceImpl is started 
> with peers.
> h3. *Definition of Done*
> If the date nodes for the zone are empty, then create a table without a raft 
> group.
> Start raft groups and other components when the data nodes value is updated.
> h3. *Implementation Notes*
> We have two issues.
>  # The first is a table creation when the data nodes values of the zone is 
> empty. In this case createTablePartitionsLocally method gets an empty 
> newPartAssignment. So it is not possible to do startRaftGroupNode without 
> peers. Need to skip it if the da

[jira] [Commented] (IGNITE-19620) Provide ability to configure metric exporter filter from Spring XML

2023-06-02 Thread Ignite TC Bot (Jira)


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

Ignite TC Bot commented on IGNITE-19620:


{panel:title=Branch: [pull/10757/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/10757/head] Base: [master] : New Tests 
(1)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#8b}Spring{color} [[tests 
1|https://ci2.ignite.apache.org/viewLog.html?buildId=7199653]]
* {color:#013220}IgniteSpringTestSuite: RegexpMetricFilterTest.testFilter - 
PASSED{color}

{panel}
[TeamCity *--> Run :: All* 
Results|https://ci2.ignite.apache.org/viewLog.html?buildId=7199669&buildTypeId=IgniteTests24Java8_RunAll]

> Provide ability to configure metric exporter filter from Spring XML
> ---
>
> Key: IGNITE-19620
> URL: https://issues.apache.org/jira/browse/IGNITE-19620
> Project: Ignite
>  Issue Type: Task
>Reporter: Nikita Amelchev
>Assignee: Nikita Amelchev
>Priority: Minor
>  Labels: ise
> Fix For: 2.16
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Provide ability to configure metric exporter filter from Spring XML



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


[jira] [Created] (IGNITE-19649) Ignite Doc: add doc for the 'queryTimeout' & 'connectionTimeout' in the JDBC connection url

2023-06-02 Thread YuJue Li (Jira)
YuJue Li created IGNITE-19649:
-

 Summary: Ignite Doc: add doc for the 'queryTimeout' & 
'connectionTimeout' in the JDBC connection url
 Key: IGNITE-19649
 URL: https://issues.apache.org/jira/browse/IGNITE-19649
 Project: Ignite
  Issue Type: Improvement
  Components: documentation
Affects Versions: 2.15
Reporter: YuJue Li
Assignee: YuJue Li
 Fix For: 2.16


Add doc for the 'queryTimeout' & 'connectionTimeout' in the JDBC connection url



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