[jira] [Resolved] (IGNITE-21739) JDBC connection to a multi-node cluster doesn't take into account clientConnector.port from each node

2024-03-14 Thread Nikita Sivkov (Jira)


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

Nikita Sivkov resolved IGNITE-21739.

Resolution: Invalid

Actually, the connection string was like 
{{jdbc:ignite:thin://172.24.1.2,172.24.1.3,172.24.1.4 and the actual issue is 
related to [IGNITE-21577|https://issues.apache.org/jira/browse/IGNITE-21577]}}

> JDBC connection to a multi-node cluster doesn't take into account 
> clientConnector.port from each node
> -
>
> Key: IGNITE-21739
> URL: https://issues.apache.org/jira/browse/IGNITE-21739
> Project: Ignite
>  Issue Type: Bug
>  Components: jdbc
>Affects Versions: 3.0.0-beta2
> Environment: * multi-node cluster
>  * different `{{{}clientConnector.port{}}}` on each cluster node
>Reporter: Nikita Sivkov
>Priority: Major
>  Labels: ignite-3
> Attachments: exception.log
>
>
> *WHEN* you create a multi-node cluster
> *AND* specify different {color:#de350b}{{clientConnector.port}}{color} on 
> each cluster node
> (for example, 
> node1 (172.24.1.2) - {color:#de350b}{{clientConnector.port=10800}}{color}
> node2 (172.24.1.3) - {color:#de350b}{{clientConnector.port=10801}}{color}
> node3 (172.24.1.4) - {color:#de350b}{{clientConnector.port=10802}}{color})
> *AND* connect to cluster like 
> {color:#de350b}{{{}jdbc:ignite:thin://{node1address{{color} (for example, 
> {{{color:#de350b}jdbc:ignite:thin://172.24.1.2{color})}}
> *AND* try to insert a couple of records
> *THEN* you will get an error like
> {code:java}
> Mar 12, 2024 7:37:21 PM org.apache.ignite.internal.logger.IgniteLogger 
> warnWARNING: Failed to establish connection to 172.24.1.3:10800: 
> org.apache.ignite.client.IgniteClientConnectionException: IGN-CLIENT-1 
> TraceId:df21d718-d40c-4506-84e7-6ec141de9ab5 Client failed to connect: 
> Connection refused: no further information: 
> /172.24.1.3:10800java.util.concurrent.CompletionException: 
> org.apache.ignite.client.IgniteClientConnectionException: IGN-CLIENT-1 
> TraceId:df21d718-d40c-4506-84e7-6ec141de9ab5 Client failed to connect: 
> Connection refused: no further information: /172.24.1.3:10800  at 
> java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331)
>  at 
> java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:346)
>at 
> java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1063)
>  at 
> java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
> at 
> java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088)
>   at 
> org.apache.ignite.internal.client.io.netty.NettyClientConnectionMultiplexer.lambda$openAsync$1(NettyClientConnectionMultiplexer.java:197)
> at 
> io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
>  at 
> io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
> at 
> io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
>   at 
> io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
>  at 
> io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)   
> at 
> io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629) 
> at 
> io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)  
> at 
> io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:322)
>  at 
> io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:338)
>  at 
> io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)  
> at 
> io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
> at 
> io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) 
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) at 
> io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
>  at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) 
>at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:834)Caused by: 
> org.apache.ignite.client.IgniteClientConnectionException: IGN-CLIENT-1 
> TraceId:df21d718-d40c-4506-84e7-6ec141de9ab5 Client failed to connect: 
> Connection refused: no further information: /172.24.1.3:10800at 
> org.apache.ignite.internal.client.io.netty.NettyClientConnectionMultiplexer.lambda$openAsync$1(NettyClientConnectionMultiplexer.java:194)
> ... 17 m

[jira] [Updated] (IGNITE-21749) Add assertions for destroyed/closed storages behavior

2024-03-14 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko updated IGNITE-21749:
-
Epic Link: IGNITE-20782

> Add assertions for destroyed/closed storages behavior
> -
>
> Key: IGNITE-21749
> URL: https://issues.apache.org/jira/browse/IGNITE-21749
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Roman Puchkovskiy
>Assignee: Roman Puchkovskiy
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> Also, the number of warnings in AbstractMvTableStorageTest should be reduced.



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


[jira] [Updated] (IGNITE-19976) Sql: ClassCastException when trying to select from indexed smallint column

2024-03-14 Thread Evgeny Stanilovsky (Jira)


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

Evgeny Stanilovsky updated IGNITE-19976:

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

> Sql: ClassCastException when trying to select from indexed smallint column
> --
>
> Key: IGNITE-19976
> URL: https://issues.apache.org/jira/browse/IGNITE-19976
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 3.0.0-beta1, 3.0.0-beta2
>Reporter: Andrey Khitrin
>Assignee: Maksim Zhuravkov
>Priority: Major
>  Labels: ignite-3, sql
> Fix For: 3.0.0-beta2
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Steps to reproduce:
> {code:sql}
> sql-cli> create table tt(id INTEGER not null, field_1 TINYINT, field_2 
> SMALLINT, primary key (id));
> Updated 0 rows.
> sql-cli> SELECT * FROM tt WHERE field_2 = 50;
> ╔╤═╤═╗
> ║ ID │ FIELD_1 │ FIELD_2 ║
> ╠╧═╧═╣
> ║ (empty)║
> ╚╝
> -- select over field_2 works fine until we create an index on it!
> sql-cli> CREATE INDEX tt_idx ON tt (field_2);
> Updated 0 rows.
> sql-cli> SELECT * FROM tt WHERE field_2 = 50;
> SQL query execution error
> Exception while executing query [query=SELECT * FROM tt WHERE field_2 = 50;]. 
> Error message:Query remote fragment execution failed: nodeName=defaultNode, 
> queryId=15a68600-41bc-46c5-b20d-7a96aad15477, fragmentId=4, 
> originalMessage=class java.lang.Integer cannot be cast to class 
> java.lang.Short (java.lang.Integer and java.lang.Short are in module 
> java.base of loader 'bootstrap')
> {code}
> This doesn't look good. A created index must not cause casting exception.
> Reproduced on commit `fef7a24c2a029cac720d2fea3815c2a70a86b72f` (2023-07-12)



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


[jira] [Commented] (IGNITE-21749) Add assertions for destroyed/closed storages behavior

2024-03-14 Thread Roman Puchkovskiy (Jira)


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

Roman Puchkovskiy commented on IGNITE-21749:


Thanks!

> Add assertions for destroyed/closed storages behavior
> -
>
> Key: IGNITE-21749
> URL: https://issues.apache.org/jira/browse/IGNITE-21749
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Roman Puchkovskiy
>Assignee: Roman Puchkovskiy
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> Also, the number of warnings in AbstractMvTableStorageTest should be reduced.



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


[jira] [Created] (IGNITE-21753) Implement a hacky self-compaction for selected Metastorage keys

2024-03-14 Thread Roman Puchkovskiy (Jira)
Roman Puchkovskiy created IGNITE-21753:
--

 Summary: Implement a hacky self-compaction for selected 
Metastorage keys
 Key: IGNITE-21753
 URL: https://issues.apache.org/jira/browse/IGNITE-21753
 Project: Ignite
  Issue Type: Improvement
Reporter: Roman Puchkovskiy






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


[jira] [Updated] (IGNITE-21753) Implement a hacky self-compaction for selected Metastorage keys

2024-03-14 Thread Roman Puchkovskiy (Jira)


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

Roman Puchkovskiy updated IGNITE-21753:
---
Description: 
To enable Metastorage compaction (that is, removal of overwritten revisions 
that are not needed to anyone any more), there is IGNITE-19417, but it might 
take some time to define the corresponding LWM's rules.

As a crutch, we might implement a simplified procedure for some keys. For 
instance, a big percentage of garbage is created by a constantly overwritten 
key related to lease tracking.

If a key is never scanned (either distributively, via range()/prefix(), or 
locally, via xxxLocally() returning a Cursor) and only its latest version is 
always accessed (this seems to be true for the above mentioned lease-related 
key), we can just do compactKey() for such a key after any update involving it.

We might also need to reimplement getAndPut() to read before doing a put as the 
current implementation requires 2 latest versions to be stored (because it 
makes a put first and only then reads using the 'before the put' revision).

> Implement a hacky self-compaction for selected Metastorage keys
> ---
>
> Key: IGNITE-21753
> URL: https://issues.apache.org/jira/browse/IGNITE-21753
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Roman Puchkovskiy
>Priority: Major
>  Labels: ignite-3
>
> To enable Metastorage compaction (that is, removal of overwritten revisions 
> that are not needed to anyone any more), there is IGNITE-19417, but it might 
> take some time to define the corresponding LWM's rules.
> As a crutch, we might implement a simplified procedure for some keys. For 
> instance, a big percentage of garbage is created by a constantly overwritten 
> key related to lease tracking.
> If a key is never scanned (either distributively, via range()/prefix(), or 
> locally, via xxxLocally() returning a Cursor) and only its latest version is 
> always accessed (this seems to be true for the above mentioned lease-related 
> key), we can just do compactKey() for such a key after any update involving 
> it.
> We might also need to reimplement getAndPut() to read before doing a put as 
> the current implementation requires 2 latest versions to be stored (because 
> it makes a put first and only then reads using the 'before the put' revision).



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


[jira] [Updated] (IGNITE-21753) Implement a hacky self-compaction for selected Metastorage keys

2024-03-14 Thread Roman Puchkovskiy (Jira)


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

Roman Puchkovskiy updated IGNITE-21753:
---
Description: 
To enable Metastorage compaction (that is, removal of overwritten revisions 
that are not needed to anyone any more), there is IGNITE-19417, but it might 
take some time to define the corresponding LWM's rules.

As a crutch, we might implement a simplified procedure for some keys. For 
instance, a big percentage of garbage is created by a constantly overwritten 
key related to lease tracking.

If a key is never scanned (either distributively, via range()/prefix(), or 
locally, via xxxLocally() returning a Cursor) and only its latest version is 
always accessed (this seems to be true for the above mentioned lease-related 
key), we can just do compactKey() for such a key after any update involving it.

We might also need to reimplement getAndPut() to read before doing a put as the 
current implementation requires 2 latest versions to be stored (because it 
makes a put first and only then reads using the 'before the put' revision).

The crutch might be implemented by whitelisting all such 'special' keys in the 
KV storage backing the Metastorage to make it opaque for the API, or an API 
might be temporarily changed.

  was:
To enable Metastorage compaction (that is, removal of overwritten revisions 
that are not needed to anyone any more), there is IGNITE-19417, but it might 
take some time to define the corresponding LWM's rules.

As a crutch, we might implement a simplified procedure for some keys. For 
instance, a big percentage of garbage is created by a constantly overwritten 
key related to lease tracking.

If a key is never scanned (either distributively, via range()/prefix(), or 
locally, via xxxLocally() returning a Cursor) and only its latest version is 
always accessed (this seems to be true for the above mentioned lease-related 
key), we can just do compactKey() for such a key after any update involving it.

We might also need to reimplement getAndPut() to read before doing a put as the 
current implementation requires 2 latest versions to be stored (because it 
makes a put first and only then reads using the 'before the put' revision).


