[jira] [Updated] (IGNITE-17199) Improve the usability of the abstract configuration interface

2022-06-20 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko updated IGNITE-17199:
-
Description: 
*Problem*
Consider an example of generating configuration interfaces (**Configuration*) 
for an abstract configuration.

Configuration schemas:
{code:java}
@AbstractConfiguration
public class BaseConfigurationSchema {
@Value
public int size;
}

@Config
public class VolatileConfigurationSchema extends BaseConfigurationSchema {
@Value
public double evictionThreshold;
}
{code}


Configuration interfaces:
{code:java}
public interface BaseConfiguration extends ConfigurationTree {
ConfigurationValue size();
}

public interface VolatileConfiguration extends BaseConfiguration {
ConfigurationValue size();
}
{code}

This implementation allows us to work with the inheritors of the abstract 
configuration as with a regular configuration (as if 
*VolatileConfigurationSchema* did not extend *BaseConfigurationSchema*), but 
when working with the abstract configuration itself, it creates inconvenience. 

For example, to get a view of the abstract configuration, we will need to write 
the following code:
{code:java}
BaseConfiguration baseConfig0 = ...;
BaseConfiguration baseConfig1 = ...;

BaseView baseView0 = (BasePageMemoryDataRegionView) baseConfig0.value();
BaseView baseView1 = baseConfig1.value();
{code}

Which is not convenient and I would like us to be able to work in the same way 
as with the *VolatileConfiguration*.

*Implementation proposal*

  was:
*Problem*
Consider an example of generating configuration interfaces (**Configuration*) 
for an abstract configuration.

Configuration schemas:
{code:java}
@AbstractConfiguration
public class BaseConfigurationSchema {
@Value
public int size;
}

@Config
public class VolatileConfigurationSchema extends BaseConfigurationSchema {
@Value
public double evictionThreshold;
}
{code}


Configuration interfaces:
{code:java}
public interface BaseConfiguration extends ConfigurationTree {
ConfigurationValue size();
}

public interface VolatileConfiguration extends BaseConfiguration {
ConfigurationValue size();
}
{code}

This implementation allows us to work with the inheritors of the abstract 
configuration as with a regular configuration (as if 
*VolatileConfigurationSchema* did not extend *BaseConfigurationSchema*), but 
when working with the abstract configuration itself, it creates inconvenience. 

For example, to get a view of the abstract configuration, we will need to write 
the following code:
{code:java}
BaseConfiguration baseConfig0 = ...;
BaseConfiguration baseConfig1 = ...;

BaseView baseView0 = (BasePageMemoryDataRegionView) baseConfig0.value();
BaseView baseView1 = baseConfig1.value();
{code}

Which is not convenient and I would like us to be able to work in the same way 
as with the *VolatileConfiguration*.

*Implementation proposal*
For an abstract configuration schema, generate 2 configuration interfaces, the 
first is package private, the second is public. 
The abstract configuration and all its inheritors will extend the package's 
private interface.

For example:
{code:java}
public interface BaseConfiguration extends ConfigurationTree {
ConfigurationValue size();
}

public interface VolatileConfiguration extends BaseConfiguration {
ConfigurationValue size();
}
{code}


> Improve the usability of the abstract configuration interface
> -
>
> Key: IGNITE-17199
> URL: https://issues.apache.org/jira/browse/IGNITE-17199
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Kirill Tkalenko
>Assignee: Kirill Tkalenko
>Priority: Major
>  Labels: iep-55, ignite-3
> Fix For: 3.0.0-alpha6
>
>
> *Problem*
> Consider an example of generating configuration interfaces (**Configuration*) 
> for an abstract configuration.
> Configuration schemas:
> {code:java}
> @AbstractConfiguration
> public class BaseConfigurationSchema {
> @Value
> public int size;
> }
> @Config
> public class VolatileConfigurationSchema extends BaseConfigurationSchema {
> @Value
> public double evictionThreshold;
> }
> {code}
> Configuration interfaces:
> {code:java}
> public interface BaseConfiguration BaseChange> extends ConfigurationTree {
> ConfigurationValue size();
> }
> public interface VolatileConfiguration extends 
> BaseConfiguration {
> ConfigurationValue size();
> }
> {code}
> This implementation allows us to work with the inheritors of the abstract 
> configuration as with a regular configuration (as if 
> *VolatileConfigurationSchema* did not extend *BaseConfigurationSchema*), but 
> when working with the abstract configuration itself, it creates 
> inconvenience. 
> For example, to get a view of the 

[jira] [Updated] (IGNITE-17199) Improve the usability of the abstract configuration interface

2022-06-20 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko updated IGNITE-17199:
-
Description: 
*Problem*
Consider an example of generating configuration interfaces (**Configuration*) 
for an abstract configuration.

Configuration schemas:
{code:java}
@AbstractConfiguration
public class BaseConfigurationSchema {
@Value
public int size;
}

@Config
public class VolatileConfigurationSchema extends BaseConfigurationSchema {
@Value
public double evictionThreshold;
}
{code}


Configuration interfaces:
{code:java}
public interface BaseConfiguration extends ConfigurationTree {
ConfigurationValue size();
}

public interface VolatileConfiguration extends BaseConfiguration {
ConfigurationValue size();
}
{code}

This implementation allows us to work with the inheritors of the abstract 
configuration as with a regular configuration (as if 
*VolatileConfigurationSchema* did not extend *BaseConfigurationSchema*), but 
when working with the abstract configuration itself, it creates inconvenience. 

For example, to get a view of the abstract configuration, we will need to write 
the following code:
{code:java}
BaseConfiguration baseConfig0 = ...;
BaseConfiguration baseConfig1 = ...;

BaseView baseView0 = (BasePageMemoryDataRegionView) baseConfig0.value();
BaseView baseView1 = baseConfig1.value();
{code}

Which is not convenient and I would like us to be able to work in the same way 
as with the *VolatileConfiguration*.

*Implementation proposal*
For an abstract configuration schema, generate 2 configuration interfaces, the 
first is package private, the second is public. 
The abstract configuration and all its inheritors will extend the package's 
private interface.

For example:
{code:java}
public interface BaseConfiguration extends ConfigurationTree {
ConfigurationValue size();
}

public interface VolatileConfiguration extends BaseConfiguration {
ConfigurationValue size();
}
{code}

  was:
*Problem*
Consider an example of generating configuration interfaces (**Configuration*) 
for an abstract configuration.

Configuration schemas:
{code:java}
@AbstractConfiguration
public class BaseConfigurationSchema {
@Value
public int size;
}

@Config
public class VolatileConfigurationSchema extends BaseConfigurationSchema {
@Value
public double evictionThreshold;
}
{code}


Configuration interfaces:
{code:java}
public interface BaseConfiguration extends ConfigurationTree {
ConfigurationValue size();
}

public interface VolatileConfiguration extends BaseConfiguration {
ConfigurationValue size();
}
{code}

This implementation allows us to work with the inheritors of the abstract 
configuration as with a regular configuration (as if 
*VolatileConfigurationSchema* did not extend *BaseConfigurationSchema*), but 
when working with the abstract configuration itself, it creates inconvenience. 

For example, to get a view of the abstract configuration, we will need to write 
the following code:
{code:java}
BaseConfiguration baseConfig0 = ...;
BaseConfiguration baseConfig1 = ...;

BaseView baseView0 = (BasePageMemoryDataRegionView) baseConfig0.value();
BaseView baseView1 = baseConfig1.value();
{code}

Which is not convenient and I would like us to be able to work in the same way 
as with the *VolatileConfiguration*.

*Implementation proposal*



> Improve the usability of the abstract configuration interface
> -
>
> Key: IGNITE-17199
> URL: https://issues.apache.org/jira/browse/IGNITE-17199
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Kirill Tkalenko
>Assignee: Kirill Tkalenko
>Priority: Major
>  Labels: iep-55, ignite-3
> Fix For: 3.0.0-alpha6
>
>
> *Problem*
> Consider an example of generating configuration interfaces (**Configuration*) 
> for an abstract configuration.
> Configuration schemas:
> {code:java}
> @AbstractConfiguration
> public class BaseConfigurationSchema {
> @Value
> public int size;
> }
> @Config
> public class VolatileConfigurationSchema extends BaseConfigurationSchema {
> @Value
> public double evictionThreshold;
> }
> {code}
> Configuration interfaces:
> {code:java}
> public interface BaseConfiguration BaseChange> extends ConfigurationTree {
> ConfigurationValue size();
> }
> public interface VolatileConfiguration extends 
> BaseConfiguration {
> ConfigurationValue size();
> }
> {code}
> This implementation allows us to work with the inheritors of the abstract 
> configuration as with a regular configuration (as if 
> *VolatileConfigurationSchema* did not extend *BaseConfigurationSchema*), but 
> when working with the abstract configuration itself, it creates 
> inconvenience. 
> For example, to get a view of the 

