[jira] [Updated] (IGNITE-21293) Scan cursors do not close on transaction recovery

2024-01-22 Thread Vladislav Pyatkov (Jira)


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

Vladislav Pyatkov updated IGNITE-21293:
---
Epic Link: IGNITE-21221

> Scan cursors do not close on transaction recovery
> -
>
> Key: IGNITE-21293
> URL: https://issues.apache.org/jira/browse/IGNITE-21293
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vladislav Pyatkov
>Priority: Major
>  Labels: ignite-3
>
> h3. Motivation
> Open cursors required extra memory on the server side. Hence, resources 
> cannot be stored for a long time.
> h3. Implementation notes
> During the recovery procedure, the server receives a cleanup message (the 
> message releases locks). On the message processing, we update the local 
> transaction state, and it should also close all the cursors related to this 
> transaction.
> h3. Definition of done
> All cursors should be closed on the RW transaction recovery.



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


[jira] [Updated] (IGNITE-21291) Scan cursors do not close when an RO transaction is finalized

2024-01-22 Thread Vladislav Pyatkov (Jira)


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

Vladislav Pyatkov updated IGNITE-21291:
---
Epic Link: IGNITE-21221

> Scan cursors do not close when an RO transaction is finalized
> -
>
> Key: IGNITE-21291
> URL: https://issues.apache.org/jira/browse/IGNITE-21291
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vladislav Pyatkov
>Priority: Major
>  Labels: ignite-3
>
> h3. Motivation
> The cursors are opened on the server side and take up extra memory. When an 
> RW transaction is committed, we send the transaction cleanup messages to all 
> transaction participants. But the state of the RO transaction is strung 
> locally, so do not send any messages to the transaction participants (where 
> the cursors were opened).
> h3. Definition of done
> Cursors for RO transactions are closed somehow.



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


[jira] [Updated] (IGNITE-21290) Scan cursors do not close after being fully read in transactions

2024-01-22 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-21290:
-
Epic Link: IGNITE-21221

> Scan cursors do not close after being fully read in transactions
> 
>
> Key: IGNITE-21290
> URL: https://issues.apache.org/jira/browse/IGNITE-21290
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vladislav Pyatkov
>Assignee: Vladislav Pyatkov
>Priority: Major
>  Labels: ignite-3
>
> h3. Motivation
> Open cursors require extra memory on the server side, so they should be 
> closed as soon as they are no longer used. It is easy to understand on the 
> coursor owner server when the coursor returns false for the hasNext 
> invocation.
> Despite the fact that all acquired transaction resources should be released 
> after the transaction finalizes, it would be better to close usles coursorse 
> faseter. Moreover, the agreement is fit for all types of transactions: RO, 
> RW, and inplicit.
> h3. Implementation notes
> When the replica returns a batch, their size can be estimated, and the cursor 
> can be closed if the size is less than requested.
> h3. Definition of done
> A cursor is closed on the server side when the client retrieves all data from 
> it through any type of scan operation.
> Moreover, the server-side cursors should be closed in case the cursor 
> supplier is closing through the API.



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


[jira] [Updated] (IGNITE-21290) Scan cursors do not close after being fully read in transactions

2024-01-22 Thread Vladislav Pyatkov (Jira)


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

Vladislav Pyatkov updated IGNITE-21290:
---
Reviewer: Alexander Lapin

> Scan cursors do not close after being fully read in transactions
> 
>
> Key: IGNITE-21290
> URL: https://issues.apache.org/jira/browse/IGNITE-21290
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vladislav Pyatkov
>Assignee: Vladislav Pyatkov
>Priority: Major
>  Labels: ignite-3
>
> h3. Motivation
> Open cursors require extra memory on the server side, so they should be 
> closed as soon as they are no longer used. It is easy to understand on the 
> coursor owner server when the coursor returns false for the hasNext 
> invocation.
> Despite the fact that all acquired transaction resources should be released 
> after the transaction finalizes, it would be better to close usles coursorse 
> faseter. Moreover, the agreement is fit for all types of transactions: RO, 
> RW, and inplicit.
> h3. Implementation notes
> When the replica returns a batch, their size can be estimated, and the cursor 
> can be closed if the size is less than requested.
> h3. Definition of done
> A cursor is closed on the server side when the client retrieves all data from 
> it through any type of scan operation.
> Moreover, the server-side cursors should be closed in case the cursor 
> supplier is closing through the API.



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


[jira] [Assigned] (IGNITE-20574) Sql. Do not permit to create tables in SYSTEM schema.

2024-01-22 Thread Evgeny Stanilovsky (Jira)


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

Evgeny Stanilovsky reassigned IGNITE-20574:
---

Assignee: Evgeny Stanilovsky  (was: Maksim Zhuravkov)

> Sql. Do not permit to create tables in SYSTEM schema.
> -
>
> Key: IGNITE-20574
> URL: https://issues.apache.org/jira/browse/IGNITE-20574
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Maksim Zhuravkov
>Assignee: Evgeny Stanilovsky
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, The SYSTEM schema should only contain only system view objects; 
> adding other objects to this schema should not be allowed.
> But it is possible to create a table in the SYSTEM schema. We need to 
> disallow that. 



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


[jira] [Updated] (IGNITE-20574) Sql. Do not permit to create tables in SYSTEM schema.

2024-01-22 Thread Evgeny Stanilovsky (Jira)


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

Evgeny Stanilovsky updated IGNITE-20574:

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

> Sql. Do not permit to create tables in SYSTEM schema.
> -
>
> Key: IGNITE-20574
> URL: https://issues.apache.org/jira/browse/IGNITE-20574
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Maksim Zhuravkov
>Assignee: Evgeny Stanilovsky
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, The SYSTEM schema should only contain only system view objects; 
> adding other objects to this schema should not be allowed.
> But it is possible to create a table in the SYSTEM schema. We need to 
> disallow that. 



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


[jira] [Assigned] (IGNITE-20495) Sql. Provide IgniteTableModify with source id

2024-01-22 Thread Maksim Zhuravkov (Jira)


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

Maksim Zhuravkov reassigned IGNITE-20495:
-

Assignee: Maksim Zhuravkov

