[jira] [Updated] (IGNITE-13345) Warming up strategy

2020-08-10 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko updated IGNITE-13345:
-
Description: 
Summary of 
[Dev-list|http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Cache-warmup-td48582.html]

# Adding a marker interface 
*org.apache.ignite.configuration.WarmUpConfiguration*;
# Adding a configuration to
## 
*org.apache.ignite.configuration.DataRegionConfiguration#setWarmUpConfiguration*
## 
*org.apache.ignite.configuration.DataStorageConfiguration#setDefaultWarmUpConfiguration*
# Add an internal warm-up interface that will start in [1] after [2] (after 
recovery);
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;

import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.configuration.WarmUpConfiguration;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.processors.cache.persistence.DataRegion;

/**
 * Interface for warming up.
 */
public interface WarmUpStrategy {
/**
 * Returns configuration class for mapping to strategy.
 *
 * @return Configuration class.
 */
Class configClass();

/**
 * Warm up.
 *
 * @param kernalCtx Kernal context.
 * @param cfg   Warm-up configuration.
 * @param regionData region.
 * @throws IgniteCheckedException if faild.
 */
void warmUp(GridKernalContext kernalCtx, T cfg, DataRegion region) throws 
IgniteCheckedException;

/**
 * Closing warm up.
 *
 * @throws IgniteCheckedException if faild.
 */
void close() throws IgniteCheckedException;
}
{code}
# Adding an internal plugin extension for add own strategies;
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;
 
import java.util.Collection;
import org.apache.ignite.plugin.Extension;
 
/**
 * Interface for getting warm-up strategies from plugins.
 */
public interface WarmUpStrategySupplier extends Extension {
/**
 * Getting warm-up strategies.
 *
 * @return Warm-up strategies.
 */
Collection strategies();
}
{code}
# Adding strategies:
## Without implementation, for the possibility of disabling the warm-up: 
*org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUp*, 
*org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUpConfiguration*
## Loading everything while there is RAM with priority to indexes: 
*org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUp*, 
*org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUpConfiguration*
# Add a command to "control.sh", to stop current warm-up and cancel all others: 
--warm-up stop

[1] - 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#afterLogicalUpdatesApplied
[2] - 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#restorePartitionStates

  was:
Summary of 
[Dev-list|http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Cache-warmup-td48582.html]

# Adding a marker interface 
*org.apache.ignite.configuration.WarmUpConfiguratio*n;
# Adding a configuration to
## 
*org.apache.ignite.configuration.DataRegionConfiguration#setWarmUpConfiguration*
## 
*org.apache.ignite.configuration.DataStorageConfiguration#setDefaultWarmUpConfiguration*
# Add an internal warm-up interface that will start in [1] after [2] (after 
recovery);
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;

import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.configuration.WarmUpConfiguration;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.processors.cache.persistence.DataRegion;

/**
 * Interface for warming up.
 */
public interface WarmUpStrategy {
/**
 * Returns configuration class for mapping to strategy.
 *
 * @return Configuration class.
 */
Class configClass();

/**
 * Warm up.
 *
 * @param kernalCtx Kernal context.
 * @param cfg   Warm-up configuration.
 * @param regionData region.
 * @throws IgniteCheckedException if faild.
 */
void warmUp(GridKernalContext kernalCtx, T cfg, DataRegion region) throws 
IgniteCheckedException;

/**
 * Closing warm up.
 *
 * @throws IgniteCheckedException if faild.
 */
void close() throws IgniteCheckedException;
}
{code}
# Adding an internal plugin extension for add own strategies;
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;
 
import java.util.Collection;
import org.apache.ignite.plugin.Extension;
 
/**
 * Interface for getting warm-up strategies from plugins.
 */
public interface WarmUpStrategySupplier extends Extension {
/**
 * Getting warm-up strategies.
 *
 * @return Warm-up strategies.
 */
Collection strategies();
}
{code}
# Adding strategies:
## Without implementation, for the possibility 

[jira] [Updated] (IGNITE-13345) Warming up strategy

2020-08-10 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko updated IGNITE-13345:
-
Summary: Warming up strategy  (was: Warming up node)

> Warming up strategy
> ---
>
> Key: IGNITE-13345
> URL: https://issues.apache.org/jira/browse/IGNITE-13345
> Project: Ignite
>  Issue Type: New Feature
>Reporter: Kirill Tkalenko
>Assignee: Kirill Tkalenko
>Priority: Major
>  Labels: IEP-40
> Fix For: 2.10
>
>
> Summary of 
> [Dev-list|http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Cache-warmup-td48582.html]
> # Adding a marker interface 
> *org.apache.ignite.configuration.WarmUpConfiguratio*n;
> # Adding a configuration to
> ## 
> *org.apache.ignite.configuration.DataRegionConfiguration#setWarmUpConfiguration*
> ## 
> *org.apache.ignite.configuration.DataStorageConfiguration#setDefaultWarmUpConfiguration*
> # Add an internal warm-up interface that will start in [1] after [2] (after 
> recovery);
> {code:java}
> package org.apache.ignite.internal.processors.cache.warmup;
> import org.apache.ignite.IgniteCheckedException;
> import org.apache.ignite.configuration.WarmUpConfiguration;
> import org.apache.ignite.internal.GridKernalContext;
> import org.apache.ignite.internal.processors.cache.persistence.DataRegion;
> /**
>  * Interface for warming up.
>  */
> public interface WarmUpStrategy {
> /**
>  * Returns configuration class for mapping to strategy.
>  *
>  * @return Configuration class.
>  */
> Class configClass();
> /**
>  * Warm up.
>  *
>  * @param kernalCtx Kernal context.
>  * @param cfg   Warm-up configuration.
>  * @param regionData region.
>  * @throws IgniteCheckedException if faild.
>  */
> void warmUp(GridKernalContext kernalCtx, T cfg, DataRegion region) throws 
> IgniteCheckedException;
> /**
>  * Closing warm up.
>  *
>  * @throws IgniteCheckedException if faild.
>  */
> void close() throws IgniteCheckedException;
> }
> {code}
> # Adding an internal plugin extension for add own strategies;
> {code:java}
> package org.apache.ignite.internal.processors.cache.warmup;
>  
> import java.util.Collection;
> import org.apache.ignite.plugin.Extension;
>  
> /**
>  * Interface for getting warm-up strategies from plugins.
>  */
> public interface WarmUpStrategySupplier extends Extension {
> /**
>  * Getting warm-up strategies.
>  *
>  * @return Warm-up strategies.
>  */
> Collection strategies();
> }
> {code}
> # Adding strategies:
> ## Without implementation, for the possibility of disabling the warm-up: 
> *org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUp*, 
> *org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUpConfiguration*
> ## Loading everything while there is RAM with priority to indexes: 
> *org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUp*, 
> *org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUpConfiguration*
> # Add a command to "control.sh", to stop current warm-up and cancel all 
> others: --warm-up stop
> [1] - 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#afterLogicalUpdatesApplied
> [2] - 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#restorePartitionStates



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-13219) Slf4jLogger does not implement the LoggerNodeIdAware interface.

2020-08-10 Thread YuJue Li (Jira)


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

YuJue Li reassigned IGNITE-13219:
-

Assignee: YuJue Li

> Slf4jLogger does not implement the LoggerNodeIdAware interface.
> ---
>
> Key: IGNITE-13219
> URL: https://issues.apache.org/jira/browse/IGNITE-13219
> Project: Ignite
>  Issue Type: Improvement
>  Components: general
>Affects Versions: 2.8.1
>Reporter: YuJue Li
>Assignee: YuJue Li
>Priority: Minor
> Fix For: 2.10
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> In the scenario of ignite + slf4j + log4j2, the generated log file is named 
> ignite-${sys:nodeId}.log, The reason for this problem is that Slf4jLogger 
> does not implement the
> LoggerNodeIdAware interface.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-13219) Slf4jLogger does not implement the LoggerNodeIdAware interface.

2020-08-10 Thread YuJue Li (Jira)


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

YuJue Li reassigned IGNITE-13219:
-

Assignee: (was: YuJue Li)

> Slf4jLogger does not implement the LoggerNodeIdAware interface.
> ---
>
> Key: IGNITE-13219
> URL: https://issues.apache.org/jira/browse/IGNITE-13219
> Project: Ignite
>  Issue Type: Improvement
>  Components: general
>Affects Versions: 2.8.1
>Reporter: YuJue Li
>Priority: Minor
> Fix For: 2.10
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> In the scenario of ignite + slf4j + log4j2, the generated log file is named 
> ignite-${sys:nodeId}.log, The reason for this problem is that Slf4jLogger 
> does not implement the
> LoggerNodeIdAware interface.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-13346) “Joining persistence node to in-memory cluster couldn't be allowed” Verification is too strict