[jira] [Updated] (IGNITE-17199) Improve the usability of the abstract configuration interface

2022-06-20 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko updated IGNITE-17199:
-
Description: 
*Problem*
Consider an example of generating configuration interfaces (**Configuration*) 
for an abstract configuration.

Configuration schemas:
{code:java}
@AbstractConfiguration
public class BaseConfigurationSchema {
@Value
public int size;
}

@Config
public class VolatileConfigurationSchema extends BaseConfigurationSchema {
@Value
public double evictionThreshold;
}
{code}


Configuration interfaces:
{code:java}
public interface BaseConfiguration extends ConfigurationTree {
ConfigurationValue size();
}

public interface VolatileConfiguration extends BaseConfiguration {
ConfigurationValue size();
}
{code}

This implementation allows us to work with the inheritors of the abstract 
configuration as with a regular configuration (as if 
*VolatileConfigurationSchema* did not extend *BaseConfigurationSchema*), but 
when working with the abstract configuration itself, it creates inconvenience. 

For example, to get a view of the abstract configuration, we will need to write 
the following code:
{code:java}
BaseConfiguration baseConfig0 = ...;
BaseConfiguration baseConfig1 = ...;

BaseView baseView0 = (BasePageMemoryDataRegionView) baseConfig0.value();
BaseView baseView1 = baseConfig1.value();
{code}

Which is not convenient and I would like us to be able to work in the same way 
as with the *VolatileConfiguration*.

*Implementation proposal*


  was:
*Problem*
Consider an example of generating configuration interfaces (**Configuration*) 
for an abstract configuration.

Configuration schemas:
{code:java}
@AbstractConfiguration
public class BaseConfigurationSchema {
@Value
public int size;
}

@Config
public class VolatileConfigurationSchema extends BaseConfigurationSchema {
@Value
public double evictionThreshold;
}
{code}


Configuration interfaces:
{code:java}
public interface BaseConfiguration extends ConfigurationTree {
ConfigurationValue size();
}

public interface VolatileConfiguration extends BaseConfiguration {
ConfigurationValue size();
}
{code}

This implementation allows us to work with the inheritors of the abstract 
configuration as with a regular configuration (as if 
*VolatileConfigurationSchema* did not extend *BaseConfigurationSchema*), but 
when working with the abstract configuration itself, it creates inconvenience. 

For example, to get a view of the abstract configuration, we will need to write 
the following code:
{code:java}
BaseConfiguration baseConfig0 = ...;
BaseConfiguration baseConfig1 = ...;

BaseView baseView0 = (BasePageMemoryDataRegionView) baseConfig0.value();
BaseView baseView1 = baseConfig1.value();
{code}

Which is not convenient and I would like us to be able to work in the same way 
as with the *VolatileConfiguration*.


> Improve the usability of the abstract configuration interface
> -
>
> Key: IGNITE-17199
> URL: https://issues.apache.org/jira/browse/IGNITE-17199
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Kirill Tkalenko
>Assignee: Kirill Tkalenko
>Priority: Major
>  Labels: iep-55, ignite-3
> Fix For: 3.0.0-alpha6
>
>
> *Problem*
> Consider an example of generating configuration interfaces (**Configuration*) 
> for an abstract configuration.
> Configuration schemas:
> {code:java}
> @AbstractConfiguration
> public class BaseConfigurationSchema {
> @Value
> public int size;
> }
> @Config
> public class VolatileConfigurationSchema extends BaseConfigurationSchema {
> @Value
> public double evictionThreshold;
> }
> {code}
> Configuration interfaces:
> {code:java}
> public interface BaseConfiguration BaseChange> extends ConfigurationTree {
> ConfigurationValue size();
> }
> public interface VolatileConfiguration extends 
> BaseConfiguration {
> ConfigurationValue size();
> }
> {code}
> This implementation allows us to work with the inheritors of the abstract 
> configuration as with a regular configuration (as if 
> *VolatileConfigurationSchema* did not extend *BaseConfigurationSchema*), but 
> when working with the abstract configuration itself, it creates 
> inconvenience. 
> For example, to get a view of the abstract configuration, we will need to 
> write the following code:
> {code:java}
> BaseConfiguration baseConfig0 = ...;
> BaseConfiguration baseConfig1 = ...;
> 
> BaseView baseView0 = (BasePageMemoryDataRegionView) baseConfig0.value();
> BaseView baseView1 = baseConfig1.value();
> {code}
> Which is not convenient and I would like us to be able to work in the same 
> way as with the *VolatileConfiguration*.
> *Implementation proposal*



--
This message was sent by 

[jira] [Updated] (IGNITE-17199) Improve the usability of the abstract configuration interface

2022-06-20 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko updated IGNITE-17199:
-
Description: 
*Problem*
Consider an example of generating configuration interfaces (**Configuration*) 
for an abstract configuration.

Configuration schemas:
{code:java}
@AbstractConfiguration
public class BaseConfigurationSchema {
@Value
public int size;
}

@Config
public class VolatileConfigurationSchema extends BaseConfigurationSchema {
@Value
public double evictionThreshold;
}
{code}


Configuration interfaces:
{code:java}
public interface BaseConfiguration extends ConfigurationTree {
ConfigurationValue size();
}

public interface VolatileConfiguration extends BaseConfiguration {
ConfigurationValue size();
}
{code}

This implementation allows us to work with the inheritors of the abstract 
configuration as with a regular configuration (as if 
*VolatileConfigurationSchema* did not extend *BaseConfigurationSchema*), but 
when working with the abstract configuration itself, it creates inconvenience. 

For example, to get a view of the abstract configuration, we will need to write 
the following code:
{code:java}
BaseConfiguration baseConfig0 = ...;
BaseConfiguration baseConfig1 = ...;

BaseView baseView0 = (BasePageMemoryDataRegionView) baseConfig0.value();
BaseView baseView1 = baseConfig1.value();
{code}

Which is not convenient and I would like us to be able to work in the same way 
as with the *VolatileConfiguration*.

  was:
*Problem*
Consider an example of generating configuration interfaces (**Configuration*) 
for an abstract configuration.

Configuration schemas:
{code:java}
@AbstractConfiguration
public class BaseConfigurationSchema {
@Value
public int size;
}

@Config
public class VolatileConfigurationSchema extends BaseConfigurationSchema {
@Value
public double evictionThreshold;
}
{code}


Configuration interfaces:
{code:java}
public interface BaseConfiguration extends ConfigurationTree {
ConfigurationValue size();
}

public interface VolatileConfiguration extends BaseConfiguration {
ConfigurationValue size();
}
{code}



> Improve the usability of the abstract configuration interface
> -
>
> Key: IGNITE-17199
> URL: https://issues.apache.org/jira/browse/IGNITE-17199
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Kirill Tkalenko
>Assignee: Kirill Tkalenko
>Priority: Major
>  Labels: iep-55, ignite-3
> Fix For: 3.0.0-alpha6
>
>
> *Problem*
> Consider an example of generating configuration interfaces (**Configuration*) 
> for an abstract configuration.
> Configuration schemas:
> {code:java}
> @AbstractConfiguration
> public class BaseConfigurationSchema {
> @Value
> public int size;
> }
> @Config
> public class VolatileConfigurationSchema extends BaseConfigurationSchema {
> @Value
> public double evictionThreshold;
> }
> {code}
> Configuration interfaces:
> {code:java}
> public interface BaseConfiguration BaseChange> extends ConfigurationTree {
> ConfigurationValue size();
> }
> public interface VolatileConfiguration extends 
> BaseConfiguration {
> ConfigurationValue size();
> }
> {code}
> This implementation allows us to work with the inheritors of the abstract 
> configuration as with a regular configuration (as if 
> *VolatileConfigurationSchema* did not extend *BaseConfigurationSchema*), but 
> when working with the abstract configuration itself, it creates 
> inconvenience. 
> For example, to get a view of the abstract configuration, we will need to 
> write the following code:
> {code:java}
> BaseConfiguration baseConfig0 = ...;
> BaseConfiguration baseConfig1 = ...;
> 
> BaseView baseView0 = (BasePageMemoryDataRegionView) baseConfig0.value();
> BaseView baseView1 = baseConfig1.value();
> {code}
> Which is not convenient and I would like us to be able to work in the same 
> way as with the *VolatileConfiguration*.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-17199) Improve the usability of the abstract configuration interface