> Sql. Provide IgniteTableModify with source id 
> --
>
> Key: IGNITE-20495
> URL: https://issues.apache.org/jira/browse/IGNITE-20495
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Konstantin Orlov
>Assignee: Maksim Zhuravkov
>Priority: Major
>  Labels: ignite-3
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently, IgniteTableModify doesn't implement interface 
> SourceAwareIgniteRel, and, as a result, is not being assigned its own source 
> id, although requires to be mapped on particular set of nodes with regards to 
> the distribution of the table it modifies.
> To fully integrate TableModify into mapping process, let's make it implement 
> SourceAwareIgniteRel. This id should be used during mapping phase to create 
> colocation group properly, and inside execution to acquire assignments. See 
> usages of {{UpdatableTableImpl#MODIFY_NODE_SOURCE_ID}} to find all places 
> that should be changed. 



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


[jira] [Assigned] (IGNITE-20829) Remove "basicAuthentication" prefix from JDBC url connection properties

2024-01-22 Thread Maksim Zhuravkov (Jira)


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

Maksim Zhuravkov reassigned IGNITE-20829:
-

Assignee: Maksim Zhuravkov

> Remove "basicAuthentication" prefix from JDBC url connection properties
> ---
>
> Key: IGNITE-20829
> URL: https://issues.apache.org/jira/browse/IGNITE-20829
> Project: Ignite
>  Issue Type: Improvement
>  Components: jdbc
>Reporter: Aleksandr
>Assignee: Maksim Zhuravkov
>Priority: Major
>  Labels: ignite-3
>
> It looks confusing for the user to put basicAuthenticationUsername and 
> basicAuthenticationPassword properties into jdbc connection string. I propose 
> rename them into user/password.



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


[jira] [Updated] (IGNITE-21335) C++ 3.0: Implement JobExecutionOptions

2024-01-22 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn updated IGNITE-21335:

Labels: ignite-3  (was: )

> C++ 3.0: Implement JobExecutionOptions
> --
>
> Key: IGNITE-21335
> URL: https://issues.apache.org/jira/browse/IGNITE-21335
> Project: Ignite
>  Issue Type: Task
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Dmitry Baranov
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Java part of this changes https://github.com/apache/ignite-3/pull/3050



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


[jira] [Assigned] (IGNITE-21334) .NET: Thin 3.0: Implement JobExecutionOptions

2024-01-22 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn reassigned IGNITE-21334:
---

Assignee: Pavel Tupitsyn

> .NET: Thin 3.0: Implement JobExecutionOptions
> -
>
> Key: IGNITE-21334
> URL: https://issues.apache.org/jira/browse/IGNITE-21334
> Project: Ignite
>  Issue Type: Task
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Dmitry Baranov
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET, ignite-3
> Fix For: 3.0.0-beta2
>
>
> Java part of this changes https://github.com/apache/ignite-3/pull/3050



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


[jira] [Updated] (IGNITE-21335) C++ 3.0: Implement JobExecutionOptions

2024-01-22 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn updated IGNITE-21335:

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

> C++ 3.0: Implement JobExecutionOptions
> --
>
> Key: IGNITE-21335
> URL: https://issues.apache.org/jira/browse/IGNITE-21335
> Project: Ignite
>  Issue Type: Task
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Dmitry Baranov
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Java part of this changes https://github.com/apache/ignite-3/pull/3050



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


[jira] [Updated] (IGNITE-21335) C++ 3.0: Implement JobExecutionOptions

2024-01-22 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn updated IGNITE-21335:

Component/s: platforms

> C++ 3.0: Implement JobExecutionOptions
> --
>
> Key: IGNITE-21335
> URL: https://issues.apache.org/jira/browse/IGNITE-21335
> Project: Ignite
>  Issue Type: Task
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Dmitry Baranov
>Priority: Major
> Fix For: 3.0.0-beta2
>
>
> Java part of this changes https://github.com/apache/ignite-3/pull/3050



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


[jira] [Updated] (IGNITE-21335) C++ 3.0: Implement JobExecutionOptions

2024-01-22 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn updated IGNITE-21335:

Summary: C++ 3.0: Implement JobExecutionOptions  (was: Implement 
JobExecutionOptions in C++ client)

> C++ 3.0: Implement JobExecutionOptions
> --
>
> Key: IGNITE-21335
> URL: https://issues.apache.org/jira/browse/IGNITE-21335
> Project: Ignite
>  Issue Type: Task
>  Components: thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Dmitry Baranov
>Priority: Major
> Fix For: 3.0.0-beta2
>
>
> Java part of this changes https://github.com/apache/ignite-3/pull/3050



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


[jira] [Updated] (IGNITE-21334) .NET: Thin 3.0: Implement JobExecutionOptions

2024-01-22 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn updated IGNITE-21334:

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

> .NET: Thin 3.0: Implement JobExecutionOptions
> -
>
> Key: IGNITE-21334
> URL: https://issues.apache.org/jira/browse/IGNITE-21334
> Project: Ignite
>  Issue Type: Task
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Dmitry Baranov
>Priority: Major
>  Labels: .NET, ignite-3
> Fix For: 3.0.0-beta2
>
>
> Java part of this changes https://github.com/apache/ignite-3/pull/3050



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


[jira] [Updated] (IGNITE-21334) .NET: Thin 3.0: Implement JobExecutionOptions

2024-01-22 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn updated IGNITE-21334:

Component/s: platforms

> .NET: Thin 3.0: Implement JobExecutionOptions
> -
>
> Key: IGNITE-21334
> URL: https://issues.apache.org/jira/browse/IGNITE-21334
> Project: Ignite
>  Issue Type: Task
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Dmitry Baranov
>Priority: Major
> Fix For: 3.0.0-beta2
>
>
> Java part of this changes https://github.com/apache/ignite-3/pull/3050



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


[jira] [Updated] (IGNITE-21334) .NET: Thin 3.0: Implement JobExecutionOptions

2024-01-22 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn updated IGNITE-21334:

Summary: .NET: Thin 3.0: Implement JobExecutionOptions  (was: Implement 
JobExecutionOptions in C# client)

> .NET: Thin 3.0: Implement JobExecutionOptions
> -
>
> Key: IGNITE-21334
> URL: https://issues.apache.org/jira/browse/IGNITE-21334
> Project: Ignite
>  Issue Type: Task
>  Components: thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Dmitry Baranov
>Priority: Major
> Fix For: 3.0.0-beta2
>
>
> Java part of this changes https://github.com/apache/ignite-3/pull/3050



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


[jira] [Updated] (IGNITE-21334) .NET: Thin 3.0: Implement JobExecutionOptions

2024-01-22 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn updated IGNITE-21334:

Labels: ignite-3  (was: )

> .NET: Thin 3.0: Implement JobExecutionOptions
> -
>
> Key: IGNITE-21334
> URL: https://issues.apache.org/jira/browse/IGNITE-21334
> Project: Ignite
>  Issue Type: Task
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Dmitry Baranov
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Java part of this changes https://github.com/apache/ignite-3/pull/3050



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


[jira] [Updated] (IGNITE-21334) .NET: Thin 3.0: Implement JobExecutionOptions

2024-01-22 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn updated IGNITE-21334:

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

> .NET: Thin 3.0: Implement JobExecutionOptions
> -
>
> Key: IGNITE-21334
> URL: https://issues.apache.org/jira/browse/IGNITE-21334
> Project: Ignite
>  Issue Type: Task
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Dmitry Baranov
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Java part of this changes https://github.com/apache/ignite-3/pull/3050



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


[jira] [Updated] (IGNITE-21336) Retry a network send failed due to ClosedChannelException

2024-01-22 Thread Roman Puchkovskiy (Jira)


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

Roman Puchkovskiy updated IGNITE-21336:
---
Description: 
We have a connection recovery mechanism that transparently re-establishes a 
connection whose Channel was closed. This means that a sender should never see 
ClosedChannelException as a result of a send. There is a race now that allows a 
sender to get such an exception.

A retry logic should be added (in DefaultMessagingService) to make sure this 
exception just caused a retry (leading to reestablishing the connection or 
failing to reestablish it).

> Retry a network send failed due to ClosedChannelException
> -
>
> Key: IGNITE-21336
> URL: https://issues.apache.org/jira/browse/IGNITE-21336
> Project: Ignite
>  Issue Type: Improvement
>  Components: networking
>Reporter: Roman Puchkovskiy
>Assignee: Roman Puchkovskiy
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> We have a connection recovery mechanism that transparently re-establishes a 
> connection whose Channel was closed. This means that a sender should never 
> see ClosedChannelException as a result of a send. There is a race now that 
> allows a sender to get such an exception.
> A retry logic should be added (in DefaultMessagingService) to make sure this 
> exception just caused a retry (leading to reestablishing the connection or 
> failing to reestablish it).



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


[jira] [Created] (IGNITE-21336) Retry a network send failed due to ClosedChannelException

2024-01-22 Thread Roman Puchkovskiy (Jira)
Roman Puchkovskiy created IGNITE-21336:
--

 Summary: Retry a network send failed due to ClosedChannelException
 Key: IGNITE-21336
 URL: https://issues.apache.org/jira/browse/IGNITE-21336
 Project: Ignite
  Issue Type: Improvement
  Components: networking
Reporter: Roman Puchkovskiy
Assignee: Roman Puchkovskiy
 Fix For: 3.0.0-beta2






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


[jira] [Created] (IGNITE-21335) Implement JobExecutionOptions in C++ client

2024-01-22 Thread Dmitry Baranov (Jira)
Dmitry Baranov created IGNITE-21335:
---

 Summary: Implement JobExecutionOptions in C++ client
 Key: IGNITE-21335
 URL: https://issues.apache.org/jira/browse/IGNITE-21335
 Project: Ignite
  Issue Type: Task
  Components: thin client
Affects Versions: 3.0.0-beta1
Reporter: Dmitry Baranov
 Fix For: 3.0.0-beta2


Java part of this changes https://github.com/apache/ignite-3/pull/3050



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


[jira] [Created] (IGNITE-21334) Implement JobExecutionOptions in C# client

2024-01-22 Thread Dmitry Baranov (Jira)
Dmitry Baranov created IGNITE-21334:
---

 Summary: Implement JobExecutionOptions in C# client
 Key: IGNITE-21334
 URL: https://issues.apache.org/jira/browse/IGNITE-21334
 Project: Ignite
  Issue Type: Task
  Components: thin client
Affects Versions: 3.0.0-beta1
Reporter: Dmitry Baranov
 Fix For: 3.0.0-beta2


Java part of this changes https://github.com/apache/ignite-3/pull/3050



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


[jira] [Updated] (IGNITE-21333) Remove internal class from the dump consumer public API

2024-01-22 Thread Vladimir Steshin (Jira)


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

Vladimir Steshin updated IGNITE-21333:
--
Description: 
{code:java}
org.apache.ignite.dump.DumpConsumer
{code}
is a public API. But it has an internal class StoredCacheData as a parameter in
{code:java}
void onCacheConfigs(Iterator caches);
{code}

We should change it to CacheConfiguration. Or we may consider what part of 
CacheConfiguration's a user wants to get. 

  was:
{code:java}
org.apache.ignite.dump.DumpConsumer
{code}
is a public API. But it has an internal class StoredCacheData as a parameter in
{code:java}
void onCacheConfigs(Iterator caches);
{code}

We should change it to CacheConfiguration. Or we may consider what part of 
CacheConfiguration's a user wanted to get. 


> Remove internal class from the dump consumer public API
> ---
>
> Key: IGNITE-21333
> URL: https://issues.apache.org/jira/browse/IGNITE-21333
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vladimir Steshin
>Priority: Major
>  Labels: ise
>
> {code:java}
> org.apache.ignite.dump.DumpConsumer
> {code}
> is a public API. But it has an internal class StoredCacheData as a parameter 
> in
> {code:java}
> void onCacheConfigs(Iterator caches);
> {code}
> We should change it to CacheConfiguration. Or we may consider what part of 
> CacheConfiguration's a user wants to get. 



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


[jira] [Created] (IGNITE-21333) Remove internal class from the dump consumer public API

2024-01-22 Thread Vladimir Steshin (Jira)
Vladimir Steshin created IGNITE-21333:
-

 Summary: Remove internal class from the dump consumer public API
 Key: IGNITE-21333
 URL: https://issues.apache.org/jira/browse/IGNITE-21333
 Project: Ignite
  Issue Type: Bug
Reporter: Vladimir Steshin


{code:java}
org.apache.ignite.dump.DumpConsumer
{code}
is a public API. But it has an internal class StoredCacheData as a parameter in
{code:java}
void onCacheConfigs(Iterator caches);
{code}

We should change it to CacheConfiguration. Or we may consider which 
CacheConfiguration's data user wanted to get. 



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


[jira] [Updated] (IGNITE-21333) Remove internal class from the dump consumer public API

2024-01-22 Thread Vladimir Steshin (Jira)


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

Vladimir Steshin updated IGNITE-21333:
--
Description: 
{code:java}
org.apache.ignite.dump.DumpConsumer
{code}
is a public API. But it has an internal class StoredCacheData as a parameter in
{code:java}
void onCacheConfigs(Iterator caches);
{code}

We should change it to CacheConfiguration. Or we may consider what part of 
CacheConfiguration's a user wanted to get. 

  was:
{code:java}
org.apache.ignite.dump.DumpConsumer
{code}
is a public API. But it has an internal class StoredCacheData as a parameter in
{code:java}
void onCacheConfigs(Iterator caches);
{code}

We should change it to CacheConfiguration. Or we may consider which 
CacheConfiguration's data user wanted to get. 


> Remove internal class from the dump consumer public API
> ---
>
> Key: IGNITE-21333
> URL: https://issues.apache.org/jira/browse/IGNITE-21333
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vladimir Steshin
>Priority: Major
>  Labels: ise
>
> {code:java}
> org.apache.ignite.dump.DumpConsumer
> {code}
> is a public API. But it has an internal class StoredCacheData as a parameter 
> in
> {code:java}
> void onCacheConfigs(Iterator caches);
> {code}
> We should change it to CacheConfiguration. Or we may consider what part of 
> CacheConfiguration's a user wanted to get. 



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


[jira] [Updated] (IGNITE-21333) Remove internal class from the dump consumer public API

2024-01-22 Thread Vladimir Steshin (Jira)


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

Vladimir Steshin updated IGNITE-21333:
--
Labels: ise  (was: )

> Remove internal class from the dump consumer public API
> ---
>
> Key: IGNITE-21333
> URL: https://issues.apache.org/jira/browse/IGNITE-21333
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vladimir Steshin
>Priority: Major
>  Labels: ise
>
> {code:java}
> org.apache.ignite.dump.DumpConsumer
> {code}
> is a public API. But it has an internal class StoredCacheData as a parameter 
> in
> {code:java}
> void onCacheConfigs(Iterator caches);
> {code}
> We should change it to CacheConfiguration. Or we may consider which 
> CacheConfiguration's data user wanted to get. 



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


[jira] [Commented] (IGNITE-21227) Monitor network critical threads for being blocked

2024-01-22 Thread Roman Puchkovskiy (Jira)


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

Roman Puchkovskiy commented on IGNITE-21227:


Thanks

> Monitor network critical threads for being blocked
> --
>
> Key: IGNITE-21227
> URL: https://issues.apache.org/jira/browse/IGNITE-21227
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Roman Puchkovskiy
>Assignee: Roman Puchkovskiy
>Priority: Major
>  Labels: ignite-3, threading
> Fix For: 3.0.0-beta2
>
>  Time Spent: 4h
>  Remaining Estimate: 0h
>
> If a netty thread or an inbound thread gets blocked, this might cause a node 
> freeze. We need to monitor such situations to:
>  # Have ability to see such blockages in logs
>  # See the thread dump corresponding to the blockage moment to make it 
> possible diagnose the root cause of the blockage
> There is a mechanism in AI2 that allows doing so, and it's (at least 
> partially) ported to AI3, it is about Ignitethreads and IgniteWorkers.
> Netty and inbound threads are currently not using the IgniteWorkers 
> mechanism. We need to either use it or adapt them to include them in this 
> monitoring.



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


[jira] [Updated] (IGNITE-20361) Implement the table storage description

2024-01-22 Thread Mirza Aliev (Jira)


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

Mirza Aliev updated IGNITE-20361:
-
Fix Version/s: 3.0.0-beta2

> Implement the table storage description
> ---
>
> Key: IGNITE-20361
> URL: https://issues.apache.org/jira/browse/IGNITE-20361
> Project: Ignite
>  Issue Type: Task
>Reporter: Kirill Gusakov
>Assignee: Mirza Aliev
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> *Motivation*
> According to IGNITE-20357 we need to have an appropriate table storage 
> configuration, which can be used on the table create/alter to check if the 
> chosen zone has appropriate storage requirements.
> *Definition of done*
> - Table has the storage configuration, which can be used for early validation 
> if table can be "deployed" in its zone correctly.
> - Data storage configuration removed from zone configuration
> *Notes*
> - Avoid altering of this field for now with appropriate exception



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


[jira] [Updated] (IGNITE-21265) Implement cleaner worker

2024-01-22 Thread Andrey N. Gura (Jira)


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

Andrey N. Gura updated IGNITE-21265:

Description: 
We need a basic cleaner infrastructure at least for:
 # Collecting garbage versions
 # Collecting expired entries on table
 # Collecting expired entries on cache

The cleaner is a worker thread accepting a various types of fine-grained tasks.
Each task represents a small action: for example, collect garbage for a single 
version chain or to collect single expired record.
Number of workers can be configured by a user.

  was:
We need a basic cleaner infrastructure for:
 # Collecting garbage versions
 # Collecting expired entries on table
 # Collecting expired entries on cache

The cleaner is a worker thread accepting a various types of fine-grained tasks.
Each task represents a small action: for example, collect garbage for a single 
version chain or to collect single expired record.
Number of workers can be configured by a user.


> Implement cleaner worker
> 
>
> Key: IGNITE-21265
> URL: https://issues.apache.org/jira/browse/IGNITE-21265
> Project: Ignite
>  Issue Type: Task
>Reporter: Alexey Scherbakov
>Priority: Major
>  Labels: ignite-3
>
> We need a basic cleaner infrastructure at least for:
>  # Collecting garbage versions
>  # Collecting expired entries on table
>  # Collecting expired entries on cache
> The cleaner is a worker thread accepting a various types of fine-grained 
> tasks.
> Each task represents a small action: for example, collect garbage for a 
> single version chain or to collect single expired record.
> Number of workers can be configured by a user.



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


[jira] [Commented] (IGNITE-20209) Catch-up rebalance triggers on node restart

2024-01-22 Thread Alexander Lapin (Jira)


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

Alexander Lapin commented on IGNITE-20209:
--

[~kgusakov] LGTM, Thanks!

> Catch-up rebalance triggers on node restart
> ---
>
> Key: IGNITE-20209
> URL: https://issues.apache.org/jira/browse/IGNITE-20209
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexander Lapin
>Assignee: Kirill Gusakov
>Priority: Major
>  Labels: ignite-3
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> h3. Motivation
> Please check https://issues.apache.org/jira/browse/IGNITE-20187 for more 
> context, that is about catching-up assignments.pending meta storage keys, 
> whether given one is about catching-up its triggers:
>  * Replica factor updates.
>  * Partitions count updates. Immutable for now.
>  * Data nodes updates.
>  * Replica storage addition/removal. !By the way, is it possible to remove 
> replica storage.
> For all aforementioned cases, it's required to update distributed assignments 
> pending (planned) keys if it's not yet done. And the only difficulty here is 
> precisely in understanding whether this was done or not.
> h3. Definition of Done
> Updated distributed assignments pending(planned) keys if necessary according 
> to the current triggers state.
>  
> Notes:
> 1) -Add to metastorage starting revision- 
> ({{{}metaStorageMgr.recoveryFinishedFuture(){}}} returns long with the 
> maximal recovered revision)



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


[jira] [Assigned] (IGNITE-21326) .NET: Thin 3.0: Out of memory: Java heap space in tests

2024-01-22 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn reassigned IGNITE-21326:
---

Assignee: (was: Pavel Tupitsyn)

> .NET: Thin 3.0: Out of memory: Java heap space in tests
> ---
>
> Key: IGNITE-21326
> URL: https://issues.apache.org/jira/browse/IGNITE-21326
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
> Attachments: screenshot-1.png
>
>
> Happens more and more often lately: 
> https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunNetTests/7787817?hideProblemsFromDependencies=false&hideTestsFromDependencies=false&expandBuildProblemsSection=true&expandBuildTestsSection=true
> {code:java}
> Out of memory: Java heap space (This problem is reported because 
> OutOfMemoryError has been found in the build log text)
> {code}
> Investigate heap dumps from TC.



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


[jira] [Commented] (IGNITE-21326) .NET: Thin 3.0: Out of memory: Java heap space in tests

2024-01-22 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn commented on IGNITE-21326:
-

Most of the memory is consumed by hundreds of byte arrays within 
*AppendEntriesRequestImpl* instances:

 !screenshot-1.png! 

> .NET: Thin 3.0: Out of memory: Java heap space in tests
> ---
>
> Key: IGNITE-21326
> URL: https://issues.apache.org/jira/browse/IGNITE-21326
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
> Attachments: screenshot-1.png
>
>
> Happens more and more often lately: 
> https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunNetTests/7787817?hideProblemsFromDependencies=false&hideTestsFromDependencies=false&expandBuildProblemsSection=true&expandBuildTestsSection=true
> {code:java}
> Out of memory: Java heap space (This problem is reported because 
> OutOfMemoryError has been found in the build log text)
> {code}
> Investigate heap dumps from TC.



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


[jira] [Updated] (IGNITE-21326) .NET: Thin 3.0: Out of memory: Java heap space in tests

2024-01-22 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn updated IGNITE-21326:

Attachment: screenshot-1.png

> .NET: Thin 3.0: Out of memory: Java heap space in tests
> ---
>
> Key: IGNITE-21326
> URL: https://issues.apache.org/jira/browse/IGNITE-21326
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
> Attachments: screenshot-1.png
>
>
> Happens more and more often lately: 
> https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunNetTests/7787817?hideProblemsFromDependencies=false&hideTestsFromDependencies=false&expandBuildProblemsSection=true&expandBuildTestsSection=true
> {code:java}
> Out of memory: Java heap space (This problem is reported because 
> OutOfMemoryError has been found in the build log text)
> {code}
> Investigate heap dumps from TC.



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


[jira] [Commented] (IGNITE-21326) .NET: Thin 3.0: Out of memory: Java heap space in tests

2024-01-22 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn commented on IGNITE-21326:
-

Lots of warning is the log:

{code}
Received entries of which the lastLog=45838 is not greater than 
appliedIndex=70732, return immediately with nothing changed.
{code}

> .NET: Thin 3.0: Out of memory: Java heap space in tests
> ---
>
> Key: IGNITE-21326
> URL: https://issues.apache.org/jira/browse/IGNITE-21326
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Happens more and more often lately: 
> https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunNetTests/7787817?hideProblemsFromDependencies=false&hideTestsFromDependencies=false&expandBuildProblemsSection=true&expandBuildTestsSection=true
> {code:java}
> Out of memory: Java heap space (This problem is reported because 
> OutOfMemoryError has been found in the build log text)
> {code}
> Investigate heap dumps from TC.



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


[jira] [Assigned] (IGNITE-21318) Add configuration for critical workers monitoring

2024-01-22 Thread Roman Puchkovskiy (Jira)


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

Roman Puchkovskiy reassigned IGNITE-21318:
--

Assignee: Roman Puchkovskiy

> Add configuration for critical workers monitoring
> -
>
> Key: IGNITE-21318
> URL: https://issues.apache.org/jira/browse/IGNITE-21318
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Roman Puchkovskiy
>Assignee: Roman Puchkovskiy
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> In IGNITE-21227, monitoring of critical worker threads' liveness was added. 
> Things like 'how often to check for lagging threads', 'how much lag to allow' 
> are now hardcoded (see CriticalThreadWatchdog). They need to be configurable.



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


[jira] [Updated] (IGNITE-21332) nodeCannotCommunicateAfterLeavingPhysicalTopology is flaky

2024-01-22 Thread Roman Puchkovskiy (Jira)


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

Roman Puchkovskiy updated IGNITE-21332:
---
Description: 
ItScaleCubeNetworkMessagingTest#nodeCannotCommunicateAfterLeavingPhysicalTopology()
 is flaky, it fails with

 
java.lang.AssertionError: Expected: a future that completes with an exception 
that is an instance of 
org.apache.ignite.internal.network.handshake.HandshakeException but: was 
completed exceptionally with 
java.lang.AssertionError:
Expected: a future that completes with an exception that is an instance of 
org.apache.ignite.internal.network.handshake.HandshakeException
but: was completed exceptionally with 
  at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
  at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6)
  at 