> Implement a hacky self-compaction for selected Metastorage keys
> ---
>
> Key: IGNITE-21753
> URL: https://issues.apache.org/jira/browse/IGNITE-21753
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Roman Puchkovskiy
>Priority: Major
>  Labels: ignite-3
>
> To enable Metastorage compaction (that is, removal of overwritten revisions 
> that are not needed to anyone any more), there is IGNITE-19417, but it might 
> take some time to define the corresponding LWM's rules.
> As a crutch, we might implement a simplified procedure for some keys. For 
> instance, a big percentage of garbage is created by a constantly overwritten 
> key related to lease tracking.
> If a key is never scanned (either distributively, via range()/prefix(), or 
> locally, via xxxLocally() returning a Cursor) and only its latest version is 
> always accessed (this seems to be true for the above mentioned lease-related 
> key), we can just do compactKey() for such a key after any update involving 
> it.
> We might also need to reimplement getAndPut() to read before doing a put as 
> the current implementation requires 2 latest versions to be stored (because 
> it makes a put first and only then reads using the 'before the put' revision).
> The crutch might be implemented by whitelisting all such 'special' keys in 
> the KV storage backing the Metastorage to make it opaque for the API, or an 
> API might be temporarily changed.



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


[jira] [Updated] (IGNITE-21753) Implement a hacky self-compaction for selected Metastorage keys

2024-03-14 Thread Roman Puchkovskiy (Jira)


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

Roman Puchkovskiy updated IGNITE-21753:
---
Description: 
To enable Metastorage compaction (that is, removal of overwritten revisions 
that are not needed to anyone any more), there is IGNITE-19417, but it might 
take some time to define the corresponding LWM's rules.

As a crutch, we might implement a simplified procedure for some keys. For 
instance, a big percentage of garbage is created by a constantly overwritten 
key related to lease tracking.

If a key is never scanned (either distributively, via range()/prefix(), or 
locally, via xxxLocally() returning a Cursor) and only its latest version is 
always accessed (this seems to be true for the above mentioned lease-related 
key), we can just do compactKey() for such a key after any update involving it.

We might also need to reimplement getAndPut() to read before doing a put as the 
current implementation requires 2 latest versions to be stored (because it 
makes a put first and only then reads using the 'before the put' revision).

The crutch might be implemented by whitelisting all such 'special' keys in the 
KV storage backing the Metastorage to make it opaque for the API, or an API 
might be temporarily changed.

Anyway, a detailed design is needed.

  was:
To enable Metastorage compaction (that is, removal of overwritten revisions 
that are not needed to anyone any more), there is IGNITE-19417, but it might 
take some time to define the corresponding LWM's rules.

As a crutch, we might implement a simplified procedure for some keys. For 
instance, a big percentage of garbage is created by a constantly overwritten 
key related to lease tracking.

If a key is never scanned (either distributively, via range()/prefix(), or 
locally, via xxxLocally() returning a Cursor) and only its latest version is 
always accessed (this seems to be true for the above mentioned lease-related 
key), we can just do compactKey() for such a key after any update involving it.

We might also need to reimplement getAndPut() to read before doing a put as the 
current implementation requires 2 latest versions to be stored (because it 
makes a put first and only then reads using the 'before the put' revision).

The crutch might be implemented by whitelisting all such 'special' keys in the 
KV storage backing the Metastorage to make it opaque for the API, or an API 
might be temporarily changed.


> Implement a hacky self-compaction for selected Metastorage keys
> ---
>
> Key: IGNITE-21753
> URL: https://issues.apache.org/jira/browse/IGNITE-21753
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Roman Puchkovskiy
>Priority: Major
>  Labels: ignite-3
>
> To enable Metastorage compaction (that is, removal of overwritten revisions 
> that are not needed to anyone any more), there is IGNITE-19417, but it might 
> take some time to define the corresponding LWM's rules.
> As a crutch, we might implement a simplified procedure for some keys. For 
> instance, a big percentage of garbage is created by a constantly overwritten 
> key related to lease tracking.
> If a key is never scanned (either distributively, via range()/prefix(), or 
> locally, via xxxLocally() returning a Cursor) and only its latest version is 
> always accessed (this seems to be true for the above mentioned lease-related 
> key), we can just do compactKey() for such a key after any update involving 
> it.
> We might also need to reimplement getAndPut() to read before doing a put as 
> the current implementation requires 2 latest versions to be stored (because 
> it makes a put first and only then reads using the 'before the put' revision).
> The crutch might be implemented by whitelisting all such 'special' keys in 
> the KV storage backing the Metastorage to make it opaque for the API, or an 
> API might be temporarily changed.
> Anyway, a detailed design is needed.



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


[jira] [Commented] (IGNITE-21678) IgniteToIgniteCdcStreamer fails if BinaryConfiguration is specified in config

2024-03-14 Thread Ignite TC Bot (Jira)


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

Ignite TC Bot commented on IGNITE-21678:


{panel:title=Branch: [pull/11275/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/11275/head] Base: [master] : New Tests 
(2)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#8b}PDS 2{color} [[tests 
1|https://ci2.ignite.apache.org/viewLog.html?buildId=7783486]]
* {color:#013220}IgnitePdsTestSuite2: 
CdcPushMetricsExporterTest.testIgniteToIgniteConsumer - PASSED{color}

{color:#8b}Disk Page Compressions 2{color} [[tests 
1|https://ci2.ignite.apache.org/viewLog.html?buildId=7783530]]
* {color:#013220}IgnitePdsCompressionTestSuite2: 
CdcPushMetricsExporterTest.testIgniteToIgniteConsumer - PASSED{color}

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

> IgniteToIgniteCdcStreamer fails if BinaryConfiguration is specified in config
> -
>
> Key: IGNITE-21678
> URL: https://issues.apache.org/jira/browse/IGNITE-21678
> Project: Ignite
>  Issue Type: Bug
>Reporter: Sergey Korotkov
>Assignee: Sergey Korotkov
>Priority: Major
>  Labels: ise
> Fix For: 2.17
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> The below exception occurs if destination cluster has the explicit 
> BinaryConfiguration instance included into the IgniteConfiguration:
> {noformat}
> 2024-03-04T12:14:31,777][INFO ][Thread-0][] Ignite Change Data Capture 
> Application stopped.
> [2024-03-04T12:14:31,782][ERROR][Thread-0][] Cdc error
> org.apache.ignite.IgniteException: Failed to start manager: 
> GridManagerAdapter [enabled=true, 
> name=org.apache.ignite.internal.managers.discovery.GridDiscoveryManager]
> at 
> org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:1163)
>  ~[classes/:?]
> at org.apache.ignite.Ignition.start(Ignition.java:303) ~[classes/:?]
> at 
> org.apache.ignite.cdc.IgniteToIgniteCdcStreamer.start(IgniteToIgniteCdcStreamer.java:86)
>  ~[ignite-cdc-ext-1.0.0-SNAPSHOT.jar:?]
> at 
> org.apache.ignite.internal.cdc.WalRecordsConsumer.start(WalRecordsConsumer.java:192)
>  ~[classes/:?]
> at org.apache.ignite.internal.cdc.CdcMain.runX(CdcMain.java:360) 
> ~[classes/:?]
> at org.apache.ignite.internal.cdc.CdcMain.run(CdcMain.java:306) 
> [classes/:?]
> at java.base/java.lang.Thread.run(Thread.java:829) [?:?]
> Caused by: org.apache.ignite.IgniteCheckedException: Failed to start manager: 
> GridManagerAdapter [enabled=true, 
> name=org.apache.ignite.internal.managers.discovery.GridDiscoveryManager]
> at 
> org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1777) 
> ~[classes/:?]
> at 
> org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1159) 
> ~[classes/:?]
> at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1725)
>  ~[classes/:?]
> at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1647)
>  ~[classes/:?]
> at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1089) 
> ~[classes/:?]
> at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:625) 
> ~[classes/:?]
> at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:547) 
> ~[classes/:?]
> at org.apache.ignite.Ignition.start(Ignition.java:300) ~[classes/:?]
> ... 5 more
> Caused by: org.apache.ignite.IgniteCheckedException: Failed to start SPI: 
> TcpDiscoverySpi [addrRslvr=null, addressFilter=null, sockTimeout=5000, 
> ackTimeout=5000, marsh=JdkMarshaller 
> [clsFilter=org.apache.ignite.marshaller.MarshallerUtils$1@5f243268], 
> reconCnt=10, reconDelay=2000, maxAckTimeout=60, soLinger=0, 
> forceSrvMode=false, clientReconnectDisabled=false, internalLsnr=null, 
> skipAddrsRandomization=false]
> at 
> org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:280)
>  ~[classes/:?]
> at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:1072)
>  ~[classes/:?]
> at 
> org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1772) 
> ~[classes/:?]
> at 
> org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1159) 
> ~[classes/:?]
> at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1725)
>  ~[classes/:?]
> at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstan

[jira] [Created] (IGNITE-21754) Remove destroyed tables on recovery

2024-03-14 Thread Kirill Tkalenko (Jira)
Kirill Tkalenko created IGNITE-21754:


 Summary: Remove destroyed tables on recovery
 Key: IGNITE-21754
 URL: https://issues.apache.org/jira/browse/IGNITE-21754
 Project: Ignite
  Issue Type: Improvement
Reporter: Kirill Tkalenko
 Fix For: 3.0.0-beta2


We need to destroy tables on node recovery that fall under the low watermark 
for all storage engines.



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


[jira] [Assigned] (IGNITE-20009) Sql. Rework 2-phase aggregates part 2. AVG as SUM / COUNT.

2024-03-14 Thread Maksim Zhuravkov (Jira)


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

Maksim Zhuravkov reassigned IGNITE-20009:
-

Assignee: Maksim Zhuravkov

> Sql. Rework 2-phase aggregates part 2. AVG as SUM / COUNT.
> --
>
> Key: IGNITE-20009
> URL: https://issues.apache.org/jira/browse/IGNITE-20009
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Affects Versions: 3.0.0-beta1
>Reporter: Maksim Zhuravkov
>Assignee: Maksim Zhuravkov
>Priority: Minor
>  Labels: ignite-3
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Map/reduce implementation of some aggregates requires replacing an aggregate 
> with a combination of aggregates. For example AVG(col) should be implemented 
> as 
> MAP: SUM(col)  sum_col, COUNT (col) as count_col
> REDUCE: SUM(sum_col)/SUM(COUNT(count_col))
> To implement AVG for two phase aggregation we need the following changes:
> - Replace AVG on MAP phase with SUM and COUNT. 
> - Change rowType produced by MAP phase/accepted by REDUCE phase.
> - Add a projection after a reduce aggregate that includes division and 
> produces final result (it obviously should include other results of other 
> aggregates in the correct order). Divisor should be checked for 0 in order 
> not to trigger division by zero error.
> Calcite has `AggregateReduceFunctionsRule` that rewrites AVG aggregate (see 
> reduceAvg method) that code can be used a reference.



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


[jira] [Commented] (IGNITE-21087) VacuumTask removal

2024-03-14 Thread Julia Bakulina (Jira)


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

Julia Bakulina commented on IGNITE-21087:
-

TCbot2 green visa: 
https://tcbot2.sbt-ignite-dev.ru/pr.html?serverId=apache&suiteId=IgniteTests24Java8_RunAll&branchForTc=pull/11273/head&action=Latest

> VacuumTask removal
> --
>
> Key: IGNITE-21087
> URL: https://issues.apache.org/jira/browse/IGNITE-21087
> Project: Ignite
>  Issue Type: Sub-task
>Reporter: Julia Bakulina
>Assignee: Julia Bakulina
>Priority: Minor
>  Labels: ise
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Remove VacuumTask and MvccTxEntry.
> Deleted classes:
>  * VacuumTask
>  * VacuumMetricsReducer
>  * VacuumMetrics
>  * PreviousQueries
>  * MvccTxEntry



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


[jira] [Commented] (IGNITE-21087) VacuumTask removal

2024-03-14 Thread Ignite TC Bot (Jira)


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

Ignite TC Bot commented on IGNITE-21087:


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