2022-06-20 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko updated IGNITE-17199:
-
Description: 
*Problem*
Consider an example of generating configuration interfaces (**Configuration*) 
for an abstract configuration.

Configuration schemas:
{code:java}
@AbstractConfiguration
public class BaseConfigurationSchema {
@Value
public int size;
}

@Config
public class VolatileConfigurationSchema extends BaseConfigurationSchema {
@Value
public double evictionThreshold;
}
{code}


Configuration interfaces:
{code:java}
public interface BaseConfiguration extends ConfigurationTree {
ConfigurationValue size();
}

public interface VolatileConfiguration extends BaseConfiguration {
ConfigurationValue size();
}
{code}


  was:
*Problem*
Consider an example of generating configuration interfaces (**Configuration*) 
for an abstract configuration.

Configuration schemas:
{code:java}
@AbstractConfiguration
public class BasePageMemoryDataRegionConfigurationSchema {
@Value
public int size;
}

@Config
public class VolatilePageMemoryDataRegionConfigurationSchema extends 
BasePageMemoryDataRegionConfigurationSchema {
@Value
public double evictionThreshold;
}
{code}


Configuration interfaces:
{code:java}
public interface BasePageMemoryDataRegionConfiguration 
extends ConfigurationTree {
ConfigurationValue size();
}

public interface VolatilePageMemoryDataRegionConfiguration extends 
BasePageMemoryDataRegionConfiguration {
ConfigurationValue size();
}
{code}



> Improve the usability of the abstract configuration interface
> -
>
> Key: IGNITE-17199
> URL: https://issues.apache.org/jira/browse/IGNITE-17199
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Kirill Tkalenko
>Assignee: Kirill Tkalenko
>Priority: Major
>  Labels: iep-55, ignite-3
> Fix For: 3.0.0-alpha6
>
>
> *Problem*
> Consider an example of generating configuration interfaces (**Configuration*) 
> for an abstract configuration.
> Configuration schemas:
> {code:java}
> @AbstractConfiguration
> public class BaseConfigurationSchema {
> @Value
> public int size;
> }
> @Config
> public class VolatileConfigurationSchema extends BaseConfigurationSchema {
> @Value
> public double evictionThreshold;
> }
> {code}
> Configuration interfaces:
> {code:java}
> public interface BaseConfiguration BaseChange> extends ConfigurationTree {
> ConfigurationValue size();
> }
> public interface VolatileConfiguration extends 
> BaseConfiguration {
> ConfigurationValue size();
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Created] (IGNITE-17199) Improve the usability of the abstract configuration interface

2022-06-20 Thread Kirill Tkalenko (Jira)
Kirill Tkalenko created IGNITE-17199:


 Summary: Improve the usability of the abstract configuration 
interface
 Key: IGNITE-17199
 URL: https://issues.apache.org/jira/browse/IGNITE-17199
 Project: Ignite
  Issue Type: Improvement
Reporter: Kirill Tkalenko
Assignee: Kirill Tkalenko
 Fix For: 3.0.0-alpha6


*Problem*
Consider an example of generating configuration interfaces (**Configuration*) 
for an abstract configuration.

Configuration schemas:
{code:java}
@AbstractConfiguration
public class BasePageMemoryDataRegionConfigurationSchema {
@Value
public int size;
}

@Config
public class VolatilePageMemoryDataRegionConfigurationSchema extends 
BasePageMemoryDataRegionConfigurationSchema {
@Value
public double evictionThreshold;
}
{code}


Configuration interfaces:
{code:java}
public interface BasePageMemoryDataRegionConfiguration 
extends ConfigurationTree {
ConfigurationValue size();
}

public interface VolatilePageMemoryDataRegionConfiguration extends 
BasePageMemoryDataRegionConfiguration {
ConfigurationValue size();
}
{code}




--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Assigned] (IGNITE-17143) Review and rewrite rebalance document according to the last rebalance logic updates

2022-06-20 Thread Mirza Aliev (Jira)


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

Mirza Aliev reassigned IGNITE-17143:


Assignee: Mirza Aliev

> Review and rewrite rebalance document according to the last rebalance logic 
> updates
> ---
>
> Key: IGNITE-17143
> URL: https://issues.apache.org/jira/browse/IGNITE-17143
> Project: Ignite
>  Issue Type: Task
>Reporter: Kirill Gusakov
>Assignee: Mirza Aliev
>Priority: Major
>  Labels: ignite-3
>
> Under IGNITE-14209 we made some rebalance protocol updates and it needs to 
> update the document



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (IGNITE-17142) Docs: Review the AI 3.0.0 Alpha 5 documentation

2022-06-20 Thread Petr Ivanov (Jira)


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

Petr Ivanov commented on IGNITE-17142:
--

Merged to main. Thanks for contribution!

> Docs: Review the AI 3.0.0 Alpha 5 documentation
> ---
>
> Key: IGNITE-17142
> URL: https://issues.apache.org/jira/browse/IGNITE-17142
> Project: Ignite
>  Issue Type: Task
>  Components: documentation
>Affects Versions: 3.0.0-alpha5
>Reporter: Nikita A. Safonov
>Assignee: Nikita A. Safonov
>Priority: Major
>  Labels: documentation, ignite-3
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> We need to check the new sections throughout the documentation.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Resolved] (IGNITE-17089) Validate "node" option in "node config show" cmd

2022-06-20 Thread Vadim Pakhnushev (Jira)


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

Vadim Pakhnushev resolved IGNITE-17089.
---
Resolution: Won't Fix

> Validate "node" option in "node config show" cmd
> 
>
> Key: IGNITE-17089
> URL: https://issues.apache.org/jira/browse/IGNITE-17089
> Project: Ignite
>  Issue Type: Task
>Reporter: Aleksandr
>Priority: Major
>  Labels: ignite-3, ignite-3-cli-tool
>
> Now {{ignite config show does not validate the passed node}} option. Add 
> tests for this and impement the validation.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-15655) Random tests fail due to TimeoutException while waiting for a response

2022-06-20 Thread Vyacheslav Koptilin (Jira)


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

Vyacheslav Koptilin updated IGNITE-15655:
-
Fix Version/s: 3.0.0-alpha6

