[jira] [Updated] (IGNITE-17445) RocksDbKeyValueStorage recreates DB on start, so data can't be found until Raft log is replayed

2022-07-29 Thread Denis Chudov (Jira)


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

Denis Chudov updated IGNITE-17445:
--
Description: 
RocksDbKeyValueStorage recreates DB on start. This means that entries that were 
put to this storage earlier, can or cant be found until raft log is replayed, 
i.e. the behavior is undefined. For example, this can cause assertion on node 
recovery:

{code:java}
java.lang.AssertionError: Configuration revision must be greater than local 
node applied revision [msRev=0, appliedRev=1
{code}
which means that applied revision in vault is 1 but only 0 is found in meta 
storage, as the storage of meta storage is being recreated.

For now, the only thing that saves us from this assertion to be thrown every 
time, is that operations related to node recovery, applied from distributed 
configuration (see IgniteImpl#notifyConfigurationListeners ), take some time 
and raft log is small enough to replay faster than the performing of recovery 
operations. 



  was:
RocksDbKeyValueStorage recreates DB on start. This means that entries that were 
put to this storage earlier, can or cant be found until raft log is replayed, 
i.e. the behavior is undefined. For example, this can cause assertion on node 
recovery:

{code:java}
java.lang.AssertionError: Configuration revision must be greater than local 
node applied revision [msRev=0, appliedRev=1
{code}
which means that applied revision in vault is 1 but only 0 is found in meta 
storage, as the storage of meta storage is being recreated.




> RocksDbKeyValueStorage recreates DB on start, so data can't be found until 
> Raft log is replayed
> ---
>
> Key: IGNITE-17445
> URL: https://issues.apache.org/jira/browse/IGNITE-17445
> Project: Ignite
>  Issue Type: Bug
>Reporter: Denis Chudov
>Priority: Major
>
> RocksDbKeyValueStorage recreates DB on start. This means that entries that 
> were put to this storage earlier, can or cant be found until raft log is 
> replayed, i.e. the behavior is undefined. For example, this can cause 
> assertion on node recovery:
> {code:java}
> java.lang.AssertionError: Configuration revision must be greater than local 
> node applied revision [msRev=0, appliedRev=1
> {code}
> which means that applied revision in vault is 1 but only 0 is found in meta 
> storage, as the storage of meta storage is being recreated.
> For now, the only thing that saves us from this assertion to be thrown every 
> time, is that operations related to node recovery, applied from distributed 
> configuration (see IgniteImpl#notifyConfigurationListeners ), take some time 
> and raft log is small enough to replay faster than the performing of recovery 
> operations. 



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


[jira] [Created] (IGNITE-17445) RocksDbKeyValueStorage recreates DB on start, so data can't be found until Raft log is replayed

2022-07-29 Thread Denis Chudov (Jira)
Denis Chudov created IGNITE-17445:
-

 Summary: RocksDbKeyValueStorage recreates DB on start, so data 
can't be found until Raft log is replayed
 Key: IGNITE-17445
 URL: https://issues.apache.org/jira/browse/IGNITE-17445
 Project: Ignite
  Issue Type: Bug
Reporter: Denis Chudov


RocksDbKeyValueStorage recreates DB on start. This means that entries that were 
put to this storage earlier, can or cant be found until raft log is replayed, 
i.e. the behavior is undefined. For example, this can cause assertion on node 
recovery:

{code:java}
java.lang.AssertionError: Configuration revision must be greater than local 
node applied revision [msRev=0, appliedRev=1
{code}
which means that applied revision in vault is 1 but only 0 is found in meta 
storage, as the storage of meta storage is being recreated.





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


[jira] [Updated] (IGNITE-17429) Sql. Extend sql grammar to support CREATE/DROP INDEX statements

2022-07-29 Thread Konstantin Orlov (Jira)


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

Konstantin Orlov updated IGNITE-17429:
--
Description: 
We need to give an ability to manage index via DDL statements.

As a first step lets support CREATE and DROP statements only. Within this 
ticket we need to extend the sql grammar file as well as provide all necessary 
structures to keep parsed AST.

The proposed grammar:
{code:java}
CREATE INDEX [IF NOT EXISTS] name ON table_name [USING { HASH | TREE }] 
(column_name [ASC | DESC] [NULLS {FIRST | LAST}] [, ...]);
 
{code}
{code:java}
DROP INDEX [IF EXISTS] name;{code}

  was:
We need to give an ability to manage index via DDL statements.

As a first step lets support CREATE and DROP statements only. Within this 
ticket we need to extend the sql grammar file as well as provide all necessary 
structures to keep parsed AST.

The proposed grammar:
{code:java}
CREATE INDEX [IF NOT EXISTS] name ON table_name [USING HASH | SORTED ] 
(column_name [ASC | DESC] [NULLS {FIRST | LAST}] [, ...]);
 
{code}
{code:java}
DROP INDEX [IF EXISTS] name;{code}


> Sql. Extend sql grammar to support CREATE/DROP INDEX statements
> ---
>
> Key: IGNITE-17429
> URL: https://issues.apache.org/jira/browse/IGNITE-17429
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Konstantin Orlov
>Assignee: Konstantin Orlov
>Priority: Major
>  Labels: ignite-3
>
> We need to give an ability to manage index via DDL statements.
> As a first step lets support CREATE and DROP statements only. Within this 
> ticket we need to extend the sql grammar file as well as provide all 
> necessary structures to keep parsed AST.
> The proposed grammar:
> {code:java}
> CREATE INDEX [IF NOT EXISTS] name ON table_name [USING { HASH | TREE }] 
> (column_name [ASC | DESC] [NULLS {FIRST | LAST}] [, ...]);
>  
> {code}
> {code:java}
> DROP INDEX [IF EXISTS] name;{code}



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


[jira] [Created] (IGNITE-17444) Consider possibility of introducing pluggable metric exporters

2022-07-29 Thread Denis Chudov (Jira)
Denis Chudov created IGNITE-17444:
-

 Summary: Consider possibility of introducing pluggable metric 
exporters
 Key: IGNITE-17444
 URL: https://issues.apache.org/jira/browse/IGNITE-17444
 Project: Ignite
  Issue Type: New Feature
Reporter: Denis Chudov


Consider possibility of introducing pluggable metric exporters to provide 
ability for users to create their own exporters thay need.



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


[jira] [Created] (IGNITE-17443) Implement opencensus metric exporter

2022-07-29 Thread Denis Chudov (Jira)
Denis Chudov created IGNITE-17443:
-

 Summary: Implement opencensus metric exporter
 Key: IGNITE-17443
 URL: https://issues.apache.org/jira/browse/IGNITE-17443
 Project: Ignite
  Issue Type: New Feature
Reporter: Denis Chudov


Implement opencensus metric exporter, which should push metrics to opencensus, 
likewise the opencensus exporter in Apache Ignite 2.



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


[jira] [Updated] (IGNITE-17442) Colorize Ignite console output

2022-07-29 Thread Pavel Pereslegin (Jira)


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

Pavel Pereslegin updated IGNITE-17442:
--
Description: 
Recently completed Ignite [migration to use 
log4j2|https://issues.apache.org/jira/browse/IGNITE-16650]. So we can use 
["highlight" conversion 
pattern|https://logging.apache.org/log4j/2.x/manual/layouts.html#Patterns] to 
colorize the output.

Initial proposal for production console output (pretty similar to spring boot).
!prod-propsal.png|width=679,height=337!

Pattern for log4j 2.18+
{code:xml}

{code}

For the test framework, there is a suggestion - to color the output of each 
node with its own color. Apparently this can't be done without adding your own 
plugin for log4j.

  was:
Recently completed Ignite [migration to use 
log4j2|https://issues.apache.org/jira/browse/IGNITE-16650]. So we can use 
["highlight" conversion 
pattern|https://logging.apache.org/log4j/2.x/manual/layouts.html#Patterns] to 
colorize the output.

Initial proposal for production console output (pretty similar to spring boot).
!prod-propsal.png|width=679,height=337!

Pattern for log4j 2.18+
{noformat}

{noformat}
For the test framework, there is a suggestion - to color the output of each 
node with its own color. Apparently this can't be done without adding your own 
plugin for log4j.


> Colorize Ignite console output
> --
>
> Key: IGNITE-17442
> URL: https://issues.apache.org/jira/browse/IGNITE-17442
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Pavel Pereslegin
>Assignee: Pavel Pereslegin
>Priority: Major
> Attachments: prod-propsal.png
>
>
> Recently completed Ignite [migration to use 
> log4j2|https://issues.apache.org/jira/browse/IGNITE-16650]. So we can use 
> ["highlight" conversion 
> pattern|https://logging.apache.org/log4j/2.x/manual/layouts.html#Patterns] to 
> colorize the output.
> Initial proposal for production console output (pretty similar to spring 
> boot).
> !prod-propsal.png|width=679,height=337!
> Pattern for log4j 2.18+
> {code:xml}
>  pattern="%style{[%d{ISO8601}]}{#77}%highlight{[%-5p]}{FATAL=red blink, 
> ERROR=red, WARN=yellow bold, INFO=green, DEBUG=green bold, 
> TRACE=blue}%style{[%t]}{magenta}%style{[%c{1}]}{cyan}%notEmpty{[%markerSimpleName]}
>  %m%n"/>
> {code}
> For the test framework, there is a suggestion - to color the output of each 
> node with its own color. Apparently this can't be done without adding your 
> own plugin for log4j.



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


[jira] [Updated] (IGNITE-17442) Colorize Ignite console output

2022-07-29 Thread Pavel Pereslegin (Jira)


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

Pavel Pereslegin updated IGNITE-17442:
--
Description: 
Recently completed Ignite [migration to use 
log4j2|https://issues.apache.org/jira/browse/IGNITE-16650]. So we can use 
["highlight" conversion 
pattern|https://logging.apache.org/log4j/2.x/manual/layouts.html#Patterns] to 
colorize the output.

Initial proposal for production console output (pretty similar to spring boot).
!prod-propsal.png|width=679,height=337!

Pattern for log4j 2.18+
{noformat}

{noformat}
For the test framework, there is a suggestion - to color the output of each 
node with its own color. Apparently this can't be done without adding your own 
plugin for log4j.

  was:
Recently completed Ignite migration to use log4j2. So we can use ["highlight" 
conversion 
pattern|https://logging.apache.org/log4j/2.x/manual/layouts.html#Patterns] to 
colorize the output.

Initial proposal for production console output (pretty similar to spring boot).
!prod-propsal.png|width=679,height=337!

Pattern for log4j 2.18+
{noformat}

{noformat}
For the test framework, there is a suggestion - to color the output of each 
node with its own color. Apparently this can't be done without adding your own 
plugin for log4j.


> Colorize Ignite console output
> --
>
> Key: IGNITE-17442
> URL: https://issues.apache.org/jira/browse/IGNITE-17442
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Pavel Pereslegin
>Assignee: Pavel Pereslegin
>Priority: Major
> Attachments: prod-propsal.png
>
>
> Recently completed Ignite [migration to use 
> log4j2|https://issues.apache.org/jira/browse/IGNITE-16650]. So we can use 
> ["highlight" conversion 
> pattern|https://logging.apache.org/log4j/2.x/manual/layouts.html#Patterns] to 
> colorize the output.
> Initial proposal for production console output (pretty similar to spring 
> boot).
> !prod-propsal.png|width=679,height=337!
> Pattern for log4j 2.18+
> {noformat}
>  pattern="%style{[%d{ISO8601}]}{#77}%highlight{[%-5p]}{FATAL=red blink, 
> ERROR=red, WARN=yellow bold, INFO=green, DEBUG=green bold, 
> TRACE=blue}%style{[%t]}{magenta}%style{[%c{1}]}{cyan}%notEmpty{[%markerSimpleName]}
>  %m%n"/>
> {noformat}
> For the test framework, there is a suggestion - to color the output of each 
> node with its own color. Apparently this can't be done without adding your 
> own plugin for log4j.



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


[jira] [Updated] (IGNITE-17442) Colorize Ignite console output

2022-07-29 Thread Pavel Pereslegin (Jira)


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

Pavel Pereslegin updated IGNITE-17442:
--
Description: 
Recently completed Ignite migration to use log4j2. So we can use ["highlight" 
conversion 
pattern|https://logging.apache.org/log4j/2.x/manual/layouts.html#Patterns] to 
colorize the output.

Initial proposal for production console output (pretty similar to spring boot).
!prod-propsal.png|width=679,height=337!

Pattern for log4j 2.18+
{noformat}

{noformat}
For the test framework, there is a suggestion - to color the output of each 
node with its own color. Apparently this can't be done without adding your own 
plugin for log4j.

  was:
Recently completed Ignite migration to use log4j2. So we can use ["highlight" 
conversion 
pattern|https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout] 
to colorize the output.

Initial proposal for production console output (pretty similar to spring boot).
!prod-propsal.png|width=679,height=337!

Pattern for log4j 2.18+
{noformat}

{noformat}
For the test framework, there is a suggestion - to color the output of each 
node with its own color. Apparently this can't be done without adding your own 
plugin for log4j.


> Colorize Ignite console output
> --
>
> Key: IGNITE-17442
> URL: https://issues.apache.org/jira/browse/IGNITE-17442
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Pavel Pereslegin
>Assignee: Pavel Pereslegin
>Priority: Major
> Attachments: prod-propsal.png
>
>
> Recently completed Ignite migration to use log4j2. So we can use ["highlight" 
> conversion 
> pattern|https://logging.apache.org/log4j/2.x/manual/layouts.html#Patterns] to 
> colorize the output.
> Initial proposal for production console output (pretty similar to spring 
> boot).
> !prod-propsal.png|width=679,height=337!
> Pattern for log4j 2.18+
> {noformat}
>  pattern="%style{[%d{ISO8601}]}{#77}%highlight{[%-5p]}{FATAL=red blink, 
> ERROR=red, WARN=yellow bold, INFO=green, DEBUG=green bold, 
> TRACE=blue}%style{[%t]}{magenta}%style{[%c{1}]}{cyan}%notEmpty{[%markerSimpleName]}
>  %m%n"/>
> {noformat}
> For the test framework, there is a suggestion - to color the output of each 
> node with its own color. Apparently this can't be done without adding your 
> own plugin for log4j.



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


[jira] [Updated] (IGNITE-17442) Colorize Ignite console output

2022-07-29 Thread Pavel Pereslegin (Jira)


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

Pavel Pereslegin updated IGNITE-17442:
--
Description: 
Recently completed Ignite migration to use log4j2. So we can use ["highlight" 
conversion 
pattern|https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout] 
to colorize the output.

Initial proposal for production console output (pretty similar to spring boot).
!prod-propsal.png|width=679,height=337!

Pattern for log4j 2.18+
{noformat}

{noformat}
For the test framework, there is a suggestion - to color the output of each 
node with its own color. Apparently this can't be done without adding your own 
plugin for log4j.

  was:
Recently completed Ignite [migration to use 
log4j2|https://issues.apache.org/jira/browse/IGNITE-16650]. So we can use 
highlight conversion pattern to colorize the output.

Initial proposal for production console output (pretty similar to spring boot).
!prod-propsal.png|width=679,height=337!

Pattern for log4j 2.18+
{noformat}

{noformat}
For the test framework, there is a suggestion - to color the output of each 
node with its own color. Apparently this can't be done without adding your own 
plugin for log4j.


> Colorize Ignite console output
> --
>
> Key: IGNITE-17442
> URL: https://issues.apache.org/jira/browse/IGNITE-17442
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Pavel Pereslegin
>Assignee: Pavel Pereslegin
>Priority: Major
> Attachments: prod-propsal.png
>
>
> Recently completed Ignite migration to use log4j2. So we can use ["highlight" 
> conversion 
> pattern|https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout]
>  to colorize the output.
> Initial proposal for production console output (pretty similar to spring 
> boot).
> !prod-propsal.png|width=679,height=337!
> Pattern for log4j 2.18+
> {noformat}
>  pattern="%style{[%d{ISO8601}]}{#77}%highlight{[%-5p]}{FATAL=red blink, 
> ERROR=red, WARN=yellow bold, INFO=green, DEBUG=green bold, 
> TRACE=blue}%style{[%t]}{magenta}%style{[%c{1}]}{cyan}%notEmpty{[%markerSimpleName]}
>  %m%n"/>
> {noformat}
> For the test framework, there is a suggestion - to color the output of each 
> node with its own color. Apparently this can't be done without adding your 
> own plugin for log4j.



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


[jira] [Updated] (IGNITE-17442) Colorize Ignite console output

2022-07-29 Thread Pavel Pereslegin (Jira)


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

Pavel Pereslegin updated IGNITE-17442:
--
Description: 
Recently completed Ignite [migration to use 
log4j2|https://issues.apache.org/jira/browse/IGNITE-16650]. So we can use 
highlight conversion pattern to colorize the output.

Initial proposal for production console output (pretty similar to spring boot).
!prod-propsal.png|width=679,height=337!

Pattern for log4j 2.18+
{noformat}

{noformat}
For the test framework, there is a suggestion - to color the output of each 
node with its own color. Apparently this can't be done without adding your own 
plugin for log4j.

  was:
Recently completed Ignite migration to use log4j2. So we can use highlight 
conversion pattern to colorize the output.

Initial proposal for production console output (pretty similar to spring boot).
!prod-propsal.png|width=679,height=337!

Pattern for log4j 2.18+
{noformat}

{noformat}
For the test framework, there is a suggestion - to color the output of each 
node with its own color. Apparently this can't be done without adding your own 
plugin for log4j.


> Colorize Ignite console output
> --
>
> Key: IGNITE-17442
> URL: https://issues.apache.org/jira/browse/IGNITE-17442
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Pavel Pereslegin
>Assignee: Pavel Pereslegin
>Priority: Major
> Attachments: prod-propsal.png
>
>
> Recently completed Ignite [migration to use 
> log4j2|https://issues.apache.org/jira/browse/IGNITE-16650]. So we can use 
> highlight conversion pattern to colorize the output.
> Initial proposal for production console output (pretty similar to spring 
> boot).
> !prod-propsal.png|width=679,height=337!
> Pattern for log4j 2.18+
> {noformat}
>  pattern="%style{[%d{ISO8601}]}{#77}%highlight{[%-5p]}{FATAL=red blink, 
> ERROR=red, WARN=yellow bold, INFO=green, DEBUG=green bold, 
> TRACE=blue}%style{[%t]}{magenta}%style{[%c{1}]}{cyan}%notEmpty{[%markerSimpleName]}
>  %m%n"/>
> {noformat}
> For the test framework, there is a suggestion - to color the output of each 
> node with its own color. Apparently this can't be done without adding your 
> own plugin for log4j.



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


[jira] [Updated] (IGNITE-17442) Colorize Ignite console output

2022-07-29 Thread Pavel Pereslegin (Jira)


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

Pavel Pereslegin updated IGNITE-17442:
--
Summary: Colorize Ignite console output  (was: Colorize Ignite console 
output.)

> Colorize Ignite console output
> --
>
> Key: IGNITE-17442
> URL: https://issues.apache.org/jira/browse/IGNITE-17442
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Pavel Pereslegin
>Assignee: Pavel Pereslegin
>Priority: Major
> Attachments: prod-propsal.png
>
>
> Recently completed Ignite migration to use log4j2. So we can use highlight 
> conversion pattern to colorize the output.
> Initial proposal for production console output (pretty similar to spring 
> boot).
> !prod-propsal.png|width=679,height=337!
> Pattern for log4j 2.18+
> {noformat}
>  pattern="%style{[%d{ISO8601}]}{#77}%highlight{[%-5p]}{FATAL=red blink, 
> ERROR=red, WARN=yellow bold, INFO=green, DEBUG=green bold, 
> TRACE=blue}%style{[%t]}{magenta}%style{[%c{1}]}{cyan}%notEmpty{[%markerSimpleName]}
>  %m%n"/>
> {noformat}
> For the test framework, there is a suggestion - to color the output of each 
> node with its own color. Apparently this can't be done without adding your 
> own plugin for log4j.



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


[jira] [Updated] (IGNITE-17442) Colorize Ignite console output.

2022-07-29 Thread Pavel Pereslegin (Jira)


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

Pavel Pereslegin updated IGNITE-17442:
--
Ignite Flags: Release Notes Required  (was: Docs Required,Release Notes 
Required)

> Colorize Ignite console output.
> ---
>
> Key: IGNITE-17442
> URL: https://issues.apache.org/jira/browse/IGNITE-17442
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Pavel Pereslegin
>Assignee: Pavel Pereslegin
>Priority: Major
> Attachments: prod-propsal.png
>
>
> Recently completed Ignite migration to use log4j2. So we can use highlight 
> conversion pattern to colorize the output.
> Initial proposal for production console output (pretty similar to spring 
> boot).
> !prod-propsal.png|width=679,height=337!
> Pattern for log4j 2.18+
> {noformat}
>  pattern="%style{[%d{ISO8601}]}{#77}%highlight{[%-5p]}{FATAL=red blink, 
> ERROR=red, WARN=yellow bold, INFO=green, DEBUG=green bold, 
> TRACE=blue}%style{[%t]}{magenta}%style{[%c{1}]}{cyan}%notEmpty{[%markerSimpleName]}
>  %m%n"/>
> {noformat}
> For the test framework, there is a suggestion - to color the output of each 
> node with its own color. Apparently this can't be done without adding your 
> own plugin for log4j.



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


[jira] [Updated] (IGNITE-17442) Colorize Ignite console output.

2022-07-29 Thread Pavel Pereslegin (Jira)


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

Pavel Pereslegin updated IGNITE-17442:
--
Description: 
Recently completed Ignite migration to use log4j2. So we can use highlight 
conversion pattern to colorize the output.

Initial proposal for production console output (pretty similar to spring boot).
!prod-propsal.png|width=679,height=337!

Pattern for log4j 2.18+
{noformat}

{noformat}
For the test framework, there is a suggestion - to color the output of each 
node with its own color. Apparently this can't be done without adding your own 
plugin for log4j.

  was:
Recently completed Ignite migration to use log4j2. So we can use highlight 
conversion pattern to colorize the output.

Initial proposal for production console output (pretty similar to spring boot).
 !prod-propsal.png! 

Pattern for log4j 2.18+
{noformat}

{noformat}

For the test framework, there is a suggestion - to color the output of each 
node with its own color. Apparently this can't be done without adding your own 
plugin for log4j.


> Colorize Ignite console output.
> ---
>
> Key: IGNITE-17442
> URL: https://issues.apache.org/jira/browse/IGNITE-17442
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Pavel Pereslegin
>Assignee: Pavel Pereslegin
>Priority: Major
> Attachments: prod-propsal.png
>
>
> Recently completed Ignite migration to use log4j2. So we can use highlight 
> conversion pattern to colorize the output.
> Initial proposal for production console output (pretty similar to spring 
> boot).
> !prod-propsal.png|width=679,height=337!
> Pattern for log4j 2.18+
> {noformat}
>  pattern="%style{[%d{ISO8601}]}{#77}%highlight{[%-5p]}{FATAL=red blink, 
> ERROR=red, WARN=yellow bold, INFO=green, DEBUG=green bold, 
> TRACE=blue}%style{[%t]}{magenta}%style{[%c{1}]}{cyan}%notEmpty{[%markerSimpleName]}
>  %m%n"/>
> {noformat}
> For the test framework, there is a suggestion - to color the output of each 
> node with its own color. Apparently this can't be done without adding your 
> own plugin for log4j.



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


[jira] [Created] (IGNITE-17442) Colorize Ignite console output.

2022-07-29 Thread Pavel Pereslegin (Jira)
Pavel Pereslegin created IGNITE-17442:
-

 Summary: Colorize Ignite console output.
 Key: IGNITE-17442
 URL: https://issues.apache.org/jira/browse/IGNITE-17442
 Project: Ignite
  Issue Type: Improvement
Reporter: Pavel Pereslegin
Assignee: Pavel Pereslegin
 Attachments: prod-propsal.png

Recently completed Ignite migration to use log4j2. So we can use highlight 
conversion pattern to colorize the output.

Initial proposal for production console output (pretty similar to spring boot).
 !prod-propsal.png! 

Pattern for log4j 2.18+
{noformat}

{noformat}

For the test framework, there is a suggestion - to color the output of each 
node with its own color. Apparently this can't be done without adding your own 
plugin for log4j.



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


[jira] [Commented] (IGNITE-14326) Resetting Ignite cache entry TTL

2022-07-29 Thread Stanislav Lukyanov (Jira)


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

Stanislav Lukyanov commented on IGNITE-14326:
-

[~kukushal] I think you'll get exactly the behavior you need if you use an 
`EntryProcessor` that changes nothing and returns nothing. The value will be 
touched, the new TTL will be set based on the `ExpiryPolicy`, nothing will be 
touched, and no value will be returned.

If this WA has any unfortunate side effects (e.g. fetching a value onto the 
heap), it's better to remove the side effects than introduce a new API (e.g. 
make the `EntryProcessor` fetch value onto the heap lazily).

> Resetting Ignite cache entry TTL
> 
>
> Key: IGNITE-14326
> URL: https://issues.apache.org/jira/browse/IGNITE-14326
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache
>Affects Versions: 2.3
>Reporter: Stephen Darlington
>Priority: Major
>  Labels: cggg
>   Original Estimate: 64h
>  Remaining Estimate: 64h
>
> Ignite provides a way to specify an expiry policy on per entry level, but 
> there is no way to refresh the TTL without first retrieving the record, which 
> is slow and resource consuming if an entry is large.
> Provide a method to reset Ignite cache entry TTL.
> Suggested API (to be discussed with community):
> {{IgniteCache#touch(key)}}: resets the TTL using the latest TTL value or does 
> nothing if no TTL was specified for the key. 



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


[jira] [Updated] (IGNITE-17356) Implementation of metric source for Ignite Compute

2022-07-29 Thread Denis Chudov (Jira)


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

Denis Chudov updated IGNITE-17356:
--
Description: 
Following metrics could be useful for Ignite compute:
- total number of tasks that are supposed to be executed locally
- number of completed tasks that were executed locally

What is needed to achieve this:

- Define metrics source class and metrics holder class for ignite compute.
- Define all metric variables in the holder class, if needed.
- Implement initialization logic which is responsible for creation of actual 
instances of metrics and building an immutable instance of metrics set (will be 
executed on metrics enabling). Implement additional clean up logic if needed 
(will be executed on metrics disabled).
- Define methods that implement desirable manipulations with metrics. Every 
such method must check the state of the metrics source (enabled\disabled) by 
testing the holder reference to null (some kind of guard) before modifying a 
metric value. Read holder reference only once and use it in scope of the method 
in order to avoid data races.
- Metrics source should be registered in metrics registry on component start 
and should be unregistered on component stop. Initial metrics source state 
(enabled\disabled) should be set according to configuration for each particular 
component.
Add logic related with metrics values modification (add invocations of metrics 
source methods).


  was:
What is needed to achieve this:

- Define metrics source class and metrics holder class for ignite compute.
- Define all metric variables in the holder class, if needed.
- Implement initialization logic which is responsible for creation of actual 
instances of metrics and building an immutable instance of metrics set (will be 
executed on metrics enabling). Implement additional clean up logic if needed 
(will be executed on metrics disabled).
- Define methods that implement desirable manipulations with metrics. Every 
such method must check the state of the metrics source (enabled\disabled) by 
testing the holder reference to null (some kind of guard) before modifying a 
metric value. Read holder reference only once and use it in scope of the method 
in order to avoid data races.
- Metrics source should be registered in metrics registry on component start 
and should be unregistered on component stop. Initial metrics source state 
(enabled\disabled) should be set according to configuration for each particular 
component.
Add logic related with metrics values modification (add invocations of metrics 
source methods).



> Implementation of metric source for Ignite Compute
> --
>
> Key: IGNITE-17356
> URL: https://issues.apache.org/jira/browse/IGNITE-17356
> Project: Ignite
>  Issue Type: New Feature
>Reporter: Denis Chudov
>Priority: Major
>  Labels: ignite-3
>
> Following metrics could be useful for Ignite compute:
> - total number of tasks that are supposed to be executed locally
> - number of completed tasks that were executed locally
> What is needed to achieve this:
> - Define metrics source class and metrics holder class for ignite compute.
> - Define all metric variables in the holder class, if needed.
> - Implement initialization logic which is responsible for creation of actual 
> instances of metrics and building an immutable instance of metrics set (will 
> be executed on metrics enabling). Implement additional clean up logic if 
> needed (will be executed on metrics disabled).
> - Define methods that implement desirable manipulations with metrics. Every 
> such method must check the state of the metrics source (enabled\disabled) by 
> testing the holder reference to null (some kind of guard) before modifying a 
> metric value. Read holder reference only once and use it in scope of the 
> method in order to avoid data races.
> - Metrics source should be registered in metrics registry on component start 
> and should be unregistered on component stop. Initial metrics source state 
> (enabled\disabled) should be set according to configuration for each 
> particular component.
> Add logic related with metrics values modification (add invocations of 
> metrics source methods).



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


[jira] [Updated] (IGNITE-17356) Implementation of metric source for Ignite Compute

2022-07-29 Thread Denis Chudov (Jira)


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

Denis Chudov updated IGNITE-17356:
--
Description: 
What is needed to achieve this:

- Define metrics source class and metrics holder class for ignite compute.
- Define all metric variables in the holder class, if needed.
- Implement initialization logic which is responsible for creation of actual 
instances of metrics and building an immutable instance of metrics set (will be 
executed on metrics enabling). Implement additional clean up logic if needed 
(will be executed on metrics disabled).
- Define methods that implement desirable manipulations with metrics. Every 
such method must check the state of the metrics source (enabled\disabled) by 
testing the holder reference to null (some kind of guard) before modifying a 
metric value. Read holder reference only once and use it in scope of the method 
in order to avoid data races.
- Metrics source should be registered in metrics registry on component start 
and should be unregistered on component stop. Initial metrics source state 
(enabled\disabled) should be set according to configuration for each particular 
component.
Add logic related with metrics values modification (add invocations of metrics 
source methods).


  was:TBD


> Implementation of metric source for Ignite Compute
> --
>
> Key: IGNITE-17356
> URL: https://issues.apache.org/jira/browse/IGNITE-17356
> Project: Ignite
>  Issue Type: New Feature
>Reporter: Denis Chudov
>Priority: Major
>  Labels: ignite-3
>
> What is needed to achieve this:
> - Define metrics source class and metrics holder class for ignite compute.
> - Define all metric variables in the holder class, if needed.
> - Implement initialization logic which is responsible for creation of actual 
> instances of metrics and building an immutable instance of metrics set (will 
> be executed on metrics enabling). Implement additional clean up logic if 
> needed (will be executed on metrics disabled).
> - Define methods that implement desirable manipulations with metrics. Every 
> such method must check the state of the metrics source (enabled\disabled) by 
> testing the holder reference to null (some kind of guard) before modifying a 
> metric value. Read holder reference only once and use it in scope of the 
> method in order to avoid data races.
> - Metrics source should be registered in metrics registry on component start 
> and should be unregistered on component stop. Initial metrics source state 
> (enabled\disabled) should be set according to configuration for each 
> particular component.
> Add logic related with metrics values modification (add invocations of 
> metrics source methods).



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


[jira] [Assigned] (IGNITE-14487) Table view bulk methods refactoring

2022-07-29 Thread Andrey Mashenkov (Jira)


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

Andrey Mashenkov reassigned IGNITE-14487:
-

Assignee: Andrey Mashenkov

> Table view bulk methods refactoring
> ---
>
> Key: IGNITE-14487
> URL: https://issues.apache.org/jira/browse/IGNITE-14487
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Andrey Mashenkov
>Assignee: Andrey Mashenkov
>Priority: Major
>  Labels: iep-54, ignite-3
>   Original Estimate: 120h
>  Remaining Estimate: 120h
>
> org.apache.ignite.internal.table.RecordBinaryViewImpl#wrap use streams that 
> have performance impact. Let's rewrite it.



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


[jira] [Updated] (IGNITE-17356) Implementation of metric source for Ignite Compute

2022-07-29 Thread Denis Chudov (Jira)


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

Denis Chudov updated IGNITE-17356:
--
Summary: Implementation of metric source for Ignite Compute  (was: 
Implementation of metric source for RAFT groups or group members)

> Implementation of metric source for Ignite Compute
> --
>
> Key: IGNITE-17356
> URL: https://issues.apache.org/jira/browse/IGNITE-17356
> Project: Ignite
>  Issue Type: New Feature
>Reporter: Denis Chudov
>Priority: Major
>  Labels: ignite-3
>
> TBD



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


[jira] [Updated] (IGNITE-17438) Unable to sum decimal values which have non-default precision

2022-07-29 Thread Evgeny Stanilovsky (Jira)


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

Evgeny Stanilovsky updated IGNITE-17438:

Component/s: sql

> Unable to sum decimal values which have non-default precision
> -
>
> Key: IGNITE-17438
> URL: https://issues.apache.org/jira/browse/IGNITE-17438
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 2.14
>Reporter: Ivan Gagarkin
>Priority: Critical
>
> Found the bug when creating unit tests. 
> Steps to reproduce:
> {code:java}
> cache.query(new SqlFieldsQuery(
> """
>   | CREATE TABLE numbers (
>   |id LONG,
>   |val DOUBLE,
>   |int_val LONG,
>   |decimal_val DECIMAL(5, 5),
>   |PRIMARY KEY (id)) WITH "backups=1"
> """.stripMargin)).getAll
>  cache.query(qry.setArgs(18L.asInstanceOf[JLong], new 
> java.math.BigDecimal(2.5))).getAll
> cache.query(qry.setArgs(19L.asInstanceOf[JLong], new 
> java.math.BigDecimal(3.5))).getAll
> cache.query(qry.setArgs(20L.asInstanceOf[JLong], new 
> java.math.BigDecimal(4.5))).getAll
> cache.query(qry.setArgs(21L.asInstanceOf[JLong], new 
> java.math.BigDecimal(4.5))).getAll
> cache.query(new SqlFieldsQuery("SELECT SUM(decimal_val) FROM numbers WHERE id 
> IN (18, 19, 20)")).getAll{code}
> Result:
> {code:java}
> class org.apache.ignite.internal.processors.query.IgniteSQLException: Numeric 
> value out of range: "5"; SQL statement:
> SELECT
> CAST(CAST(SUM(__C0_0) AS DECIMAL(5, 5)) AS DECIMAL(5, 5)) __C0_0
> FROM PUBLIC.__T0 [22003-197] {code}



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


[jira] [Updated] (IGNITE-17428) Race between creating table and getting table, between creating schema and getting schema

2022-07-29 Thread Mirza Aliev (Jira)


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

Mirza Aliev updated IGNITE-17428:
-
Description: 
Current version of TableManager#tableAsyncInternal can possibly not detect 
table that is being created while tableAsyncInternal is called. Scenario:
- tableAsyncInternal checks tablesByIdVv.latest() and there is no table
- the table creation started, table metadata appears in meta storage
- TableEvent.CREATE is fired
- tableAsyncInternal registers a listener for TableEvent.CREATE (after it is 
fired for corresponding table)
- tableAsyncInternal checks tablesByIdVv.latest() once again and there still is 
no table, because the table creation is not completed
- {{!isTableConfigured(id)}} condition returns *false* as the table is present 
in meta storage
- {{if (tbl != null && getTblFut.complete(tbl) || !isTableConfigured(id) && 
getTblFut.complete(null))}} evaluates *false* and the future created fot 
getTable never completes.

Possibly we should use VersionedValue#whenComplete instead of creating listener 
for event. The table is present in map wrapped in versioned value only when the 
table creation is completed, and whenComplete allows to create a callback to 
check the table presence.

The same problem is presented for {{SchemaManager}} when we get schema in 
{{SchemaManager#tableSchema}}

Possible fix for {{SchemaManager}} is to use this pattern 
{code:java}
registriesVv.whenComplete((token, val, e) -> {
if (schemaVer <= val.get(tblId).lastSchemaVersion()) {
fut.complete(getSchemaDescriptorLocally(schemaVer, tblCfg));
}
});
{code}

instead of creating listener for CREATE event. The same approach can be used 
for {{TableManager}}

  was:
Current version of TableManager#tableAsyncInternal can possibly not detect 
table that is being created while tableAsyncInternal is called. Scenario:
- tableAsyncInternal checks tablesByIdVv.latest() and there is no table
- the table creation started, table metadata appears in meta storage
- TableEvent.CREATE is fired
- tableAsyncInternal registers a listener for TableEvent.CREATE (after it is 
fired for corresponding table)
- tableAsyncInternal checks tablesByIdVv.latest() once again and there still is 
no table, because the table creation is not completed
- {{!isTableConfigured(id)}} condition returns *false* as the table is present 
in meta storage
- {{if (tbl != null && getTblFut.complete(tbl) || !isTableConfigured(id) && 
getTblFut.complete(null))}} evaluates *false* and the future created fot 
getTable never completes.

Possibly we should use VersionedValue#whenComplete instead of creating listener 
for event. The table is present in map wrapped in versioned value only when the 
table creation is completed, and whenComplete allows to create a callback to 
check the table presence.

The same problem is presented for {{SchemaManager}} when we get schema in 
{{SchemaManager#tableSchema}}


> Race between creating table and getting table, between creating schema and 
> getting schema
> -
>
> Key: IGNITE-17428
> URL: https://issues.apache.org/jira/browse/IGNITE-17428
> Project: Ignite
>  Issue Type: Bug
>Reporter: Denis Chudov
>Priority: Major
>  Labels: ignite-3
>
> Current version of TableManager#tableAsyncInternal can possibly not detect 
> table that is being created while tableAsyncInternal is called. Scenario:
> - tableAsyncInternal checks tablesByIdVv.latest() and there is no table
> - the table creation started, table metadata appears in meta storage
> - TableEvent.CREATE is fired
> - tableAsyncInternal registers a listener for TableEvent.CREATE (after it is 
> fired for corresponding table)
> - tableAsyncInternal checks tablesByIdVv.latest() once again and there still 
> is no table, because the table creation is not completed
> - {{!isTableConfigured(id)}} condition returns *false* as the table is 
> present in meta storage
> - {{if (tbl != null && getTblFut.complete(tbl) || !isTableConfigured(id) && 
> getTblFut.complete(null))}} evaluates *false* and the future created fot 
> getTable never completes.
> Possibly we should use VersionedValue#whenComplete instead of creating 
> listener for event. The table is present in map wrapped in versioned value 
> only when the table creation is completed, and whenComplete allows to create 
> a callback to check the table presence.
> The same problem is presented for {{SchemaManager}} when we get schema in 
> {{SchemaManager#tableSchema}}
> Possible fix for {{SchemaManager}} is to use this pattern 
> {code:java}
> registriesVv.whenComplete((token, val, e) -> {
> if (schemaVer <= val.get(tblId).lastSchemaVersion()) {
> 

[jira] [Updated] (IGNITE-17428) Race between creating table and getting table, between creating schema and getting schema

2022-07-29 Thread Mirza Aliev (Jira)


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

Mirza Aliev updated IGNITE-17428:
-
Description: 
Current version of TableManager#tableAsyncInternal can possibly not detect 
table that is being created while tableAsyncInternal is called. Scenario:
- tableAsyncInternal checks tablesByIdVv.latest() and there is no table
- the table creation started, table metadata appears in meta storage
- TableEvent.CREATE is fired
- tableAsyncInternal registers a listener for TableEvent.CREATE (after it is 
fired for corresponding table)
- tableAsyncInternal checks tablesByIdVv.latest() once again and there still is 
no table, because the table creation is not completed
- {{!isTableConfigured(id)}} condition returns *false* as the table is present 
in meta storage
- {{if (tbl != null && getTblFut.complete(tbl) || !isTableConfigured(id) && 
getTblFut.complete(null))}} evaluates *false* and the future created fot 
getTable never completes.

Possibly we should use VersionedValue#whenComplete instead of creating listener 
for event. The table is present in map wrapped in versioned value only when the 
table creation is completed, and whenComplete allows to create a callback to 
check the table presence.

The same problem is presented for {{SchemaManager}} when we get schema in 
{{SchemaManager#tableSchema}}

  was:
Current version of TableManager#tableAsyncInternal can possibly not detect 
table that is being created while tableAsyncInternal is called. Scenario:
- tableAsyncInternal checks tablesByIdVv.latest() and there is no table
- the table creation started, table metadata appears in meta storage
- TableEvent.CREATE is fired
- tableAsyncInternal registers a listener for TableEvent.CREATE (after it is 
fired for corresponding table)
- tableAsyncInternal checks tablesByIdVv.latest() once again and there still is 
no table, because the table creation is not completed
- {{!isTableConfigured(id)}} condition returns *false* as the table is present 
in meta storage
- {{if (tbl != null && getTblFut.complete(tbl) || !isTableConfigured(id) && 
getTblFut.complete(null))}} evaluates *false* and the future created fot 
getTable never completes.

Possibly we should use VersionedValue#whenComplete instead of creating listener 
for event. The table is present in map wrapped in versioned value only when the 
table creation is completed, and whenComplete allows to create a callback to 
check the table presence.


> Race between creating table and getting table, between creating schema and 
> getting schema
> -
>
> Key: IGNITE-17428
> URL: https://issues.apache.org/jira/browse/IGNITE-17428
> Project: Ignite
>  Issue Type: Bug
>Reporter: Denis Chudov
>Priority: Major
>  Labels: ignite-3
>
> Current version of TableManager#tableAsyncInternal can possibly not detect 
> table that is being created while tableAsyncInternal is called. Scenario:
> - tableAsyncInternal checks tablesByIdVv.latest() and there is no table
> - the table creation started, table metadata appears in meta storage
> - TableEvent.CREATE is fired
> - tableAsyncInternal registers a listener for TableEvent.CREATE (after it is 
> fired for corresponding table)
> - tableAsyncInternal checks tablesByIdVv.latest() once again and there still 
> is no table, because the table creation is not completed
> - {{!isTableConfigured(id)}} condition returns *false* as the table is 
> present in meta storage
> - {{if (tbl != null && getTblFut.complete(tbl) || !isTableConfigured(id) && 
> getTblFut.complete(null))}} evaluates *false* and the future created fot 
> getTable never completes.
> Possibly we should use VersionedValue#whenComplete instead of creating 
> listener for event. The table is present in map wrapped in versioned value 
> only when the table creation is completed, and whenComplete allows to create 
> a callback to check the table presence.
> The same problem is presented for {{SchemaManager}} when we get schema in 
> {{SchemaManager#tableSchema}}



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


[jira] [Updated] (IGNITE-17428) Race between creating table and getting table, between creating schema and getting schema

2022-07-29 Thread Mirza Aliev (Jira)


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

Mirza Aliev updated IGNITE-17428:
-
Summary: Race between creating table and getting table, between creating 
schema and getting schema  (was: Race between table create and table get, 
between creating schema and getting schema in )

> Race between creating table and getting table, between creating schema and 
> getting schema
> -
>
> Key: IGNITE-17428
> URL: https://issues.apache.org/jira/browse/IGNITE-17428
> Project: Ignite
>  Issue Type: Bug
>Reporter: Denis Chudov
>Priority: Major
>  Labels: ignite-3
>
> Current version of TableManager#tableAsyncInternal can possibly not detect 
> table that is being created while tableAsyncInternal is called. Scenario:
> - tableAsyncInternal checks tablesByIdVv.latest() and there is no table
> - the table creation started, table metadata appears in meta storage
> - TableEvent.CREATE is fired
> - tableAsyncInternal registers a listener for TableEvent.CREATE (after it is 
> fired for corresponding table)
> - tableAsyncInternal checks tablesByIdVv.latest() once again and there still 
> is no table, because the table creation is not completed
> - {{!isTableConfigured(id)}} condition returns *false* as the table is 
> present in meta storage
> - {{if (tbl != null && getTblFut.complete(tbl) || !isTableConfigured(id) && 
> getTblFut.complete(null))}} evaluates *false* and the future created fot 
> getTable never completes.
> Possibly we should use VersionedValue#whenComplete instead of creating 
> listener for event. The table is present in map wrapped in versioned value 
> only when the table creation is completed, and whenComplete allows to create 
> a callback to check the table presence.



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


[jira] [Updated] (IGNITE-17428) Race between table create and table get, between creating schema and getting schema in

2022-07-29 Thread Mirza Aliev (Jira)


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

Mirza Aliev updated IGNITE-17428:
-
Summary: Race between table create and table get, between creating schema 
and getting schema in   (was: Race between table create and table get)

> Race between table create and table get, between creating schema and getting 
> schema in 
> ---
>
> Key: IGNITE-17428
> URL: https://issues.apache.org/jira/browse/IGNITE-17428
> Project: Ignite
>  Issue Type: Bug
>Reporter: Denis Chudov
>Priority: Major
>  Labels: ignite-3
>
> Current version of TableManager#tableAsyncInternal can possibly not detect 
> table that is being created while tableAsyncInternal is called. Scenario:
> - tableAsyncInternal checks tablesByIdVv.latest() and there is no table
> - the table creation started, table metadata appears in meta storage
> - TableEvent.CREATE is fired
> - tableAsyncInternal registers a listener for TableEvent.CREATE (after it is 
> fired for corresponding table)
> - tableAsyncInternal checks tablesByIdVv.latest() once again and there still 
> is no table, because the table creation is not completed
> - {{!isTableConfigured(id)}} condition returns *false* as the table is 
> present in meta storage
> - {{if (tbl != null && getTblFut.complete(tbl) || !isTableConfigured(id) && 
> getTblFut.complete(null))}} evaluates *false* and the future created fot 
> getTable never completes.
> Possibly we should use VersionedValue#whenComplete instead of creating 
> listener for event. The table is present in map wrapped in versioned value 
> only when the table creation is completed, and whenComplete allows to create 
> a callback to check the table presence.



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


[jira] [Assigned] (IGNITE-17441) Revise SQL related resolved tickets but still presented mentions in code AI3

2022-07-29 Thread Yury Gerzhedovich (Jira)


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

Yury Gerzhedovich reassigned IGNITE-17441:
--

Assignee: Yury Gerzhedovich

> Revise SQL related resolved tickets but still presented mentions in code AI3
> 
>
> Key: IGNITE-17441
> URL: https://issues.apache.org/jira/browse/IGNITE-17441
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Yury Gerzhedovich
>Assignee: Yury Gerzhedovich
>Priority: Major
>  Labels: ignite-3
>
> We have a bunch of resolved tickes which still present as TODO in AI3 code.
> Let's get it right.
> List of issues:
> https://issues.apache.org/jira/browse/IGNITE-14636
> https://issues.apache.org/jira/browse/IGNITE-14730
> https://issues.apache.org/jira/browse/IGNITE-15031
> https://issues.apache.org/jira/browse/IGNITE-15412
> https://issues.apache.org/jira/browse/IGNITE-15584
> https://issues.apache.org/jira/browse/IGNITE-1
> https://issues.apache.org/jira/browse/IGNITE-16468
> https://issues.apache.org/jira/browse/IGNITE-16967



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


[jira] [Updated] (IGNITE-17441) Revise SQL related resolved tickets but still presented mentions in code AI3

2022-07-29 Thread Yury Gerzhedovich (Jira)


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

Yury Gerzhedovich updated IGNITE-17441:
---
Component/s: sql

> Revise SQL related resolved tickets but still presented mentions in code AI3
> 
>
> Key: IGNITE-17441
> URL: https://issues.apache.org/jira/browse/IGNITE-17441
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Yury Gerzhedovich
>Priority: Major
>  Labels: ignite-3
>
> We have a bunch of resolved tickes which still present as TODO in AI3 code.
> Let's get it right.
> List of issues:
> https://issues.apache.org/jira/browse/IGNITE-14636
> https://issues.apache.org/jira/browse/IGNITE-14730
> https://issues.apache.org/jira/browse/IGNITE-15031
> https://issues.apache.org/jira/browse/IGNITE-15412
> https://issues.apache.org/jira/browse/IGNITE-15584
> https://issues.apache.org/jira/browse/IGNITE-1
> https://issues.apache.org/jira/browse/IGNITE-16468
> https://issues.apache.org/jira/browse/IGNITE-16967



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


[jira] [Updated] (IGNITE-17441) Revise SQL related resolved tickets but still presented mentions in code AI3

2022-07-29 Thread Yury Gerzhedovich (Jira)


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

Yury Gerzhedovich updated IGNITE-17441:
---
Description: 
We have a bunch of resolved tickes which still present as TODO in AI3 code.

Let's get it right.

List of issues:

https://issues.apache.org/jira/browse/IGNITE-14636
https://issues.apache.org/jira/browse/IGNITE-14730
https://issues.apache.org/jira/browse/IGNITE-15031
https://issues.apache.org/jira/browse/IGNITE-15412
https://issues.apache.org/jira/browse/IGNITE-15584
https://issues.apache.org/jira/browse/IGNITE-1
https://issues.apache.org/jira/browse/IGNITE-16468
https://issues.apache.org/jira/browse/IGNITE-16967

  was:
We have a bunch of resolved tickes which still present as TODO in AI3 code.

Let's get it right.

List of issues:

https://issues.apache.org/jira/browse/IGNITE-14730
https://issues.apache.org/jira/browse/IGNITE-15031
https://issues.apache.org/jira/browse/IGNITE-15412
https://issues.apache.org/jira/browse/IGNITE-15584
https://issues.apache.org/jira/browse/IGNITE-16468
https://issues.apache.org/jira/browse/IGNITE-16967


> Revise SQL related resolved tickets but still presented mentions in code AI3
> 
>
> Key: IGNITE-17441
> URL: https://issues.apache.org/jira/browse/IGNITE-17441
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Yury Gerzhedovich
>Priority: Major
>  Labels: ignite-3
>
> We have a bunch of resolved tickes which still present as TODO in AI3 code.
> Let's get it right.
> List of issues:
> https://issues.apache.org/jira/browse/IGNITE-14636
> https://issues.apache.org/jira/browse/IGNITE-14730
> https://issues.apache.org/jira/browse/IGNITE-15031
> https://issues.apache.org/jira/browse/IGNITE-15412
> https://issues.apache.org/jira/browse/IGNITE-15584
> https://issues.apache.org/jira/browse/IGNITE-1
> https://issues.apache.org/jira/browse/IGNITE-16468
> https://issues.apache.org/jira/browse/IGNITE-16967



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


[jira] [Updated] (IGNITE-17441) Revise SQL related resolved tickets but still presented mentions in code AI3

2022-07-29 Thread Yury Gerzhedovich (Jira)


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

Yury Gerzhedovich updated IGNITE-17441:
---
Labels: ignite-3  (was: )

> Revise SQL related resolved tickets but still presented mentions in code AI3
> 
>
> Key: IGNITE-17441
> URL: https://issues.apache.org/jira/browse/IGNITE-17441
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Yury Gerzhedovich
>Priority: Major
>  Labels: ignite-3
>
> We have a bunch of resolved tickes which still present as TODO in AI3 code.
> Let's get it right.
> List of issues:
> https://issues.apache.org/jira/browse/IGNITE-14730
> https://issues.apache.org/jira/browse/IGNITE-15031
> https://issues.apache.org/jira/browse/IGNITE-15412
> https://issues.apache.org/jira/browse/IGNITE-15584
> https://issues.apache.org/jira/browse/IGNITE-16468
> https://issues.apache.org/jira/browse/IGNITE-16967



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


[jira] [Created] (IGNITE-17441) Revise SQL related resolved tickets but still presented mentions in code AI3

2022-07-29 Thread Yury Gerzhedovich (Jira)
Yury Gerzhedovich created IGNITE-17441:
--

 Summary: Revise SQL related resolved tickets but still presented 
mentions in code AI3
 Key: IGNITE-17441
 URL: https://issues.apache.org/jira/browse/IGNITE-17441
 Project: Ignite
  Issue Type: Improvement
Reporter: Yury Gerzhedovich


We have a bunch of resolved tickes which still present as TODO in AI3 code.

Let's get it right.

List of issues:

https://issues.apache.org/jira/browse/IGNITE-14730
https://issues.apache.org/jira/browse/IGNITE-15031
https://issues.apache.org/jira/browse/IGNITE-15412
https://issues.apache.org/jira/browse/IGNITE-15584
https://issues.apache.org/jira/browse/IGNITE-16468
https://issues.apache.org/jira/browse/IGNITE-16967



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


[jira] [Created] (IGNITE-17440) SQL API should use Statements parameters in Ignite 3

2022-07-29 Thread Yury Gerzhedovich (Jira)
Yury Gerzhedovich created IGNITE-17440:
--

 Summary: SQL API should use Statements parameters in Ignite 3
 Key: IGNITE-17440
 URL: https://issues.apache.org/jira/browse/IGNITE-17440
 Project: Ignite
  Issue Type: Improvement
  Components: sql
Reporter: Yury Gerzhedovich


We don't use any parameters from Statements except a query text for execution 
query throuht Session. So no any parameters like a  timeout, schema and so one 
is used.

Need to implement pass the parameters to server and start use it.

Start point is org.apache.ignite.internal.sql.api.SessionImpl#executeAsync



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


[jira] [Created] (IGNITE-17439) Small enhancements for BinaryTuple

2022-07-29 Thread Aleksey Demakov (Jira)
Aleksey Demakov created IGNITE-17439:


 Summary: Small enhancements for BinaryTuple
 Key: IGNITE-17439
 URL: https://issues.apache.org/jira/browse/IGNITE-17439
 Project: Ignite
  Issue Type: Improvement
  Components: ignite-3
Reporter: Aleksey Demakov
Assignee: Aleksey Demakov
 Fix For: 3.0.0-alpha6


In the initial BinaryTuple implementation there are a few places where the code 
could be improved. E.g. in one place there is a field that could be declared 
final, in another place there is a method that is quite useless, etc.



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


[jira] [Updated] (IGNITE-17347) Add port parameters to Ignite3 CLI node start command

2022-07-29 Thread Vadim Pakhnushev (Jira)


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

Vadim Pakhnushev updated IGNITE-17347:
--
Description: 
Currently Ignite3 CLI node start command only provides a way to set different 
port parameters via supplying a different configuration file. This makes it 
somewhat cumbersome to start multple nodes on the same machine.

Let's provide --port and --rest-port parameters to the node start command to 
make it easier.

In order to properly test a cluster on the same machine, --join parameter is 
also needed which will provide a list of seed nodes to join physical topology.

  was:
Currently Ignite3 CLI node start command only provides a way to set different 
port parameters via supplying a different configuration file. This makes it 
somewhat cumbersome to start multple nodes on the same machine.

Let's provide --port and --rest-port parameters to the node start command to 
make it easier.


> Add port parameters to Ignite3 CLI node start command
> -
>
> Key: IGNITE-17347
> URL: https://issues.apache.org/jira/browse/IGNITE-17347
> Project: Ignite
>  Issue Type: Task
>  Components: cli
>Reporter: Yury Yudin
>Assignee: Vadim Pakhnushev
>Priority: Major
>  Labels: ignite3
>
> Currently Ignite3 CLI node start command only provides a way to set different 
> port parameters via supplying a different configuration file. This makes it 
> somewhat cumbersome to start multple nodes on the same machine.
> Let's provide --port and --rest-port parameters to the node start command to 
> make it easier.
> In order to properly test a cluster on the same machine, --join parameter is 
> also needed which will provide a list of seed nodes to join physical topology.



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


[jira] [Updated] (IGNITE-17438) Unable to sum decimal values which have non-default precision

2022-07-29 Thread Ivan Gagarkin (Jira)


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

Ivan Gagarkin updated IGNITE-17438:
---
Description: 
Found the bug when creating unit tests. 

Steps to reproduce:
{code:java}
cache.query(new SqlFieldsQuery(
"""
  | CREATE TABLE numbers (
  |id LONG,
  |val DOUBLE,
  |int_val LONG,
  |decimal_val DECIMAL(5, 5),
  |PRIMARY KEY (id)) WITH "backups=1"
""".stripMargin)).getAll

 cache.query(qry.setArgs(18L.asInstanceOf[JLong], new 
java.math.BigDecimal(2.5))).getAll
cache.query(qry.setArgs(19L.asInstanceOf[JLong], new 
java.math.BigDecimal(3.5))).getAll
cache.query(qry.setArgs(20L.asInstanceOf[JLong], new 
java.math.BigDecimal(4.5))).getAll
cache.query(qry.setArgs(21L.asInstanceOf[JLong], new 
java.math.BigDecimal(4.5))).getAll

cache.query(new SqlFieldsQuery("SELECT SUM(decimal_val) FROM numbers WHERE id 
IN (18, 19, 20)")).getAll{code}
Result:
{code:java}
class org.apache.ignite.internal.processors.query.IgniteSQLException: Numeric 
value out of range: "5"; SQL statement:
SELECT
CAST(CAST(SUM(__C0_0) AS DECIMAL(5, 5)) AS DECIMAL(5, 5)) __C0_0
FROM PUBLIC.__T0 [22003-197] {code}

  was:
Version: the current master branch

Found the bug when creating unit tests. 

Steps to reproduce:
{code:java}
cache.query(new SqlFieldsQuery(
"""
  | CREATE TABLE numbers (
  |id LONG,
  |val DOUBLE,
  |int_val LONG,
  |decimal_val DECIMAL(5, 5),
  |PRIMARY KEY (id)) WITH "backups=1"
""".stripMargin)).getAll

 cache.query(qry.setArgs(18L.asInstanceOf[JLong], new 
java.math.BigDecimal(2.5))).getAll
cache.query(qry.setArgs(19L.asInstanceOf[JLong], new 
java.math.BigDecimal(3.5))).getAll
cache.query(qry.setArgs(20L.asInstanceOf[JLong], new 
java.math.BigDecimal(4.5))).getAll
cache.query(qry.setArgs(21L.asInstanceOf[JLong], new 
java.math.BigDecimal(4.5))).getAll

cache.query(new SqlFieldsQuery("SELECT SUM(decimal_val) FROM numbers WHERE id 
IN (18, 19, 20)")).getAll{code}
Result:
{code:java}
class org.apache.ignite.internal.processors.query.IgniteSQLException: Numeric 
value out of range: "5"; SQL statement:
SELECT
CAST(CAST(SUM(__C0_0) AS DECIMAL(5, 5)) AS DECIMAL(5, 5)) __C0_0
FROM PUBLIC.__T0 [22003-197] {code}


> Unable to sum decimal values which have non-default precision
> -
>
> Key: IGNITE-17438
> URL: https://issues.apache.org/jira/browse/IGNITE-17438
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.14
>Reporter: Ivan Gagarkin
>Priority: Critical
>
> Found the bug when creating unit tests. 
> Steps to reproduce:
> {code:java}
> cache.query(new SqlFieldsQuery(
> """
>   | CREATE TABLE numbers (
>   |id LONG,
>   |val DOUBLE,
>   |int_val LONG,
>   |decimal_val DECIMAL(5, 5),
>   |PRIMARY KEY (id)) WITH "backups=1"
> """.stripMargin)).getAll
>  cache.query(qry.setArgs(18L.asInstanceOf[JLong], new 
> java.math.BigDecimal(2.5))).getAll
> cache.query(qry.setArgs(19L.asInstanceOf[JLong], new 
> java.math.BigDecimal(3.5))).getAll
> cache.query(qry.setArgs(20L.asInstanceOf[JLong], new 
> java.math.BigDecimal(4.5))).getAll
> cache.query(qry.setArgs(21L.asInstanceOf[JLong], new 
> java.math.BigDecimal(4.5))).getAll
> cache.query(new SqlFieldsQuery("SELECT SUM(decimal_val) FROM numbers WHERE id 
> IN (18, 19, 20)")).getAll{code}
> Result:
> {code:java}
> class org.apache.ignite.internal.processors.query.IgniteSQLException: Numeric 
> value out of range: "5"; SQL statement:
> SELECT
> CAST(CAST(SUM(__C0_0) AS DECIMAL(5, 5)) AS DECIMAL(5, 5)) __C0_0
> FROM PUBLIC.__T0 [22003-197] {code}



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


[jira] [Updated] (IGNITE-17438) Unable to sum decimal values which have non-default precision

2022-07-29 Thread Ivan Gagarkin (Jira)


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

Ivan Gagarkin updated IGNITE-17438:
---
Affects Version/s: 2.14

> Unable to sum decimal values which have non-default precision
> -
>
> Key: IGNITE-17438
> URL: https://issues.apache.org/jira/browse/IGNITE-17438
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.14
>Reporter: Ivan Gagarkin
>Priority: Critical
>
> Version: the current master branch
> Found the bug when creating unit tests. 
> Steps to reproduce:
> {code:java}
> cache.query(new SqlFieldsQuery(
> """
>   | CREATE TABLE numbers (
>   |id LONG,
>   |val DOUBLE,
>   |int_val LONG,
>   |decimal_val DECIMAL(5, 5),
>   |PRIMARY KEY (id)) WITH "backups=1"
> """.stripMargin)).getAll
>  cache.query(qry.setArgs(18L.asInstanceOf[JLong], new 
> java.math.BigDecimal(2.5))).getAll
> cache.query(qry.setArgs(19L.asInstanceOf[JLong], new 
> java.math.BigDecimal(3.5))).getAll
> cache.query(qry.setArgs(20L.asInstanceOf[JLong], new 
> java.math.BigDecimal(4.5))).getAll
> cache.query(qry.setArgs(21L.asInstanceOf[JLong], new 
> java.math.BigDecimal(4.5))).getAll
> cache.query(new SqlFieldsQuery("SELECT SUM(decimal_val) FROM numbers WHERE id 
> IN (18, 19, 20)")).getAll{code}
> Result:
> {code:java}
> class org.apache.ignite.internal.processors.query.IgniteSQLException: Numeric 
> value out of range: "5"; SQL statement:
> SELECT
> CAST(CAST(SUM(__C0_0) AS DECIMAL(5, 5)) AS DECIMAL(5, 5)) __C0_0
> FROM PUBLIC.__T0 [22003-197] {code}



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


[jira] [Created] (IGNITE-17438) Unable to sum decimal values which have non-default precision

2022-07-29 Thread Ivan Gagarkin (Jira)
Ivan Gagarkin created IGNITE-17438:
--

 Summary: Unable to sum decimal values which have non-default 
precision
 Key: IGNITE-17438
 URL: https://issues.apache.org/jira/browse/IGNITE-17438
 Project: Ignite
  Issue Type: Bug
Reporter: Ivan Gagarkin


Version: the current master branch

Found the bug when creating unit tests. 

Steps to reproduce:
{code:java}
cache.query(new SqlFieldsQuery(
"""
  | CREATE TABLE numbers (
  |id LONG,
  |val DOUBLE,
  |int_val LONG,
  |decimal_val DECIMAL(5, 5),
  |PRIMARY KEY (id)) WITH "backups=1"
""".stripMargin)).getAll

 cache.query(qry.setArgs(18L.asInstanceOf[JLong], new 
java.math.BigDecimal(2.5))).getAll
cache.query(qry.setArgs(19L.asInstanceOf[JLong], new 
java.math.BigDecimal(3.5))).getAll
cache.query(qry.setArgs(20L.asInstanceOf[JLong], new 
java.math.BigDecimal(4.5))).getAll
cache.query(qry.setArgs(21L.asInstanceOf[JLong], new 
java.math.BigDecimal(4.5))).getAll

cache.query(new SqlFieldsQuery("SELECT SUM(decimal_val) FROM numbers WHERE id 
IN (18, 19, 20)")).getAll{code}
Result:
{code:java}
class org.apache.ignite.internal.processors.query.IgniteSQLException: Numeric 
value out of range: "5"; SQL statement:
SELECT
CAST(CAST(SUM(__C0_0) AS DECIMAL(5, 5)) AS DECIMAL(5, 5)) __C0_0
FROM PUBLIC.__T0 [22003-197] {code}



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


[jira] [Updated] (IGNITE-15550) Calcite engine. Support collections constuction from the query

2022-07-29 Thread Yury Gerzhedovich (Jira)


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

Yury Gerzhedovich updated IGNITE-15550:
---
Labels: calcite calcite3-required ignite-3  (was: calcite calcite2-required 
calcite3-required ignite-3)

> Calcite engine. Support collections constuction from the query
> --
>
> Key: IGNITE-15550
> URL: https://issues.apache.org/jira/browse/IGNITE-15550
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Aleksey Plekhanov
>Assignee: Ivan Daschinsky
>Priority: Minor
>  Labels: calcite, calcite3-required, ignite-3
> Fix For: 2.14
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Currently, queries like:
>  
> {noformat}
> SELECT MAP(SELECT 'a', 1)
> SELECT ARRAY(SELECT 1){noformat}
> Can't be executed, since logical plan contains \{{Collect}} relational 
> operator and there is no rule and no physical operator to convert this 
> logical operator. 
>  



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


[jira] [Commented] (IGNITE-17433) SQL API: When cursor is closed, internal exception is thrown from fetchNextPage

2022-07-29 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn commented on IGNITE-17433:
-

Merged to main: b7c793f780968d2e01012544b609b296e684cadf

> SQL API: When cursor is closed, internal exception is thrown from 
> fetchNextPage
> ---
>
> Key: IGNITE-17433
> URL: https://issues.apache.org/jira/browse/IGNITE-17433
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> * Introduce error code for closed cursor scenario
> * Fix client side to throw the same exception too
> * Add shared tests to ItSqlAsynchronousApiTest, ItSqlSynchronousApiTest



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


[jira] [Commented] (IGNITE-17316) Thin client pluggable affnity function to use partition awareness

2022-07-29 Thread Ignite TC Bot (Jira)


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

Ignite TC Bot commented on IGNITE-17316:


{panel:title=Branch: [pull/10140/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/10140/head] Base: [master] : New Tests 
(2)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#8b}Thin Client: Java{color} [[tests 
2|https://ci.ignite.apache.org/viewLog.html?buildId=6702522]]
* {color:#013220}ClientTestSuite: 
ThinClientPartitionAwarenessResourceReleaseTest.testResourcesReleasedAfterCacheDestroyed
 - PASSED{color}
* {color:#013220}ClientTestSuite: 
ThinClientPartitionAwarenessStableTopologyTest.testPartitionedCustomAffinityCacheWithMapper
 - PASSED{color}

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

> Thin client pluggable affnity function to use partition awareness
> -
>
> Key: IGNITE-17316
> URL: https://issues.apache.org/jira/browse/IGNITE-17316
> Project: Ignite
>  Issue Type: Improvement
>  Components: thin client
>Affects Versions: 2.13
>Reporter: Maxim Muzafarov
>Assignee: Maxim Muzafarov
>Priority: Major
> Fix For: 2.14
>
>  Time Spent: 3h 10m
>  Remaining Estimate: 0h
>
> We should provie a pluggable affinity for the thin client, thus using the 
> partition awareness features become possible on only for 
> {{RendezvousAffinityFunction}}.
> Dev-list discussion:
> https://lists.apache.org/thread/7n7zbcgw59voxyr08ct3zx2ss5g8q9wh



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


[jira] [Updated] (IGNITE-16787) Sql calcite. Bump calcite version up to 1.30

2022-07-29 Thread Maxim Muzafarov (Jira)


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

Maxim Muzafarov updated IGNITE-16787:
-
Fix Version/s: 2.14

> Sql calcite. Bump calcite version up to 1.30
> 
>
> Key: IGNITE-16787
> URL: https://issues.apache.org/jira/browse/IGNITE-16787
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Evgeny Stanilovsky
>Assignee: Evgeny Stanilovsky
>Priority: Major
>  Labels: calcite
> Fix For: 2.14
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Seems it would helpful to bump calcite dependency up to 
> [1.30|https://calcite.apache.org/docs/history.html#v1-30-0] ver.



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


[jira] [Created] (IGNITE-17437) SQL. Support LISTAGG (aka GROUP_CONCAT, STRING_AGG) aggregate function for ignite 3

2022-07-29 Thread Yury Gerzhedovich (Jira)
Yury Gerzhedovich created IGNITE-17437:
--

 Summary: SQL. Support LISTAGG (aka GROUP_CONCAT, STRING_AGG) 
aggregate function for ignite 3
 Key: IGNITE-17437
 URL: https://issues.apache.org/jira/browse/IGNITE-17437
 Project: Ignite
  Issue Type: Improvement
  Components: sql
Reporter: Yury Gerzhedovich


LISTAGG function implemented for Ignite 2, however for Ignite 3 need to rethink 
design of the solution.  

TBD: reasons why we want to do it differently.

Let's investigate possible ways to implement it.

As a result need to implement it, create ticket to document it and unmute the 
test_order_variable_size_payload.test_ignore test



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


[jira] [Created] (IGNITE-17436) CacheGroupReencryptionTest#testReencryptionOnUnstableTopology fails if checkpoint is skipped on node stop

2022-07-29 Thread Aleksandr Polovtcev (Jira)
Aleksandr Polovtcev created IGNITE-17436:


 Summary: 
CacheGroupReencryptionTest#testReencryptionOnUnstableTopology fails if 
checkpoint is skipped on node stop
 Key: IGNITE-17436
 URL: https://issues.apache.org/jira/browse/IGNITE-17436
 Project: Ignite
  Issue Type: Bug
Reporter: Aleksandr Polovtcev


Steps to reproduce: add {{@WithSystemProperty(key = 
IGNITE_PDS_SKIP_CHECKPOINT_ON_NODE_STOP, value = "true")}} annotation to 
{{CacheGroupReencryptionTest#testReencryptionOnUnstableTopology}}



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


[jira] [Assigned] (IGNITE-16559) Node's log contains "Failed to refresh a leader" messages. 

2022-07-29 Thread Vyacheslav Koptilin (Jira)


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

Vyacheslav Koptilin reassigned IGNITE-16559:


Assignee: Sergey Uttsel

> Node's log contains "Failed to refresh a leader" messages. 
> ---
>
> Key: IGNITE-16559
> URL: https://issues.apache.org/jira/browse/IGNITE-16559
> Project: Ignite
>  Issue Type: Bug
>Reporter: Mirza Aliev
>Assignee: Sergey Uttsel
>Priority: Major
>  Labels: ignite-3
>
> We noticed that when we run 
> {{ItMixedQueriesTest.testIgniteSchemaAwaresAlterTableCommand}} on TC it is 
> possible that log contain such messages: 
> {noformat}
> 2022-02-15 12:36:43:568 +0300 
> [ERROR][%ItMixedQueriesTest_null_1%Raft-Group-Client-0][RaftGroupServiceImpl] 
> Failed to refresh a leader 
> [groupId=8e71fc5e-6b24-4b69-ba5a-6eae4c2165cf_part_16]
> java.util.concurrent.CompletionException: 
> java.util.concurrent.TimeoutException
>   at 
> java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331)
>   at 
> java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:346)
>   at 
> java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:632)
>   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.raft.jraft.rpc.impl.RaftGroupServiceImpl.sendWithRetry(RaftGroupServiceImpl.java:502)
>   at 
> org.apache.ignite.raft.jraft.rpc.impl.RaftGroupServiceImpl$1.lambda$accept$1(RaftGroupServiceImpl.java:544)
>   at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>   at 
> java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
>   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:834)
> Caused by: java.util.concurrent.TimeoutException
> {noformat}
> Possible root cause: 
> Seems, that we get TimeoutException when we try to get a leader from a client 
> for a group, for which leader has not been elected yet. If you check the 
> logs, you can see, that we get timeout exception and after that leader for 
> the corresponding group has been elected. 
> Note that we have only one node and 10 partitions for a table in the test, 
> but raft leaders are elected sequentially on a node, so electing 10 leaders 
> for raft groups on one node might take a little bit longer.  
> Possible solution:
> Increase timeout for a client to get a leader for the first time.



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


[jira] [Commented] (IGNITE-17407) The snapshot rate limit does not work correctly when set to values ​​greater than 100 MB per second.

2022-07-29 Thread Pavel Pereslegin (Jira)


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

Pavel Pereslegin commented on IGNITE-17407:
---

[~NSAmelchev],
thanks for the review!

> The snapshot rate limit does not work correctly when set to values ​​greater 
> than 100 MB per second.
> 
>
> Key: IGNITE-17407
> URL: https://issues.apache.org/jira/browse/IGNITE-17407
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.13
>Reporter: Pavel Pereslegin
>Assignee: Pavel Pereslegin
>Priority: Major
>  Labels: ise
> Fix For: 2.14
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> The snapshot rate limit does not work correctly when set to values ​​greater 
> than 100 MB per second.
> Currently, the snapshot transfer rate is limited by the BasicRateLimiter.
> Testing shows that limiter is unable to give more than ~119 millions permits 
> per second.
> {code:java}
> long dataSize = U.GB;
> BasicRateLimiter limiter = new BasicRateLimiter(dataSize / 2);
> int blockSize = 
> IgniteSnapshotManager.SNAPSHOT_LIMITED_TRANSFER_BLOCK_SIZE_BYTES;
> long start = System.currentTimeMillis();
> for (long i = 0; i < dataSize; i+=blockSize)
> limiter.acquire(blockSize);
> long totalSec = 
> TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis() - start);
> System.out.println("Speed= " + (dataSize / totalSec));
> {code}



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


[jira] [Commented] (IGNITE-17407) The snapshot rate limit does not work correctly when set to values ​​greater than 100 MB per second.

2022-07-29 Thread Ignite TC Bot (Jira)


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

Ignite TC Bot commented on IGNITE-17407:


{panel:title=Branch: [pull/10167/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/10167/head] Base: [master] : New Tests 
(2)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#8b}Basic 1{color} [[tests 
2|https://ci.ignite.apache.org/viewLog.html?buildId=6700902]]
* {color:#013220}IgniteBasicTestSuite: BasicRateLimiterTest.testRateLimit - 
PASSED{color}
* {color:#013220}IgniteBasicTestSuite: 
BasicRateLimiterTest.testRateLimitMultithreaded - PASSED{color}

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

> The snapshot rate limit does not work correctly when set to values ​​greater 
> than 100 MB per second.
> 
>
> Key: IGNITE-17407
> URL: https://issues.apache.org/jira/browse/IGNITE-17407
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.13
>Reporter: Pavel Pereslegin
>Assignee: Pavel Pereslegin
>Priority: Major
>  Labels: ise
> Fix For: 2.14
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The snapshot rate limit does not work correctly when set to values ​​greater 
> than 100 MB per second.
> Currently, the snapshot transfer rate is limited by the BasicRateLimiter.
> Testing shows that limiter is unable to give more than ~119 millions permits 
> per second.
> {code:java}
> long dataSize = U.GB;
> BasicRateLimiter limiter = new BasicRateLimiter(dataSize / 2);
> int blockSize = 
> IgniteSnapshotManager.SNAPSHOT_LIMITED_TRANSFER_BLOCK_SIZE_BYTES;
> long start = System.currentTimeMillis();
> for (long i = 0; i < dataSize; i+=blockSize)
> limiter.acquire(blockSize);
> long totalSec = 
> TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis() - start);
> System.out.println("Speed= " + (dataSize / totalSec));
> {code}



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


[jira] [Updated] (IGNITE-17407) The snapshot rate limit does not work correctly when set to values ​​greater than 100 MB per second.

2022-07-29 Thread Pavel Pereslegin (Jira)


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

Pavel Pereslegin updated IGNITE-17407:
--
Labels: ise  (was: )

> The snapshot rate limit does not work correctly when set to values ​​greater 
> than 100 MB per second.
> 
>
> Key: IGNITE-17407
> URL: https://issues.apache.org/jira/browse/IGNITE-17407
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.13
>Reporter: Pavel Pereslegin
>Assignee: Pavel Pereslegin
>Priority: Major
>  Labels: ise
> Fix For: 2.14
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The snapshot rate limit does not work correctly when set to values ​​greater 
> than 100 MB per second.
> Currently, the snapshot transfer rate is limited by the BasicRateLimiter.
> Testing shows that limiter is unable to give more than ~119 millions permits 
> per second.
> {code:java}
> long dataSize = U.GB;
> BasicRateLimiter limiter = new BasicRateLimiter(dataSize / 2);
> int blockSize = 
> IgniteSnapshotManager.SNAPSHOT_LIMITED_TRANSFER_BLOCK_SIZE_BYTES;
> long start = System.currentTimeMillis();
> for (long i = 0; i < dataSize; i+=blockSize)
> limiter.acquire(blockSize);
> long totalSec = 
> TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis() - start);
> System.out.println("Speed= " + (dataSize / totalSec));
> {code}



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