> VacuumTask removal
> --
>
> Key: IGNITE-21087
> URL: https://issues.apache.org/jira/browse/IGNITE-21087
> Project: Ignite
>  Issue Type: Sub-task
>Reporter: Julia Bakulina
>Assignee: Julia Bakulina
>Priority: Minor
>  Labels: ise
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Remove VacuumTask and MvccTxEntry.
> Deleted classes:
>  * VacuumTask
>  * VacuumMetricsReducer
>  * VacuumMetrics
>  * PreviousQueries
>  * MvccTxEntry



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


[jira] (IGNITE-21087) VacuumTask removal

2024-03-14 Thread Julia Bakulina (Jira)


[ https://issues.apache.org/jira/browse/IGNITE-21087 ]


Julia Bakulina deleted comment on IGNITE-21087:
-

was (Author: JIRAUSER294860):
TCbot2 green visa: 
https://tcbot2.sbt-ignite-dev.ru/pr.html?serverId=apache&suiteId=IgniteTests24Java8_RunAll&branchForTc=pull/11273/head&action=Latest

> VacuumTask removal
> --
>
> Key: IGNITE-21087
> URL: https://issues.apache.org/jira/browse/IGNITE-21087
> Project: Ignite
>  Issue Type: Sub-task
>Reporter: Julia Bakulina
>Assignee: Julia Bakulina
>Priority: Minor
>  Labels: ise
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Remove VacuumTask and MvccTxEntry.
> Deleted classes:
>  * VacuumTask
>  * VacuumMetricsReducer
>  * VacuumMetrics
>  * PreviousQueries
>  * MvccTxEntry



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


[jira] [Updated] (IGNITE-21087) VacuumTask removal

2024-03-14 Thread Julia Bakulina (Jira)


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

Julia Bakulina updated IGNITE-21087:

Description: 
Deleted classes:
 * VacuumTask
 * VacuumMetricsReducer
 * VacuumMetrics
 * PreviousQueries
 * MvccEmptyLongList
 * MvccLongList
 * MvccCoordinatorChangeAware
 * MvccQueryTracker
 * MvccQueryTrackerImpl
 * StaticMvccQueryTracker

  was:
Remove VacuumTask and MvccTxEntry.

Deleted classes:
 * VacuumTask
 * VacuumMetricsReducer
 * VacuumMetrics
 * PreviousQueries
 * MvccTxEntry


> VacuumTask removal
> --
>
> Key: IGNITE-21087
> URL: https://issues.apache.org/jira/browse/IGNITE-21087
> Project: Ignite
>  Issue Type: Sub-task
>Reporter: Julia Bakulina
>Assignee: Julia Bakulina
>Priority: Minor
>  Labels: ise
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Deleted classes:
>  * VacuumTask
>  * VacuumMetricsReducer
>  * VacuumMetrics
>  * PreviousQueries
>  * MvccEmptyLongList
>  * MvccLongList
>  * MvccCoordinatorChangeAware
>  * MvccQueryTracker
>  * MvccQueryTrackerImpl
>  * StaticMvccQueryTracker



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


[jira] [Updated] (IGNITE-21087) Remove VacuumTask, MvccQueryTracker and MvccLongList

2024-03-14 Thread Julia Bakulina (Jira)


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

Julia Bakulina updated IGNITE-21087:

Summary: Remove VacuumTask, MvccQueryTracker and MvccLongList  (was: 
VacuumTask removal)

> Remove VacuumTask, MvccQueryTracker and MvccLongList
> 
>
> Key: IGNITE-21087
> URL: https://issues.apache.org/jira/browse/IGNITE-21087
> Project: Ignite
>  Issue Type: Sub-task
>Reporter: Julia Bakulina
>Assignee: Julia Bakulina
>Priority: Minor
>  Labels: ise
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Deleted classes:
>  * VacuumTask
>  * VacuumMetricsReducer
>  * VacuumMetrics
>  * PreviousQueries
>  * MvccEmptyLongList
>  * MvccLongList
>  * MvccCoordinatorChangeAware
>  * MvccQueryTracker
>  * MvccQueryTrackerImpl
>  * StaticMvccQueryTracker



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


[jira] [Created] (IGNITE-21755) Index destruction optimization

2024-03-14 Thread Andrey Mashenkov (Jira)
Andrey Mashenkov created IGNITE-21755:
-

 Summary: Index destruction optimization
 Key: IGNITE-21755
 URL: https://issues.apache.org/jira/browse/IGNITE-21755
 Project: Ignite
  Issue Type: Improvement
Reporter: Andrey Mashenkov


LWM based on local clock and not synced with cluster time and metastorage 
events.
So, it is possible LWM will be updated concurrently with index drop event.
This may lead to a situation, when we enqueued index destruction event behind 
the LWM, but could destroy index instantly instead of waiting for the next 
onLwmUpdate triggering.

E.g. this can be addressed via adding a continuation to the current Catalog 
ready future, where do LWM re-check and call onLwmChange if needed.



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


[jira] [Commented] (IGNITE-21671) Remove destroyed PageMemory indexes on recovery

2024-03-14 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko commented on IGNITE-21671:
--

Looks pretty good.

> Remove destroyed PageMemory indexes on recovery
> ---
>
> Key: IGNITE-21671
> URL: https://issues.apache.org/jira/browse/IGNITE-21671
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Aleksandr Polovtcev
>Assignee: Aleksandr Polovtcev
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 1h 40m
>  Remaining Estimate: 0h
>
> When {{AbstractPageMemoryMvPartitionStorage}} is started, we need to perform 
> the following recovery actions:
> # Scan the index meta tree;
> # Check the observable Catalog history (i.e. up to the LWM value);
> # If an index is present in the meta tree, but not in the Catalog - destroy 
> it. 



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


[jira] [Updated] (IGNITE-21750) Throw a special exception when trying to read from/write to a destroyed IndexStorage

2024-03-14 Thread Roman Puchkovskiy (Jira)


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

Roman Puchkovskiy updated IGNITE-21750:
---
Description: 
Also:
 # DESTROYING state is to be renamed to DESTROYED
 # DESTROYED also becomes a terminal state (like CLOSED), so after a 
destruction completes the state does not move to CLOSED
 # RocksDB-based index storages need to be switched to the DESTROYED state when 
destroyIndex(int) is called on MvTableStorage

> Throw a special exception when trying to read from/write to a destroyed 
> IndexStorage
> 
>
> Key: IGNITE-21750
> URL: https://issues.apache.org/jira/browse/IGNITE-21750
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Roman Puchkovskiy
>Assignee: Roman Puchkovskiy
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Also:
>  # DESTROYING state is to be renamed to DESTROYED
>  # DESTROYED also becomes a terminal state (like CLOSED), so after a 
> destruction completes the state does not move to CLOSED
>  # RocksDB-based index storages need to be switched to the DESTROYED state 
> when destroyIndex(int) is called on MvTableStorage



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


[jira] [Updated] (IGNITE-21744) Use common thread pool for LWM updates.

2024-03-14 Thread Andrey Mashenkov (Jira)


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

Andrey Mashenkov updated IGNITE-21744:
--
Ignite Flags:   (was: Docs Required,Release Notes Required)

> Use common thread pool for LWM updates.
> ---
>
> Key: IGNITE-21744
> URL: https://issues.apache.org/jira/browse/IGNITE-21744
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Andrey Mashenkov
>Priority: Minor
>  Labels: ignite-3
>
> LowWatermarkImpl creates a thread pool for scheduled task execution.
> Let's use a common pool for that.



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


[jira] [Updated] (IGNITE-21711) ClockWaiter refactoring

2024-03-14 Thread Andrey Mashenkov (Jira)


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

Andrey Mashenkov updated IGNITE-21711:
--
Summary: ClockWaiter refactoring  (was: Allow get current time from 
ClockWaiter.)

> ClockWaiter refactoring
> ---
>
> Key: IGNITE-21711
> URL: https://issues.apache.org/jira/browse/IGNITE-21711
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Andrey Mashenkov
>Priority: Minor
>  Labels: ignite-3
>
> ClockWaiter allows to get notification at certain time, but there is no way 
> to know the current time.
> Because of this fact, we have to pass both object (clockWaiter and clock) to 
> dependant objects.
> Let's 
> 1. Add a shortcut for `clock.now()` in ClockWater.
> 2. Rename ClockWaiter -> ClockService
> 3. Use ClockService instead of HybridClock in components, which don't use the 
> clock directly via `clock.update`



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


[jira] [Created] (IGNITE-21756) Use common thread pool in ClockWaiter

2024-03-14 Thread Andrey Mashenkov (Jira)
Andrey Mashenkov created IGNITE-21756:
-

 Summary: Use common thread pool in ClockWaiter
 Key: IGNITE-21756
 URL: https://issues.apache.org/jira/browse/IGNITE-21756
 Project: Ignite
  Issue Type: Improvement
Reporter: Andrey Mashenkov


ClockWaiter creates a thread pool for tasks execution.
Let's node pass a common thread pool via constructor.



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


[jira] [Updated] (IGNITE-21711) ClockWaiter refactoring

2024-03-14 Thread Andrey Mashenkov (Jira)


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

Andrey Mashenkov updated IGNITE-21711:
--
Description: 
ClockWaiter allows to get notification at certain time, but there is no way to 
know the current time.
Because of this fact, we have to pass both object (clockWaiter and clock) to 
dependant objects.

Let's 
1. Add a shortcut for `clock.now()` in ClockWater.
2. Rename ClockWaiter -> ClockService
3. Use ClockService instead of HybridClock in components, which now required 
both Clock and ClockWaiter. Or maybe all components, which are not intended to 
update clock via `clock.update(timestamp)`


  was:
ClockWaiter allows to get notification at certain time, but there is no way to 
know the current time.
Because of this fact, we have to pass both object (clockWaiter and clock) to 
dependant objects.

Let's 
1. Add a shortcut for `clock.now()` in ClockWater.
2. Rename ClockWaiter -> ClockService
3. Use ClockService instead of HybridClock in components, which don't use the 
clock directly via `clock.update`



> ClockWaiter refactoring
> ---
>
> Key: IGNITE-21711
> URL: https://issues.apache.org/jira/browse/IGNITE-21711
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Andrey Mashenkov
>Priority: Minor
>  Labels: ignite-3
>
> ClockWaiter allows to get notification at certain time, but there is no way 
> to know the current time.
> Because of this fact, we have to pass both object (clockWaiter and clock) to 
> dependant objects.
> Let's 
> 1. Add a shortcut for `clock.now()` in ClockWater.
> 2. Rename ClockWaiter -> ClockService
> 3. Use ClockService instead of HybridClock in components, which now required 
> both Clock and ClockWaiter. Or maybe all components, which are not intended 
> to update clock via `clock.update(timestamp)`



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


[jira] [Updated] (IGNITE-21744) Use common thread pool for LWM updates.

2024-03-14 Thread Andrey Mashenkov (Jira)


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

Andrey Mashenkov updated IGNITE-21744:
--
Labels: ignite-3 tech-debt  (was: ignite-3)

> Use common thread pool for LWM updates.
> ---
>
> Key: IGNITE-21744
> URL: https://issues.apache.org/jira/browse/IGNITE-21744
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Andrey Mashenkov
>Priority: Minor
>  Labels: ignite-3, tech-debt
>
> LowWatermarkImpl creates a thread pool for scheduled task execution.
> Let's use a common pool for that.



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


[jira] [Created] (IGNITE-21757) Flaky ItComputeTestStandalone

2024-03-14 Thread Vadim Pakhnushev (Jira)
Vadim Pakhnushev created IGNITE-21757:
-

 Summary: Flaky ItComputeTestStandalone
 Key: IGNITE-21757
 URL: https://issues.apache.org/jira/browse/IGNITE-21757
 Project: Ignite
  Issue Type: Bug
  Components: compute
Reporter: Vadim Pakhnushev
Assignee: Vadim Pakhnushev


org.awaitility.core.ConditionTimeoutException: Lambda expression in 
org.apache.ignite.internal.compute.ItComputeTestStandalone that uses 
org.apache.ignite.internal.app.IgniteImpl, 
org.apache.ignite.internal.app.IgniteImpljava.lang.String, 
java.lang.Stringorg.apache.ignite.compute.version.Version: expected  
but was null within 10 seconds.
10:40:04       org.awaitility.core.ConditionTimeoutException: Lambda expression 
in org.apache.ignite.internal.compute.ItComputeTestStandalone that uses 
org.apache.ignite.internal.app.IgniteImpl, 
org.apache.ignite.internal.app.IgniteImpljava.lang.String, 
java.lang.Stringorg.apache.ignite.compute.version.Version: expected  
but was null within 10 seconds.
        at 
app//org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:167)
        at 
app//org.awaitility.core.AbstractHamcrestCondition.await(AbstractHamcrestCondition.java:86)
        at 
app//org.awaitility.core.ConditionFactory.until(ConditionFactory.java:985)
        at 
app//org.awaitility.core.ConditionFactory.until(ConditionFactory.java:691)
        at 
app//org.apache.ignite.internal.compute.ItComputeTestStandalone.deployJar(ItComputeTestStandalone.java:202)
        at 
app//org.apache.ignite.internal.compute.ItComputeTestStandalone.setUp(ItComputeTestStandalone.java:67)
        at java.base@11.0.17/java.lang.reflect.Method.invoke(Method.java:566)
        at java.base@11.0.17/java.util.ArrayList.forEach(ArrayList.java:1541)
        at java.base@11.0.17/java.util.ArrayList.forEach(ArrayList.java:1541)
10:40:04     
org.apache.ignite.internal.compute.ItComputeTestStandalone.executesJobLocallyAsync()
10:40:04       [2024-03-14T07:40:04,126][INFO ][Test 
worker][ItComputeTestStandalone] >>> Starting test: 
ItComputeTestStandalone#executesJobLocallyAsync, displayName: 
executesJobLocallyAsync()
      [2024-03-14T07:40:04,127][INFO ][Test worker][DeploymentManagerImpl] 
Undeploying jobs:1.0.0
      [2024-03-14T07:40:04,127][INFO ][Test worker][DeployMessagingService] 
Stop in progress deploy for jobs:1.0.0
      [2024-03-14T07:40:04,240][INFO ][Test worker][DeploymentManagerImpl] 
Deploying jobs:1.0.0 on NodesToDeploy\{nodesList=null, deployMode=MAJORITY}
      [2024-03-14T07:40:04,244][INFO ][Test worker][ItComputeTestStandalone] 
>>> Stopping test: ItComputeTestStandalone#executesJobLocallyAsync, 
displayName: executesJobLocallyAsync(), cost: 117ms.
10:40:04       java.lang.AssertionError: 
      Expected: is 
           but: was 
10:40:04       java.lang.AssertionError: 
      Expected: is 
           but: was 
        at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
        at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6)
        at 