> Random tests fail due to TimeoutException while waiting for a response
> --
>
> Key: IGNITE-15655
> URL: https://issues.apache.org/jira/browse/IGNITE-15655
> Project: Ignite
>  Issue Type: Bug
>Reporter: Konstantin Orlov
>Assignee: Vyacheslav Koptilin
>Priority: Blocker
>  Labels: ignite-3
> Fix For: 3.0.0-alpha6
>
> Attachments: _Integration_Tests_Integration_Tests_3305.log.zip, 
> _Integration_Tests_Integration_Tests_3322.log.zip
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> h3. Problem
> Sometimes tests fails on main branch with an abstract "{{Caused by: 
> java.util.concurrent.TimeoutException: Did not observe any item or terminal 
> signal within 1000ms in 'source(MonoDefer)' (and no fallback has been 
> configured)"}} reason. 
> Need to investigate and fix the root cause of this fails.
>  
> Test 
> {{org.apache.ignite.internal.runner.app.ITSchemaChangeKVViewTest.testRenameColumn()}}
>  in [^_Integration_Tests_Integration_Tests_3305.log.zip]
> Test 
> {{org.apache.ignite.internal.runner.app.ITSchemaChangeKVViewTest.testMergeChangesAddDropAdd()}}
>  in [^_Integration_Tests_Integration_Tests_3322.log.zip]
> h3. Upd 1
> Quick research revealed that the main reason for mentioned above 
> _TimeoutException_ is a poor consistency of raft timeouts .
> Most of jraft timeouts are based on electionTimeoutMs.
> {code:java}
> // A follower would become a candidate if it doesn't receive any message
> // from the leader in |election_timeout_ms| milliseconds
> // Default: 1000 (1s)
> private int electionTimeoutMs = 1000; // follower to candidate timeout
> {code}
> For example both voteTime and electionTime use exact value of 
> getElectionTimeoutMs (1000 ms):
> {code:java}
> String name = "JRaft-VoteTimer-" + suffix;
> this.voteTimer = new RepeatedTimer(name, 
> options.getElectionTimeoutMs(), timerFactory.getVoteTimer(name)) {...};
> name = "JRaft-ElectionTimer-" + suffix;
> electionTimer = new RepeatedTimer(name, 
> options.getElectionTimeoutMs(), timerFactory.getElectionTimer(name)) {...};
> {code}
> It actually means that Loza#TIMEOUT that was also initially set to 1000 ms 
> just won't be enough in some cases. Seems that "operation timeout 
> (LOZA#TIMEOUT)" should be an order of magnitude more than election timeout.
> During the implementation of [naive data 
> rebalance|https://issues.apache.org/jira/browse/IGNITE-15491] LOZA#TIMEOUT 
> was set to 10_000 to satisfy this need. Also a 
> [ticket|https://issues.apache.org/jira/browse/IGNITE-15705] for timeouts 
> research and consolidation was created.
> So, taking into consideration that raft operation timeout was already 
> increased from 1 second to 10 it worth to just enable all tests that were 
> disabled under IGNITE-15655 and check whether they are still failing.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (IGNITE-17148) Support for abstract configuration

2022-06-20 Thread Petr Ivanov (Jira)


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

Petr Ivanov commented on IGNITE-17148:
--

Merge to main. Thank you for contribution!

> Support for abstract configuration
> --
>
> Key: IGNITE-17148
> URL: https://issues.apache.org/jira/browse/IGNITE-17148
> Project: Ignite
>  Issue Type: Task
>Reporter: Kirill Tkalenko
>Assignee: Kirill Tkalenko
>Priority: Major
>  Labels: iep-55, ignite-3
> Fix For: 3.0.0-alpha6
>
>  Time Spent: 10h 40m
>  Remaining Estimate: 0h
>
> *NOTE*
> Description may not be complete.
> *Problem*
> We need the ability to create a basic configuration schema so that we can 
> define a common configuration schema and inherit from it with additional 
> configuration added.
> Let's look at an example:
> We need to create two configuration schemes for the PageMemory based storage 
> engine, they should have a common property "page size in bytes" and then they 
> should be different, let's sketch an example scheme.
> {code:java}
> public class BasePageMemoryStorageEngineConfigurationSchema {
> @Value(hasDefault = true)
> public int pageSize = 16 * 1024;
> }
> @ConfigurationRoot(rootName = "in-memory-page-memory", type = DISTRIBUTED) 
> public class VolatilePageMemoryStorageEngineConfigurationSchema extends 
> BasePageMemoryStorageEngineConfigurationSchema{
> @ConfigValue
> public VolatilePageMemoryDataRegionConfigurationSchema defaultRegion;
> @NamedConfigValue
> public VolatilePageMemoryDataRegionConfigurationSchema regions;
> }
> @ConfigurationRoot(rootName = "persistent-page-memory", type = DISTRIBUTED)
> public class PersistentPageMemoryStorageEngineConfigurationSchema extends 
> BasePageMemoryStorageEngineConfigurationSchema{
> @ConfigValue
> public PersistentPageMemoryDataRegionConfigurationSchema defaultRegion;
> @NamedConfigValue
> public PersistentPageMemoryDataRegionConfigurationSchema regions;
> @ConfigValue
> public PageMemoryCheckpointConfigurationSchema checkpoint;
> }{code}
> How can we implement this at the moment:
>  * internal extension of the configuration: then the user will not be able to 
> see and change it - not suitable;
>  * polymorphic configuration:
>  ** by design, we cannot create root config schemas for polymorphic config or 
> instances;
>  ** by design, we can change the type of polymorphic configuration to any 
> instance, we do not fix its type, which does not suit us;
>  ** by design, we cannot expose a polymorphic instance as a configuration 
> schema property;
>  ** hocon will display the type of polymorphic configuration, which is not 
> necessary in this case and will look a little strange.
> The possible options do not suit us, so I propose to add another solution.
> *Proposal*
> Add an abstract configuration schema from which we can inherit, add 
> properties, but only its heirs could be used as properties of other 
> configurations schemas or configuration roots. Unlike a polymorphic 
> configuration, it will not store and display the type in hocon, and the type 
> cannot be changed. 
> The abstract configuration schema from which will be inherited will contain 
> the annotation {*}@AbstractConfiguration{*}, and any successor must extend it 
> and contain *@Config* or {*}@ConfigurationRoot{*}, consider examples:
> {code:java}
> @AbstractConfiguration
> public class BasePageMemoryStorageEngineConfigurationSchema {
> @Value(hasDefault = true)
> public int pageSize = 16 * 1024;
> }
> @ConfigurationRoot(rootName = "in-memory-page-memory", type = DISTRIBUTED) 
> public class VolatilePageMemoryStorageEngineConfigurationSchema extends 
> BasePageMemoryStorageEngineConfigurationSchema{
> @ConfigValue
> public VolatilePageMemoryDataRegionConfigurationSchema defaultRegion;
> @NamedConfigValue
> public VolatilePageMemoryDataRegionConfigurationSchema regions;
> }
> @Config
> public class PersistentPageMemoryStorageEngineConfigurationSchema extends 
> BasePageMemoryStorageEngineConfigurationSchema{
> @ConfigValue
> public PersistentPageMemoryDataRegionConfigurationSchema defaultRegion;
> @NamedConfigValue
> public PersistentPageMemoryDataRegionConfigurationSchema regions;
> @ConfigValue
> public PageMemoryCheckpointConfigurationSchema checkpoint;
> }{code}
> *Implementation notes*
> # Add annotation 
> *org.apache.ignite.configuration.annotation.AbstractConfiguration*;
> # Add processing to 
> *org.apache.ignite.internal.configuration.processor.Processor*;
> # Add processing to 
> *org.apache.ignite.internal.configuration.asm.ConfigurationAsmGenerator*;
> # Cover with tests.
> *Further development*
>  * Consider the possibility and necessity of crossing with the 

[jira] [Resolved] (IGNITE-15306) Change ignite cli command to support separate config commands for node/cluster

2022-06-20 Thread Vadim Pakhnushev (Jira)


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

Vadim Pakhnushev resolved IGNITE-15306.
---
Resolution: Fixed

> Change ignite cli command to support separate config commands for node/cluster
> --
>
> Key: IGNITE-15306
> URL: https://issues.apache.org/jira/browse/IGNITE-15306
> Project: Ignite
>  Issue Type: Task
>Reporter: Kirill Gusakov
>Priority: Major
>  Labels: ignite-3
>




--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (IGNITE-15655) Random tests fail due to TimeoutException while waiting for a response

2022-06-20 Thread Vyacheslav Koptilin (Jira)


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

Vyacheslav Koptilin commented on IGNITE-15655:
--

Looks like we can unmute SQL tests based on test branch (which includes all SQL 
related fixes) 
https://ci.ignite.apache.org/buildConfiguration/ignite3_Test_IntegrationTests_ModuleRunner?branch=%3Cdefault%3E=builds


> Random tests fail due to TimeoutException while waiting for a response
> --
>
> Key: IGNITE-15655
> URL: https://issues.apache.org/jira/browse/IGNITE-15655
> Project: Ignite
>  Issue Type: Bug
>Reporter: Konstantin Orlov
>Assignee: Vyacheslav Koptilin
>Priority: Blocker
>  Labels: ignite-3
> Attachments: _Integration_Tests_Integration_Tests_3305.log.zip, 
> _Integration_Tests_Integration_Tests_3322.log.zip
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> h3. Problem
> Sometimes tests fails on main branch with an abstract "{{Caused by: 
> java.util.concurrent.TimeoutException: Did not observe any item or terminal 
> signal within 1000ms in 'source(MonoDefer)' (and no fallback has been 
> configured)"}} reason. 
> Need to investigate and fix the root cause of this fails.
>  
> Test 
> {{org.apache.ignite.internal.runner.app.ITSchemaChangeKVViewTest.testRenameColumn()}}
>  in [^_Integration_Tests_Integration_Tests_3305.log.zip]
> Test 
> {{org.apache.ignite.internal.runner.app.ITSchemaChangeKVViewTest.testMergeChangesAddDropAdd()}}
>  in [^_Integration_Tests_Integration_Tests_3322.log.zip]
> h3. Upd 1
> Quick research revealed that the main reason for mentioned above 
> _TimeoutException_ is a poor consistency of raft timeouts .
> Most of jraft timeouts are based on electionTimeoutMs.
> {code:java}
> // A follower would become a candidate if it doesn't receive any message
> // from the leader in |election_timeout_ms| milliseconds
> // Default: 1000 (1s)
> private int electionTimeoutMs = 1000; // follower to candidate timeout
> {code}
> For example both voteTime and electionTime use exact value of 
> getElectionTimeoutMs (1000 ms):
> {code:java}
> String name = "JRaft-VoteTimer-" + suffix;
> this.voteTimer = new RepeatedTimer(name, 
> options.getElectionTimeoutMs(), timerFactory.getVoteTimer(name)) {...};
> name = "JRaft-ElectionTimer-" + suffix;
> electionTimer = new RepeatedTimer(name, 
> options.getElectionTimeoutMs(), timerFactory.getElectionTimer(name)) {...};
> {code}
> It actually means that Loza#TIMEOUT that was also initially set to 1000 ms 
> just won't be enough in some cases. Seems that "operation timeout 
> (LOZA#TIMEOUT)" should be an order of magnitude more than election timeout.
> During the implementation of [naive data 
> rebalance|https://issues.apache.org/jira/browse/IGNITE-15491] LOZA#TIMEOUT 
> was set to 10_000 to satisfy this need. Also a 
> [ticket|https://issues.apache.org/jira/browse/IGNITE-15705] for timeouts 
> research and consolidation was created.
> So, taking into consideration that raft operation timeout was already 
> increased from 1 second to 10 it worth to just enable all tests that were 
> disabled under IGNITE-15655 and check whether they are still failing.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-17148) Support for abstract configuration

2022-06-20 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko updated IGNITE-17148:
-
Reviewer: Aleksandr Polovtcev

> Support for abstract configuration
> --
>
> Key: IGNITE-17148
> URL: https://issues.apache.org/jira/browse/IGNITE-17148
> Project: Ignite
>  Issue Type: Task
>Reporter: Kirill Tkalenko
>Assignee: Kirill Tkalenko
>Priority: Major
>  Labels: iep-55, ignite-3
> Fix For: 3.0.0-alpha6
>
>  Time Spent: 10.5h
>  Remaining Estimate: 0h
>
> *NOTE*
> Description may not be complete.
> *Problem*
> We need the ability to create a basic configuration schema so that we can 
> define a common configuration schema and inherit from it with additional 
> configuration added.
> Let's look at an example:
> We need to create two configuration schemes for the PageMemory based storage 
> engine, they should have a common property "page size in bytes" and then they 
> should be different, let's sketch an example scheme.
> {code:java}
> public class BasePageMemoryStorageEngineConfigurationSchema {
> @Value(hasDefault = true)
> public int pageSize = 16 * 1024;
> }
> @ConfigurationRoot(rootName = "in-memory-page-memory", type = DISTRIBUTED) 
> public class VolatilePageMemoryStorageEngineConfigurationSchema extends 
> BasePageMemoryStorageEngineConfigurationSchema{
> @ConfigValue
> public VolatilePageMemoryDataRegionConfigurationSchema defaultRegion;
> @NamedConfigValue
> public VolatilePageMemoryDataRegionConfigurationSchema regions;
> }
> @ConfigurationRoot(rootName = "persistent-page-memory", type = DISTRIBUTED)
> public class PersistentPageMemoryStorageEngineConfigurationSchema extends 
> BasePageMemoryStorageEngineConfigurationSchema{
> @ConfigValue
> public PersistentPageMemoryDataRegionConfigurationSchema defaultRegion;
> @NamedConfigValue
> public PersistentPageMemoryDataRegionConfigurationSchema regions;
> @ConfigValue
> public PageMemoryCheckpointConfigurationSchema checkpoint;
> }{code}
> How can we implement this at the moment:
>  * internal extension of the configuration: then the user will not be able to 
> see and change it - not suitable;
>  * polymorphic configuration:
>  ** by design, we cannot create root config schemas for polymorphic config or 
> instances;
>  ** by design, we can change the type of polymorphic configuration to any 
> instance, we do not fix its type, which does not suit us;
>  ** by design, we cannot expose a polymorphic instance as a configuration 
> schema property;
>  ** hocon will display the type of polymorphic configuration, which is not 
> necessary in this case and will look a little strange.
> The possible options do not suit us, so I propose to add another solution.
> *Proposal*
> Add an abstract configuration schema from which we can inherit, add 
> properties, but only its heirs could be used as properties of other 
> configurations schemas or configuration roots. Unlike a polymorphic 
> configuration, it will not store and display the type in hocon, and the type 
> cannot be changed. 
> The abstract configuration schema from which will be inherited will contain 
> the annotation {*}@AbstractConfiguration{*}, and any successor must extend it 
> and contain *@Config* or {*}@ConfigurationRoot{*}, consider examples:
> {code:java}
> @AbstractConfiguration
> public class BasePageMemoryStorageEngineConfigurationSchema {
> @Value(hasDefault = true)
> public int pageSize = 16 * 1024;
> }
> @ConfigurationRoot(rootName = "in-memory-page-memory", type = DISTRIBUTED) 
> public class VolatilePageMemoryStorageEngineConfigurationSchema extends 
> BasePageMemoryStorageEngineConfigurationSchema{
> @ConfigValue
> public VolatilePageMemoryDataRegionConfigurationSchema defaultRegion;
> @NamedConfigValue
> public VolatilePageMemoryDataRegionConfigurationSchema regions;
> }
> @Config
> public class PersistentPageMemoryStorageEngineConfigurationSchema extends 
> BasePageMemoryStorageEngineConfigurationSchema{
> @ConfigValue
> public PersistentPageMemoryDataRegionConfigurationSchema defaultRegion;
> @NamedConfigValue
> public PersistentPageMemoryDataRegionConfigurationSchema regions;
> @ConfigValue
> public PageMemoryCheckpointConfigurationSchema checkpoint;
> }{code}
> *Implementation notes*
> # Add annotation 
> *org.apache.ignite.configuration.annotation.AbstractConfiguration*;
> # Add processing to 
> *org.apache.ignite.internal.configuration.processor.Processor*;
> # Add processing to 
> *org.apache.ignite.internal.configuration.asm.ConfigurationAsmGenerator*;
> # Cover with tests.
> *Further development*
>  * Consider the possibility and necessity of crossing with the annotation 
> *InternalConfiguration* and 

[jira] [Assigned] (IGNITE-16870) Extend Schema with ability to specify function as default value generator

2022-06-20 Thread Konstantin Orlov (Jira)


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

Konstantin Orlov reassigned IGNITE-16870:
-

Assignee: Konstantin Orlov

> Extend Schema with ability to specify function as default value generator
> -
>
> Key: IGNITE-16870
> URL: https://issues.apache.org/jira/browse/IGNITE-16870
> Project: Ignite
>  Issue Type: New Feature
>Reporter: Konstantin Orlov
>Assignee: Konstantin Orlov
>Priority: Major
>  Labels: ignite-3
>
> In order to make IGNITE-16860 possible, we need to add an ability to specify 
> a function as a default value generator. It worth to note, that a behaviour 
> of KV API and SQL should be consistent, thus this feature should be derived 
> from a SQL runtime to the common place.
> Within this task we need to extend {{ColumnConfigurationSchema}} in order to 
> support several types of default value generators (constant and function for 
> now), as well as introduce a new default value supplier for {{{}Column{}}}.
> As a first step, I would propose to support only a few predefined system 
> functions. This could be possibly extended to support an arbitrary function 
> though.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (IGNITE-17148) Support for abstract configuration

2022-06-20 Thread Aleksandr Polovtcev (Jira)


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

Aleksandr Polovtcev commented on IGNITE-17148:
--

Looks wonderful, thank you

> Support for abstract configuration
> --
>
> Key: IGNITE-17148
> URL: https://issues.apache.org/jira/browse/IGNITE-17148
> Project: Ignite
>  Issue Type: Task
>Reporter: Kirill Tkalenko
>Assignee: Kirill Tkalenko
>Priority: Major
>  Labels: iep-55, ignite-3
> Fix For: 3.0.0-alpha6
>
>  Time Spent: 10.5h
>  Remaining Estimate: 0h
>
> *NOTE*
> Description may not be complete.
> *Problem*
> We need the ability to create a basic configuration schema so that we can 
> define a common configuration schema and inherit from it with additional 
> configuration added.
> Let's look at an example:
> We need to create two configuration schemes for the PageMemory based storage 
> engine, they should have a common property "page size in bytes" and then they 
> should be different, let's sketch an example scheme.
> {code:java}
> public class BasePageMemoryStorageEngineConfigurationSchema {
> @Value(hasDefault = true)
> public int pageSize = 16 * 1024;
> }
> @ConfigurationRoot(rootName = "in-memory-page-memory", type = DISTRIBUTED) 
> public class VolatilePageMemoryStorageEngineConfigurationSchema extends 
> BasePageMemoryStorageEngineConfigurationSchema{
> @ConfigValue
> public VolatilePageMemoryDataRegionConfigurationSchema defaultRegion;
> @NamedConfigValue
> public VolatilePageMemoryDataRegionConfigurationSchema regions;
> }
> @ConfigurationRoot(rootName = "persistent-page-memory", type = DISTRIBUTED)
> public class PersistentPageMemoryStorageEngineConfigurationSchema extends 
> BasePageMemoryStorageEngineConfigurationSchema{
> @ConfigValue
> public PersistentPageMemoryDataRegionConfigurationSchema defaultRegion;
> @NamedConfigValue
> public PersistentPageMemoryDataRegionConfigurationSchema regions;
> @ConfigValue
> public PageMemoryCheckpointConfigurationSchema checkpoint;
> }{code}
> How can we implement this at the moment:
>  * internal extension of the configuration: then the user will not be able to 
> see and change it - not suitable;
>  * polymorphic configuration:
>  ** by design, we cannot create root config schemas for polymorphic config or 
> instances;
>  ** by design, we can change the type of polymorphic configuration to any 
> instance, we do not fix its type, which does not suit us;
>  ** by design, we cannot expose a polymorphic instance as a configuration 
> schema property;
>  ** hocon will display the type of polymorphic configuration, which is not 
> necessary in this case and will look a little strange.
> The possible options do not suit us, so I propose to add another solution.
> *Proposal*
> Add an abstract configuration schema from which we can inherit, add 
> properties, but only its heirs could be used as properties of other 
> configurations schemas or configuration roots. Unlike a polymorphic 
> configuration, it will not store and display the type in hocon, and the type 
> cannot be changed. 
> The abstract configuration schema from which will be inherited will contain 
> the annotation {*}@AbstractConfiguration{*}, and any successor must extend it 
> and contain *@Config* or {*}@ConfigurationRoot{*}, consider examples:
> {code:java}
> @AbstractConfiguration
> public class BasePageMemoryStorageEngineConfigurationSchema {
> @Value(hasDefault = true)
> public int pageSize = 16 * 1024;
> }
> @ConfigurationRoot(rootName = "in-memory-page-memory", type = DISTRIBUTED) 
> public class VolatilePageMemoryStorageEngineConfigurationSchema extends 
> BasePageMemoryStorageEngineConfigurationSchema{
> @ConfigValue
> public VolatilePageMemoryDataRegionConfigurationSchema defaultRegion;
> @NamedConfigValue
> public VolatilePageMemoryDataRegionConfigurationSchema regions;
> }
> @Config
> public class PersistentPageMemoryStorageEngineConfigurationSchema extends 
> BasePageMemoryStorageEngineConfigurationSchema{
> @ConfigValue
> public PersistentPageMemoryDataRegionConfigurationSchema defaultRegion;
> @NamedConfigValue
> public PersistentPageMemoryDataRegionConfigurationSchema regions;
> @ConfigValue
> public PageMemoryCheckpointConfigurationSchema checkpoint;
> }{code}
> *Implementation notes*
> # Add annotation 
> *org.apache.ignite.configuration.annotation.AbstractConfiguration*;
> # Add processing to 
> *org.apache.ignite.internal.configuration.processor.Processor*;
> # Add processing to 
> *org.apache.ignite.internal.configuration.asm.ConfigurationAsmGenerator*;
> # Cover with tests.
> *Further development*
>  * Consider the possibility and necessity of crossing with the 

[jira] [Created] (IGNITE-17198) Prototype of pure in-memory storage (with in-memory RAFT)

2022-06-20 Thread Roman Puchkovskiy (Jira)
Roman Puchkovskiy created IGNITE-17198:
--

 Summary: Prototype of pure in-memory storage (with in-memory RAFT)
 Key: IGNITE-17198
 URL: https://issues.apache.org/jira/browse/IGNITE-17198
 Project: Ignite
  Issue Type: New Feature
  Components: persistence
Reporter: Roman Puchkovskiy
Assignee: Roman Puchkovskiy
 Fix For: 3.0.0-alpha6


This is about the simpliest case possible: stable topology, nodes never leave, 
corner cases are not handled.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Comment Edited] (IGNITE-17012) Check if random tests failures because of TimeoutException is still reproducible

2022-06-20 Thread Vyacheslav Koptilin (Jira)


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

Vyacheslav Koptilin edited comment on IGNITE-17012 at 6/20/22 9:44 AM:
---

Tests cannot be unmuted until the following issues are resolved: IGNITE-17165 
IGNITE-17169 IGNITE-17171


was (Author: slava.koptilin):
Test cannot be unmuted until the following issues are resolved: IGNITE-17165 
IGNITE-17169 IGNITE-17171

> Check if random tests failures because of TimeoutException is still 
> reproducible 
> -
>
> Key: IGNITE-17012
> URL: https://issues.apache.org/jira/browse/IGNITE-17012
> Project: Ignite
>  Issue Type: Task
>Reporter: Mirza Aliev
>Assignee: Vyacheslav Koptilin
>Priority: Major
>  Labels: ignite-3
>
> We have the umbrella ticket IGNITE-15655 where the problem of a random tests 
> failures because of {{TimeoutException}} was introduced. A lot of problems 
> was found when we investigated the issue, and most of them was fixed, so we 
> propose to check if the problem is still reproducible. 
> The actions that are proposed to do: 
> 1 ) Unmute all tests that were disabled with IGNITE-15655 ticket
> 2) Check if they are reproducible with the same problem
> 3) Create new tickets for all found problems 



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-16967) SQL API: Implement server-side query context.