2020-08-10 Thread YuJue Li (Jira)
YuJue Li created IGNITE-13346:
-

 Summary: “Joining persistence node to in-memory cluster couldn't 
be allowed” Verification is too strict
 Key: IGNITE-13346
 URL: https://issues.apache.org/jira/browse/IGNITE-13346
 Project: Ignite
  Issue Type: Improvement
  Components: persistence
Affects Versions: 2.8.1
Reporter: YuJue Li
 Fix For: 2.10


1.Start a node that turns on persistence and then activate

2.Start visor and connect to cluster

3.Stop the node and restart the node

4.the node start failer and the exception are as folloews:

Caused by: class org.apache.ignite.spi.IgniteSpiException: Joining persistence 
node to in-memory cluster couldn't be allowed due to baseline auto-adjust is 
enabled and timeout equal to 0

I think there may be problems with the verification logic here. There are two 
possible solutions:

1.Relax the restrictions and exclude the client nodes.

2.Point out the IP address corresponding to the in-memory cluster node, which 
is convenient for troubleshooting.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-13151) Checkpointer code refactoring: extracting classes from GridCacheDatabaseSharedManager

2020-08-10 Thread Andrey N. Gura (Jira)


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

Andrey N. Gura commented on IGNITE-13151:
-

[~akalashnikov] LGTM. But a couple of comments:
- newly created classes should be documented better and more carefully;
- it's surprising to me that {{DbCheckpointContextImpl}} has {{Db}} prefix 
while other new classes don't have such prefix.

> Checkpointer code refactoring: extracting classes from 
> GridCacheDatabaseSharedManager
> -
>
> Key: IGNITE-13151
> URL: https://issues.apache.org/jira/browse/IGNITE-13151
> Project: Ignite
>  Issue Type: Sub-task
>  Components: persistence
>Reporter: Sergey Chugunov
>Assignee: Anton Kalashnikov
>Priority: Major
>  Labels: IEP-47
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Checkpointer is at the center of Ignite persistence subsystem and more people 
> from the community understand it the better means it is more stable and more 
> efficient.
> However for now checkpointer code sits inside of 
> GridCacheDatabaseSharedManager class and is entangled with this higher-level 
> and more general component.
> To take a step forward to more modular checkpointer we need to do two things:
>  # Move checkpointer code outside database manager to a separate class. 
> (That's what this ticket is about.)
>  # Create a well-defined API of checkpointer that will allow us to create new 
> implementations of checkpointer in the future. An example of this is new 
> checkpointer implementation needed for defragmentation feature purposes. 
> (Should be done in a separate ticket)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-13327) Add a metric for processed keys when rebuilding indexes.

2020-08-10 Thread Ivan Rakov (Jira)


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

Ivan Rakov commented on IGNITE-13327:
-

[~ktkale...@gridgain.com] I've shared my thoughts regarding the suggested 
metric on the dev list.

> Add a metric for processed keys when rebuilding indexes.
> 
>
> Key: IGNITE-13327
> URL: https://issues.apache.org/jira/browse/IGNITE-13327
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Kirill Tkalenko
>Assignee: Kirill Tkalenko
>Priority: Major
> Fix For: 2.10
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> It would be useful to understand how long it will take to rebuild indexes, 
> since there can be a lot of data and indexes. Now there are following metrics 
> that allow to estimate approximately how many indexes are left to rebuild:
> # IsIndexRebuildInProgress - rebuilding cache indexes in the process;
> # IndexBuildCountPartitionsLeft - remaining number of partitions (by cache 
> group) to rebuild indexes for.
> For a more accurate estimate, I suggest adding a metric for caches "Number of 
> keys processed when rebuilding indexes" with the name 
> "IndexRebuildKeyProcessed". This way we can estimate for cache how much index 
> rebuilding will take. To do this, we can get "CacheSize" and use new metric 
> to find out how many keys are left to process.
> I also suggest adding methods:
> # org.apache.ignite.cache.CacheMetrics#getIndexRebuildKeyProcessed
> # org.apache.ignite.cache.CacheMetrics#IsIndexRebuildInProgress



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-13345) Warming up node

2020-08-10 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko updated IGNITE-13345:
-
Labels: IEP-40  (was: )

> Warming up node
> ---
>
> Key: IGNITE-13345
> URL: https://issues.apache.org/jira/browse/IGNITE-13345
> Project: Ignite
>  Issue Type: New Feature
>Reporter: Kirill Tkalenko
>Assignee: Kirill Tkalenko
>Priority: Major
>  Labels: IEP-40
> Fix For: 2.10
>
>
> Summary of 
> [Dev-list|http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Cache-warmup-td48582.html]
> # Adding a marker interface 
> *org.apache.ignite.configuration.WarmUpConfiguratio*n;
> # Adding a configuration to
> ## 
> *org.apache.ignite.configuration.DataRegionConfiguration#setWarmUpConfiguration*
> ## 
> *org.apache.ignite.configuration.DataStorageConfiguration#setDefaultWarmUpConfiguration*
> # Add an internal warm-up interface that will start in [1] after [2] (after 
> recovery);
> {code:java}
> package org.apache.ignite.internal.processors.cache.warmup;
> import org.apache.ignite.IgniteCheckedException;
> import org.apache.ignite.configuration.WarmUpConfiguration;
> import org.apache.ignite.internal.GridKernalContext;
> import org.apache.ignite.internal.processors.cache.persistence.DataRegion;
> /**
>  * Interface for warming up.
>  */
> public interface WarmUpStrategy {
> /**
>  * Returns configuration class for mapping to strategy.
>  *
>  * @return Configuration class.
>  */
> Class configClass();
> /**
>  * Warm up.
>  *
>  * @param kernalCtx Kernal context.
>  * @param cfg   Warm-up configuration.
>  * @param regionData region.
>  * @throws IgniteCheckedException if faild.
>  */
> void warmUp(GridKernalContext kernalCtx, T cfg, DataRegion region) throws 
> IgniteCheckedException;
> /**
>  * Closing warm up.
>  *
>  * @throws IgniteCheckedException if faild.
>  */
> void close() throws IgniteCheckedException;
> }
> {code}
> # Adding an internal plugin extension for add own strategies;
> {code:java}
> package org.apache.ignite.internal.processors.cache.warmup;
>  
> import java.util.Collection;
> import org.apache.ignite.plugin.Extension;
>  
> /**
>  * Interface for getting warm-up strategies from plugins.
>  */
> public interface WarmUpStrategySupplier extends Extension {
> /**
>  * Getting warm-up strategies.
>  *
>  * @return Warm-up strategies.
>  */
> Collection strategies();
> }
> {code}
> # Adding strategies:
> ## Without implementation, for the possibility of disabling the warm-up: 
> *org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUp*, 
> *org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUpConfiguration*
> ## Loading everything while there is RAM with priority to indexes: 
> *org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUp*, 
> *org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUpConfiguration*
> # Add a command to "control.sh", to stop current warm-up and cancel all 
> others: --warm-up stop
> [1] - 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#afterLogicalUpdatesApplied
> [2] - 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#restorePartitionStates



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-13345) Warming up node

2020-08-10 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko updated IGNITE-13345:
-
Description: 
Summary of 
[Dev-list|http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Cache-warmup-td48582.html]

# Adding a marker interface 
*org.apache.ignite.configuration.WarmUpConfiguratio*n;
# Adding a configuration to
## 
*org.apache.ignite.configuration.DataRegionConfiguration#setWarmUpConfiguration*
## 
*org.apache.ignite.configuration.DataStorageConfiguration#setDefaultWarmUpConfiguration*
# Add an internal warm-up interface that will start in [1] after [2] (after 
recovery);
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;

import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.configuration.WarmUpConfiguration;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.processors.cache.persistence.DataRegion;

/**
 * Interface for warming up.
 */
public interface WarmUpStrategy {
/**
 * Returns configuration class for mapping to strategy.
 *
 * @return Configuration class.
 */
Class configClass();

/**
 * Warm up.
 *
 * @param kernalCtx Kernal context.
 * @param cfg   Warm-up configuration.
 * @param regionData region.
 * @throws IgniteCheckedException if faild.
 */
void warmUp(GridKernalContext kernalCtx, T cfg, DataRegion region) throws 
IgniteCheckedException;

/**
 * Closing warm up.
 *
 * @throws IgniteCheckedException if faild.
 */
void close() throws IgniteCheckedException;
}
{code}
# Adding an internal plugin extension for add own strategies;
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;
 
import java.util.Collection;
import org.apache.ignite.plugin.Extension;
 
/**
 * Interface for getting warm-up strategies from plugins.
 */