org.apache.ignite.internal.compute.ItComputeTestStandalone.deployJar(ItComputeTestStandalone.java:201)
        at 
org.apache.ignite.internal.compute.ItComputeTestStandalone.setUp(ItComputeTestStandalone.java:67)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)



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


[jira] [Updated] (IGNITE-21757) Flaky ItComputeTestStandalone

2024-03-14 Thread Vadim Pakhnushev (Jira)


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

Vadim Pakhnushev updated IGNITE-21757:
--
Description: 
The test fails sometimes with this error:
 
{code:java}
[2024-03-14T07:39:53,879][INFO ][Test worker][ItComputeTestStandalone] >>> 
Starting test: ItComputeTestStandalone#executesColocatedWithTupleKeyAsync, 
displayName: executesColocatedWithTupleKeyAsync()
[2024-03-14T07:39:53,880][INFO ][Test worker][DeploymentManagerImpl] 
Undeploying jobs:1.0.0
[2024-03-14T07:39:53,880][INFO ][Test worker][DeployMessagingService] Stop in 
progress deploy for jobs:1.0.0
[2024-03-14T07:39:54,022][INFO ][Test worker][DeploymentManagerImpl] Deploying 
jobs:1.0.0 on NodesToDeploy{nodesList=null, deployMode=MAJORITY}
[2024-03-14T07:39:56,782][INFO ][%icts_n_0%lease-updater][LeaseUpdater] Leases 
updated (printed once per 10 iteration(s)): [inCurrentIteration=LeaseStats 
[leasesCreated=0, leasesPublished=0, leasesProlonged=0, 
leasesWithoutCandidates=0], active=25, currentAssignmentsSize=25].
[2024-03-14T07:40:02,289][INFO ][%icts_n_0%lease-updater][LeaseUpdater] Leases 
updated (printed once per 10 iteration(s)): [inCurrentIteration=LeaseStats 
[leasesCreated=0, leasesPublished=0, leasesProlonged=0, 
leasesWithoutCandidates=0], active=25, currentAssignmentsSize=25].
[2024-03-14T07:40:04,121][INFO ][Test worker][ItComputeTestStandalone] >>> 
Stopping test: ItComputeTestStandalone#executesColocatedWithTupleKeyAsync, 
displayName: executesColocatedWithTupleKeyAsync(), cost: 10241ms.

[10:40:04]F:             
[org.apache.ignite.internal.compute.ItComputeTestStandalone.executesColocatedWithTupleKeyAsync()]
 org.awaitility.core.ConditionTimeoutException: Lambda expression in 
org.apache.ignite.internal.compute.ItComputeTestStandalone that uses 
org.apache.ignite.internal.app.IgniteImpl, 
org.apache.ignite.internal.app.IgniteImpljava.lang.String, 
java.lang.Stringorg.apache.ignite.compute.version.Version: expected  
but was null within 10 seconds.     at 
app//org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:167)
    at 
app//org.awaitility.core.AbstractHamcrestCondition.await(AbstractHamcrestCondition.java:86)
    at 
app//org.awaitility.core.ConditionFactory.until(ConditionFactory.java:985)
    at 
app//org.awaitility.core.ConditionFactory.until(ConditionFactory.java:691)
    at 
app//org.apache.ignite.internal.compute.ItComputeTestStandalone.deployJar(ItComputeTestStandalone.java:202)
    at 
app//org.apache.ignite.internal.compute.ItComputeTestStandalone.setUp(ItComputeTestStandalone.java:67){code}
 

  was:
org.awaitility.core.ConditionTimeoutException: Lambda expression in 
org.apache.ignite.internal.compute.ItComputeTestStandalone that uses 
org.apache.ignite.internal.app.IgniteImpl, 
org.apache.ignite.internal.app.IgniteImpljava.lang.String, 
java.lang.Stringorg.apache.ignite.compute.version.Version: expected  
but was null within 10 seconds.
10:40:04       org.awaitility.core.ConditionTimeoutException: Lambda expression 
in org.apache.ignite.internal.compute.ItComputeTestStandalone that uses 
org.apache.ignite.internal.app.IgniteImpl, 
org.apache.ignite.internal.app.IgniteImpljava.lang.String, 
java.lang.Stringorg.apache.ignite.compute.version.Version: expected  
but was null within 10 seconds.
        at 
app//org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:167)
        at 
app//org.awaitility.core.AbstractHamcrestCondition.await(AbstractHamcrestCondition.java:86)
        at 
app//org.awaitility.core.ConditionFactory.until(ConditionFactory.java:985)
        at 
app//org.awaitility.core.ConditionFactory.until(ConditionFactory.java:691)
        at 
app//org.apache.ignite.internal.compute.ItComputeTestStandalone.deployJar(ItComputeTestStandalone.java:202)
        at 
app//org.apache.ignite.internal.compute.ItComputeTestStandalone.setUp(ItComputeTestStandalone.java:67)
        at java.base@11.0.17/java.lang.reflect.Method.invoke(Method.java:566)
        at java.base@11.0.17/java.util.ArrayList.forEach(ArrayList.java:1541)
        at java.base@11.0.17/java.util.ArrayList.forEach(ArrayList.java:1541)
10:40:04     
org.apache.ignite.internal.compute.ItComputeTestStandalone.executesJobLocallyAsync()
10:40:04       [2024-03-14T07:40:04,126][INFO ][Test 
worker][ItComputeTestStandalone] >>> Starting test: 
ItComputeTestStandalone#executesJobLocallyAsync, displayName: 
executesJobLocallyAsync()
      [2024-03-14T07:40:04,127][INFO ][Test worker][DeploymentManagerImpl] 
Undeploying jobs:1.0.0
      [2024-03-14T07:40:04,127][INFO ][Test worker][DeployMessagingService] 
Stop in progress deploy for jobs:1.0.0
      [2024-03-14T07:40:04,240][INFO ][Test worker][DeploymentManagerImpl] 
Deploying jobs:1.0.0 on NodesToDeploy\{nodesList=null, deployMode=MAJORITY}
      [2024-03-14T07:40:04,244][INFO ][Test worker][ItComputeTestStandalone] 
>>> Stopping test: ItComputeTestStandalone#exe

[jira] [Updated] (IGNITE-21757) Flaky ItComputeTestStandalone

2024-03-14 Thread Vadim Pakhnushev (Jira)


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

Vadim Pakhnushev updated IGNITE-21757:
--
Labels: ignite-3  (was: )

> Flaky ItComputeTestStandalone
> -
>
> Key: IGNITE-21757
> URL: https://issues.apache.org/jira/browse/IGNITE-21757
> Project: Ignite
>  Issue Type: Bug
>  Components: compute
>Reporter: Vadim Pakhnushev
>Assignee: Vadim Pakhnushev
>Priority: Major
>  Labels: ignite-3
>
> The test fails sometimes with this error:
>  
> {code:java}
> [2024-03-14T07:39:53,879][INFO ][Test worker][ItComputeTestStandalone] >>> 
> Starting test: ItComputeTestStandalone#executesColocatedWithTupleKeyAsync, 
> displayName: executesColocatedWithTupleKeyAsync()
> [2024-03-14T07:39:53,880][INFO ][Test worker][DeploymentManagerImpl] 
> Undeploying jobs:1.0.0
> [2024-03-14T07:39:53,880][INFO ][Test worker][DeployMessagingService] Stop in 
> progress deploy for jobs:1.0.0
> [2024-03-14T07:39:54,022][INFO ][Test worker][DeploymentManagerImpl] 
> Deploying jobs:1.0.0 on NodesToDeploy{nodesList=null, deployMode=MAJORITY}
> [2024-03-14T07:39:56,782][INFO ][%icts_n_0%lease-updater][LeaseUpdater] 
> Leases updated (printed once per 10 iteration(s)): 
> [inCurrentIteration=LeaseStats [leasesCreated=0, leasesPublished=0, 
> leasesProlonged=0, leasesWithoutCandidates=0], active=25, 
> currentAssignmentsSize=25].
> [2024-03-14T07:40:02,289][INFO ][%icts_n_0%lease-updater][LeaseUpdater] 
> Leases updated (printed once per 10 iteration(s)): 
> [inCurrentIteration=LeaseStats [leasesCreated=0, leasesPublished=0, 
> leasesProlonged=0, leasesWithoutCandidates=0], active=25, 
> currentAssignmentsSize=25].
> [2024-03-14T07:40:04,121][INFO ][Test worker][ItComputeTestStandalone] >>> 
> Stopping test: ItComputeTestStandalone#executesColocatedWithTupleKeyAsync, 
> displayName: executesColocatedWithTupleKeyAsync(), cost: 10241ms.
> [10:40:04]F:             
> [org.apache.ignite.internal.compute.ItComputeTestStandalone.executesColocatedWithTupleKeyAsync()]
>  org.awaitility.core.ConditionTimeoutException: Lambda expression in 
> org.apache.ignite.internal.compute.ItComputeTestStandalone that uses 
> org.apache.ignite.internal.app.IgniteImpl, 
> org.apache.ignite.internal.app.IgniteImpljava.lang.String, 
> java.lang.Stringorg.apache.ignite.compute.version.Version: expected 
>  but was null within 10 seconds.     at 
> app//org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:167)
>     at 
> app//org.awaitility.core.AbstractHamcrestCondition.await(AbstractHamcrestCondition.java:86)
>     at 
> app//org.awaitility.core.ConditionFactory.until(ConditionFactory.java:985)
>     at 
> app//org.awaitility.core.ConditionFactory.until(ConditionFactory.java:691)
>     at 
> app//org.apache.ignite.internal.compute.ItComputeTestStandalone.deployJar(ItComputeTestStandalone.java:202)
>     at 
> app//org.apache.ignite.internal.compute.ItComputeTestStandalone.setUp(ItComputeTestStandalone.java:67){code}
>  



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