2022-06-20 Thread Konstantin Orlov (Jira)


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

Konstantin Orlov updated IGNITE-16967:
--
Fix Version/s: 3.0.0-alpha6

> SQL API: Implement server-side query context.
> -
>
> Key: IGNITE-16967
> URL: https://issues.apache.org/jira/browse/IGNITE-16967
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Andrey Mashenkov
>Assignee: Konstantin Orlov
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-alpha6
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Implement server-side session management.
> Avoid session parameters sending on each query start.
> Close session on client disconnect.
> Close queries when session has been closed.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-17182) Sql. Wrong result of TYPEOF function

2022-06-20 Thread Konstantin Orlov (Jira)


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

Konstantin Orlov updated IGNITE-17182:
--
Fix Version/s: 3.0.0-alpha6

> Sql. Wrong result of TYPEOF function
> 
>
> Key: IGNITE-17182
> URL: https://issues.apache.org/jira/browse/IGNITE-17182
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Konstantin Orlov
>Assignee: Konstantin Orlov
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-alpha6
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The result of {{TYPEOF('a'::varchar(1))}} is {{CHAR}} instead of {{VARCHAR}}. 
> Looks like the information about actual type is missed after fragment 
> deserialisation. 



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-17171) ItIndexSpoolTest fails when the number of rows is greater than 256