public interface WarmUpStrategySupplier extends Extension {
/**
 * Getting warm-up strategies.
 *
 * @return Warm-up strategies.
 */
Collection strategies();
}
{code}
# Adding strategies:
## Without implementation, for the possibility of disabling the warm-up: 
*org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUp*, 
*org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUpConfiguration*
## Loading everything while there is RAM with priority to indexes: 
*org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUp*, 
*org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUpConfiguration*
# Add a command to "control.sh", to stop current warm-up and cancel all others: 
--warm-up stop

[1] - 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#afterLogicalUpdatesApplied
[2] - 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#restorePartitionStates

  was:
Summary of 
[http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Cache-warmup-td48582.html|Dev-list]:

# Adding a marker interface 
*org.apache.ignite.configuration.WarmUpConfiguratio*n;
# Adding a configuration to
## 
*org.apache.ignite.configuration.DataRegionConfiguration#setWarmUpConfiguration*
## 
*org.apache.ignite.configuration.DataStorageConfiguration#setDefaultWarmUpConfiguration*
# Add an internal warm-up interface that will start in [1] after [2] (after 
recovery);
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;

import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.configuration.WarmUpConfiguration;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.processors.cache.persistence.DataRegion;

/**
 * Interface for warming up.
 */
public interface WarmUpStrategy {
/**
 * Returns configuration class for mapping to strategy.
 *
 * @return Configuration class.
 */
Class configClass();

/**
 * Warm up.
 *
 * @param kernalCtx Kernal context.
 * @param cfg   Warm-up configuration.
 * @param regionData region.
 * @throws IgniteCheckedException if faild.
 */
void warmUp(GridKernalContext kernalCtx, T cfg, DataRegion region) throws 
IgniteCheckedException;

/**
 * Closing warm up.
 *
 * @throws IgniteCheckedException if faild.
 */
void close() throws IgniteCheckedException;
}
{code}
# Adding an internal plugin extension for add own strategies;
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;
 
import java.util.Collection;
import org.apache.ignite.plugin.Extension;
 
/**
 * Interface for getting warm-up strategies from plugins.
 */
public interface WarmUpStrategySupplier extends Extension {
/**
 * Getting warm-up strategies.
 *
 * @return Warm-up strategies.
 */
Collection strategies();
}
{code}
# Adding strategies:
## Without implementation, for the possibility 

[jira] [Updated] (IGNITE-13345) Warming up node

2020-08-10 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko updated IGNITE-13345:
-
Description: 
Summary of 
[http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Cache-warmup-td48582.html|Dev-list]:

# Adding a marker interface 
*org.apache.ignite.configuration.WarmUpConfiguratio*n;
# Adding a configuration to
## 
*org.apache.ignite.configuration.DataRegionConfiguration#setWarmUpConfiguration*
## 
*org.apache.ignite.configuration.DataStorageConfiguration#setDefaultWarmUpConfiguration*
# Add an internal warm-up interface that will start in [1] after [2] (after 
recovery);
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;

import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.configuration.WarmUpConfiguration;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.processors.cache.persistence.DataRegion;

/**
 * Interface for warming up.
 */
public interface WarmUpStrategy {
/**
 * Returns configuration class for mapping to strategy.
 *
 * @return Configuration class.
 */
Class configClass();

/**
 * Warm up.
 *
 * @param kernalCtx Kernal context.
 * @param cfg   Warm-up configuration.
 * @param regionData region.
 * @throws IgniteCheckedException if faild.
 */
void warmUp(GridKernalContext kernalCtx, T cfg, DataRegion region) throws 
IgniteCheckedException;

/**
 * Closing warm up.
 *
 * @throws IgniteCheckedException if faild.
 */
void close() throws IgniteCheckedException;
}
{code}
# Adding an internal plugin extension for add own strategies;
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;
 
import java.util.Collection;
import org.apache.ignite.plugin.Extension;
 
/**
 * Interface for getting warm-up strategies from plugins.
 */
public interface WarmUpStrategySupplier extends Extension {
/**
 * Getting warm-up strategies.
 *
 * @return Warm-up strategies.
 */
Collection strategies();
}
{code}
# Adding strategies:
## Without implementation, for the possibility of disabling the warm-up: 
*org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUp*, 
*org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUpConfiguration*
## Loading everything while there is RAM with priority to indexes: 
*org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUp*, 
*org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUpConfiguration*
# Add a command to "control.sh", to stop current warm-up and cancel all others: 
--warm-up stop

[1] - 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#afterLogicalUpdatesApplied
[2] - 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#restorePartitionStates

  was:
Summary of 
[http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Cache-warmup-td48582.html|Dev-list]:

# Adding a marker interface 
*org.apache.ignite.configuration.WarmUpConfiguratio*n;
# Adding a configuration to
## 
*org.apache.ignite.configuration.DataRegionConfiguration#setWarmUpConfiguration*
## 
*org.apache.ignite.configuration.DataStorageConfiguration#setDefaultWarmUpConfiguration*
# Add an internal warm-up interface that will start in [1] after [2] (after 
recovery);
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;

import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.configuration.WarmUpConfiguration;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.processors.cache.persistence.DataRegion;

/**
 * Interface for warming up.
 */
public interface WarmUpStrategy {
/**
 * Returns configuration class for mapping to strategy.
 *
 * @return Configuration class.
 */
Class configClass();

/**
 * Warm up.
 *
 * @param kernalCtx Kernal context.
 * @param cfg   Warm-up configuration.
 * @param regionData region.
 * @throws IgniteCheckedException if faild.
 */
void warmUp(GridKernalContext kernalCtx, T cfg, DataRegion region) throws 
IgniteCheckedException;

/**
 * Closing warm up.
 *
 * @throws IgniteCheckedException if faild.
 */
void close() throws IgniteCheckedException;
}
{code}
# Adding an internal plugin extension for add own strategies;
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;
 
import java.util.Collection;
import org.apache.ignite.plugin.Extension;
 
/**
 * Interface for getting warm-up strategies from plugins.
 */
public interface WarmUpStrategySupplier extends Extension {
/**
 * Getting warm-up strategies.
 *
 * @return Warm-up strategies.
 */
Collection strategies();
}
{code}# Adding strategies:
## Without implementation, for the possibility 

[jira] [Updated] (IGNITE-13345) Warming up node

2020-08-10 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko updated IGNITE-13345:
-
Description: 
Summary of 
[http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Cache-warmup-td48582.html|Dev-list]:

# Adding a marker interface 
*org.apache.ignite.configuration.WarmUpConfiguratio*n;
# Adding a configuration to
## 
*org.apache.ignite.configuration.DataRegionConfiguration#setWarmUpConfiguration*
## 
*org.apache.ignite.configuration.DataStorageConfiguration#setDefaultWarmUpConfiguration*
# Add an internal warm-up interface that will start in [1] after [2] (after 
recovery);
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;

import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.configuration.WarmUpConfiguration;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.processors.cache.persistence.DataRegion;

/**
 * Interface for warming up.
 */
public interface WarmUpStrategy {
/**
 * Returns configuration class for mapping to strategy.
 *
 * @return Configuration class.
 */
Class configClass();

/**
 * Warm up.
 *
 * @param kernalCtx Kernal context.
 * @param cfg   Warm-up configuration.
 * @param regionData region.
 * @throws IgniteCheckedException if faild.
 */
void warmUp(GridKernalContext kernalCtx, T cfg, DataRegion region) throws 
IgniteCheckedException;

/**
 * Closing warm up.
 *
 * @throws IgniteCheckedException if faild.
 */
void close() throws IgniteCheckedException;
}
{code}
# Adding an internal plugin extension for add own strategies;
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;
 
import java.util.Collection;
import org.apache.ignite.plugin.Extension;
 
/**
 * Interface for getting warm-up strategies from plugins.
 */
public interface WarmUpStrategySupplier extends Extension {
/**
 * Getting warm-up strategies.
 *
 * @return Warm-up strategies.
 */
Collection strategies();
}
{code}# Adding strategies:
## Without implementation, for the possibility of disabling the warm-up: 
*org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUp*, 
*org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUpConfiguration*
## Loading everything while there is RAM with priority to indexes: 
*org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUp*, 
*org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUpConfiguration*

# Add a command to "control.sh", to stop current warm-up and cancel all others: 
--warm-up stop

[1] - 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#afterLogicalUpdatesApplied
[2] - 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#restorePartitionStates

  was:
Summary of 
[http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Cache-warmup-td48582.html|Dev-list]:

# Adding a marker interface 
*org.apache.ignite.configuration.WarmUpConfiguratio*n;
# Adding a configuration to
## 
*org.apache.ignite.configuration.DataRegionConfiguration#setWarmUpConfiguration*
## 
*org.apache.ignite.configuration.DataStorageConfiguration#setDefaultWarmUpConfiguration*
# Add an internal warm-up interface that will start in [1] after [2] (after 
recovery);
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;