org.apache.ignite.network.scalecube.ItScaleCubeNetworkMessagingTest.nodeCannotCommunicateAfterLeavingPhysicalTopology(ItScaleCubeNetworkMessagingTest.java:550)
 
The problem seems to be that there is a race between closing channels when a 
node is removed from the physical topology and trying to send a message in the 
test. We should expect not just HandshakeException, but also 
ClosedChannelException.

> nodeCannotCommunicateAfterLeavingPhysicalTopology is flaky
> --
>
> Key: IGNITE-21332
> URL: https://issues.apache.org/jira/browse/IGNITE-21332
> Project: Ignite
>  Issue Type: Bug
>  Components: networking
>Reporter: Roman Puchkovskiy
>Assignee: Roman Puchkovskiy
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> ItScaleCubeNetworkMessagingTest#nodeCannotCommunicateAfterLeavingPhysicalTopology()
>  is flaky, it fails with
>  
> java.lang.AssertionError: Expected: a future that completes with an exception 
> that is an instance of 
> org.apache.ignite.internal.network.handshake.HandshakeException but: was 
> completed exceptionally with 
> java.lang.AssertionError:
> Expected: a future that completes with an exception that is an instance of 
> org.apache.ignite.internal.network.handshake.HandshakeException
> but: was completed exceptionally with 
> 
>   at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
>   at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6)
>   at 
> org.apache.ignite.network.scalecube.ItScaleCubeNetworkMessagingTest.nodeCannotCommunicateAfterLeavingPhysicalTopology(ItScaleCubeNetworkMessagingTest.java:550)
>  
> The problem seems to be that there is a race between closing channels when a 
> node is removed from the physical topology and trying to send a message in 
> the test. We should expect not just HandshakeException, but also 
> ClosedChannelException.



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


[jira] [Created] (IGNITE-21332) nodeCannotCommunicateAfterLeavingPhysicalTopology is flaky