2022-06-20 Thread Konstantin Orlov (Jira)


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

Konstantin Orlov updated IGNITE-17171:
--
Fix Version/s: 3.0.0-alpha6

> ItIndexSpoolTest fails when the number of rows is greater than 256
> --
>
> Key: IGNITE-17171
> URL: https://issues.apache.org/jira/browse/IGNITE-17171
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vyacheslav Koptilin
>Assignee: Konstantin Orlov
>Priority: Blocker
>  Labels: ignite-3
> Fix For: 3.0.0-alpha6
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> ItIndexSpoolTest fails when the number of table rows is greater than 256
> {noformat}
> java.lang.AssertionError: 
> Expected: is <258>
>  but: was <256>
> 
>   at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
>   at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6)
>   at 
> org.apache.ignite.internal.sql.engine.ItIndexSpoolTest.test(ItIndexSpoolTest.java:74)
> {noformat}
> Perhaps, batching does not work correctly.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-17183) Sql. Test testCurrentDateTimeTimeStamp fails

2022-06-20 Thread Konstantin Orlov (Jira)


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

Konstantin Orlov updated IGNITE-17183:
--
Fix Version/s: 3.0.0-alpha6

> Sql. Test testCurrentDateTimeTimeStamp fails
> 
>
> Key: IGNITE-17183
> URL: https://issues.apache.org/jira/browse/IGNITE-17183
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Konstantin Orlov
>Assignee: Konstantin Orlov
>Priority: Blocker
> Fix For: 3.0.0-alpha6
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The problem caused by the test itself. Or, to be more precise, in converting 
> the date value to a string and then comparing.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-17048) Some failing tests make other tests fail too

2022-06-20 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko updated IGNITE-17048:
-
Fix Version/s: 3.0.0-alpha6