import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.configuration.WarmUpConfiguration;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.processors.cache.persistence.DataRegion;

/**
 * Interface for warming up.
 */
public interface WarmUpStrategy {
/**
 * Returns configuration class for mapping to strategy.
 *
 * @return Configuration class.
 */
Class configClass();

/**
 * Warm up.
 *
 * @param kernalCtx Kernal context.
 * @param cfg   Warm-up configuration.
 * @param regionData region.
 * @throws IgniteCheckedException if faild.
 */
void warmUp(GridKernalContext kernalCtx, T cfg, DataRegion region) throws 
IgniteCheckedException;

/**
 * Closing warm up.
 *
 * @throws IgniteCheckedException if faild.
 */
void close() throws IgniteCheckedException;
}
{code}
# Adding an internal plugin extension for add own strategies;
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;
 
import java.util.Collection;
import org.apache.ignite.plugin.Extension;
 
/**
 * Interface for getting warm-up strategies from plugins.
 */
public interface WarmUpStrategySupplier extends Extension {
/**
 * Getting warm-up strategies.
 *
 * @return Warm-up strategies.
 */
Collection strategies();
}
{code}
# Adding strategies:
## Without implementation, for the possibility 

[jira] [Updated] (IGNITE-13345) Warming up node

2020-08-10 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko updated IGNITE-13345:
-
Description: 
Summary of 
[http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Cache-warmup-td48582.html|Dev-list]:

# Adding a marker interface 
*org.apache.ignite.configuration.WarmUpConfiguratio*n;
# Adding a configuration to
## 
*org.apache.ignite.configuration.DataRegionConfiguration#setWarmUpConfiguration*
## 
*org.apache.ignite.configuration.DataStorageConfiguration#setDefaultWarmUpConfiguration*
# Add an internal warm-up interface that will start in [1] after [2] (after 
recovery);
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;

import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.configuration.WarmUpConfiguration;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.processors.cache.persistence.DataRegion;

/**
 * Interface for warming up.
 */
public interface WarmUpStrategy {
/**
 * Returns configuration class for mapping to strategy.
 *
 * @return Configuration class.
 */
Class configClass();

/**
 * Warm up.
 *
 * @param kernalCtx Kernal context.
 * @param cfg   Warm-up configuration.
 * @param regionData region.
 * @throws IgniteCheckedException if faild.
 */
void warmUp(GridKernalContext kernalCtx, T cfg, DataRegion region) throws 
IgniteCheckedException;

/**
 * Closing warm up.
 *
 * @throws IgniteCheckedException if faild.
 */
void close() throws IgniteCheckedException;
}
{code}
# Adding an internal plugin extension for add own strategies;
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;
 
import java.util.Collection;
import org.apache.ignite.plugin.Extension;
 
/**
 * Interface for getting warm-up strategies from plugins.
 */
public interface WarmUpStrategySupplier extends Extension {
/**
 * Getting warm-up strategies.
 *
 * @return Warm-up strategies.
 */
Collection strategies();
}
{code}
# Adding strategies:
## Without implementation, for the possibility of disabling the warm-up: 
*org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUp*, 
*org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUpConfiguration*
## Loading everything while there is RAM with priority to indexes: 
*org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUp*, 
*org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUpConfiguration*

# Add a command to "control.sh", to stop current warm-up and cancel all others: 
--warm-up stop

[1] - 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#afterLogicalUpdatesApplied
[2] - 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#restorePartitionStates

  was:
Summary of 
[http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Cache-warmup-td48582.html|Dev-list]:

# Adding a marker interface 
*org.apache.ignite.configuration.WarmUpConfiguratio*n;
# Adding a configuration to
* 
*org.apache.ignite.configuration.DataRegionConfiguration#setWarmUpConfiguration*
* 
*org.apache.ignite.configuration.DataStorageConfiguration#setDefaultWarmUpConfiguration*
# Add an internal warm-up interface that will start in [1] after [2] (after 
recovery);
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;

import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.configuration.WarmUpConfiguration;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.processors.cache.persistence.DataRegion;

/**
 * Interface for warming up.
 */
public interface WarmUpStrategy {
/**
 * Returns configuration class for mapping to strategy.
 *
 * @return Configuration class.
 */
Class configClass();

/**
 * Warm up.
 *
 * @param kernalCtx Kernal context.
 * @param cfg   Warm-up configuration.
 * @param regionData region.
 * @throws IgniteCheckedException if faild.
 */
void warmUp(GridKernalContext kernalCtx, T cfg, DataRegion region) throws 
IgniteCheckedException;

/**
 * Closing warm up.
 *
 * @throws IgniteCheckedException if faild.
 */
void close() throws IgniteCheckedException;
}
{code}


# Adding an internal plugin extension for add own strategies;
 

{code:java}
package org.apache.ignite.internal.processors.cache.warmup;
 
import java.util.Collection;
import org.apache.ignite.plugin.Extension;
 
/**
 * Interface for getting warm-up strategies from plugins.
 */
public interface WarmUpStrategySupplier extends Extension {
/**
 * Getting warm-up strategies.
 *
 * @return Warm-up strategies.
 */
Collection strategies();
}
{code}

# Adding strategies:
* Without implementation, for the 

[jira] [Updated] (IGNITE-13345) Warming up node

2020-08-10 Thread Kirill Tkalenko (Jira)


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

Kirill Tkalenko updated IGNITE-13345:
-
Description: 
Summary of 
[http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Cache-warmup-td48582.html|Dev-list]:

# Adding a marker interface 
*org.apache.ignite.configuration.WarmUpConfiguratio*n;
# Adding a configuration to
* 
*org.apache.ignite.configuration.DataRegionConfiguration#setWarmUpConfiguration*
* 
*org.apache.ignite.configuration.DataStorageConfiguration#setDefaultWarmUpConfiguration*
# Add an internal warm-up interface that will start in [1] after [2] (after 
recovery);
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;

import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.configuration.WarmUpConfiguration;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.processors.cache.persistence.DataRegion;

/**
 * Interface for warming up.
 */
public interface WarmUpStrategy {
/**
 * Returns configuration class for mapping to strategy.
 *
 * @return Configuration class.
 */
Class configClass();

/**
 * Warm up.
 *
 * @param kernalCtx Kernal context.
 * @param cfg   Warm-up configuration.
 * @param regionData region.
 * @throws IgniteCheckedException if faild.
 */
void warmUp(GridKernalContext kernalCtx, T cfg, DataRegion region) throws 
IgniteCheckedException;

/**
 * Closing warm up.
 *
 * @throws IgniteCheckedException if faild.
 */
void close() throws IgniteCheckedException;
}
{code}


# Adding an internal plugin extension for add own strategies;
 

{code:java}
package org.apache.ignite.internal.processors.cache.warmup;
 
import java.util.Collection;
import org.apache.ignite.plugin.Extension;
 
/**
 * Interface for getting warm-up strategies from plugins.
 */
public interface WarmUpStrategySupplier extends Extension {
/**
 * Getting warm-up strategies.
 *
 * @return Warm-up strategies.
 */
Collection strategies();
}
{code}

# Adding strategies:
* Without implementation, for the possibility of disabling the warm-up: 
*org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUp*, 
*org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUpConfiguration*
* Loading everything while there is RAM with priority to indexes: 
*org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUp*, 
*org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUpConfiguration*

# Add a command to "control.sh", to stop current warm-up and cancel all others: 
--warm-up stop

[1] - 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#afterLogicalUpdatesApplied
[2] - 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#restorePartitionStates

  was:
Summary of 
[http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Cache-warmup-td48582.html|Dev-list]:

# Adding a marker interface 
*org.apache.ignite.configuration.WarmUpConfiguratio*n;

# Adding a configuration to
* 
*org.apache.ignite.configuration.DataRegionConfiguration#setWarmUpConfiguration*
* 
*org.apache.ignite.configuration.DataStorageConfiguration#setDefaultWarmUpConfiguration*

# Add an internal warm-up interface that will start in [1] after [2] (after 
recovery);
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;

import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.configuration.WarmUpConfiguration;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.processors.cache.persistence.DataRegion;

/**
 * Interface for warming up.
 */
public interface WarmUpStrategy {
/**
 * Returns configuration class for mapping to strategy.
 *
 * @return Configuration class.
 */
Class configClass();

/**
 * Warm up.
 *
 * @param kernalCtx Kernal context.
 * @param cfg   Warm-up configuration.
 * @param regionData region.
 * @throws IgniteCheckedException if faild.
 */
void warmUp(GridKernalContext kernalCtx, T cfg, DataRegion region) throws 
IgniteCheckedException;

/**
 * Closing warm up.
 *
 * @throws IgniteCheckedException if faild.
 */
void close() throws IgniteCheckedException;
}
{code}


