[jira] [Commented] (IGNITE-9244) Partition eviction may use all threads in sys pool, it leads to hangs send a message via sys pool

2018-08-13 Thread ASF GitHub Bot (JIRA)


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

ASF GitHub Bot commented on IGNITE-9244:


Github user DmitriyGovorukhin closed the pull request at:

https://github.com/apache/ignite/pull/4513


> Partition eviction may use all threads in sys pool, it leads to hangs send a 
> message via sys pool 
> --
>
> Key: IGNITE-9244
> URL: https://issues.apache.org/jira/browse/IGNITE-9244
> Project: Ignite
>  Issue Type: Bug
>Reporter: Dmitriy Govorukhin
>Assignee: Dmitriy Govorukhin
>Priority: Major
> Fix For: 2.7
>
>
> In the current implementation, GridDhtPartitionsEvictor reset partition to 
> evict one by one.
> GridDhtPartitionsEvictor is created for each cache group, if we try to evict 
> too many groups as sys pool size, group evictors will take all available 
> threads in sys pool. It leads to hangs send a message via sys pool. As a fix, 
> I suggest to limit concurrent execution via sys pool or use another pool for 
> this purpose.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-9244) Partition eviction may use all threads in sys pool, it leads to hangs send a message via sys pool

2018-08-10 Thread Pavel Kovalenko (JIRA)


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

Pavel Kovalenko commented on IGNITE-9244:
-

[~agoncharuk] Looks good to me also. No other comments.

> Partition eviction may use all threads in sys pool, it leads to hangs send a 
> message via sys pool 
> --
>
> Key: IGNITE-9244
> URL: https://issues.apache.org/jira/browse/IGNITE-9244
> Project: Ignite
>  Issue Type: Bug
>Reporter: Dmitriy Govorukhin
>Assignee: Dmitriy Govorukhin
>Priority: Major
> Fix For: 2.7
>
>
> In the current implementation, GridDhtPartitionsEvictor reset partition to 
> evict one by one.
> GridDhtPartitionsEvictor is created for each cache group, if we try to evict 
> too many groups as sys pool size, group evictors will take all available 
> threads in sys pool. It leads to hangs send a message via sys pool. As a fix, 
> I suggest to limit concurrent execution via sys pool or use another pool for 
> this purpose.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-9244) Partition eviction may use all threads in sys pool, it leads to hangs send a message via sys pool

2018-08-10 Thread Alexey Goncharuk (JIRA)


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

Alexey Goncharuk commented on IGNITE-9244:
--

Looks good to me now. [~Jokser], do you have any other comments?

> Partition eviction may use all threads in sys pool, it leads to hangs send a 
> message via sys pool 
> --
>
> Key: IGNITE-9244
> URL: https://issues.apache.org/jira/browse/IGNITE-9244
> Project: Ignite
>  Issue Type: Bug
>Reporter: Dmitriy Govorukhin
>Assignee: Dmitriy Govorukhin
>Priority: Major
> Fix For: 2.7
>
>
> In the current implementation, GridDhtPartitionsEvictor reset partition to 
> evict one by one.
> GridDhtPartitionsEvictor is created for each cache group, if we try to evict 
> too many groups as sys pool size, group evictors will take all available 
> threads in sys pool. It leads to hangs send a message via sys pool. As a fix, 
> I suggest to limit concurrent execution via sys pool or use another pool for 
> this purpose.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-9244) Partition eviction may use all threads in sys pool, it leads to hangs send a message via sys pool

2018-08-10 Thread Dmitriy Govorukhin (JIRA)


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

Dmitriy Govorukhin commented on IGNITE-9244:


[~agoncharuk] Thanks! All comments fixed.

> Partition eviction may use all threads in sys pool, it leads to hangs send a 
> message via sys pool 
> --
>
> Key: IGNITE-9244
> URL: https://issues.apache.org/jira/browse/IGNITE-9244
> Project: Ignite
>  Issue Type: Bug
>Reporter: Dmitriy Govorukhin
>Assignee: Dmitriy Govorukhin
>Priority: Major
> Fix For: 2.7
>
>
> In the current implementation, GridDhtPartitionsEvictor reset partition to 
> evict one by one.
> GridDhtPartitionsEvictor is created for each cache group, if we try to evict 
> too many groups as sys pool size, group evictors will take all available 
> threads in sys pool. It leads to hangs send a message via sys pool. As a fix, 
> I suggest to limit concurrent execution via sys pool or use another pool for 
> this purpose.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-9244) Partition eviction may use all threads in sys pool, it leads to hangs send a message via sys pool

2018-08-10 Thread Alexey Goncharuk (JIRA)


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

Alexey Goncharuk commented on IGNITE-9244:
--

A few comments:
 * Use {{Long.compare}} instead of {{(p1, p2) -> p1.part.fullSize() > 
p2.part.fullSize() ? -1 : 1}} 
 * Method {{calculateBucket(PartitionEvictionTask)}} has an unused argument - 
either a bug, or the argument should be removed
 * For safety, make sure that {{threads}} does not get {{0}} value after 
{{sysPoolSize / 4}}

> Partition eviction may use all threads in sys pool, it leads to hangs send a 
> message via sys pool 
> --
>
> Key: IGNITE-9244
> URL: https://issues.apache.org/jira/browse/IGNITE-9244
> Project: Ignite
>  Issue Type: Bug
>Reporter: Dmitriy Govorukhin
>Assignee: Dmitriy Govorukhin
>Priority: Major
> Fix For: 2.7
>
>
> In the current implementation, GridDhtPartitionsEvictor reset partition to 
> evict one by one.
> GridDhtPartitionsEvictor is created for each cache group, if we try to evict 
> too many groups as sys pool size, group evictors will take all available 
> threads in sys pool. It leads to hangs send a message via sys pool. As a fix, 
> I suggest to limit concurrent execution via sys pool or use another pool for 
> this purpose.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-9244) Partition eviction may use all threads in sys pool, it leads to hangs send a message via sys pool

2018-08-10 Thread ASF GitHub Bot (JIRA)


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

ASF GitHub Bot commented on IGNITE-9244:


GitHub user DmitriyGovorukhin opened a pull request:

https://github.com/apache/ignite/pull/4513

IGNITE-9244 Rework partition eviction.

- add evict shared manager
- concurrent evict partition from one group
- balanced executors by partition size
- limitation concurrent evict operation via permits counter

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gridgain/apache-ignite ignite-9244

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/4513.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #4513


commit ab10ca99d7d7052414ef0927d52f17c81e5d7bde
Author: Dmitriy Govorukhin 
Date:   2018-08-10T10:10:12Z

IGNITE-9244 Rework partition eviction.
- add evict shared manager
- concurrent evict partition from one group
- balanced executors by partition size
- limitation concurrent evict operation via permits counter

Signed-off-by: Dmitriy Govorukhin 




> Partition eviction may use all threads in sys pool, it leads to hangs send a 
> message via sys pool 
> --
>
> Key: IGNITE-9244
> URL: https://issues.apache.org/jira/browse/IGNITE-9244
> Project: Ignite
>  Issue Type: Bug
>Reporter: Dmitriy Govorukhin
>Assignee: Dmitriy Govorukhin
>Priority: Major
> Fix For: 2.7
>
>
> In the current implementation, GridDhtPartitionsEvictor reset partition to 
> evict one by one.
> GridDhtPartitionsEvictor is created for each cache group, if we try to evict 
> too many groups as sys pool size, group evictors will take all available 
> threads in sys pool. It leads to hangs send a message via sys pool. As a fix, 
> I suggest to limit concurrent execution via sys pool or use another pool for 
> this purpose.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)