2024-01-22 Thread Roman Puchkovskiy (Jira)
Roman Puchkovskiy created IGNITE-21332:
--

 Summary: nodeCannotCommunicateAfterLeavingPhysicalTopology is flaky
 Key: IGNITE-21332
 URL: https://issues.apache.org/jira/browse/IGNITE-21332
 Project: Ignite
  Issue Type: Bug
  Components: networking
Reporter: Roman Puchkovskiy
Assignee: Roman Puchkovskiy
 Fix For: 3.0.0-beta2






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


[jira] [Commented] (IGNITE-21103) Thin 3.0: Rename DataStreamerOptions.batchSize to pageSize

2024-01-22 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn commented on IGNITE-21103:
-

Merged to main: 0442153b7488d1b7cd1573aae35a4285a07140f4

> Thin 3.0: Rename DataStreamerOptions.batchSize to pageSize
> --
>
> Key: IGNITE-21103
> URL: https://issues.apache.org/jira/browse/IGNITE-21103
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET, ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Rename *DataStreamerOptions.batchSize* to *pageSize* to be consistent with 
> cursors and other APIs.
> Update Java and .NET client.



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


[jira] [Commented] (IGNITE-21212) Increment and Decrement REST API documentation lists incorrect parameter

2024-01-22 Thread Igor Gusev (Jira)


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

Igor Gusev commented on IGNITE-21212:
-

[~ibelyakov] fixed, removed it from URL as well.