# Adding an internal plugin extension for add own strategies;
 

{code:java}
package org.apache.ignite.internal.processors.cache.warmup;
 
import java.util.Collection;
import org.apache.ignite.plugin.Extension;
 
/**
 * Interface for getting warm-up strategies from plugins.
 */
public interface WarmUpStrategySupplier extends Extension {
/**
 * Getting warm-up strategies.
 *
 * @return Warm-up strategies.
 */
Collection strategies();
}
{code}

# Adding strategies:
* Without implementation, for the 

[jira] [Created] (IGNITE-13345) Warming up node

2020-08-10 Thread Kirill Tkalenko (Jira)
Kirill Tkalenko created IGNITE-13345:


 Summary: Warming up node
 Key: IGNITE-13345
 URL: https://issues.apache.org/jira/browse/IGNITE-13345
 Project: Ignite
  Issue Type: New Feature
Reporter: Kirill Tkalenko
Assignee: Kirill Tkalenko
 Fix For: 2.10


Summary of 
[http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Cache-warmup-td48582.html|Dev-list]:

# Adding a marker interface 
*org.apache.ignite.configuration.WarmUpConfiguratio*n;

# Adding a configuration to
* 
*org.apache.ignite.configuration.DataRegionConfiguration#setWarmUpConfiguration*
* 
*org.apache.ignite.configuration.DataStorageConfiguration#setDefaultWarmUpConfiguration*

# Add an internal warm-up interface that will start in [1] after [2] (after 
recovery);
{code:java}
package org.apache.ignite.internal.processors.cache.warmup;

import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.configuration.WarmUpConfiguration;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.processors.cache.persistence.DataRegion;

/**
 * Interface for warming up.
 */
public interface WarmUpStrategy {
/**
 * Returns configuration class for mapping to strategy.
 *
 * @return Configuration class.
 */
Class configClass();

/**
 * Warm up.
 *
 * @param kernalCtx Kernal context.
 * @param cfg   Warm-up configuration.
 * @param regionData region.
 * @throws IgniteCheckedException if faild.
 */
void warmUp(GridKernalContext kernalCtx, T cfg, DataRegion region) throws 
IgniteCheckedException;

/**
 * Closing warm up.
 *
 * @throws IgniteCheckedException if faild.
 */
void close() throws IgniteCheckedException;
}
{code}


# Adding an internal plugin extension for add own strategies;
 

{code:java}
package org.apache.ignite.internal.processors.cache.warmup;
 
import java.util.Collection;
import org.apache.ignite.plugin.Extension;
 
/**
 * Interface for getting warm-up strategies from plugins.
 */
public interface WarmUpStrategySupplier extends Extension {
/**
 * Getting warm-up strategies.
 *
 * @return Warm-up strategies.
 */
Collection strategies();
}
{code}

# Adding strategies:
* Without implementation, for the possibility of disabling the warm-up: 
*org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUp*, 
*org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUpConfiguration*
* Loading everything while there is RAM with priority to indexes: 
*org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUp*, 
*org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUpConfiguration*

# Add a command to "control.sh", to stop current warm-up and cancel all others: 
--warm-up stop

[1] - 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#afterLogicalUpdatesApplied
[2] - 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#restorePartitionStates



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-12921) System views design leads to bad user expirience.

2020-08-10 Thread Nikolay Izhikov (Jira)


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

Nikolay Izhikov commented on IGNITE-12921:
--

Hello, [~agura] can you please, take a look at my changes?