> Some failing tests make other tests fail too
> 
>
> Key: IGNITE-17048
> URL: https://issues.apache.org/jira/browse/IGNITE-17048
> Project: Ignite
>  Issue Type: Bug
>Reporter: Aleksandr Polovtcev
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-alpha6
>
>
> Looks like after some tests fail, they do not correctly free the used ports, 
> because other tests start to fail with a "Failed to start the connection 
> manager: No available port in range [3346-3346]" message.
> This error occurs due to previous test failing to stop a node with 
> AssertionError "Raft groups are still running 
> [602f614c-9d19-4467-bcdf-d248d9e3a410_part_1, 
> 602f614c-9d19-4467-bcdf-d248d9e3a410_part_0, 
> 602f614c-9d19-4467-bcdf-d248d9e3a410_part_6, 
> 602f614c-9d19-4467-bcdf-d248d9e3a410_part_4, 
> 602f614c-9d19-4467-bcdf-d248d9e3a410_part_3, 
> 602f614c-9d19-4467-bcdf-d248d9e3a410_part_8, 
> 602f614c-9d19-4467-bcdf-d248d9e3a410_part_7]"
> Example of a failed build: 
> https://ci.ignite.apache.org/buildConfiguration/ignite3_Test_RunAllTests/6583070
> A possible solution might be to create a diagnostics tool that will print the 
> name of the process that occupies the blocked port.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-17197) Change the default storage engine (for tables)

2022-06-20 Thread Sergey Uttsel (Jira)


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

Sergey Uttsel updated IGNITE-17197:
---
Description: 
Currently the default pagememory storage doesn't support MVCC. So it doesn't 
fit to the transaction protocol. Only RocksDbTableStorage supports now. So 
after RocksDbTableStorage was integrated in 
https://issues.apache.org/jira/browse/IGNITE-16881 the 
TablesConfigurationSchema#defaultDataStorage was set to "rocksdb" and some 
tests were disabled.

Need to:
 # implement MvTableStorage and MvPartitionStorage by other storages.
 # set TablesConfigurationSchema#defaultDataStorage to "pagememory" or other 
storage.
 # enable tests marked by "IGNITE-17197"
 # check other places marked by IGNITE-17197"

  was:
Only RocksDbTableStorage implements MvTableStorage now. So after 
RocksDbTableStorage was integrated in 
https://issues.apache.org/jira/browse/IGNITE-16881 the 
TablesConfigurationSchema#defaultDataStorage was set to "rocksdb" and some 
tests were disabled.

Need to:
 # implement MvTableStorage and MvPartitionStorage by other storages.
 # set TablesConfigurationSchema#defaultDataStorage to "pagememory"
 # enable tests marked by "IGNITE-17197"
 # check other places marked by IGNITE-17197"

Summary: Change the default storage engine (for tables)  (was: Page 
memory storages are disabled now)

> Change the default storage engine (for tables)
> --
>
> Key: IGNITE-17197
> URL: https://issues.apache.org/jira/browse/IGNITE-17197
> Project: Ignite
>  Issue Type: Task
>Reporter: Sergey Uttsel
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-alpha6
>
>
> Currently the default pagememory storage doesn't support MVCC. So it doesn't 
> fit to the transaction protocol. Only RocksDbTableStorage supports now. So 
> after RocksDbTableStorage was integrated in 
> https://issues.apache.org/jira/browse/IGNITE-16881 the 
> TablesConfigurationSchema#defaultDataStorage was set to "rocksdb" and some 
> tests were disabled.
> Need to:
>  # implement MvTableStorage and MvPartitionStorage by other storages.
>  # set TablesConfigurationSchema#defaultDataStorage to "pagememory" or other 
> storage.
>  # enable tests marked by "IGNITE-17197"
>  # check other places marked by IGNITE-17197"



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-17197) Page memory storages are disabled now

2022-06-20 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko updated IGNITE-17197:
-
Epic Link: IGNITE-16851

> Page memory storages are disabled now
> -
>
> Key: IGNITE-17197
> URL: https://issues.apache.org/jira/browse/IGNITE-17197
> Project: Ignite
>  Issue Type: Task
>Reporter: Sergey Uttsel
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-alpha6
>
>
> Only RocksDbTableStorage implements MvTableStorage now. So after 
> RocksDbTableStorage was integrated in 
> https://issues.apache.org/jira/browse/IGNITE-16881 the 
> TablesConfigurationSchema#defaultDataStorage was set to "rocksdb" and some 
> tests were disabled.
> Need to:
>  # implement MvTableStorage and MvPartitionStorage by other storages.
>  # set TablesConfigurationSchema#defaultDataStorage to "pagememory"
>  # enable tests marked by "IGNITE-17197"
>  # check other places marked by IGNITE-17197"



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-16881) Integrate MV-storage into current tx implementation

2022-06-20 Thread Alexander Lapin (Jira)


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

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

> Integrate MV-storage into current tx implementation
> ---
>
> Key: IGNITE-16881
> URL: https://issues.apache.org/jira/browse/IGNITE-16881
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexander Lapin
>Assignee: Sergey Uttsel
>Priority: Major
>  Labels: ignite-3, transaction3_rw
>  Time Spent: 4h 40m
>  Remaining Estimate: 0h
>
> VersionedRowStore contract is replaced with new MV-storage API that should be 
> used inside tx protocol instead of old VersionedRowStore one.
> Tx.Phase1



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-16892) Update lock manager in order to soupport S, X and I locks.

2022-06-20 Thread Alexander Lapin (Jira)


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

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

> Update lock manager in order to soupport S, X and I locks.
> --
>
> Key: IGNITE-16892
> URL: https://issues.apache.org/jira/browse/IGNITE-16892
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexander Lapin
>Priority: Major
>  Labels: ignite-3, transaction3_rw
>
> Tx.Phase1



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-16894) Adjust already implemented RW tx protocol in order to match new one

2022-06-20 Thread Alexander Lapin (Jira)


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

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

> Adjust already implemented RW tx protocol in order to match new one
> ---
>
> Key: IGNITE-16894
> URL: https://issues.apache.org/jira/browse/IGNITE-16894
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexander Lapin
>Priority: Major
>  Labels: ignite-3, transaction3_rw
>
> * Tx commit timestamp generation
>  * Partition enlistment
>  * Lock acquiring/release
>  * Intent resolution
>  * Commit/Abort
>  * Cleanup
> Tx.Phase1



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-17197) Page memory storages are disabled now

2022-06-20 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko updated IGNITE-17197:
-
Fix Version/s: 3.0.0-alpha6

> Page memory storages are disabled now
> -
>
> Key: IGNITE-17197
> URL: https://issues.apache.org/jira/browse/IGNITE-17197
> Project: Ignite
>  Issue Type: Task
>Reporter: Sergey Uttsel
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-alpha6
>
>
> Only RocksDbTableStorage implements MvTableStorage now. So after 
> RocksDbTableStorage was integrated in 
> https://issues.apache.org/jira/browse/IGNITE-16881 the 
> TablesConfigurationSchema#defaultDataStorage was set to "rocksdb" and some 
> tests were disabled.
> Need to:
>  # implement MvTableStorage and MvPartitionStorage by other storages.
>  # set TablesConfigurationSchema#defaultDataStorage to "pagememory"
>  # enable tests marked by "IGNITE-17197"
>  # check other places marked by IGNITE-17197"



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-15931) Implement storage for tx states

2022-06-20 Thread Alexander Lapin (Jira)


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

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

> Implement storage for tx states
> ---
>
> Key: IGNITE-15931
> URL: https://issues.apache.org/jira/browse/IGNITE-15931
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexey Scherbakov
>Priority: Major
>  Labels: ignite-3, transaction3_rw
>
> Currently tx states [1] are stored in memory and will be lost on node 
> failure, but they shouldn't.
> Need to store states in the Storage (similar to PartitionStorage).
> [1] org.apache.ignite.internal.tx.impl.TxManagerImpl#states
> Tx.Phase1



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-15931) Implement storage for tx states

2022-06-20 Thread Alexander Lapin (Jira)


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

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

> Implement storage for tx states
> ---
>
> Key: IGNITE-15931
> URL: https://issues.apache.org/jira/browse/IGNITE-15931
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexey Scherbakov
>Priority: Major
>  Labels: ignite-3, transaction3_rw
>
> Currently tx states [1] are stored in memory and will be lost on node 
> failure, but they shouldn't.
> Need to store states in the Storage (similar to PartitionStorage).
> [1] org.apache.ignite.internal.tx.impl.TxManagerImpl#states
> Tx.Phase1



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-17197) Page memory storages are disabled now

2022-06-20 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko updated IGNITE-17197:
-
Ignite Flags:   (was: Docs Required,Release Notes Required)