> Increment and Decrement REST API documentation lists incorrect parameter
> 
>
> Key: IGNITE-21212
> URL: https://issues.apache.org/jira/browse/IGNITE-21212
> Project: Ignite
>  Issue Type: Bug
>  Components: documentation
>Affects Versions: 2.16
>Reporter: Igor Belyakov
>Assignee: Igor Gusev
>Priority: Minor
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> The documentation for the Increment/Decrement REST API endpoints 
> (https://ignite.apache.org/docs/latest/restapi#increment) contains 
> information regarding the "cacheName" parameter, which in fact this endpoint 
> doesn't have.
> (see: 
> [https://github.com/apache/ignite/blob/ignite-2.16/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/request/DataStructuresRequest.java])
> This redundant parameter could be confusing since with it the endpoint looks 
> like an API to increment/decrement the value stored in the cache, while in 
> fact it is related to the IgniteAtomicLong data structure. (see 
> [https://ignite.apache.org/docs/latest/data-structures/atomic-types]).



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


[jira] [Commented] (IGNITE-21238) Add backfill index status to catalog

2024-01-22 Thread Roman Puchkovskiy (Jira)


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

Roman Puchkovskiy commented on IGNITE-21238:


The patch looks good to me

> Add backfill index status to catalog
> 
>
> Key: IGNITE-21238
> URL: https://issues.apache.org/jira/browse/IGNITE-21238
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Kirill Tkalenko
>Assignee: Kirill Tkalenko
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> To implement IGNITE-21115, we need to add the "backfill" index status to the 
> catalog along with the transition event to this status.
> It is also proposed, as part of the current ticket, to make a transition to 
> immediately after creating the index until ticket IGNITE-21115 is implemented.



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


[jira] [Commented] (IGNITE-21103) Thin 3.0: Rename DataStreamerOptions.batchSize to pageSize

2024-01-22 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-21103:
--

Looks good to me.

> Thin 3.0: Rename DataStreamerOptions.batchSize to pageSize
> --
>
> Key: IGNITE-21103
> URL: https://issues.apache.org/jira/browse/IGNITE-21103
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET, ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Rename *DataStreamerOptions.batchSize* to *pageSize* to be consistent with 
> cursors and other APIs.
> Update Java and .NET client.



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


[jira] [Commented] (IGNITE-21328) Fix logging in LowWatermark#start when there is no low watermark in vault

2024-01-22 Thread Philipp Shergalis (Jira)


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

Philipp Shergalis commented on IGNITE-21328:


https://github.com/apache/ignite-3/pull/3073

> Fix logging in LowWatermark#start when there is no low watermark in vault
> -
>
> Key: IGNITE-21328
> URL: https://issues.apache.org/jira/browse/IGNITE-21328
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Kirill Tkalenko
>Assignee: Philipp Shergalis
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When starting a node, there is confusing logging at 
> *org.apache.ignite.internal.table.distributed.LowWatermark#start* in the 
> absence of a low watermark in the vault.
> Example message *Low watermark has been successfully got from the vault and 
> is scheduled to be updated: null* it needs to be changed to something like 
> "Previous value of the low watermark was not found, will schedule to update 
> it".



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


[jira] [Assigned] (IGNITE-21115) Wait for completion of transactions started before index appearance

2024-01-22 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko reassigned IGNITE-21115:


Assignee: Kirill Tkalenko

> Wait for completion of transactions started before index appearance
> ---
>
> Key: IGNITE-21115
> URL: https://issues.apache.org/jira/browse/IGNITE-21115
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Roman Puchkovskiy
>Assignee: Kirill Tkalenko
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> When an index is created (and appears in the REGISTERED state), we must wait 
> for all transactions started on schemas before the index has appeared to 
> finish.
> Primary replica of the partition zero of the table owning the created index 
> is responsible for the wait.
>  # When a node sees appearance of a REGISTERED index state in the Catalog, 
> and it’s a primary of partition zero of the table owning the index, it starts 
> the waiter
>  # When a node becomes the primary of the partition zero of a table, and the 
> table contains indices that are in the REGISTERED state (at the moment of the 
> primary lease start), it starts a waiter per each such index
>  # When a node ceases to be the primary of the partition zero of a table, it 
> stops all the waiters it started
>  # When the waiter finishes its waiting and the node is still a primary, it 
> switches the index to the BACKFILLING state
> h5. Waiter operation
>  # Wait for HLC.now() to become greater than ActivationMoment(index 
> REGISTERED state) + MaxClockSkew (to make sure that the REGISTERED state 
> activates on each node in the cluster)
>  # Take all nodes in the cluster Logical Topology (LT) from the CMG Leader 
> (not from the local state delivered by CMG learners) and put it in the 
> *Nodes* list. ({*}Nodes{*} contains all the nodes that might have started RW 
> transactions on schemas before the index appeared; other nodes had either 
> left the topology, or they can only coordinate RW transactions started on 
> schema versions containing the index)
> Poll each node in the *Nodes* list until either its RwTransactionsFinished(V) 
> (see IGNITE-21112) returns true (where V is the catalog version where the 
> index had appeared) or the node leaves the LT (if the node leaves the 
> Physical Topology, we proceed waiting till it falls off the LT).
> After the waiter finishes, we must switch the index to the BACKFILLING state.



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


[jira] [Created] (IGNITE-21331) Sql. TPC-H q2 query hangs with sc=0.01

2024-01-22 Thread Konstantin Orlov (Jira)
Konstantin Orlov created IGNITE-21331:
-

 Summary: Sql. TPC-H q2 query hangs with sc=0.01
 Key: IGNITE-21331
 URL: https://issues.apache.org/jira/browse/IGNITE-21331
 Project: Ignite
  Issue Type: Bug
  Components: sql
Reporter: Konstantin Orlov


The query q2 from TPC-H suite hangs for hours on cluster of 3 nodes with scale 
factor 0.01.

Let's investigate and fix the problem.



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


[jira] [Assigned] (IGNITE-21290) Scan cursors do not close after being fully read in transactions

2024-01-22 Thread Vladislav Pyatkov (Jira)


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

Vladislav Pyatkov reassigned IGNITE-21290:
--

Assignee: Vladislav Pyatkov

> Scan cursors do not close after being fully read in transactions
> 
>
> Key: IGNITE-21290
> URL: https://issues.apache.org/jira/browse/IGNITE-21290
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vladislav Pyatkov
>Assignee: Vladislav Pyatkov
>Priority: Major
>  Labels: ignite-3
>
> h3. Motivation
> Open cursors require extra memory on the server side, so they should be 
> closed as soon as they are no longer used. It is easy to understand on the 
> coursor owner server when the coursor returns false for the hasNext 
> invocation.
> Despite the fact that all acquired transaction resources should be released 
> after the transaction finalizes, it would be better to close usles coursorse 
> faseter. Moreover, the agreement is fit for all types of transactions: RO, 
> RW, and inplicit.
> h3. Implementation notes
> When the replica returns a batch, their size can be estimated, and the cursor 
> can be closed if the size is less than requested.
> h3. Definition of done
> A cursor is closed on the server side when the client retrieves all data from 
> it through any type of scan operation.
> Moreover, the server-side cursors should be closed in case the cursor 
> supplier is closing through the API.



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


[jira] [Updated] (IGNITE-21290) Scan cursors do not close after being fully read in transactions

2024-01-22 Thread Vladislav Pyatkov (Jira)


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

Vladislav Pyatkov updated IGNITE-21290:
---
Description: 
h3. Motivation
Open cursors require extra memory on the server side, so they should be closed 
as soon as they are no longer used. It is easy to understand on the coursor 
owner server when the coursor returns false for the hasNext invocation.
Despite the fact that all acquired transaction resources should be released 
after the transaction finalizes, it would be better to close usles coursorse 
faseter. Moreover, the agreement is fit for all types of transactions: RO, RW, 
and inplicit.


h3. Implementation notes
When the replica returns a batch, their size can be estimated, and the cursor 
can be closed if the size is less than requested.

h3. Definition of done
A cursor is closed on the server side when the client retrieves all data from 
it through any type of scan operation.
Moreover, the server-side cursors should be closed in case the cursor supplier 
is closing through the API.

  was:
h3. Motivation
Open cursors require extra memory on the server side, so they should be closed 
as soon as they are no longer used. It is easy to understand on the coursor 
owner server when the coursor returns false for the hasNext invocation.
Despite the fact that all acquired transaction resources should be released 
after the transaction finalizes, it would be better to close usles coursorse 
faseter. Moreover, the agreement is fit for all types of transactions: RO, RW, 
and inplicit.


h3. Implementation notes
A course can be closed after the _isUpperBoundAchieved_ return is false.
Cover all variant scan operations in tests.
Get rid of the nonsensical message: _ScanCloseReplicaRequest_

h3. Definition of done
A cursor is closed on the server side when the client retrieves all data from 
it through any type of scan operation.


> Scan cursors do not close after being fully read in transactions
> 
>
> Key: IGNITE-21290
> URL: https://issues.apache.org/jira/browse/IGNITE-21290
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vladislav Pyatkov
>Priority: Major
>  Labels: ignite-3
>
> h3. Motivation
> Open cursors require extra memory on the server side, so they should be 
> closed as soon as they are no longer used. It is easy to understand on the 
> coursor owner server when the coursor returns false for the hasNext 
> invocation.
> Despite the fact that all acquired transaction resources should be released 
> after the transaction finalizes, it would be better to close usles coursorse 
> faseter. Moreover, the agreement is fit for all types of transactions: RO, 
> RW, and inplicit.
> h3. Implementation notes
> When the replica returns a batch, their size can be estimated, and the cursor 
> can be closed if the size is less than requested.
> h3. Definition of done
> A cursor is closed on the server side when the client retrieves all data from 
> it through any type of scan operation.
> Moreover, the server-side cursors should be closed in case the cursor 
> supplier is closing through the API.



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


[jira] [Assigned] (IGNITE-20973) Unusable thin client timeout

2024-01-22 Thread Igor Sapego (Jira)


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

Igor Sapego reassigned IGNITE-20973:


Assignee: Igor Sapego

> Unusable thin client timeout
> 
>
> Key: IGNITE-20973
> URL: https://issues.apache.org/jira/browse/IGNITE-20973
> Project: Ignite
>  Issue Type: Bug
>  Components: thin client
>Affects Versions: 2.16, 2.17
>Reporter: Egor Fomin
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ise
>
> Ignite thin client currently uses the same timeout value for request timeout 
> and connection timeout. 
> Connection timeout should be small enough(several seconds) while request 
> timeout should be able to handle long running requests. This makes Ignite 
> timeout unusable.



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


[jira] [Created] (IGNITE-21330) Sql. Index is not used for IN predicate with column type of UUID

2024-01-22 Thread Konstantin Orlov (Jira)
Konstantin Orlov created IGNITE-21330:
-

 Summary: Sql. Index is not used for IN predicate with column type 
of UUID
 Key: IGNITE-21330
 URL: https://issues.apache.org/jira/browse/IGNITE-21330
 Project: Ignite
  Issue Type: Bug
  Components: sql
Reporter: Konstantin Orlov


See ItUuidIndexTest#testInLookUp, false scan is used in execution although 
index is available.

The query is 

{code:java}
SELECT *
  FROM t
 WHERE test_key IN ('--0001--0001'::UUID, 
'--0003--0001'::UUID)
 ORDER BY id
{code}

and the plan is 

{code:java}
IgniteExchange(distribution=[single])
  IgniteSort(sort0=[$0], dir0=[ASC])
IgniteTableScan(table=[[PUBLIC, T]], tableId=[6], filters=[OR(=($t1, 
CAST(_UTF-8'--0001--0001'):UUID NOT NULL), =($t1, 
CAST(_UTF-8'--0003--0001'):UUID NOT NULL))], 
requiredColumns=[{0, 1}])

{code}





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


[jira] [Updated] (IGNITE-21325) Hold the transactional requests processing while the primary expired event processing is in progress

2024-01-22 Thread Denis Chudov (Jira)


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

Denis Chudov updated IGNITE-21325:
--
Epic Link: IGNITE-21174

> Hold the transactional requests processing while the primary expired event 
> processing is in progress
> 
>
> Key: IGNITE-21325
> URL: https://issues.apache.org/jira/browse/IGNITE-21325
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Denis Chudov
>Priority: Major
>  Labels: ignite-3
>
> Motivation
> No processing of any transactional request should be started when the event 
> processing of PRIMARY_REPLICA_EXPIRED event is in progress. The reason is 
> that such requests may try to acquire transactional locks on the current 
> primary replica, and the locks acquired during the previous lease are 
> released by the listener of PRIMARY_REPLICA_EXPIRED event. The validity of 
> the current primary is checked in 
> {{{}PartitionReplicaListener#ensureReplicaIsPrimary{}}}.
> We must ensure that this method is called after the processing of 
> PRIMARY_REPLICA_EXPIRED event. The future returned by 
> {{PlacementDriver#previousPrimaryExpired}} can be used for this.
> Definition of done
> The processing of transactional requests for the current primary replica 
> can't be started before the processing of PRIMARY_REPLICA_EXPIRED event 
> finishes.



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


[jira] [Updated] (IGNITE-21258) Handle primary replica events in the striped pool

2024-01-22 Thread Denis Chudov (Jira)


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

Denis Chudov updated IGNITE-21258:
--
Epic Link: IGNITE-21174

> Handle primary replica events in the striped pool
> -
>
> Key: IGNITE-21258
> URL: https://issues.apache.org/jira/browse/IGNITE-21258
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Vladislav Pyatkov
>Priority: Major
>  Labels: ignite-3
>
> h3. Motivation
> We seek to decrease the load on the metastorage thread because when the MC 
> thread is holding, it blocks the handling of other events.
> {code}
> placementDriver.listen(PrimaryReplicaEvent.PRIMARY_REPLICA_ELECTED, 
> this::onPrimaryReplicaElected);
> placementDriver.listen(PrimaryReplicaEvent.PRIMARY_REPLICA_EXPIRED, 
> this::onPrimaryReplicaExpired);
> {code}
> Currently, both primary replica events are handled on the MC thread, though 
> the striped executer is a well-suited place to do it.
> h3. Defenition of done
> Move handling of the primary replica events (PRIMARY_REPLICA_ELECTED, 
> PRIMARY_REPLICA_EXPIRED) in the striped pool.



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


[jira] [Updated] (IGNITE-21213) Coordination of mechanisms of determination for primary on replicaside

2024-01-22 Thread Denis Chudov (Jira)


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

Denis Chudov updated IGNITE-21213:
--
Description: 
h3. Motivation

In the replica listener, we have unconsidered mechanisms between each other to 
determine primary rteplica. The first one is based on the placement driver API 
(it is used in {_}PartitionReplicaListener#ensureReplicaIsPrimary{_}) and the 
other one is based on the placement driver events (the events are hadeled by 
two methods: {_}ReplicaManager#onPrimaryReplicaElected{_}, 
{_}ReplicaManager#onPrimaryReplicaExpired{_}).

Because the replica messages and events are handled in different threads, any 
variety of processing is possible. For example, the replica can release all 
transaction locks (by PRIMARY_REPLICA_EXPIRED event) and then handle a message 
for this transaction (because ensureReplicaIsPrimary was done before), assuming 
that all the locks are holding.
h3. Definition of done

The simultaneous processing of transactional requests and 
PRIMARY_REPLICA_EXPIRED is impossible.

 

*Implementation notes*

We must take into account and prevent the possible deadlocks, such as:
 * the transactional request is trying to acquire the lock on the key A
 * the processing of the PRIMARY_REPLICA_EXPIRED cannot start because the 
aforementioned request processing is not finished
 * the lock on the key A can't be acquired because it should be released by the 
listener of PRIMARY_REPLICA_EXPIRED due to the replica expiration.

Probably the event of replica expiration should invalidate the ongoing 
transactional requests and complete them.

  was:
h3. Motivation
In the replica listener, we have unconsidered mechanisms between each other to 
determine primary rteplica. The first one is based on the placement driver API 
(it is used in _PartitionReplicaListener#ensureReplicaIsPrimary_) and the other 
one is based on the placement driver events (the events are hadeled by two 
methods: _ReplicaManager#onPrimaryReplicaElected_, 
_ReplicaManager#onPrimaryReplicaExpired_).

Because the replica messages and events are handled in different threads, any 
variety of processing is possible. For example, the replica can release all 
transaction locks (by

PRIMARY_REPLICA_EXPIRED event) and then handle a message for this transaction 
(because ensureReplicaIsPrimary was done before), assuming that all the locks 
are holding.

h3. Definition of done
The two mechanisms work in coordination.


> Coordination of mechanisms of determination for primary on replicaside
> --
>
> Key: IGNITE-21213
> URL: https://issues.apache.org/jira/browse/IGNITE-21213
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vladislav Pyatkov
>Priority: Major
>  Labels: ignite-3
>
> h3. Motivation
> In the replica listener, we have unconsidered mechanisms between each other 
> to determine primary rteplica. The first one is based on the placement driver 
> API (it is used in {_}PartitionReplicaListener#ensureReplicaIsPrimary{_}) and 
> the other one is based on the placement driver events (the events are hadeled 
> by two methods: {_}ReplicaManager#onPrimaryReplicaElected{_}, 
> {_}ReplicaManager#onPrimaryReplicaExpired{_}).
> Because the replica messages and events are handled in different threads, any 
> variety of processing is possible. For example, the replica can release all 
> transaction locks (by PRIMARY_REPLICA_EXPIRED event) and then handle a 
> message for this transaction (because ensureReplicaIsPrimary was done 
> before), assuming that all the locks are holding.
> h3. Definition of done
> The simultaneous processing of transactional requests and 
> PRIMARY_REPLICA_EXPIRED is impossible.
>  
> *Implementation notes*
> We must take into account and prevent the possible deadlocks, such as:
>  * the transactional request is trying to acquire the lock on the key A
>  * the processing of the PRIMARY_REPLICA_EXPIRED cannot start because the 
> aforementioned request processing is not finished
>  * the lock on the key A can't be acquired because it should be released by 
> the listener of PRIMARY_REPLICA_EXPIRED due to the replica expiration.
> Probably the event of replica expiration should invalidate the ongoing 
> transactional requests and complete them.



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


[jira] [Updated] (IGNITE-21283) Improve client data streamer performance

2024-01-22 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-21283:
-
Epic Link: IGNITE-19479

> Improve client data streamer performance
> 
>
> Key: IGNITE-21283
> URL: https://issues.apache.org/jira/browse/IGNITE-21283
> Project: Ignite
>  Issue Type: Improvement
>  Components: thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> * Embedded data streamer uses partition-based 
> *org.apache.ignite.internal.table.InternalTable#upsertAll(java.util.Collection,
>  int)* method to upsert data, but client streamer uses *upsertAll* through 
> public API
> * Embedded streamer performs batching per partition, client streamer batches 
> per node (connection)
> Compare embedded and client streamer performance in different cases:
> * 1 node, 4 nodes
> * client connects to single node, client connects to all nodes
> Check if using per-partition approach with internal upsertAll API improves 
> client streamer performance.



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


[jira] [Updated] (IGNITE-21325) Hold the transactional requests processing while the primary expired event processing is in progress

2024-01-22 Thread Denis Chudov (Jira)


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

Denis Chudov updated IGNITE-21325:
--
Description: 
Motivation

No processing of any transactional request should be started when the event 
processing of PRIMARY_REPLICA_EXPIRED event is in progress. The reason is that 
such requests may try to acquire transactional locks on the current primary 
replica, and the locks acquired during the previous lease are released by the 
listener of PRIMARY_REPLICA_EXPIRED event. The validity of the current primary 
is checked in PartitionReplicaListener#ensureReplicaIsPrimary.

We must ensure that this method is called after the processing of 
PRIMARY_REPLICA_EXPIRED event. The future returned by 
PlacementDriver#previousPrimaryExpired can be used for this.

Definition of done

The processing of transactional requests for the current primary replica can't 
be started before the processing of PRIMARY_REPLICA_EXPIRED event finishes.

  was:
*Motivation*

No processing of any transactional request should be started when the event 
processing of {{{}PRIMARY_REPLICA_EXPIRED event {{is in progress. The reason is 
that such requests may try to acquire transactional locks on the current 
primary replica, and the locks acquired during the previous lease are released 
by the listener of}} PRIMARY_REPLICA_EXPIRED event. The validity of the current 
primary is checked in PartitionReplicaListener#ensureReplicaIsPrimary{}}}.

We must ensure that this method is called after the processing of 
{{PRIMARY_REPLICA_EXPIRED event. The future returned by 
PlacementDriver#previousPrimaryExpired}} can be used for this.

*Definition of done*

The processing of transactional requests for the current primary replica can't 
be started before the processing of \{{PRIMARY_REPLICA_EXPIRED }}event finishes.


> Hold the transactional requests processing while the primary expired event 
> processing is in progress
> 
>
> Key: IGNITE-21325
> URL: https://issues.apache.org/jira/browse/IGNITE-21325
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Denis Chudov
>Priority: Major
>  Labels: ignite-3
>
> Motivation
> No processing of any transactional request should be started when the event 
> processing of PRIMARY_REPLICA_EXPIRED event is in progress. The reason is 
> that such requests may try to acquire transactional locks on the current 
> primary replica, and the locks acquired during the previous lease are 
> released by the listener of PRIMARY_REPLICA_EXPIRED event. The validity of 
> the current primary is checked in 
> PartitionReplicaListener#ensureReplicaIsPrimary.
> We must ensure that this method is called after the processing of 
> PRIMARY_REPLICA_EXPIRED event. The future returned by 
> PlacementDriver#previousPrimaryExpired can be used for this.
> Definition of done
> The processing of transactional requests for the current primary replica 
> can't be started before the processing of PRIMARY_REPLICA_EXPIRED event 
> finishes.



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


[jira] [Updated] (IGNITE-21325) Hold the transactional requests processing while the primary expired event processing is in progress

2024-01-22 Thread Denis Chudov (Jira)


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

Denis Chudov updated IGNITE-21325:
--
Description: 
Motivation

No processing of any transactional request should be started when the event 
processing of PRIMARY_REPLICA_EXPIRED event is in progress. The reason is that 
such requests may try to acquire transactional locks on the current primary 
replica, and the locks acquired during the previous lease are released by the 
listener of PRIMARY_REPLICA_EXPIRED event. The validity of the current primary 
is checked in {{{}PartitionReplicaListener#ensureReplicaIsPrimary{}}}.

We must ensure that this method is called after the processing of 
PRIMARY_REPLICA_EXPIRED event. The future returned by 
{{PlacementDriver#previousPrimaryExpired}} can be used for this.

Definition of done

The processing of transactional requests for the current primary replica can't 
be started before the processing of PRIMARY_REPLICA_EXPIRED event finishes.

  was:
Motivation

No processing of any transactional request should be started when the event 
processing of PRIMARY_REPLICA_EXPIRED event is in progress. The reason is that 
such requests may try to acquire transactional locks on the current primary 
replica, and the locks acquired during the previous lease are released by the 
listener of PRIMARY_REPLICA_EXPIRED event. The validity of the current primary 
is checked in PartitionReplicaListener#ensureReplicaIsPrimary.

We must ensure that this method is called after the processing of 
PRIMARY_REPLICA_EXPIRED event. The future returned by 
PlacementDriver#previousPrimaryExpired can be used for this.

Definition of done

The processing of transactional requests for the current primary replica can't 
be started before the processing of PRIMARY_REPLICA_EXPIRED event finishes.


> Hold the transactional requests processing while the primary expired event 
> processing is in progress
> 
>
> Key: IGNITE-21325
> URL: https://issues.apache.org/jira/browse/IGNITE-21325
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Denis Chudov
>Priority: Major
>  Labels: ignite-3
>
> Motivation
> No processing of any transactional request should be started when the event 
> processing of PRIMARY_REPLICA_EXPIRED event is in progress. The reason is 
> that such requests may try to acquire transactional locks on the current 
> primary replica, and the locks acquired during the previous lease are 
> released by the listener of PRIMARY_REPLICA_EXPIRED event. The validity of 
> the current primary is checked in 
> {{{}PartitionReplicaListener#ensureReplicaIsPrimary{}}}.
> We must ensure that this method is called after the processing of 
> PRIMARY_REPLICA_EXPIRED event. The future returned by 
> {{PlacementDriver#previousPrimaryExpired}} can be used for this.
> Definition of done
> The processing of transactional requests for the current primary replica 
> can't be started before the processing of PRIMARY_REPLICA_EXPIRED event 
> finishes.



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


[jira] [Updated] (IGNITE-21325) Hold the transactional requests processing while the primary expired event processing is in progress

2024-01-22 Thread Denis Chudov (Jira)


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

Denis Chudov updated IGNITE-21325:
--
Description: 
*Motivation*

No processing of any transactional request should be started when the event 
processing of {{{}PRIMARY_REPLICA_EXPIRED event {{is in progress. The reason is 
that such requests may try to acquire transactional locks on the current 
primary replica, and the locks acquired during the previous lease are released 
by the listener of}} PRIMARY_REPLICA_EXPIRED event. The validity of the current 
primary is checked in PartitionReplicaListener#ensureReplicaIsPrimary{}}}.

We must ensure that this method is called after the processing of 
{{PRIMARY_REPLICA_EXPIRED event. The future returned by 
PlacementDriver#previousPrimaryExpired}} can be used for this.

*Definition of done*

The processing of transactional requests for the current primary replica can't 
be started before the processing of \{{PRIMARY_REPLICA_EXPIRED }}event finishes.

  was:
*Motivation*

No processing of any transactional request should be started when the event 
processing of {{PRIMARY_REPLICA_EXPIRED }}event is in progress. The reason is 
that such requests may try to acquire transactional locks on the current 
primary replica, and the locks acquired during the previous lease are released 
by the listener of {{PRIMARY_REPLICA_EXPIRED }}event. The validity of the 
current primary is checked in 
{{{}PartitionReplicaListener#ensureReplicaIsPrimary{}}}.

We must ensure that this method is called after the processing of 
{{PRIMARY_REPLICA_EXPIRED }}event. The future returned by 
{{PlacementDriver#previousPrimaryExpired}} can be used for this.

*Definition of done*

The processing of transactional requests for the current primary replica can't 
be started before the processing of {{PRIMARY_REPLICA_EXPIRED }}event finishes.


> Hold the transactional requests processing while the primary expired event 
> processing is in progress
> 
>
> Key: IGNITE-21325
> URL: https://issues.apache.org/jira/browse/IGNITE-21325
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Denis Chudov
>Priority: Major
>  Labels: ignite-3
>
> *Motivation*
> No processing of any transactional request should be started when the event 
> processing of {{{}PRIMARY_REPLICA_EXPIRED event {{is in progress. The reason 
> is that such requests may try to acquire transactional locks on the current 
> primary replica, and the locks acquired during the previous lease are 
> released by the listener of}} PRIMARY_REPLICA_EXPIRED event. The validity of 
> the current primary is checked in 
> PartitionReplicaListener#ensureReplicaIsPrimary{}}}.
> We must ensure that this method is called after the processing of 
> {{PRIMARY_REPLICA_EXPIRED event. The future returned by 
> PlacementDriver#previousPrimaryExpired}} can be used for this.
> *Definition of done*
> The processing of transactional requests for the current primary replica 
> can't be started before the processing of \{{PRIMARY_REPLICA_EXPIRED }}event 
> finishes.



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


[jira] [Updated] (IGNITE-21325) Hold the transactional requests processing while the primary expired event processing is in progress

2024-01-22 Thread Denis Chudov (Jira)


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

Denis Chudov updated IGNITE-21325:
--
Description: 
*Motivation*

No processing of any transactional request should be started when the event 
processing of {{PRIMARY_REPLICA_EXPIRED }}event is in progress. The reason is 
that such requests may try to acquire transactional locks on the current 
primary replica, and the locks acquired during the previous lease are released 
by the listener of {{PRIMARY_REPLICA_EXPIRED }}event. The validity of the 
current primary is checked in 
{{{}PartitionReplicaListener#ensureReplicaIsPrimary{}}}.

We must ensure that this method is called after the processing of 
{{PRIMARY_REPLICA_EXPIRED }}event. The future returned by 
{{PlacementDriver#previousPrimaryExpired}} can be used for this.

*Definition of done*

The processing of transactional requests for the current primary replica can't 
be started before the processing of {{PRIMARY_REPLICA_EXPIRED }}event finishes.

> Hold the transactional requests processing while the primary expired event 
> processing is in progress
> 
>
> Key: IGNITE-21325
> URL: https://issues.apache.org/jira/browse/IGNITE-21325
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Denis Chudov
>Priority: Major
>  Labels: ignite-3
>
> *Motivation*
> No processing of any transactional request should be started when the event 
> processing of {{PRIMARY_REPLICA_EXPIRED }}event is in progress. The reason is 
> that such requests may try to acquire transactional locks on the current 
> primary replica, and the locks acquired during the previous lease are 
> released by the listener of {{PRIMARY_REPLICA_EXPIRED }}event. The validity 
> of the current primary is checked in 
> {{{}PartitionReplicaListener#ensureReplicaIsPrimary{}}}.
> We must ensure that this method is called after the processing of 
> {{PRIMARY_REPLICA_EXPIRED }}event. The future returned by 
> {{PlacementDriver#previousPrimaryExpired}} can be used for this.
> *Definition of done*
> The processing of transactional requests for the current primary replica 
> can't be started before the processing of {{PRIMARY_REPLICA_EXPIRED }}event 
> finishes.



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


[jira] [Assigned] (IGNITE-21328) Fix logging in LowWatermark#start when there is no low watermark in vault

2024-01-22 Thread Philipp Shergalis (Jira)


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

Philipp Shergalis reassigned IGNITE-21328:
--

Assignee: Philipp Shergalis

> Fix logging in LowWatermark#start when there is no low watermark in vault
> -
>
> Key: IGNITE-21328
> URL: https://issues.apache.org/jira/browse/IGNITE-21328
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Kirill Tkalenko
>Assignee: Philipp Shergalis
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> When starting a node, there is confusing logging at 
> *org.apache.ignite.internal.table.distributed.LowWatermark#start* in the 
> absence of a low watermark in the vault.
> Example message *Low watermark has been successfully got from the vault and 
> is scheduled to be updated: null* it needs to be changed to something like 
> "Previous value of the low watermark was not found, will schedule to update 
> it".



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


[jira] [Commented] (IGNITE-20361) Implement the table storage description

2024-01-22 Thread Kirill Gusakov (Jira)


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

Kirill Gusakov commented on IGNITE-20361:
-

LGTM

> Implement the table storage description
> ---
>
> Key: IGNITE-20361
> URL: https://issues.apache.org/jira/browse/IGNITE-20361
> Project: Ignite
>  Issue Type: Task
>Reporter: Kirill Gusakov
>Assignee: Mirza Aliev
>Priority: Major
>  Labels: ignite-3
>
> *Motivation*
> According to IGNITE-20357 we need to have an appropriate table storage 
> configuration, which can be used on the table create/alter to check if the 
> chosen zone has appropriate storage requirements.
> *Definition of done*
> - Table has the storage configuration, which can be used for early validation 
> if table can be "deployed" in its zone correctly.
> - Data storage configuration removed from zone configuration
> *Notes*
> - Avoid altering of this field for now with appropriate exception



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


[jira] [Updated] (IGNITE-17703) Extaract hardcoded constants to configuration in sql-engine module

2024-01-22 Thread Yury Gerzhedovich (Jira)


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

Yury Gerzhedovich updated IGNITE-17703:
---
Description: 
We have many hardcoded constants in sql-engine module. So it can't be configure 
by user. 
Let's move the following to configuration:
||Constant||Configuration path||Type||
|PrepareServiceImpl#DEFAULT_PLANNER_TIMEOUT|sql.planner.maxPlanningTime|Distributed|
|PrepareServiceImpl#THREAD_COUNT|sql.planner.threadCount|Local|
|SqlQueryProcessor#PLAN_CACHE_SIZE|sql.planner.estimatedNumberOfQueries|Distributed|
|QueryTaskExecutorImpl.stripedThreadPoolExecutor|sql.execution.concurrencyLevel|Local|
| | | |

 

  was:
We have many hardcoded constants in sql-engine module. So it can't be configure 
by user. 
Let's move the following to configuration:
||Constant||Configuration path||Type||
|PrepareServiceImpl#DEFAULT_PLANNER_TIMEOUT|sql.planner.maxPlanningTime|Distributed|
|PrepareServiceImpl#THREAD_COUNT|sql.planner.threadCount|Local|
|SqlQueryProcessor#PLAN_CACHE_SIZE|sql.planner.estimatedNumberOfQueries|Distributed|
|QueryTaskExecutorImpl.stripedThreadPoolExecutor|sql.execution.concurrencyLevel|Local|
| | | |


> Extaract hardcoded constants to configuration in sql-engine module
> --
>
> Key: IGNITE-17703
> URL: https://issues.apache.org/jira/browse/IGNITE-17703
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Yury Gerzhedovich
>Assignee: Yury Gerzhedovich
>Priority: Major
>  Labels: ignite-3, tech-debt
>
> We have many hardcoded constants in sql-engine module. So it can't be 
> configure by user. 
> Let's move the following to configuration:
> ||Constant||Configuration path||Type||
> |PrepareServiceImpl#DEFAULT_PLANNER_TIMEOUT|sql.planner.maxPlanningTime|Distributed|
> |PrepareServiceImpl#THREAD_COUNT|sql.planner.threadCount|Local|
> |SqlQueryProcessor#PLAN_CACHE_SIZE|sql.planner.estimatedNumberOfQueries|Distributed|
> |QueryTaskExecutorImpl.stripedThreadPoolExecutor|sql.execution.concurrencyLevel|Local|
> | | | |
>  



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


[jira] [Updated] (IGNITE-21329) [Extensions] Release ignite-ml extension

2024-01-22 Thread Ivan Daschinsky (Jira)


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

Ivan Daschinsky updated IGNITE-21329:
-
Description: Need to release ignite-ml extension (version 1.0.0)

> [Extensions] Release ignite-ml extension
> 
>
> Key: IGNITE-21329
> URL: https://issues.apache.org/jira/browse/IGNITE-21329
> Project: Ignite
>  Issue Type: Task
>Reporter: Ivan Daschinsky
>Priority: Major
>
> Need to release ignite-ml extension (version 1.0.0)



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


[jira] [Assigned] (IGNITE-21329) [Extensions] Release ignite-ml extension

2024-01-22 Thread Ivan Daschinsky (Jira)


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

Ivan Daschinsky reassigned IGNITE-21329:


Assignee: Ivan Daschinsky

> [Extensions] Release ignite-ml extension
> 
>
> Key: IGNITE-21329
> URL: https://issues.apache.org/jira/browse/IGNITE-21329
> Project: Ignite
>  Issue Type: Task
>Reporter: Ivan Daschinsky
>Assignee: Ivan Daschinsky
>Priority: Major
>
> Need to release ignite-ml extension (version 1.0.0)



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


[jira] [Created] (IGNITE-21329) [Extensions] Release ignite-ml extension

2024-01-22 Thread Ivan Daschinsky (Jira)
Ivan Daschinsky created IGNITE-21329:


 Summary: [Extensions] Release ignite-ml extension
 Key: IGNITE-21329
 URL: https://issues.apache.org/jira/browse/IGNITE-21329
 Project: Ignite
  Issue Type: Task
Reporter: Ivan Daschinsky






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


[jira] [Assigned] (IGNITE-21328) Fix logging in LowWatermark#start when there is no low watermark in vault

2024-01-22 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko reassigned IGNITE-21328:


Assignee: (was: Kirill Tkalenko)

> Fix logging in LowWatermark#start when there is no low watermark in vault
> -
>
> Key: IGNITE-21328
> URL: https://issues.apache.org/jira/browse/IGNITE-21328
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Kirill Tkalenko
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> When starting a node, there is confusing logging at 
> *org.apache.ignite.internal.table.distributed.LowWatermark#start* in the 
> absence of a low watermark in the vault.
> Example message *Low watermark has been successfully got from the vault and 
> is scheduled to be updated: null* it needs to be changed to something like 
> "Previous value of the low watermark was not found, will schedule to update 
> it".



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


[jira] [Created] (IGNITE-21328) Fix logging in LowWatermark#start when there is no low watermark in vault

2024-01-22 Thread Kirill Tkalenko (Jira)
Kirill Tkalenko created IGNITE-21328:


 Summary: Fix logging in LowWatermark#start when there is no low 
watermark in vault
 Key: IGNITE-21328
 URL: https://issues.apache.org/jira/browse/IGNITE-21328
 Project: Ignite
  Issue Type: Improvement
Reporter: Kirill Tkalenko
Assignee: Kirill Tkalenko
 Fix For: 3.0.0-beta2


When starting a node, there is confusing logging at 
*org.apache.ignite.internal.table.distributed.LowWatermark#start* in the 
absence of a low watermark in the vault.

Example message *Low watermark has been successfully got from the vault and is 
scheduled to be updated: null* it needs to be changed to something like 
"Previous value of the low watermark was not found, will schedule to update it".



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


[jira] [Updated] (IGNITE-21287) Sql. LogicalOrToUnionRule may hang

2024-01-22 Thread Yury Gerzhedovich (Jira)


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

Yury Gerzhedovich updated IGNITE-21287:
---
Summary: Sql. LogicalOrToUnionRule may hang  (was: Sql. 
LogicalOrToUnionRule may hand)

> Sql. LogicalOrToUnionRule may hang
> --
>
> Key: IGNITE-21287
> URL: https://issues.apache.org/jira/browse/IGNITE-21287
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Konstantin Orlov
>Priority: Major
>  Labels: ignite-3
>
> LogicalOrToUnionRule may hand in case of huge conditions. Let's investigate 
> possible solutions under this ticket and uncomment the rule.
> To reproduce the issue, try to uncomment the rule and run q19 from TPC-H 
> suite after IGNITE-20880.



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


[jira] [Assigned] (IGNITE-21284) Internal API for manual raft group configuration update

2024-01-22 Thread Ivan Bessonov (Jira)


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

Ivan Bessonov reassigned IGNITE-21284:
--

Assignee: Ivan Bessonov

> Internal API for manual raft group configuration update
> ---
>
> Key: IGNITE-21284
> URL: https://issues.apache.org/jira/browse/IGNITE-21284
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Ivan Bessonov
>Assignee: Ivan Bessonov
>Priority: Major
>  Labels: ignite-3
>
> We need an API (with implementation) that's analogous to 
> "reset-lost-partitions", but with the ability to reuse living minority of 
> nodes.
> This API should gather the states of partitions, identify healthy peers, and 
> use them as a new raft group configuration (through the update of 
> assignments).
> We have to make sure that node with latest log index will become a leader, so 
> we will have to propagate desired minimum for log index in assignments and 
> use it during the voting.



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


[jira] [Created] (IGNITE-21327) Create Windows batch file to run ignite

2024-01-22 Thread Vadim Pakhnushev (Jira)
Vadim Pakhnushev created IGNITE-21327:
-

 Summary: Create Windows batch file to run ignite
 Key: IGNITE-21327
 URL: https://issues.apache.org/jira/browse/IGNITE-21327
 Project: Ignite
  Issue Type: Improvement
  Components: binary, cli
Reporter: Vadim Pakhnushev
Assignee: Vadim Pakhnushev


In the IGNITE-21200 it was noted that there's no way to easily run Ignite on 
Windows from the zip distribution. Since there's no direct way to get the PID 
of the last executed command and create a start/stop commands, it's probably 
enough to enable just running the Ignite in place.



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


[jira] [Assigned] (IGNITE-21200) IgniteRunner start fails in Windows via git-bash

2024-01-22 Thread Vadim Pakhnushev (Jira)


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

Vadim Pakhnushev reassigned IGNITE-21200:
-

Assignee: Vadim Pakhnushev

> IgniteRunner start fails in Windows via git-bash
> 
>
> Key: IGNITE-21200
> URL: https://issues.apache.org/jira/browse/IGNITE-21200
> Project: Ignite
>  Issue Type: Bug
>  Components: binary, cli
>Affects Versions: 3.0.0-beta2
>Reporter: Igor
>Assignee: Vadim Pakhnushev
>Priority: Major
>  Labels: ignite-3, windows
> Fix For: 3.0.0-beta2
>
>
> h3. Steps to reproduce:
>  # Build ignite3-db-3.0.0-SNAPSHOT.zip distribution from sources.
>  # Use git-bash to run `./ignite3db start` in Windows.
> h3. Expected:
> IgniteRunner started.
> h3. Actual:
> Error:
> {code:java}
> ./ignite3db: line 38: C:\Program: No such file or directory{code}
> h3. Details:
> The space in path to java (C:\Program Files) is considered as separation 
> between command and arguments. To avoid it, usage of all variables have to 
> replaced to arrays. For example `${JAVA_CMD_WITH_ARGS}` have to be replaced 
> to `${JAVA_CMD_WITH_ARGS[@]}` and so on.



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


[jira] [Updated] (IGNITE-21326) .NET: Thin 3.0: Out of memory: Java heap space in tests

2024-01-22 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn updated IGNITE-21326:

Description: 
Happens more and more often lately: 
https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunNetTests/7787817?hideProblemsFromDependencies=false&hideTestsFromDependencies=false&expandBuildProblemsSection=true&expandBuildTestsSection=true

Investigate heap dumps from TC.

> .NET: Thin 3.0: Out of memory: Java heap space in tests
> ---
>
> Key: IGNITE-21326
> URL: https://issues.apache.org/jira/browse/IGNITE-21326
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Happens more and more often lately: 
> https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunNetTests/7787817?hideProblemsFromDependencies=false&hideTestsFromDependencies=false&expandBuildProblemsSection=true&expandBuildTestsSection=true
> Investigate heap dumps from TC.



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


[jira] [Updated] (IGNITE-21326) .NET: Thin 3.0: Out of memory: Java heap space in tests

2024-01-22 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn updated IGNITE-21326:

Description: 
Happens more and more often lately: 
https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunNetTests/7787817?hideProblemsFromDependencies=false&hideTestsFromDependencies=false&expandBuildProblemsSection=true&expandBuildTestsSection=true


{code:java}
Out of memory: Java heap space (This problem is reported because 
OutOfMemoryError has been found in the build log text)
{code}


Investigate heap dumps from TC.

  was:
Happens more and more often lately: 
https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunNetTests/7787817?hideProblemsFromDependencies=false&hideTestsFromDependencies=false&expandBuildProblemsSection=true&expandBuildTestsSection=true

Investigate heap dumps from TC.


> .NET: Thin 3.0: Out of memory: Java heap space in tests
> ---
>
> Key: IGNITE-21326
> URL: https://issues.apache.org/jira/browse/IGNITE-21326
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Happens more and more often lately: 
> https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunNetTests/7787817?hideProblemsFromDependencies=false&hideTestsFromDependencies=false&expandBuildProblemsSection=true&expandBuildTestsSection=true
> {code:java}
> Out of memory: Java heap space (This problem is reported because 
> OutOfMemoryError has been found in the build log text)
> {code}
> Investigate heap dumps from TC.



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


[jira] [Created] (IGNITE-21326) .NET: Thin 3.0: Out of memory: Java heap space in tests

2024-01-22 Thread Pavel Tupitsyn (Jira)
Pavel Tupitsyn created IGNITE-21326:
---

 Summary: .NET: Thin 3.0: Out of memory: Java heap space in tests
 Key: IGNITE-21326
 URL: https://issues.apache.org/jira/browse/IGNITE-21326
 Project: Ignite
  Issue Type: Bug
  Components: platforms, thin client
Affects Versions: 3.0.0-beta1
Reporter: Pavel Tupitsyn
Assignee: Pavel Tupitsyn
 Fix For: 3.0.0-beta2






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


[jira] [Updated] (IGNITE-17703) Extaract hardcoded constants to configuration in sql-engine module

2024-01-22 Thread Yury Gerzhedovich (Jira)


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

Yury Gerzhedovich updated IGNITE-17703:
---
Description: 
We have many hardcoded constants in sql-engine module. So it can't be configure 
by user. 
Let's move the following to configuration:
||Constant||Configuration path||Type||
|PrepareServiceImpl#DEFAULT_PLANNER_TIMEOUT|sql.planner.maxPlanningTime|Distributed|
|PrepareServiceImpl#THREAD_COUNT|sql.planner.threadCount|Local|
|SqlQueryProcessor#PLAN_CACHE_SIZE|sql.planner.estimatedNumberOfQueries|Distributed|
|QueryTaskExecutorImpl.stripedThreadPoolExecutor|sql.execution.concurrencyLevel|Local|
| | | |

  was:
We have many hardcoded constants in sql-engine module. So it can't be configure 
by user. 
Let's move the following to configuration:
||Constant||Configuration path||
|PrepareServiceImpl#DEFAULT_PLANNER_TIMEOUT|sql.planner.maxPlanningTime|
|PrepareServiceImpl#THREAD_COUNT|sql.planner.threadCount|
|SqlQueryProcessor#PLAN_CACHE_SIZE|sql.planner.estimatedNumberOfQueries|
|QueryTaskExecutorImpl.stripedThreadPoolExecutor|sql.execution.concurrencyLevel|
| | |


> Extaract hardcoded constants to configuration in sql-engine module
> --
>
> Key: IGNITE-17703
> URL: https://issues.apache.org/jira/browse/IGNITE-17703
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Yury Gerzhedovich
>Assignee: Yury Gerzhedovich
>Priority: Major
>  Labels: ignite-3, tech-debt
>
> We have many hardcoded constants in sql-engine module. So it can't be 
> configure by user. 
> Let's move the following to configuration:
> ||Constant||Configuration path||Type||
> |PrepareServiceImpl#DEFAULT_PLANNER_TIMEOUT|sql.planner.maxPlanningTime|Distributed|
> |PrepareServiceImpl#THREAD_COUNT|sql.planner.threadCount|Local|
> |SqlQueryProcessor#PLAN_CACHE_SIZE|sql.planner.estimatedNumberOfQueries|Distributed|
> |QueryTaskExecutorImpl.stripedThreadPoolExecutor|sql.execution.concurrencyLevel|Local|
> | | | |



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


[jira] [Commented] (IGNITE-21270) Use consistentId instead of ClusterNode in Compute API

2024-01-22 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn commented on IGNITE-21270:
-

I don't think that stringly-typed API is better. We should definitely keep 
*ClusterNode* in the public API, it can't be replaced with a string:
* To access address and metadata
* Future-proofing

> Use consistentId instead of ClusterNode in Compute API
> --
>
> Key: IGNITE-21270
> URL: https://issues.apache.org/jira/browse/IGNITE-21270
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Roman Puchkovskiy
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Currently, methods of the Compute API accept ClusterNode type to identify 
> nodes on which a job is to be executed. This seems redundant as we only use 
> consistentId from those objects.
> If we replace ClusterNode with String (representing consistentId), we will 
> not lose API capabilities (we'll just resolve the nodes internally in the 
> very beginning), but we'll be able to move ClusterNode and TopologyService 
> from our public API, and having less public API seems to be a good thing.



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


[jira] [Updated] (IGNITE-21103) Thin 3.0: Rename DataStreamerOptions.batchSize to pageSize

2024-01-22 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn updated IGNITE-21103:

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

> Thin 3.0: Rename DataStreamerOptions.batchSize to pageSize
> --
>
> Key: IGNITE-21103
> URL: https://issues.apache.org/jira/browse/IGNITE-21103
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET, ignite-3
> Fix For: 3.0.0-beta2
>
>
> Rename *DataStreamerOptions.batchSize* to *pageSize* to be consistent with 
> cursors and other APIs.
> Update Java and .NET client.



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


[jira] [Comment Edited] (IGNITE-21213) Coordination of mechanisms of determination for primary on replicaside

2024-01-22 Thread Denis Chudov (Jira)


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

Denis Chudov edited comment on IGNITE-21213 at 1/22/24 8:32 AM:


There are 3 aspects of this problem:
 # Handling the events processing should be done within the replica stripe, 
will be covered in IGNITE-21258
 # We shouldn't allow to process transactional requests and events handling 
simultaneously wrt async calls, so we should make something like read-write 
lock (but not literally, because simple read-write lock will lead to 
deadlocks). Can be done in this ticket.
 # We shouldn't allow to process new transactional requests until the event 
handling is done, PlacementDriver#previousPrimaryExpired future can be used for 
this: IGNITE-21325


was (Author: denis chudov):
There are 3 aspects of this problem:
 # Handling the events processing should be done within the replica stripe, 
will be covered in IGNITE-21258
 # We shouldn't allow to process transactional requests and events handling 
simultaneously wrt async calls, so we should make something like read-write 
lock (but not literally, because simple read-write lock will lead to 
deadlocks). Can be done in this ticket.
 # We shouldn't allow to process new transactional requests until the event 
handling is done, PlacementDriver#previousPrimaryExpired future can be used for 
this.

> Coordination of mechanisms of determination for primary on replicaside
> --
>
> Key: IGNITE-21213
> URL: https://issues.apache.org/jira/browse/IGNITE-21213
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vladislav Pyatkov
>Priority: Major
>  Labels: ignite-3
>
> h3. Motivation
> In the replica listener, we have unconsidered mechanisms between each other 
> to determine primary rteplica. The first one is based on the placement driver 
> API (it is used in _PartitionReplicaListener#ensureReplicaIsPrimary_) and the 
> other one is based on the placement driver events (the events are hadeled by 
> two methods: _ReplicaManager#onPrimaryReplicaElected_, 
> _ReplicaManager#onPrimaryReplicaExpired_).
> Because the replica messages and events are handled in different threads, any 
> variety of processing is possible. For example, the replica can release all 
> transaction locks (by
> PRIMARY_REPLICA_EXPIRED event) and then handle a message for this transaction 
> (because ensureReplicaIsPrimary was done before), assuming that all the locks 
> are holding.
> h3. Definition of done
> The two mechanisms work in coordination.



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


[jira] [Created] (IGNITE-21325) Hold the transactional requests processing while the primary expired event processing is in progress

2024-01-22 Thread Denis Chudov (Jira)
Denis Chudov created IGNITE-21325:
-

 Summary: Hold the transactional requests processing while the 
primary expired event processing is in progress
 Key: IGNITE-21325
 URL: https://issues.apache.org/jira/browse/IGNITE-21325
 Project: Ignite
  Issue Type: Improvement
Reporter: Denis Chudov






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


[jira] [Commented] (IGNITE-21213) Coordination of mechanisms of determination for primary on replicaside

2024-01-22 Thread Denis Chudov (Jira)


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

Denis Chudov commented on IGNITE-21213:
---

There are 3 aspects of this problem:
 # Handling the events processing should be done within the replica stripe, 
will be covered in IGNITE-21258
 # We shouldn't allow to process transactional requests and events handling 
simultaneously wrt async calls, so we should make something like read-write 
lock (but not literally, because simple read-write lock will lead to 
deadlocks). Can be done in this ticket.
 # We shouldn't allow to process new transactional requests until the event 
handling is done, PlacementDriver#previousPrimaryExpired future can be used for 
this.

> Coordination of mechanisms of determination for primary on replicaside
> --
>
> Key: IGNITE-21213
> URL: https://issues.apache.org/jira/browse/IGNITE-21213
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vladislav Pyatkov
>Priority: Major
>  Labels: ignite-3
>
> h3. Motivation
> In the replica listener, we have unconsidered mechanisms between each other 
> to determine primary rteplica. The first one is based on the placement driver 
> API (it is used in _PartitionReplicaListener#ensureReplicaIsPrimary_) and the 
> other one is based on the placement driver events (the events are hadeled by 
> two methods: _ReplicaManager#onPrimaryReplicaElected_, 
> _ReplicaManager#onPrimaryReplicaExpired_).
> Because the replica messages and events are handled in different threads, any 
> variety of processing is possible. For example, the replica can release all 
> transaction locks (by
> PRIMARY_REPLICA_EXPIRED event) and then handle a message for this transaction 
> (because ensureReplicaIsPrimary was done before), assuming that all the locks 
> are holding.
> h3. Definition of done
> The two mechanisms work in coordination.



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


[jira] [Commented] (IGNITE-21276) Check nodeId within ensureReplicaIsPrimary

2024-01-22 Thread Vladislav Pyatkov (Jira)


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

Vladislav Pyatkov commented on IGNITE-21276:


LGTM

> Check nodeId within ensureReplicaIsPrimary
> --
>
> Key: IGNITE-21276
> URL: https://issues.apache.org/jira/browse/IGNITE-21276
> Project: Ignite
>  Issue Type: Bug
>Reporter: Alexander Lapin
>Assignee: Alexander Lapin
>Priority: Major
>  Labels: ignite-3
>
> ensureReplicaIsPrimary should check whether primaryReplica.lease.id is the 
> same as localNode.id. That's it.



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