> System views design leads to bad user expirience.
> -
>
> Key: IGNITE-12921
> URL: https://issues.apache.org/jira/browse/IGNITE-12921
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.8
>Reporter: Andrey N. Gura
>Assignee: Nikolay Izhikov
>Priority: Critical
>  Labels: IEP-35
> Fix For: 2.10
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Current implementation of system views has broken system behavior which is 
> related with querying system views. 
> Before 2.8 system views were available via SQL queries (if indexing is 
> enabled). It did not depend on any configuration. 
> After implementation of IGNITE-12145 system views available only if 
> {{SqlViewExporterSpi}} is passed to 
> {{IgniteConfiguration.setSystemViewExporterSpi()}}. Now, if an user 
> configures some {{SystemViewExporterSpi}} then provided user configuration 
> will rewrite default configuration and {{SqlViewExporterSpi}} won't be 
> initialized. As result it is impossible to query system views and any query 
> to the views fails with exception. This behavior is not obvious for the user. 
> See tests below.
> The second problem is kind of design problem. System view is internal part of 
> the system and should be available regardless of any exporter configuration 
> (at least via SQL) such as it was implemented before 2.8 release. 
> My suggestion is the following: we should remove {{SqlViewExporterSpi}} and 
> configure all views on indexing module initialization. {{SqlViewExporterSPI}} 
> also doesn't make sense because:
> - it operates by some internal API ({{SchemaManager}}, {{GridKernalContext}}, 
> {{IgniteH2Indexing}}).
> - it doesn't allow to end user to add any new system view.
> Only thing that could be useful is a filtering. But it could be done with SQL.
> Reproducer of broken behavior:
> {code:java}
> package org.apache.ignite.internal.processors.cache.metric;
> import org.apache.ignite.cache.query.SqlFieldsQuery;
> import org.apache.ignite.cluster.ClusterState;
> import org.apache.ignite.configuration.DataRegionConfiguration;
> import org.apache.ignite.configuration.DataStorageConfiguration;
> import org.apache.ignite.configuration.IgniteConfiguration;
> import org.apache.ignite.internal.IgniteEx;
> import org.apache.ignite.spi.systemview.jmx.JmxSystemViewExporterSpi;
> import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
> import org.junit.Test;
> import java.util.HashSet;
> import java.util.List;
> import java.util.Set;
> import static java.util.Arrays.asList;
> import static 
> org.apache.ignite.internal.processors.cache.index.AbstractSchemaSelfTest.queryProcessor;
> public class SystemViewTest extends GridCommonAbstractTest {
> private static boolean useDefaultSpi;
> /** {@inheritDoc} */
> @Override protected IgniteConfiguration getConfiguration(String 
> igniteInstanceName) throws Exception {
> IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
> cfg.setConsistentId(igniteInstanceName);
> cfg.setDataStorageConfiguration(new DataStorageConfiguration()
> .setDataRegionConfigurations(
> new 
> DataRegionConfiguration().setName("in-memory").setMaxSize(100L * 1024 * 1024))
> .setDefaultDataRegionConfiguration(
> new DataRegionConfiguration()
> .setPersistenceEnabled(true)));
> if (!useDefaultSpi) {
> // Configure user provided system view exporter SPI.
> cfg.setSystemViewExporterSpi(new JmxSystemViewExporterSpi());
> }
> return cfg;
> }
> /**
>  * Will executed succefully.
>  */
> @Test
> public void testSystemViewWithDefaultSpi() throws Exception {
> useDefaultSpi = true;
> doTestSystemView();
> }
> /**
>  * Will fail with Table "VIEWS" not found.
>  */
> @Test
> public void testSystemViewWithCustomSpi() throws Exception {
> useDefaultSpi = false;
> doTestSystemView();
> }
> private void doTestSystemView() throws Exception {
> try (IgniteEx ignite = startGrid()) {
> ignite.cluster().state(ClusterState.ACTIVE);
> Set cacheNames = new HashSet<>(asList("cache-1", 
> "cache-2"));
> for (String name : cacheNames)
> ignite.getOrCreateCache(name);
> SqlFieldsQuery qry = new SqlFieldsQuery("SELECT * FROM 
> SYS.VIEWS");
> List> res = 

[jira] [Commented] (IGNITE-13102) IgniteCache#isClosed() returns false on server node even if the cache had been closed before.

2020-08-10 Thread Konstantin Sirotkin (Jira)


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

Konstantin Sirotkin commented on IGNITE-13102:
--

[~zstan], done.

> IgniteCache#isClosed() returns false on server node even if the cache had 
> been closed before.
> -
>
> Key: IGNITE-13102
> URL: https://issues.apache.org/jira/browse/IGNITE-13102
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.8, 2.8.1
>Reporter: Sergey Antonov
>Assignee: Konstantin Sirotkin
>Priority: Major
> Fix For: 2.10
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> IgniteCache#isClosed() still returns {{false}} even after 
> {{IgniteCache#close()}}. Only server nodes affect by this problem. 
> Simple reproducer:
> {code:java}
> @Test
> public void test() throws Exception {
> IgniteEx node = startGrid(0);
> IgniteCache cache = 
> node.getOrCreateCache(DEFAULT_CACHE_NAME);
> assertFalse(cache.isClosed());
> cache.close();
> // java.lang.AssertionError
> assertTrue(cache.isClosed());
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-13125) SQL regressions framework: Random query generation

2020-08-10 Thread Roman Kondakov (Jira)


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

Roman Kondakov commented on IGNITE-13125:
-

Hi [~korlov]! Feel free to pick up this ticket. Unfortunately I don't have 
enough time to complete this task right now. Thanks! 

> SQL regressions framework: Random query generation
> --
>
> Key: IGNITE-13125
> URL: https://issues.apache.org/jira/browse/IGNITE-13125
> Project: Ignite
>  Issue Type: Test
>  Components: sql
>Reporter: Roman Kondakov
>Assignee: Roman Kondakov
>Priority: Major
>
> We need to build a framework for random SQL query generation. At first 
> iteration it should be able to generate at least randomized joins queries.  
> As a reference implementation we can take 
> [SqlSmith|https://github.com/anse1/sqlsmith] or build something similar to it.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-12492) TDE - Phase-2. Documentation.

2020-08-10 Thread Amelchev Nikita (Jira)


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

Amelchev Nikita commented on IGNITE-12492:
--

I have prepared documentation for the site: 
https://docs.google.com/document/d/1CjS80nXbQhr3bzXCEboI-DSSFGuuatajpCqwyCTv0n8/edit?usp=drivesdk

> TDE - Phase-2. Documentation.
> -
>
> Key: IGNITE-12492
> URL: https://issues.apache.org/jira/browse/IGNITE-12492
> Project: Ignite
>  Issue Type: Sub-task
>  Components: documentation
>Reporter: Amelchev Nikita
>Assignee: Amelchev Nikita
>Priority: Major
>  Labels: important
> Fix For: 2.9
>
>
> Add documentation for the master key change process.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-13125) SQL regressions framework: Random query generation

2020-08-10 Thread Konstantin Orlov (Jira)


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

Konstantin Orlov commented on IGNITE-13125:
---

Hi, [~rkondakov]! Are you still working on this? If no, don't you mind if I 
assign the ticket to myself?

 

> SQL regressions framework: Random query generation
> --
>
> Key: IGNITE-13125
> URL: https://issues.apache.org/jira/browse/IGNITE-13125
> Project: Ignite
>  Issue Type: Test
>  Components: sql
>Reporter: Roman Kondakov
>Assignee: Roman Kondakov
>Priority: Major
>
> We need to build a framework for random SQL query generation. At first 
> iteration it should be able to generate at least randomized joins queries.  
> As a reference implementation we can take 
> [SqlSmith|https://github.com/anse1/sqlsmith] or build something similar to it.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-13344) [ML] DummyVectorizer fails to extract label for coordinate with value "0.0" when backed by sparse vector

2020-08-10 Thread Alexey Zinoviev (Jira)


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

Alexey Zinoviev commented on IGNITE-13344:
--

[~thilo.ginkel] Great, thanks, I'll take into account and fix in the next 
release

> [ML] DummyVectorizer fails to extract label for coordinate with value "0.0" 
> when backed by sparse vector
> 
>
> Key: IGNITE-13344
> URL: https://issues.apache.org/jira/browse/IGNITE-13344
> Project: Ignite
>  Issue Type: Bug
>  Components: ml
>Affects Versions: 2.8.1
>Reporter: Thilo-Alexander Ginkel
>Assignee: Alexey Zinoviev
>Priority: Minor
>
> Given: A labeled DummyVectorizer:
>  
> {code:java}
> new DummyVectorizer()
>  .exclude(excludeCoordinates.stream().map(coord -> vectorLength + 
> coord).toArray(Integer[]::new))
>  .labeled(labelCoord);
> {code}
> {{When extracting the label, the call hierarchy eventually ends up at 
> org.apache.ignite.ml.dataset.feature.extractor.impl.DummyVectorizer#feature, 
> which returns null for val.getRaw when val is a sparse vector with the 
> element at the requested label coordinate being 0.0. This causes the training 
> job to fail (which expects a non-null label):}}
> {code:java}
> org.apache.ignite.IgniteException: Remote job threw user exception (override 
> or implement ComputeTask.result(..) method if you would like to have 
> automatic failover for this exception): 
> nullorg.apache.ignite.IgniteException: Remote job threw user exception 
> (override or implement ComputeTask.result(..) method if you would like to 
> have automatic failover for this exception): null at 
> org.apache.ignite.compute.ComputeTaskAdapter.result(ComputeTaskAdapter.java:102)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.task.GridTaskWorker$5.apply(GridTaskWorker.java:1062)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.task.GridTaskWorker$5.apply(GridTaskWorker.java:1055)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7037)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.task.GridTaskWorker.result(GridTaskWorker.java:1055)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:862)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.task.GridTaskProcessor.processJobExecuteResponse(GridTaskProcessor.java:1146)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.job.GridJobWorker.finishJob(GridJobWorker.java:961)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.job.GridJobWorker.finishJob(GridJobWorker.java:809)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:659)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:519)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) 
> ~[ignite-core-2.8.1.jar:2.8.1] at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
>  ~[na:na] at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
>  ~[na:na] at java.base/java.lang.Thread.run(Thread.java:832) ~[na:na]Caused 
> by: org.apache.ignite.IgniteException: null at 
> org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.execute(GridClosureProcessor.java:1858)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:596)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7005)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:590)
>  ~[ignite-core-2.8.1.jar:2.8.1] ... 5 common frames omittedCaused by: 
> java.lang.NullPointerException: null at 
> org.apache.ignite.ml.dataset.impl.bootstrapping.BootstrappedDatasetBuilder.build(BootstrappedDatasetBuilder.java:91)
>  ~[ignite-ml-2.8.1.jar:2.8.1] at 
> org.apache.ignite.ml.dataset.impl.bootstrapping.BootstrappedDatasetBuilder.build(BootstrappedDatasetBuilder.java:41)
>  ~[ignite-ml-2.8.1.jar:2.8.1] at 
> org.apache.ignite.ml.dataset.impl.cache.util.ComputeUtils.lambda$getData$4(ComputeUtils.java:239)
>  ~[ignite-ml-2.8.1.jar:2.8.1] at 
> org.apache.ignite.ml.dataset.impl.cache.util.PartitionDataStorage.lambda$computeDataIfAbsent$1(PartitionDataStorage.java:56)
>  ~[ignite-ml-2.8.1.jar:2.8.1] at 
> 

[jira] [Assigned] (IGNITE-13344) [ML] DummyVectorizer fails to extract label for coordinate with value "0.0" when backed by sparse vector

2020-08-10 Thread Alexey Zinoviev (Jira)


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

Alexey Zinoviev reassigned IGNITE-13344:


Assignee: Alexey Zinoviev

> [ML] DummyVectorizer fails to extract label for coordinate with value "0.0" 
> when backed by sparse vector
> 
>
> Key: IGNITE-13344
> URL: https://issues.apache.org/jira/browse/IGNITE-13344
> Project: Ignite
>  Issue Type: Bug
>  Components: ml
>Affects Versions: 2.8.1
>Reporter: Thilo-Alexander Ginkel
>Assignee: Alexey Zinoviev
>Priority: Minor
>
> Given: A labeled DummyVectorizer:
>  
> {code:java}
> new DummyVectorizer()
>  .exclude(excludeCoordinates.stream().map(coord -> vectorLength + 
> coord).toArray(Integer[]::new))
>  .labeled(labelCoord);
> {code}
> {{When extracting the label, the call hierarchy eventually ends up at 
> org.apache.ignite.ml.dataset.feature.extractor.impl.DummyVectorizer#feature, 
> which returns null for val.getRaw when val is a sparse vector with the 
> element at the requested label coordinate being 0.0. This causes the training 
> job to fail (which expects a non-null label):}}
> {code:java}
> org.apache.ignite.IgniteException: Remote job threw user exception (override 
> or implement ComputeTask.result(..) method if you would like to have 
> automatic failover for this exception): 
> nullorg.apache.ignite.IgniteException: Remote job threw user exception 
> (override or implement ComputeTask.result(..) method if you would like to 
> have automatic failover for this exception): null at 
> org.apache.ignite.compute.ComputeTaskAdapter.result(ComputeTaskAdapter.java:102)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.task.GridTaskWorker$5.apply(GridTaskWorker.java:1062)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.task.GridTaskWorker$5.apply(GridTaskWorker.java:1055)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7037)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.task.GridTaskWorker.result(GridTaskWorker.java:1055)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:862)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.task.GridTaskProcessor.processJobExecuteResponse(GridTaskProcessor.java:1146)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.job.GridJobWorker.finishJob(GridJobWorker.java:961)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.job.GridJobWorker.finishJob(GridJobWorker.java:809)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:659)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:519)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) 
> ~[ignite-core-2.8.1.jar:2.8.1] at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
>  ~[na:na] at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
>  ~[na:na] at java.base/java.lang.Thread.run(Thread.java:832) ~[na:na]Caused 
> by: org.apache.ignite.IgniteException: null at 
> org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.execute(GridClosureProcessor.java:1858)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:596)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7005)
>  ~[ignite-core-2.8.1.jar:2.8.1] at 
> org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:590)
>  ~[ignite-core-2.8.1.jar:2.8.1] ... 5 common frames omittedCaused by: 
> java.lang.NullPointerException: null at 
> org.apache.ignite.ml.dataset.impl.bootstrapping.BootstrappedDatasetBuilder.build(BootstrappedDatasetBuilder.java:91)
>  ~[ignite-ml-2.8.1.jar:2.8.1] at 
> org.apache.ignite.ml.dataset.impl.bootstrapping.BootstrappedDatasetBuilder.build(BootstrappedDatasetBuilder.java:41)
>  ~[ignite-ml-2.8.1.jar:2.8.1] at 
> org.apache.ignite.ml.dataset.impl.cache.util.ComputeUtils.lambda$getData$4(ComputeUtils.java:239)
>  ~[ignite-ml-2.8.1.jar:2.8.1] at 
> org.apache.ignite.ml.dataset.impl.cache.util.PartitionDataStorage.lambda$computeDataIfAbsent$1(PartitionDataStorage.java:56)
>  ~[ignite-ml-2.8.1.jar:2.8.1] at 
> java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
>  