[jira] [Updated] (IGNITE-21578) ItDurableFinishTest#testWaitForCleanup failed with NPE

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-21578:
-
Reviewer: Alexander Lapin  (was: Vladislav Pyatkov)

>  ItDurableFinishTest#testWaitForCleanup failed with NPE
> ---
>
> Key: IGNITE-21578
> URL: https://issues.apache.org/jira/browse/IGNITE-21578
> Project: Ignite
>  Issue Type: Bug
>Reporter: Alexander Lapin
>Assignee:  Kirill Sizov
>Priority: Major
>  Labels: ignite-3
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> [https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunAllTests/7870395?expandBuildDeploymentsSection=false&hideTestsFromDependencies=false&hideProblemsFromDependencies=false&expandBuildProblemsSection=true&expandCode+Inspection=true&expandBuildChangesSection=true]
> {code:java}
>   Caused by: java.lang.NullPointerException
>     at 
> org.apache.ignite.internal.tx.impl.TxManagerImpl.lambda$finishFull$3(TxManagerImpl.java:472)
>  ~[ignite-transactions-3.0.0-SNAPSHOT.jar:?]
>     at 
> org.apache.ignite.internal.tx.impl.VolatileTxStateMetaStorage.lambda$updateMeta$0(VolatileTxStateMetaStorage.java:73)
>  ~[ignite-transactions-3.0.0-SNAPSHOT.jar:?]
>     at 
> java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1908) 
> ~[?:?]
>     at 
> org.apache.ignite.internal.tx.impl.VolatileTxStateMetaStorage.updateMeta(VolatileTxStateMetaStorage.java:72)
>  ~[ignite-transactions-3.0.0-SNAPSHOT.jar:?]
>     at 
> org.apache.ignite.internal.tx.impl.TxManagerImpl.updateTxMeta(TxManagerImpl.java:455)
>  ~[ignite-transactions-3.0.0-SNAPSHOT.jar:?]
>     at 
> org.apache.ignite.internal.tx.impl.TxManagerImpl.finishFull(TxManagerImpl.java:472)
>  ~[ignite-transactions-3.0.0-SNAPSHOT.jar:?]
>     at 
> org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.lambda$postEnlist$13(InternalTableImpl.java:593)
>  ~[ignite-table-3.0.0-SNAPSHOT.jar:?] {code}
> Seems that the reason is that old meta may be null in case of exception
> {code:java}
>     public void finishFull(HybridTimestampTracker timestampTracker, UUID 
> txId, boolean commit) {
>         ...
>         updateTxMeta(txId, old -> new TxStateMeta(finalState, 
> old.txCoordinatorId(), old.commitPartitionId(), old.commitTimestamp()));
>         ...
>     }
> {code}
> {code:java}
>         return fut.handle((BiFunction>) 
> (r, e) -> {
>             if (full) { // Full txn is already finished remotely. Just update 
> local state.
>                 txManager.finishFull(observableTimestampTracker, tx0.id(), e 
> == null);{code}
>  



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


[jira] [Commented] (IGNITE-21578) ItDurableFinishTest#testWaitForCleanup failed with NPE

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin commented on IGNITE-21578:
--

[~ksizov] LGTM.

>  ItDurableFinishTest#testWaitForCleanup failed with NPE
> ---
>
> Key: IGNITE-21578
> URL: https://issues.apache.org/jira/browse/IGNITE-21578
> Project: Ignite
>  Issue Type: Bug
>Reporter: Alexander Lapin
>Assignee:  Kirill Sizov
>Priority: Major
>  Labels: ignite-3
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> [https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunAllTests/7870395?expandBuildDeploymentsSection=false&hideTestsFromDependencies=false&hideProblemsFromDependencies=false&expandBuildProblemsSection=true&expandCode+Inspection=true&expandBuildChangesSection=true]
> {code:java}
>   Caused by: java.lang.NullPointerException
>     at 
> org.apache.ignite.internal.tx.impl.TxManagerImpl.lambda$finishFull$3(TxManagerImpl.java:472)
>  ~[ignite-transactions-3.0.0-SNAPSHOT.jar:?]
>     at 
> org.apache.ignite.internal.tx.impl.VolatileTxStateMetaStorage.lambda$updateMeta$0(VolatileTxStateMetaStorage.java:73)
>  ~[ignite-transactions-3.0.0-SNAPSHOT.jar:?]
>     at 
> java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1908) 
> ~[?:?]
>     at 
> org.apache.ignite.internal.tx.impl.VolatileTxStateMetaStorage.updateMeta(VolatileTxStateMetaStorage.java:72)
>  ~[ignite-transactions-3.0.0-SNAPSHOT.jar:?]
>     at 
> org.apache.ignite.internal.tx.impl.TxManagerImpl.updateTxMeta(TxManagerImpl.java:455)
>  ~[ignite-transactions-3.0.0-SNAPSHOT.jar:?]
>     at 
> org.apache.ignite.internal.tx.impl.TxManagerImpl.finishFull(TxManagerImpl.java:472)
>  ~[ignite-transactions-3.0.0-SNAPSHOT.jar:?]
>     at 
> org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.lambda$postEnlist$13(InternalTableImpl.java:593)
>  ~[ignite-table-3.0.0-SNAPSHOT.jar:?] {code}
> Seems that the reason is that old meta may be null in case of exception
> {code:java}
>     public void finishFull(HybridTimestampTracker timestampTracker, UUID 
> txId, boolean commit) {
>         ...
>         updateTxMeta(txId, old -> new TxStateMeta(finalState, 
> old.txCoordinatorId(), old.commitPartitionId(), old.commitTimestamp()));
>         ...
>     }
> {code}
> {code:java}
>         return fut.handle((BiFunction>) 
> (r, e) -> {
>             if (full) { // Full txn is already finished remotely. Just update 
> local state.
>                 txManager.finishFull(observableTimestampTracker, tx0.id(), e 
> == null);{code}
>  



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


[jira] [Updated] (IGNITE-17666) Scan subscription cancel does not close a server side cursor

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-17666:
-
Fix Version/s: 3.0.0-beta2

> Scan subscription cancel does not close a server side cursor
> 
>
> Key: IGNITE-17666
> URL: https://issues.apache.org/jira/browse/IGNITE-17666
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Vladislav Pyatkov
>Assignee: Vladislav Pyatkov
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> h3. Motivation
> Read-only transactions start a scan operation and save transaction cursors on 
> the replica side. The cursors stay on the server until they are closed. 
> Read-only transactions finish locally and do not notify all replicas of the 
> transaction.
> h3. Definition of done
> # Enlist node to RO transaction.
> # Prohibit adding operations to the read-only transaction after the 
> transaction is finished.
> # Send the finish transaction request to all enlisted nodes to close cursors.



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


[jira] [Updated] (IGNITE-21221) Txn resource cleanup

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-21221:
-
Epic Name: Txn cursors cleanup  (was: Txn resource cleanup)

> Txn resource cleanup
> 
>
> Key: IGNITE-21221
> URL: https://issues.apache.org/jira/browse/IGNITE-21221
> Project: Ignite
>  Issue Type: Epic
>Reporter: Alexander Lapin
>Priority: Major
>  Labels: ignite-3
>




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


[jira] [Resolved] (IGNITE-17666) Scan subscription cancel does not close a server side cursor

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin resolved IGNITE-17666.
--
Resolution: Fixed

> Scan subscription cancel does not close a server side cursor
> 
>
> Key: IGNITE-17666
> URL: https://issues.apache.org/jira/browse/IGNITE-17666
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Vladislav Pyatkov
>Assignee: Vladislav Pyatkov
>Priority: Major
>  Labels: ignite-3
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> h3. Motivation
> Read-only transactions start a scan operation and save transaction cursors on 
> the replica side. The cursors stay on the server until they are closed. 
> Read-only transactions finish locally and do not notify all replicas of the 
> transaction.
> h3. Definition of done
> # Enlist node to RO transaction.
> # Prohibit adding operations to the read-only transaction after the 
> transaction is finished.
> # Send the finish transaction request to all enlisted nodes to close cursors.



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


[jira] [Updated] (IGNITE-21758) Txn resource cleanup

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-21758:
-
Ignite Flags:   (was: Docs Required,Release Notes Required)

> Txn resource cleanup
> 
>
> Key: IGNITE-21758
> URL: https://issues.apache.org/jira/browse/IGNITE-21758
> Project: Ignite
>  Issue Type: Epic
>Reporter: Alexander Lapin
>Priority: Major
>




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


[jira] [Created] (IGNITE-21758) Txn resource cleanup

2024-03-14 Thread Alexander Lapin (Jira)
Alexander Lapin created IGNITE-21758:


 Summary: Txn resource cleanup
 Key: IGNITE-21758
 URL: https://issues.apache.org/jira/browse/IGNITE-21758
 Project: Ignite
  Issue Type: Epic
Reporter: Alexander Lapin






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


[jira] [Updated] (IGNITE-18617) Clear the map of tx cleanup ready futures on tx state vacuum

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-18617:
-
Epic Link: IGNITE-21758  (was: IGNITE-21221)

> Clear the map of tx cleanup ready futures on tx state vacuum
> 
>
> Key: IGNITE-18617
> URL: https://issues.apache.org/jira/browse/IGNITE-18617
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Denis Chudov
>Priority: Major
>  Labels: ignite-3
>
> The map PartitionReplicaListener#txCleanupReadyFutures is not cleared 
> anywhere. It should be cleared in the same way as tx states storage (which is 
> not defined yet).
> TBD.



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


[jira] [Updated] (IGNITE-21221) Txn cursors cleanup

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-21221:
-
Summary: Txn cursors cleanup  (was: Txn resource cleanup)

> Txn cursors cleanup
> ---
>
> Key: IGNITE-21221
> URL: https://issues.apache.org/jira/browse/IGNITE-21221
> Project: Ignite
>  Issue Type: Epic
>Reporter: Alexander Lapin
>Priority: Major
>  Labels: ignite-3
>




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


[jira] [Updated] (IGNITE-21759) Prepare general txn cleanup logic: txnCleanupTask along with txnCleanupContext

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-21759:
-
Ignite Flags:   (was: Docs Required,Release Notes Required)

> Prepare general txn cleanup logic: txnCleanupTask along with txnCleanupContext
> --
>
> Key: IGNITE-21759
> URL: https://issues.apache.org/jira/browse/IGNITE-21759
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexander Lapin
>Priority: Major
>




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


[jira] [Created] (IGNITE-21759) Prepare general txn cleanup logic: txnCleanupTask along with txnCleanupContext

2024-03-14 Thread Alexander Lapin (Jira)
Alexander Lapin created IGNITE-21759:


 Summary: Prepare general txn cleanup logic: txnCleanupTask along 
with txnCleanupContext
 Key: IGNITE-21759
 URL: https://issues.apache.org/jira/browse/IGNITE-21759
 Project: Ignite
  Issue Type: Improvement
Reporter: Alexander Lapin






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


[jira] [Updated] (IGNITE-21754) Remove destroyed tables on recovery - Page Memory

2024-03-14 Thread Vladimir Pligin (Jira)


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

Vladimir Pligin updated IGNITE-21754:
-
Summary: Remove destroyed tables on recovery - Page Memory  (was: Remove 
destroyed tables on recovery)

> Remove destroyed tables on recovery - Page Memory
> -
>
> Key: IGNITE-21754
> URL: https://issues.apache.org/jira/browse/IGNITE-21754
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Kirill Tkalenko
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> We need to destroy tables on node recovery that fall under the low watermark 
> for all storage engines.



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


[jira] [Created] (IGNITE-21760) Remove destroyed tables on recovery - RocksDB

2024-03-14 Thread Vladimir Pligin (Jira)
Vladimir Pligin created IGNITE-21760:


 Summary: Remove destroyed tables on recovery - RocksDB
 Key: IGNITE-21760
 URL: https://issues.apache.org/jira/browse/IGNITE-21760
 Project: Ignite
  Issue Type: Improvement
Reporter: Vladimir Pligin






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


[jira] [Updated] (IGNITE-21754) Remove destroyed tables on recovery - Page Memory

2024-03-14 Thread Vladimir Pligin (Jira)


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

Vladimir Pligin updated IGNITE-21754:
-
Description: We need to destroy tables on node recovery that fall under the 
low watermark for the page memory storage engine.  (was: We need to destroy 
tables on node recovery that fall under the low watermark for all storage 
engines.)

> Remove destroyed tables on recovery - Page Memory
> -
>
> Key: IGNITE-21754
> URL: https://issues.apache.org/jira/browse/IGNITE-21754
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Kirill Tkalenko
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> We need to destroy tables on node recovery that fall under the low watermark 
> for the page memory storage engine.



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


[jira] [Updated] (IGNITE-21760) Remove destroyed tables on recovery - RocksDB

2024-03-14 Thread Vladimir Pligin (Jira)


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

Vladimir Pligin updated IGNITE-21760:
-
Description: We need to destroy tables on node recovery that fall under the 
low watermark for the rocks db storage engine.

> Remove destroyed tables on recovery - RocksDB
> -
>
> Key: IGNITE-21760
> URL: https://issues.apache.org/jira/browse/IGNITE-21760
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Vladimir Pligin
>Priority: Major
>
> We need to destroy tables on node recovery that fall under the low watermark 
> for the rocks db storage engine.



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


[jira] [Updated] (IGNITE-21760) Remove destroyed tables on recovery - RocksDB

2024-03-14 Thread Vladimir Pligin (Jira)


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

Vladimir Pligin updated IGNITE-21760:
-
Labels: ignite-3  (was: )

> Remove destroyed tables on recovery - RocksDB
> -
>
> Key: IGNITE-21760
> URL: https://issues.apache.org/jira/browse/IGNITE-21760
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Vladimir Pligin
>Priority: Major
>  Labels: ignite-3
>
> We need to destroy tables on node recovery that fall under the low watermark 
> for the rocks db storage engine.



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


[jira] [Updated] (IGNITE-21760) Remove destroyed tables on recovery - RocksDB

2024-03-14 Thread Vladimir Pligin (Jira)


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

Vladimir Pligin updated IGNITE-21760:
-
Epic Link: IGNITE-20782

> Remove destroyed tables on recovery - RocksDB
> -
>
> Key: IGNITE-21760
> URL: https://issues.apache.org/jira/browse/IGNITE-21760
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Vladimir Pligin
>Priority: Major
>
> We need to destroy tables on node recovery that fall under the low watermark 
> for the rocks db storage engine.



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


[jira] [Updated] (IGNITE-21738) Resolve potential races when table is destroying

2024-03-14 Thread Andrey Mashenkov (Jira)


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

Andrey Mashenkov updated IGNITE-21738:
--
Priority: Major  (was: Blocker)

> Resolve potential races when table is destroying
> 
>
> Key: IGNITE-21738
> URL: https://issues.apache.org/jira/browse/IGNITE-21738
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Andrey Mashenkov
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> After IGNITE-21585 there are potential races:
> 1. ClientPrimaryReplicaTracker may update `primaryReplicas` after table 
> destroyed concurrently.
> 2. TableManager may register index (see `registerIndexesToTable`) in a table, 
> while LWM rising up concurrently.



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


[jira] [Updated] (IGNITE-21738) Proper fix to linearize LWM and Metastorage event.

2024-03-14 Thread Andrey Mashenkov (Jira)


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

Andrey Mashenkov updated IGNITE-21738:
--
Summary: Proper fix to linearize LWM and Metastorage event.  (was: Resolve 
potential races when table is destroying)

> Proper fix to linearize LWM and Metastorage event.
> --
>
> Key: IGNITE-21738
> URL: https://issues.apache.org/jira/browse/IGNITE-21738
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Andrey Mashenkov
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> After IGNITE-21585 there are potential races:
> 1. ClientPrimaryReplicaTracker may update `primaryReplicas` after table 
> destroyed concurrently.
> 2. TableManager may register index (see `registerIndexesToTable`) in a table, 
> while LWM rising up concurrently.



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


[jira] [Updated] (IGNITE-21738) Proper fix to linearize LWM and Metastorage event.

2024-03-14 Thread Andrey Mashenkov (Jira)


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

Andrey Mashenkov updated IGNITE-21738:
--
Description: 
In IGNITE-21585 there were fixed potential races:
1. ClientPrimaryReplicaTracker might update `primaryReplicas` after table 
destroyed concurrently.
The fix idea was to forbid caching data for destroyed tables. However, cache 
contains placeholders for all tables/partitions even if ther never be requested.
2. TableManager might register index (see `registerIndexesToTable`) in a table, 
while LWM rising up concurrently.
The `registerIndexesToTable` execution was delegated into LowWatermark, to make 
sure it runs under an lwm lock.


  was:
After IGNITE-21585 there are potential races:
1. ClientPrimaryReplicaTracker may update `primaryReplicas` after table 
destroyed concurrently.
2. TableManager may register index (see `registerIndexesToTable`) in a table, 
while LWM rising up concurrently.


> Proper fix to linearize LWM and Metastorage event.
> --
>
> Key: IGNITE-21738
> URL: https://issues.apache.org/jira/browse/IGNITE-21738
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Andrey Mashenkov
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> In IGNITE-21585 there were fixed potential races:
> 1. ClientPrimaryReplicaTracker might update `primaryReplicas` after table 
> destroyed concurrently.
> The fix idea was to forbid caching data for destroyed tables. However, cache 
> contains placeholders for all tables/partitions even if ther never be 
> requested.
> 2. TableManager might register index (see `registerIndexesToTable`) in a 
> table, while LWM rising up concurrently.
> The `registerIndexesToTable` execution was delegated into LowWatermark, to 
> make sure it runs under an lwm lock.



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


[jira] [Updated] (IGNITE-21759) Prepare general txn cleanup logic: txnCleanupTask along with txnCleanupContext

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-21759:
-
Description: 
h3. Motivation

Within one of Txn cursros cleanup sub tickets cursor cleanup scheduler was 
introduced. Now it's turn to generalize it to handle txn resource cleanup task. 
Thus it's expected that two new entities will be introduced: 
TxnResourceCleanupTask and TxnResourceCleanupContext, the latter is expected to 
be node-local, volatile and be, probably, a part of a TxManager.

Few words about the logic inside TxnResourceCleanupTask that is expected to be 
implemented within given ticket (it'll be adjusted later on in other jiras):
 # CleanupTask evaluates txnStateCleanupWatermark as System.currentTimeMillis. 
There's no sense in using common clock and thus we may reduce the contention.
 # CleanupTask iterates over txnResourceCleanupContext.txnStatesToCleanup and 
if txnState.markForRemovalTimestamp + txnStateTTL (more details a bit later) >= 
txnStateCleanupWatermark:
 ## Removes given txnId from txnStateVolatileMap.
 ## Removes same txnId from txnResourceCleanupContext.txnStatesToCleanup.
 # CleanupTask scans txnStateVolatileMap and filters all finished (COMMITED or 
ABORTED) transactions. 
 # Depending on txnStateTTL cleanupTask either removes the finished entry from 
the txnStateVolatileMap (if txnStateTTL == 0) or populates the 
txnResourceCleanupContext.transactionsToCleanup map with txId -> 
txnStateCleanupWatermark semantically txnToCleanupDetectionTime. Such bypassing 
- immediate removal instead of common "mark -> nextTimerIteration -> remove" is 
useful for testing purposes.
 

txnStateTTL is a new cluster configuration property that defines the *minimum* 
lifetime of a transaction state in milliseconds. Real txnState lifetime will 
also depend on cleanupTimer intervals which of course not suitable for test 
purposes thus we should introduce manual ability to run TxnResourceCleanupTask 
immediately. At least we will use it within tests.
h3. Definition of Done
 * New configuration property txnStateTTL is introduced with default of 30_000 
milliseconds.
 * At least two new classes are introduced: TxnResourceCleanupTask and 
TxnResourceCleanupContext.
 * Cleanup scheduler is generalized and adjusted to run TxnResourceCleanupTask 
on every iteration.
 * TxnResourceCleanupTask is thread safe, and implemented according to the 
description in motivation section.
 * Special trigger txnResourceCleanup is introduced within TxManager.

> Prepare general txn cleanup logic: txnCleanupTask along with txnCleanupContext
> --
>
> Key: IGNITE-21759
> URL: https://issues.apache.org/jira/browse/IGNITE-21759
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexander Lapin
>Priority: Major
>
> h3. Motivation
> Within one of Txn cursros cleanup sub tickets cursor cleanup scheduler was 
> introduced. Now it's turn to generalize it to handle txn resource cleanup 
> task. Thus it's expected that two new entities will be introduced: 
> TxnResourceCleanupTask and TxnResourceCleanupContext, the latter is expected 
> to be node-local, volatile and be, probably, a part of a TxManager.
> Few words about the logic inside TxnResourceCleanupTask that is expected to 
> be implemented within given ticket (it'll be adjusted later on in other 
> jiras):
>  # CleanupTask evaluates txnStateCleanupWatermark as 
> System.currentTimeMillis. There's no sense in using common clock and thus we 
> may reduce the contention.
>  # CleanupTask iterates over txnResourceCleanupContext.txnStatesToCleanup and 
> if txnState.markForRemovalTimestamp + txnStateTTL (more details a bit later) 
> >= txnStateCleanupWatermark:
>  ## Removes given txnId from txnStateVolatileMap.
>  ## Removes same txnId from txnResourceCleanupContext.txnStatesToCleanup.
>  # CleanupTask scans txnStateVolatileMap and filters all finished (COMMITED 
> or ABORTED) transactions. 
>  # Depending on txnStateTTL cleanupTask either removes the finished entry 
> from the txnStateVolatileMap (if txnStateTTL == 0) or populates the 
> txnResourceCleanupContext.transactionsToCleanup map with txId -> 
> txnStateCleanupWatermark semantically txnToCleanupDetectionTime. Such 
> bypassing - immediate removal instead of common "mark -> nextTimerIteration 
> -> remove" is useful for testing purposes.
>  
> txnStateTTL is a new cluster configuration property that defines the 
> *minimum* lifetime of a transaction state in milliseconds. Real txnState 
> lifetime will also depend on cleanupTimer intervals which of course not 
> suitable for test purposes thus we should introduce manual ability to run 
> TxnResourceCleanupTask immediately. At least we will use it within tests.
> h3. Definition of Done
>  * New configurat

[jira] [Updated] (IGNITE-21759) Prepare general txn cleanup logic: txnCleanupTask along with txnCleanupContext

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-21759:
-
Epic Link: IGNITE-21758

> Prepare general txn cleanup logic: txnCleanupTask along with txnCleanupContext
> --
>
> Key: IGNITE-21759
> URL: https://issues.apache.org/jira/browse/IGNITE-21759
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexander Lapin
>Priority: Major
>  Labels: ignite-3
>
> h3. Motivation
> Within one of Txn cursros cleanup sub tickets cursor cleanup scheduler was 
> introduced. Now it's turn to generalize it to handle txn resource cleanup 
> task. Thus it's expected that two new entities will be introduced: 
> TxnResourceCleanupTask and TxnResourceCleanupContext, the latter is expected 
> to be node-local, volatile and be, probably, a part of a TxManager.
> Few words about the logic inside TxnResourceCleanupTask that is expected to 
> be implemented within given ticket (it'll be adjusted later on in other 
> jiras):
>  # CleanupTask evaluates txnStateCleanupWatermark as 
> System.currentTimeMillis. There's no sense in using common clock and thus we 
> may reduce the contention.
>  # CleanupTask iterates over txnResourceCleanupContext.txnStatesToCleanup and 
> if txnState.markForRemovalTimestamp + txnStateTTL (more details a bit later) 
> >= txnStateCleanupWatermark:
>  ## Removes given txnId from txnStateVolatileMap.
>  ## Removes same txnId from txnResourceCleanupContext.txnStatesToCleanup.
>  # CleanupTask scans txnStateVolatileMap and filters all finished (COMMITED 
> or ABORTED) transactions. 
>  # Depending on txnStateTTL cleanupTask either removes the finished entry 
> from the txnStateVolatileMap (if txnStateTTL == 0) or populates the 
> txnResourceCleanupContext.transactionsToCleanup map with txId -> 
> txnStateCleanupWatermark semantically txnToCleanupDetectionTime. Such 
> bypassing - immediate removal instead of common "mark -> nextTimerIteration 
> -> remove" is useful for testing purposes.
>  
> txnStateTTL is a new cluster configuration property that defines the 
> *minimum* lifetime of a transaction state in milliseconds. Real txnState 
> lifetime will also depend on cleanupTimer intervals which of course not 
> suitable for test purposes thus we should introduce manual ability to run 
> TxnResourceCleanupTask immediately. At least we will use it within tests.
> h3. Definition of Done
>  * New configuration property txnStateTTL is introduced with default of 
> 30_000 milliseconds.
>  * At least two new classes are introduced: TxnResourceCleanupTask and 
> TxnResourceCleanupContext.
>  * Cleanup scheduler is generalized and adjusted to run 
> TxnResourceCleanupTask on every iteration.
>  * TxnResourceCleanupTask is thread safe, and implemented according to the 
> description in motivation section.
>  * Special trigger txnResourceCleanup is introduced within TxManager.



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


[jira] [Updated] (IGNITE-21759) Prepare general txn cleanup logic: txnCleanupTask along with txnCleanupContext

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-21759:
-
Labels: ignite-3  (was: )

> Prepare general txn cleanup logic: txnCleanupTask along with txnCleanupContext
> --
>
> Key: IGNITE-21759
> URL: https://issues.apache.org/jira/browse/IGNITE-21759
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexander Lapin
>Priority: Major
>  Labels: ignite-3
>
> h3. Motivation
> Within one of Txn cursros cleanup sub tickets cursor cleanup scheduler was 
> introduced. Now it's turn to generalize it to handle txn resource cleanup 
> task. Thus it's expected that two new entities will be introduced: 
> TxnResourceCleanupTask and TxnResourceCleanupContext, the latter is expected 
> to be node-local, volatile and be, probably, a part of a TxManager.
> Few words about the logic inside TxnResourceCleanupTask that is expected to 
> be implemented within given ticket (it'll be adjusted later on in other 
> jiras):
>  # CleanupTask evaluates txnStateCleanupWatermark as 
> System.currentTimeMillis. There's no sense in using common clock and thus we 
> may reduce the contention.
>  # CleanupTask iterates over txnResourceCleanupContext.txnStatesToCleanup and 
> if txnState.markForRemovalTimestamp + txnStateTTL (more details a bit later) 
> >= txnStateCleanupWatermark:
>  ## Removes given txnId from txnStateVolatileMap.
>  ## Removes same txnId from txnResourceCleanupContext.txnStatesToCleanup.
>  # CleanupTask scans txnStateVolatileMap and filters all finished (COMMITED 
> or ABORTED) transactions. 
>  # Depending on txnStateTTL cleanupTask either removes the finished entry 
> from the txnStateVolatileMap (if txnStateTTL == 0) or populates the 
> txnResourceCleanupContext.transactionsToCleanup map with txId -> 
> txnStateCleanupWatermark semantically txnToCleanupDetectionTime. Such 
> bypassing - immediate removal instead of common "mark -> nextTimerIteration 
> -> remove" is useful for testing purposes.
>  
> txnStateTTL is a new cluster configuration property that defines the 
> *minimum* lifetime of a transaction state in milliseconds. Real txnState 
> lifetime will also depend on cleanupTimer intervals which of course not 
> suitable for test purposes thus we should introduce manual ability to run 
> TxnResourceCleanupTask immediately. At least we will use it within tests.
> h3. Definition of Done
>  * New configuration property txnStateTTL is introduced with default of 
> 30_000 milliseconds.
>  * At least two new classes are introduced: TxnResourceCleanupTask and 
> TxnResourceCleanupContext.
>  * Cleanup scheduler is generalized and adjusted to run 
> TxnResourceCleanupTask on every iteration.
>  * TxnResourceCleanupTask is thread safe, and implemented according to the 
> description in motivation section.
>  * Special trigger txnResourceCleanup is introduced within TxManager.



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


[jira] [Updated] (IGNITE-21750) Throw a special exception when trying to read from/write to a destroyed IndexStorage

2024-03-14 Thread Roman Puchkovskiy (Jira)


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

Roman Puchkovskiy updated IGNITE-21750:
---
Description: 
Also:
 # DESTROYING state is to be renamed to DESTROYED
 # DESTROYED also becomes a terminal state (like CLOSED), so after a 
destruction completes the state does not move to CLOSED
 # After a storage (partition or index) was switched to any of CLOSED/DESTROYED 
states, it should not allow normal operation
 # RocksDB-based index storages need to be switched to the DESTROYED state when 
destroyIndex(int) is called on MvTableStorage

  was:
Also:
 # DESTROYING state is to be renamed to DESTROYED
 # DESTROYED also becomes a terminal state (like CLOSED), so after a 
destruction completes the state does not move to CLOSED
 # RocksDB-based index storages need to be switched to the DESTROYED state when 
destroyIndex(int) is called on MvTableStorage


> Throw a special exception when trying to read from/write to a destroyed 
> IndexStorage
> 
>
> Key: IGNITE-21750
> URL: https://issues.apache.org/jira/browse/IGNITE-21750
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Roman Puchkovskiy
>Assignee: Roman Puchkovskiy
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Also:
>  # DESTROYING state is to be renamed to DESTROYED
>  # DESTROYED also becomes a terminal state (like CLOSED), so after a 
> destruction completes the state does not move to CLOSED
>  # After a storage (partition or index) was switched to any of 
> CLOSED/DESTROYED states, it should not allow normal operation
>  # RocksDB-based index storages need to be switched to the DESTROYED state 
> when destroyIndex(int) is called on MvTableStorage



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


[jira] [Updated] (IGNITE-21750) Throw a special exception when trying to read from/write to a destroyed IndexStorage

2024-03-14 Thread Roman Puchkovskiy (Jira)


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

Roman Puchkovskiy updated IGNITE-21750:
---
Description: 
Also:
 # DESTROYING state is to be renamed to DESTROYED
 # DESTROYED also becomes a terminal state (like CLOSED), so after a 
destruction completes the state does not move to CLOSED
 # After a storage (partition or index) was switched to any of CLOSED/DESTROYED 
states, it should not allow normal operation (probably, its busy lock must be 
blocked forever)
 # RocksDB-based index storages need to be switched to the DESTROYED state when 
destroyIndex(int) is called on MvTableStorage

  was:
Also:
 # DESTROYING state is to be renamed to DESTROYED
 # DESTROYED also becomes a terminal state (like CLOSED), so after a 
destruction completes the state does not move to CLOSED
 # After a storage (partition or index) was switched to any of CLOSED/DESTROYED 
states, it should not allow normal operation
 # RocksDB-based index storages need to be switched to the DESTROYED state when 
destroyIndex(int) is called on MvTableStorage


> Throw a special exception when trying to read from/write to a destroyed 
> IndexStorage
> 
>
> Key: IGNITE-21750
> URL: https://issues.apache.org/jira/browse/IGNITE-21750
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Roman Puchkovskiy
>Assignee: Roman Puchkovskiy
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Also:
>  # DESTROYING state is to be renamed to DESTROYED
>  # DESTROYED also becomes a terminal state (like CLOSED), so after a 
> destruction completes the state does not move to CLOSED
>  # After a storage (partition or index) was switched to any of 
> CLOSED/DESTROYED states, it should not allow normal operation (probably, its 
> busy lock must be blocked forever)
>  # RocksDB-based index storages need to be switched to the DESTROYED state 
> when destroyIndex(int) is called on MvTableStorage



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


[jira] [Created] (IGNITE-21761) Within commitPartition mark Mark txnState with a timestamp on cleanup replication finished

2024-03-14 Thread Alexander Lapin (Jira)
Alexander Lapin created IGNITE-21761:


 Summary: Within commitPartition mark Mark txnState with a 
timestamp on cleanup replication finished
 Key: IGNITE-21761
 URL: https://issues.apache.org/jira/browse/IGNITE-21761
 Project: Ignite
  Issue Type: Improvement
Reporter: Alexander Lapin






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


[jira] [Updated] (IGNITE-21761) Within commitPartition mark Mark txnState with a timestamp on cleanup replication finished

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-21761:
-
Ignite Flags:   (was: Docs Required,Release Notes Required)

> Within commitPartition mark Mark txnState with a timestamp on cleanup 
> replication finished
> --
>
> Key: IGNITE-21761
> URL: https://issues.apache.org/jira/browse/IGNITE-21761
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexander Lapin
>Priority: Major
>




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


[jira] [Updated] (IGNITE-21761) Within commitPartition mark Mark txnState with a timestamp on cleanup replication finished

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-21761:
-
Labels: ignite-3  (was: )

> Within commitPartition mark Mark txnState with a timestamp on cleanup 
> replication finished
> --
>
> Key: IGNITE-21761
> URL: https://issues.apache.org/jira/browse/IGNITE-21761
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexander Lapin
>Priority: Major
>  Labels: ignite-3
>




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


[jira] [Updated] (IGNITE-21761) Within commitPartition mark Mark txnState with a timestamp on cleanup replication finished

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-21761:
-
Epic Link: IGNITE-21758

> Within commitPartition mark Mark txnState with a timestamp on cleanup 
> replication finished
> --
>
> Key: IGNITE-21761
> URL: https://issues.apache.org/jira/browse/IGNITE-21761
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexander Lapin
>Priority: Major
>  Labels: ignite-3
>




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


[jira] [Updated] (IGNITE-21761) Within commitPartition mark Mark txnState with a timestamp on cleanup replication finished

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-21761:
-
Description: 
h3. Motivation

Volatile txn state removal is implemented in IGNITE-21759 Worth mentioning that 
having volatile txnState is mainly an optimization just because it might be 
lost on node restart.

This ticket is about marking txnState persistent state as ready for removal. 
Basically it is ready for removal when the state is either COMMITED or ABORTED 
and cleanup is fully replicated over majority of all enlisted partitions. There 
are some nuances related to txn recovery case that will be covered in another 
jiras.
h3. Definition of Done
 * In a durable manner (meaning retry on failure) await cleanup replication 
over majority of all enlisted partitions. 
 * On cleanup done, compute txnState in txnStateVolatileMap with 
System.currentTimeMillis(). Pay attention that depending on whether given 
txnState was already removed by TxnResourseCleanupTask or not, it's either an 
adjusting of an exiting entry in txnStateVolatileMap with timestamp or writing 
a brand new record. In latter case another iteration of TxnStateCleanupTask 
will remove newly created entry. Besides that if the volatile state was removed 
it won't be possible to restore all the meta, which is fine, because all we 
need is txnId, txnState and System.currentTimeMillies as 
cleanupReplicationFinished timestamp.
 * There will be another Jira that will consider such timestamps and remove 
corresponding states from txnStatePersistentStorage. For know it's out of scope.
 * There will be another task that will redo the cleanup on node startup in 
order to restore (or formally re-evaluate) the cleanup replication finished 
timestamp. For know it's out of scope.

> Within commitPartition mark Mark txnState with a timestamp on cleanup 
> replication finished
> --
>
> Key: IGNITE-21761
> URL: https://issues.apache.org/jira/browse/IGNITE-21761
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexander Lapin
>Priority: Major
>  Labels: ignite-3
>
> h3. Motivation
> Volatile txn state removal is implemented in IGNITE-21759 Worth mentioning 
> that having volatile txnState is mainly an optimization just because it might 
> be lost on node restart.
> This ticket is about marking txnState persistent state as ready for removal. 
> Basically it is ready for removal when the state is either COMMITED or 
> ABORTED and cleanup is fully replicated over majority of all enlisted 
> partitions. There are some nuances related to txn recovery case that will be 
> covered in another jiras.
> h3. Definition of Done
>  * In a durable manner (meaning retry on failure) await cleanup replication 
> over majority of all enlisted partitions. 
>  * On cleanup done, compute txnState in txnStateVolatileMap with 
> System.currentTimeMillis(). Pay attention that depending on whether given 
> txnState was already removed by TxnResourseCleanupTask or not, it's either an 
> adjusting of an exiting entry in txnStateVolatileMap with timestamp or 
> writing a brand new record. In latter case another iteration of 
> TxnStateCleanupTask will remove newly created entry. Besides that if the 
> volatile state was removed it won't be possible to restore all the meta, 
> which is fine, because all we need is txnId, txnState and 
> System.currentTimeMillies as cleanupReplicationFinished timestamp.
>  * There will be another Jira that will consider such timestamps and remove 
> corresponding states from txnStatePersistentStorage. For know it's out of 
> scope.
>  * There will be another task that will redo the cleanup on node startup in 
> order to restore (or formally re-evaluate) the cleanup replication finished 
> timestamp. For know it's out of scope.



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


[jira] [Updated] (IGNITE-21762) Do the txn cleanup procedure for all local finished transactions on commitPartition primary replica election

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-21762:
-
Ignite Flags:   (was: Docs Required,Release Notes Required)

> Do the txn cleanup procedure for all local finished transactions on 
> commitPartition primary replica election
> 
>
> Key: IGNITE-21762
> URL: https://issues.apache.org/jira/browse/IGNITE-21762
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexander Lapin
>Priority: Major
>




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


[jira] [Created] (IGNITE-21762) Do the txn cleanup procedure for all local finished transactions on commitPartition primary replica election

2024-03-14 Thread Alexander Lapin (Jira)
Alexander Lapin created IGNITE-21762:


 Summary: Do the txn cleanup procedure for all local finished 
transactions on commitPartition primary replica election
 Key: IGNITE-21762
 URL: https://issues.apache.org/jira/browse/IGNITE-21762
 Project: Ignite
  Issue Type: Improvement
Reporter: Alexander Lapin






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


[jira] [Updated] (IGNITE-21762) Do the txn cleanup procedure for all local finished transactions on commitPartition primary replica election

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-21762:
-
Labels: ignite-3  (was: )

> Do the txn cleanup procedure for all local finished transactions on 
> commitPartition primary replica election
> 
>
> Key: IGNITE-21762
> URL: https://issues.apache.org/jira/browse/IGNITE-21762
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexander Lapin
>Priority: Major
>  Labels: ignite-3
>




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


[jira] [Updated] (IGNITE-21762) Do the txn cleanup procedure for all local finished transactions on commitPartition primary replica election

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-21762:
-
Epic Link: IGNITE-21758

> Do the txn cleanup procedure for all local finished transactions on 
> commitPartition primary replica election
> 
>
> Key: IGNITE-21762
> URL: https://issues.apache.org/jira/browse/IGNITE-21762
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexander Lapin
>Priority: Major
>  Labels: ignite-3
>




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


[jira] [Updated] (IGNITE-21762) Do the txn cleanup procedure for all local finished transactions on commitPartition primary replica election

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-21762:
-
Description: 
h3. Motivation

As mentioned in IGNITE-21761 it's valid to remove finished transaction when 
cleanup is fully replicated over all enlisted partitions. However it's possible 
that commitPartition that triggers cleanup after txnState update will drop 
right after state update but before sending cleanup request, or it'll be killed 
during cleanup result processing, or commit partition primary replica will be 
re-elected, so many bad options...
All in all that means, that in order to mark persistent txnState as ready for 
removal it's required to re-send cleanup even if it was previously finished on 
commit partition primary replica re-election.
h3. Definition of Done
 * Populate txn persistent state with enlisted partitions on txnState update. 
It's required in order to define the set of nodes where cleanup should be send 
on commit partition primary replica re-election, including commit parition 
restart.

> Do the txn cleanup procedure for all local finished transactions on 
> commitPartition primary replica election
> 
>
> Key: IGNITE-21762
> URL: https://issues.apache.org/jira/browse/IGNITE-21762
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexander Lapin
>Priority: Major
>  Labels: ignite-3
>
> h3. Motivation
> As mentioned in IGNITE-21761 it's valid to remove finished transaction when 
> cleanup is fully replicated over all enlisted partitions. However it's 
> possible that commitPartition that triggers cleanup after txnState update 
> will drop right after state update but before sending cleanup request, or 
> it'll be killed during cleanup result processing, or commit partition primary 
> replica will be re-elected, so many bad options...
> All in all that means, that in order to mark persistent txnState as ready for 
> removal it's required to re-send cleanup even if it was previously finished 
> on commit partition primary replica re-election.
> h3. Definition of Done
>  * Populate txn persistent state with enlisted partitions on txnState update. 
> It's required in order to define the set of nodes where cleanup should be 
> send on commit partition primary replica re-election, including commit 
> parition restart.



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


[jira] [Updated] (IGNITE-21762) Do the txn cleanup procedure for all local finished transactions on commitPartition primary replica election

2024-03-14 Thread Alexander Lapin (Jira)


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

Alexander Lapin updated IGNITE-21762:
-
Description: 
h3. Motivation

As mentioned in IGNITE-21761 it's valid to remove finished transaction when 
cleanup is fully replicated over all enlisted partitions. However it's possible 
that commitPartition that triggers cleanup after txnState update will drop 
right after a state update but before sending a cleanup request, or it'll be 
killed during cleanup result processing, or commit partition primary replica 
will be re-elected, so many bad options...
All in all that means, that in order to mark persistent txnState as ready for 
removal it's required to re-send cleanup request on commit partition primary 
replica election even if it was previously finished.
h3. Definition of Done
 * Populate txn persistent state with enlisted partitions on txnState update. 
It's required in order to determine the list of nodes to which the cleanup 
request will need to be sent.
 * In an asynchronous manner on commit partition primary replica election, scan 
local persistent txn state storage and send cleanup request in a durable 
manner. We should not use the thread of primary replica election notification 
for that.
 * On cleanup completion, meaning cleanup replication over majorities of all 
enlisted partitions txnStateVolatileMap will be populated with stamped txnState 
because of logic introduced in IGNITE-21761 

  was:
h3. Motivation

As mentioned in IGNITE-21761 it's valid to remove finished transaction when 
cleanup is fully replicated over all enlisted partitions. However it's possible 
that commitPartition that triggers cleanup after txnState update will drop 
right after state update but before sending cleanup request, or it'll be killed 
during cleanup result processing, or commit partition primary replica will be 
re-elected, so many bad options...
All in all that means, that in order to mark persistent txnState as ready for 
removal it's required to re-send cleanup even if it was previously finished on 
commit partition primary replica re-election.
h3. Definition of Done
 * Populate txn persistent state with enlisted partitions on txnState update. 
It's required in order to define the set of nodes where cleanup should be send 
on commit partition primary replica re-election, including commit parition 
restart.


> Do the txn cleanup procedure for all local finished transactions on 
> commitPartition primary replica election
> 
>
> Key: IGNITE-21762
> URL: https://issues.apache.org/jira/browse/IGNITE-21762
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexander Lapin
>Priority: Major
>  Labels: ignite-3
>
> h3. Motivation
> As mentioned in IGNITE-21761 it's valid to remove finished transaction when 
> cleanup is fully replicated over all enlisted partitions. However it's 
> possible that commitPartition that triggers cleanup after txnState update 
> will drop right after a state update but before sending a cleanup request, or 
> it'll be killed during cleanup result processing, or commit partition primary 
> replica will be re-elected, so many bad options...
> All in all that means, that in order to mark persistent txnState as ready for 
> removal it's required to re-send cleanup request on commit partition primary 
> replica election even if it was previously finished.
> h3. Definition of Done
>  * Populate txn persistent state with enlisted partitions on txnState update. 
> It's required in order to determine the list of nodes to which the cleanup 
> request will need to be sent.
>  * In an asynchronous manner on commit partition primary replica election, 
> scan local persistent txn state storage and send cleanup request in a durable 
> manner. We should not use the thread of primary replica election notification 
> for that.
>  * On cleanup completion, meaning cleanup replication over majorities of all 
> enlisted partitions txnStateVolatileMap will be populated with stamped 
> txnState because of logic introduced in IGNITE-21761 



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


[jira] [Updated] (IGNITE-21542) Documentation for Ignite security model

2024-03-14 Thread Oleg Valuyskiy (Jira)


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

Oleg Valuyskiy updated IGNITE-21542:

Component/s: documentation

> Documentation for Ignite security model
> ---
>
> Key: IGNITE-21542
> URL: https://issues.apache.org/jira/browse/IGNITE-21542
> Project: Ignite
>  Issue Type: Task
>  Components: documentation
>Reporter: Oleg Valuyskiy
>Assignee: Oleg Valuyskiy
>Priority: Minor
>  Labels: ise
> Fix For: 2.17
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> It might be helpful to introduce documentation regarding what could be 
> expected from Ignite installations in terms of security. More specifically, 
> what Ignite users can expect when it comes to Discovery and Communication 
> ports inside and outside of the Ignite DMZ.



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