> Page memory storages are disabled now
> -
>
> Key: IGNITE-17197
> URL: https://issues.apache.org/jira/browse/IGNITE-17197
> Project: Ignite
>  Issue Type: Task
>Reporter: Sergey Uttsel
>Priority: Major
>  Labels: ignite-3
>
> Only RocksDbTableStorage implements MvTableStorage now. So after 
> RocksDbTableStorage was integrated in 
> https://issues.apache.org/jira/browse/IGNITE-16881 the 
> TablesConfigurationSchema#defaultDataStorage was set to "rocksdb" and some 
> tests were disabled.
> Need to:
>  # implement MvTableStorage and MvPartitionStorage by other storages.
>  # set TablesConfigurationSchema#defaultDataStorage to "pagememory"
>  # enable tests marked by "IGNITE-17197"
>  # check other places marked by IGNITE-17197"



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-16882) Enlist txnState into single parition only

2022-06-20 Thread Alexander Lapin (Jira)


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

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

> Enlist txnState into single parition only
> -
>
> Key: IGNITE-16882
> URL: https://issues.apache.org/jira/browse/IGNITE-16882
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexander Lapin
>Assignee: Alexander Lapin
>Priority: Major
>  Labels: ignite-3, transaction3_rw
>
> Currenlly txState(PENDING|ABORTED|COMMITED) is updated within all enlisted 
> partitions which is not an atomic solution. According to new tx design it's 
> required to replicate tx state with single partition only.
> As a prerequisite persisted replicated TxnStateStore should be introduced 
> https://issues.apache.org/jira/browse/IGNITE-15931
> Such introduction will allow to rework existing tx implementaiton in order to 
> store txState only within single partition.
> instead of using
> {code:java}
> partId = abs(txId.hashCode() % partCnt) {code}
> we might use any other idempotent funtion, e.g. first partition of first 
> enlisted key.
> Tx.Phase1



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-17197) Page memory storages are disabled now

2022-06-20 Thread Sergey Uttsel (Jira)


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

Sergey Uttsel updated IGNITE-17197:
---
Description: 
Only RocksDbTableStorage implements MvTableStorage now. So after 
RocksDbTableStorage was integrated in 
https://issues.apache.org/jira/browse/IGNITE-16881 the 
TablesConfigurationSchema#defaultDataStorage was set to "rocksdb" and some 
tests were disabled.

Need to:
 # implement MvTableStorage and MvPartitionStorage by other storages.
 # set TablesConfigurationSchema#defaultDataStorage to "pagememory"
 # enable tests marked by "IGNITE-17197"
 # check other places marked by IGNITE-17197"

  was:
Only RocksDbTableStorage implements MvTableStorage now. So after 
RocksDbTableStorage was integrated in 
https://issues.apache.org/jira/browse/IGNITE-16881 the 
TablesConfigurationSchema#defaultDataStorage was set to "rocksdb" and some 
tests were disabled.

Need to:
 # implement MvTableStorage and MvPartitionStorage by other storages.
 # set TablesConfigurationSchema#defaultDataStorage to "pagememory"
 # enable tests marked by "IGNITE-"
 # check other places marked by IGNITE-


> Page memory storages are disabled now
> -
>
> Key: IGNITE-17197
> URL: https://issues.apache.org/jira/browse/IGNITE-17197
> Project: Ignite
>  Issue Type: Task
>Reporter: Sergey Uttsel
>Priority: Major
>  Labels: ignite-3
>
> Only RocksDbTableStorage implements MvTableStorage now. So after 
> RocksDbTableStorage was integrated in 
> https://issues.apache.org/jira/browse/IGNITE-16881 the 
> TablesConfigurationSchema#defaultDataStorage was set to "rocksdb" and some 
> tests were disabled.
> Need to:
>  # implement MvTableStorage and MvPartitionStorage by other storages.
>  # set TablesConfigurationSchema#defaultDataStorage to "pagememory"
>  # enable tests marked by "IGNITE-17197"
>  # check other places marked by IGNITE-17197"



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Created] (IGNITE-17197) Page memory storages are disabled now

2022-06-20 Thread Sergey Uttsel (Jira)
Sergey Uttsel created IGNITE-17197:
--

 Summary: Page memory storages are disabled now
 Key: IGNITE-17197
 URL: https://issues.apache.org/jira/browse/IGNITE-17197
 Project: Ignite
  Issue Type: Task
Reporter: Sergey Uttsel


Only RocksDbTableStorage implements MvTableStorage now. So after 
RocksDbTableStorage was integrated in 
https://issues.apache.org/jira/browse/IGNITE-16881 the 
TablesConfigurationSchema#defaultDataStorage was set to "rocksdb" and some 
tests were disabled.

Need to:
 # implement MvTableStorage and MvPartitionStorage by other storages.
 # set TablesConfigurationSchema#defaultDataStorage to "pagememory"
 # enable tests marked by "IGNITE-"
 # check other places marked by IGNITE-



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Assigned] (IGNITE-17149) Separation of the PageMemoryStorageEngineConfigurationSchema into in-memory and persistent

2022-06-20 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko reassigned IGNITE-17149:


Assignee: Kirill Tkalenko

> Separation of the PageMemoryStorageEngineConfigurationSchema into in-memory 
> and persistent
> --
>
> Key: IGNITE-17149
> URL: https://issues.apache.org/jira/browse/IGNITE-17149
> Project: Ignite
>  Issue Type: Task
>Reporter: Kirill Tkalenko
>Assignee: Kirill Tkalenko
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-alpha6
>
>
> *Problem*
> At the moment, the 
> *org.apache.ignite.internal.storage.pagememory.configuration.schema.PageMemoryStorageEngineConfigurationSchema*
>  contains configuration for in-memory and persistent 
> *org.apache.ignite.internal.pagememory.configuration.schema.PageMemoryDataRegionConfigurationSchema*,
>  which can be inconvenient for the user for several reasons:
>  * *PageMemoryDataRegionConfigurationSchema* contains the configuration for 
> in-memory and the persistent case, which can be confusing because it's not 
> obvious which properties to set for each;
>  * User does not have the ability to set a different size 
> *PageMemoryStorageEngineConfigurationSchema#pageSize* for in-memory and the 
> persistent case;
>  * When creating a table through SQL, it would be more convenient for the 
> user to simply specify the engine and use the default region than specify the 
> data region, let's look at the examples.
> {code:java}
> CREATE TABLE user (id INT PRIMARY KEY, name VARCHAR(255)) ENGINE pagememory 
> dataRegion='in-memory' 
> CREATE TABLE user (id INT PRIMARY KEY, name VARCHAR(255)) ENGINE pagememory 
> dataRegion='persistnet'{code}
> {code:java}
> CREATE TABLE user (id INT PRIMARY KEY, name VARCHAR(255)) ENGINE 
> in-memory-pagememory
> CREATE TABLE user (id INT PRIMARY KEY, name VARCHAR(255)) ENGINE 
> persistnet-pagememory
> {code}
> *Implementation proposal*
> Divide by two (in-memory and persistent):
> * 
> *org.apache.ignite.internal.pagememory.configuration.schema.PageMemoryDataRegionConfigurationSchema*
> * 
> *org.apache.ignite.internal.storage.pagememory.configuration.schema.PageMemoryStorageEngineConfigurationSchema*
> * *org.apache.ignite.internal.storage.pagememory.PageMemoryStorageEngine*



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Resolved] (IGNITE-17164) Absorb RAFT/in-memory/rebalance details

2022-06-20 Thread Roman Puchkovskiy (Jira)


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

Roman Puchkovskiy resolved IGNITE-17164.

Resolution: Done

> Absorb RAFT/in-memory/rebalance details
> ---
>
> Key: IGNITE-17164
> URL: https://issues.apache.org/jira/browse/IGNITE-17164
> Project: Ignite
>  Issue Type: Task
>  Components: persistence
>Reporter: Roman Puchkovskiy
>Assignee: Roman Puchkovskiy
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-alpha6
>
>
> There is a design described in IGNITE-16668.
> To implement the required changes, it is required to read the RAFT paper, see 
> what problems it can cause for volatile cases and how the proposed design 
> solves the problems with the rebalance in volatile RAFT cases.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Created] (IGNITE-17196) Implement in-memory raft group reconfiguration on node failure

2022-06-20 Thread Roman Puchkovskiy (Jira)
Roman Puchkovskiy created IGNITE-17196:
--

 Summary: Implement in-memory raft group reconfiguration on node 
failure
 Key: IGNITE-17196
 URL: https://issues.apache.org/jira/browse/IGNITE-17196
 Project: Ignite
  Issue Type: Improvement
  Components: persistence
Reporter: Roman Puchkovskiy
 Fix For: 3.0.0-alpha6


We need to implement design described in IGNITE-16668



--
This message was sent by Atlassian Jira
(v8.20.7#820007)