[jira] [Updated] (IGNITE-13344) [ML] DummyVectorizer fails to extract label for coordinate with value "0.0" when backed by sparse vector

2020-08-10 Thread Thilo-Alexander Ginkel (Jira)


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

Thilo-Alexander Ginkel updated IGNITE-13344:

Description: 
Given: A labeled DummyVectorizer:

 
{code:java}
new DummyVectorizer()
 .exclude(excludeCoordinates.stream().map(coord -> vectorLength + 
coord).toArray(Integer[]::new))
 .labeled(labelCoord);
{code}
{{When extracting the label, the call hierarchy eventually ends up at 
org.apache.ignite.ml.dataset.feature.extractor.impl.DummyVectorizer#feature, 
which returns null for val.getRaw when val is a sparse vector with the element 
at the requested label coordinate being 0.0. This causes the training job to 
fail (which expects a non-null label):}}
{code:java}
org.apache.ignite.IgniteException: Remote job threw user exception (override or 
implement ComputeTask.result(..) method if you would like to have automatic 
failover for this exception): nullorg.apache.ignite.IgniteException: Remote job 
threw user exception (override or implement ComputeTask.result(..) method if 
you would like to have automatic failover for this exception): null at 
org.apache.ignite.compute.ComputeTaskAdapter.result(ComputeTaskAdapter.java:102)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.task.GridTaskWorker$5.apply(GridTaskWorker.java:1062)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.task.GridTaskWorker$5.apply(GridTaskWorker.java:1055)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7037)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.task.GridTaskWorker.result(GridTaskWorker.java:1055)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:862)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.task.GridTaskProcessor.processJobExecuteResponse(GridTaskProcessor.java:1146)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.job.GridJobWorker.finishJob(GridJobWorker.java:961)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.job.GridJobWorker.finishJob(GridJobWorker.java:809)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:659)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:519)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) 
~[ignite-core-2.8.1.jar:2.8.1] at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
 ~[na:na] at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
 ~[na:na] at java.base/java.lang.Thread.run(Thread.java:832) ~[na:na]Caused by: 
org.apache.ignite.IgniteException: null at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.execute(GridClosureProcessor.java:1858)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:596)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7005)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:590)
 ~[ignite-core-2.8.1.jar:2.8.1] ... 5 common frames omittedCaused by: 
java.lang.NullPointerException: null at 
org.apache.ignite.ml.dataset.impl.bootstrapping.BootstrappedDatasetBuilder.build(BootstrappedDatasetBuilder.java:91)
 ~[ignite-ml-2.8.1.jar:2.8.1] at 
org.apache.ignite.ml.dataset.impl.bootstrapping.BootstrappedDatasetBuilder.build(BootstrappedDatasetBuilder.java:41)
 ~[ignite-ml-2.8.1.jar:2.8.1] at 
org.apache.ignite.ml.dataset.impl.cache.util.ComputeUtils.lambda$getData$4(ComputeUtils.java:239)
 ~[ignite-ml-2.8.1.jar:2.8.1] at 
org.apache.ignite.ml.dataset.impl.cache.util.PartitionDataStorage.lambda$computeDataIfAbsent$1(PartitionDataStorage.java:56)
 ~[ignite-ml-2.8.1.jar:2.8.1] at 
java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
 ~[na:na] at 
org.apache.ignite.ml.dataset.impl.cache.util.PartitionDataStorage.computeDataIfAbsent(PartitionDataStorage.java:56)
 ~[ignite-ml-2.8.1.jar:2.8.1] at 
org.apache.ignite.ml.dataset.impl.cache.util.ComputeUtils.getData(ComputeUtils.java:209)
 ~[ignite-ml-2.8.1.jar:2.8.1] at 
org.apache.ignite.ml.dataset.impl.cache.CacheBasedDataset.lambda$compute$c7cefc59$1(CacheBasedDataset.java:172)
 ~[ignite-ml-2.8.1.jar:2.8.1] at 
org.apache.ignite.ml.dataset.impl.cache.util.ComputeUtils$DeployableCallable.call(ComputeUtils.java:432)
 ~[ignite-ml-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.execute(GridClosureProcessor.java:1855)
 

[jira] [Assigned] (IGNITE-12921) System views design leads to bad user expirience.

2020-08-10 Thread Nikolay Izhikov (Jira)


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

Nikolay Izhikov reassigned IGNITE-12921:


Assignee: Nikolay Izhikov

> System views design leads to bad user expirience.
> -
>
> Key: IGNITE-12921
> URL: https://issues.apache.org/jira/browse/IGNITE-12921
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.8
>Reporter: Andrey N. Gura
>Assignee: Nikolay Izhikov
>Priority: Critical
>  Labels: IEP-35
> Fix For: 2.10
>
>
> Current implementation of system views has broken system behavior which is 
> related with querying system views. 
> Before 2.8 system views were available via SQL queries (if indexing is 
> enabled). It did not depend on any configuration. 
> After implementation of IGNITE-12145 system views available only if 
> {{SqlViewExporterSpi}} is passed to 
> {{IgniteConfiguration.setSystemViewExporterSpi()}}. Now, if an user 
> configures some {{SystemViewExporterSpi}} then provided user configuration 
> will rewrite default configuration and {{SqlViewExporterSpi}} won't be 
> initialized. As result it is impossible to query system views and any query 
> to the views fails with exception. This behavior is not obvious for the user. 
> See tests below.
> The second problem is kind of design problem. System view is internal part of 
> the system and should be available regardless of any exporter configuration 
> (at least via SQL) such as it was implemented before 2.8 release. 
> My suggestion is the following: we should remove {{SqlViewExporterSpi}} and 
> configure all views on indexing module initialization. {{SqlViewExporterSPI}} 
> also doesn't make sense because:
> - it operates by some internal API ({{SchemaManager}}, {{GridKernalContext}}, 
> {{IgniteH2Indexing}}).
> - it doesn't allow to end user to add any new system view.
> Only thing that could be useful is a filtering. But it could be done with SQL.
> Reproducer of broken behavior:
> {code:java}
> package org.apache.ignite.internal.processors.cache.metric;
> import org.apache.ignite.cache.query.SqlFieldsQuery;
> import org.apache.ignite.cluster.ClusterState;
> import org.apache.ignite.configuration.DataRegionConfiguration;
> import org.apache.ignite.configuration.DataStorageConfiguration;
> import org.apache.ignite.configuration.IgniteConfiguration;
> import org.apache.ignite.internal.IgniteEx;
> import org.apache.ignite.spi.systemview.jmx.JmxSystemViewExporterSpi;
> import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
> import org.junit.Test;
> import java.util.HashSet;
> import java.util.List;
> import java.util.Set;
> import static java.util.Arrays.asList;
> import static 
> org.apache.ignite.internal.processors.cache.index.AbstractSchemaSelfTest.queryProcessor;
> public class SystemViewTest extends GridCommonAbstractTest {
> private static boolean useDefaultSpi;
> /** {@inheritDoc} */
> @Override protected IgniteConfiguration getConfiguration(String 
> igniteInstanceName) throws Exception {
> IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
> cfg.setConsistentId(igniteInstanceName);
> cfg.setDataStorageConfiguration(new DataStorageConfiguration()
> .setDataRegionConfigurations(
> new 
> DataRegionConfiguration().setName("in-memory").setMaxSize(100L * 1024 * 1024))
> .setDefaultDataRegionConfiguration(
> new DataRegionConfiguration()
> .setPersistenceEnabled(true)));
> if (!useDefaultSpi) {
> // Configure user provided system view exporter SPI.
> cfg.setSystemViewExporterSpi(new JmxSystemViewExporterSpi());
> }
> return cfg;
> }
> /**
>  * Will executed succefully.
>  */
> @Test
> public void testSystemViewWithDefaultSpi() throws Exception {
> useDefaultSpi = true;
> doTestSystemView();
> }
> /**
>  * Will fail with Table "VIEWS" not found.
>  */
> @Test
> public void testSystemViewWithCustomSpi() throws Exception {
> useDefaultSpi = false;
> doTestSystemView();
> }
> private void doTestSystemView() throws Exception {
> try (IgniteEx ignite = startGrid()) {
> ignite.cluster().state(ClusterState.ACTIVE);
> Set cacheNames = new HashSet<>(asList("cache-1", 
> "cache-2"));
> for (String name : cacheNames)
> ignite.getOrCreateCache(name);
> SqlFieldsQuery qry = new SqlFieldsQuery("SELECT * FROM 
> SYS.VIEWS");
> List> res = queryProcessor(ignite).querySqlFields(qry, 
> true).getAll();
> res.forEach(item -> log.info("VIEW FOUND: " + 

[jira] [Created] (IGNITE-13344) DummyVectorizer fails to extract label for coordinate with value "0.0" when backed by sparse vector

2020-08-10 Thread Thilo-Alexander Ginkel (Jira)
Thilo-Alexander Ginkel created IGNITE-13344:
---

 Summary: DummyVectorizer fails to extract label for coordinate 
with value "0.0" when backed by sparse vector
 Key: IGNITE-13344
 URL: https://issues.apache.org/jira/browse/IGNITE-13344
 Project: Ignite
  Issue Type: Bug
  Components: ml
Affects Versions: 2.8.1
Reporter: Thilo-Alexander Ginkel


Given: A labeled DummyVectorizer:

 
{code:java}
new DummyVectorizer()
 .exclude(excludeCoordinates.stream().map(coord -> vectorLength + 
coord).toArray(Integer[]::new))
 .labeled(labelCoord);
{code}
{{When extracting the label, the call hierarchy eventually ends up at 
org.apache.ignite.ml.dataset.feature.extractor.impl.DummyVectorizer#feature, 
which returns null for val.getRaw when val is a sparse vector with the element 
at the requested label coordinate being 0.0. This causes the training job to 
fail (which expects a non-null label):}}
{noformat}
org.apache.ignite.IgniteException: Remote job threw user exception (override or 
implement ComputeTask.result(..) method if you would like to have automatic 
failover for this exception): nullorg.apache.ignite.IgniteException: Remote job 
threw user exception (override or implement ComputeTask.result(..) method if 
you would like to have automatic failover for this exception): null at 
org.apache.ignite.compute.ComputeTaskAdapter.result(ComputeTaskAdapter.java:102)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.task.GridTaskWorker$5.apply(GridTaskWorker.java:1062)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.task.GridTaskWorker$5.apply(GridTaskWorker.java:1055)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7037)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.task.GridTaskWorker.result(GridTaskWorker.java:1055)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:862)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.task.GridTaskProcessor.processJobExecuteResponse(GridTaskProcessor.java:1146)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.job.GridJobWorker.finishJob(GridJobWorker.java:961)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.job.GridJobWorker.finishJob(GridJobWorker.java:809)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:659)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:519)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) 
~[ignite-core-2.8.1.jar:2.8.1] at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
 ~[na:na] at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
 ~[na:na] at java.base/java.lang.Thread.run(Thread.java:832) ~[na:na]Caused by: 
org.apache.ignite.IgniteException: null at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.execute(GridClosureProcessor.java:1858)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:596)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7005)
 ~[ignite-core-2.8.1.jar:2.8.1] at 
org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:590)
 ~[ignite-core-2.8.1.jar:2.8.1] ... 5 common frames omittedCaused by: 
java.lang.NullPointerException: null at 
org.apache.ignite.ml.dataset.impl.bootstrapping.BootstrappedDatasetBuilder.build(BootstrappedDatasetBuilder.java:91)
 ~[ignite-ml-2.8.1.jar:2.8.1] at 
org.apache.ignite.ml.dataset.impl.bootstrapping.BootstrappedDatasetBuilder.build(BootstrappedDatasetBuilder.java:41)
 ~[ignite-ml-2.8.1.jar:2.8.1] at 
org.apache.ignite.ml.dataset.impl.cache.util.ComputeUtils.lambda$getData$4(ComputeUtils.java:239)
 ~[ignite-ml-2.8.1.jar:2.8.1] at 
org.apache.ignite.ml.dataset.impl.cache.util.PartitionDataStorage.lambda$computeDataIfAbsent$1(PartitionDataStorage.java:56)
 ~[ignite-ml-2.8.1.jar:2.8.1] at 
java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
 ~[na:na] at 
org.apache.ignite.ml.dataset.impl.cache.util.PartitionDataStorage.computeDataIfAbsent(PartitionDataStorage.java:56)
 ~[ignite-ml-2.8.1.jar:2.8.1] at 
org.apache.ignite.ml.dataset.impl.cache.util.ComputeUtils.getData(ComputeUtils.java:209)
 ~[ignite-ml-2.8.1.jar:2.8.1] at 
org.apache.ignite.ml.dataset.impl.cache.CacheBasedDataset.lambda$compute$c7cefc59$1(CacheBasedDataset.java:172)
 ~[ignite-ml-2.8.1.jar:2.8.1] at 

[jira] [Assigned] (IGNITE-12922) SqlViewMetricExporterSpi is redundant entity

2020-08-10 Thread Nikolay Izhikov (Jira)


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

Nikolay Izhikov reassigned IGNITE-12922:


Assignee: Nikolay Izhikov

> SqlViewMetricExporterSpi is redundant entity 
> -
>
> Key: IGNITE-12922
> URL: https://issues.apache.org/jira/browse/IGNITE-12922
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.8
>Reporter: Andrey N. Gura
>Assignee: Nikolay Izhikov
>Priority: Major
>  Labels: IEP-35
> Fix For: 2.10
>
>
> {{SqlViewMetricExporterSpi}} is redundant entity both in terms of design and 
> in terms of user experience.
> {{METRICS}} SQL view is the internal entity that could exist regardless of 
> any exporters configuration. So it should be created on indexing module 
> initialization. Also from an user stand point it is strange to configure 
> special exporter in order to get access to the {{METRICS}} view via SQL.
> See also IGNITE-12921.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (IGNITE-13262) Remove GridClientUtils#shutdownNow() as full duplicate of U#shutdownNow

2020-08-10 Thread Alexey Kuznetsov (Jira)


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

Alexey Kuznetsov resolved IGNITE-13262.
---
Fix Version/s: (was: 2.10)
   Resolution: Won't Fix

This PR conflicts with control utility.

> Remove GridClientUtils#shutdownNow() as full duplicate of U#shutdownNow
> ---
>
> Key: IGNITE-13262
> URL: https://issues.apache.org/jira/browse/IGNITE-13262
> Project: Ignite
>  Issue Type: Task
>  Components: general
>Affects Versions: 2.8.1
>Reporter: Alexey Kuznetsov
>Assignee: Alexey Kuznetsov
>Priority: Minor
>   Original Estimate: 4h
>  Time Spent: 20m
>  Remaining Estimate: 3h 40m
>
> Method o.a.i.internal.client.util.GridClientUtils#shutdownNow is a full 
> duplicate of U#shutdownNow.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Closed] (IGNITE-13262) Remove GridClientUtils#shutdownNow() as full duplicate of U#shutdownNow

2020-08-10 Thread Alexey Kuznetsov (Jira)


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

Alexey Kuznetsov closed IGNITE-13262.
-

> Remove GridClientUtils#shutdownNow() as full duplicate of U#shutdownNow
> ---
>
> Key: IGNITE-13262
> URL: https://issues.apache.org/jira/browse/IGNITE-13262
> Project: Ignite
>  Issue Type: Task
>  Components: general
>Affects Versions: 2.8.1
>Reporter: Alexey Kuznetsov
>Assignee: Alexey Kuznetsov
>Priority: Minor
>   Original Estimate: 4h
>  Time Spent: 20m
>  Remaining Estimate: 3h 40m
>
> Method o.a.i.internal.client.util.GridClientUtils#shutdownNow is a full 
> duplicate of U#shutdownNow.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)