[jira] [Assigned] (IGNITE-12365) Concurrent removeAll() on the same cache leads to deadlock

2019-12-06 Thread Mirza Aliev (Jira)


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

Mirza Aliev reassigned IGNITE-12365:


Assignee: Mirza Aliev

> Concurrent removeAll() on the same cache leads to deadlock
> --
>
> Key: IGNITE-12365
> URL: https://issues.apache.org/jira/browse/IGNITE-12365
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 2.8
>Reporter: Ilya Kasnacheev
>Assignee: Mirza Aliev
>Priority: Critical
>  Labels: stupid
> Attachments: RemoveAllDeadlockTest.java, removeAll-deadlock.txt
>
>
> That's because removeAll is implemented as invokeAll with HashSet parameter.
> invokeAll + HashSet = 💀
> I will attach simple reproducer (please note that multiple invocations of 
> test is needed, typically 5-10) as well as thread dumps.



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


[jira] [Commented] (IGNITE-12121) Double checkpoint triggering due to incorrect place of update current checkpoint

2019-12-06 Thread Maxim Muzafarov (Jira)


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

Maxim Muzafarov commented on IGNITE-12121:
--

[~akalashnikov], [~DmitriyGovorukhin]

Do we have a reproducer for this issue?

> Double checkpoint triggering due to incorrect place of update current 
> checkpoint
> 
>
> Key: IGNITE-12121
> URL: https://issues.apache.org/jira/browse/IGNITE-12121
> Project: Ignite
>  Issue Type: Bug
>Reporter: Anton Kalashnikov
>Assignee: Anton Kalashnikov
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Double checkpoint triggering due to incorrect place of update current 
> checkpoint. This can lead to two ckeckpoints one by one if checkpoint trigger 
> was 'too many dirty pages'.



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


[jira] [Commented] (IGNITE-11857) Investigate performance drop after IGNITE-10078

2019-12-06 Thread Alexei Scherbakov (Jira)


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

Alexei Scherbakov commented on IGNITE-11857:


[~alex_pl]

Ok, let's proceed with Map version.

> Investigate performance drop after IGNITE-10078
> ---
>
> Key: IGNITE-11857
> URL: https://issues.apache.org/jira/browse/IGNITE-11857
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexei Scherbakov
>Assignee: Aleksey Plekhanov
>Priority: Major
> Attachments: ignite-config.xml, 
> run.properties.tx-optimistic-put-b-backup
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> After IGNITE-10078 yardstick tests show performance drop up to 8% in some 
> scenarios:
> * tx-optim-repRead-put-get
> * tx-optimistic-put
> * tx-putAll
> Partially this is due new update counter implementation, but not only. 
> Investigation is required.



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


[jira] [Commented] (IGNITE-12200) More informative assertion message at constructor of CachedDeploymentInfo (GridCacheDeploymentManager class)

2019-12-06 Thread Maxim Muzafarov (Jira)


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

Maxim Muzafarov commented on IGNITE-12200:
--

[~cyberdemon] I've left a comment. Please, take a look.

> More informative assertion message at constructor of CachedDeploymentInfo 
> (GridCacheDeploymentManager class)
> 
>
> Key: IGNITE-12200
> URL: https://issues.apache.org/jira/browse/IGNITE-12200
> Project: Ignite
>  Issue Type: Improvement
>Affects Versions: 2.5, 2.7.5
>Reporter: Dmitriy Sorokin
>Assignee: Dmitriy Sorokin
>Priority: Minor
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> {code:java}
> /**
>  * @param sndId Sender.
>  * @param ldrId Loader ID.
>  * @param userVer User version.
>  * @param depMode Deployment mode.
>  * @param participants Participants.
>  */
> private CachedDeploymentInfo(UUID sndId, IgniteUuid ldrId, String userVer, 
> DeploymentMode depMode,
> Map participants) {
> assert sndId.equals(ldrId.globalId()) || participants != null;
> this.sndId = sndId;
> this.ldrId = ldrId;
> this.userVer = userVer;
> this.depMode = depMode;
> this.participants = participants == null || participants.isEmpty() ? null 
> :
> new ConcurrentLinkedHashMap<>(participants);
> }
> {code}
> The code above may produce the following stacktrace, where AssertionError 
> should contain more informative message for better root cause analysis:
> {noformat}
> 2019-09-17 
> 18:29:29.890[ERROR][query-#1577440%DPL_GRID%DplGridNodeName%][o.a.i.i.p.cache.GridCacheIoManager]
>  Failed to process message [senderId=4c071d12-325a-4bb1-a68d-cc910f636562, 
> msg=GridCacheQueryRequest [id=4922, 
> cacheName=com.sbt.limits.data.entity.LimitTemplateV1Entity_DPL_union-module, 
> type=SCAN, fields=false, clause=null, clsName=null, keyValFilter=null, 
> rdc=null, trans=null, pageSize=1024, incBackups=false, cancel=false, 
> incMeta=false, all=false, keepBinary=true, 
> subjId=4c071d12-325a-4bb1-a68d-cc910f636562, taskHash=0, part=-1, 
> topVer=AffinityTopologyVersion [topVer=191, minorTopVer=0], 
> super=GridCacheIdMessage [cacheId=-724666788]]]2019-09-17 
> 18:29:29.890[ERROR][query-#1577440%DPL_GRID%DplGridNodeName%][o.a.i.i.p.cache.GridCacheIoManager]
>  Failed to process message [senderId=4c071d12-325a-4bb1-a68d-cc910f636562, 
> msg=GridCacheQueryRequest [id=4922, 
> cacheName=com.sbt.limits.data.entity.LimitTemplateV1Entity_DPL_union-module, 
> type=SCAN, fields=false, clause=null, clsName=null, keyValFilter=null, 
> rdc=null, trans=null, pageSize=1024, incBackups=false, cancel=false, 
> incMeta=false, all=false, keepBinary=true, 
> subjId=4c071d12-325a-4bb1-a68d-cc910f636562, taskHash=0, part=-1, 
> topVer=AffinityTopologyVersion [topVer=191, minorTopVer=0], 
> super=GridCacheIdMessage [cacheId=-724666788]]]
> java.lang.AssertionError: null
>  at 
> org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager$CachedDeploymentInfo.(GridCacheDeploymentManager.java:918)
>  at 
> org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager$CachedDeploymentInfo.(GridCacheDeploymentManager.java:889)
>  at 
> org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager.p2pContext(GridCacheDeploymentManager.java:422)
>  at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.unmarshall(GridCacheIoManager.java:1547)
>  at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:582)
>  at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:386)
>  at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:312)
>  at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:102)
>  at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:301)
>  at 
> org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1556)
>  at 
> org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1184)
>  at 
> org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:125)
>  at 
> org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1091)
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  at java.lang.Thread.run(Thread.java:748)
> 2019-09-17 
> 18:29:29.912[ERROR][query-#1577440%DPL_GRID%DplGridNodeName%][org.apache.ignite.Ignite]

[jira] [Resolved] (IGNITE-12421) Update pom depencencies to 2.9.0-SNAPSHOT version

2019-12-06 Thread Maxim Muzafarov (Jira)


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

Maxim Muzafarov resolved IGNITE-12421.
--
Resolution: Fixed

> Update pom depencencies to 2.9.0-SNAPSHOT version
> -
>
> Key: IGNITE-12421
> URL: https://issues.apache.org/jira/browse/IGNITE-12421
> Project: Ignite
>  Issue Type: Task
>Reporter: Maxim Muzafarov
>Assignee: Maxim Muzafarov
>Priority: Major
> Fix For: 2.9
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Since the {{ignite-2.8}} the release branch created all version dependencies 
> must be updated to {{2.9.0-SNAPSHOT}}.



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


[jira] [Updated] (IGNITE-12421) Update pom depencencies to 2.9.0-SNAPSHOT version

2019-12-06 Thread Maxim Muzafarov (Jira)


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

Maxim Muzafarov updated IGNITE-12421:
-
Issue Type: Task  (was: Bug)

> Update pom depencencies to 2.9.0-SNAPSHOT version
> -
>
> Key: IGNITE-12421
> URL: https://issues.apache.org/jira/browse/IGNITE-12421
> Project: Ignite
>  Issue Type: Task
>Reporter: Maxim Muzafarov
>Assignee: Maxim Muzafarov
>Priority: Major
> Fix For: 2.9
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Since the {{ignite-2.8}} the release branch created all version dependencies 
> must be updated to {{2.9.0-SNAPSHOT}}.



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


[jira] [Updated] (IGNITE-12421) Update pom depencencies to 2.9.0-SNAPSHOT version

2019-12-06 Thread Maxim Muzafarov (Jira)


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

Maxim Muzafarov updated IGNITE-12421:
-
Ignite Flags:   (was: Docs Required,Release Notes Required)

> Update pom depencencies to 2.9.0-SNAPSHOT version
> -
>
> Key: IGNITE-12421
> URL: https://issues.apache.org/jira/browse/IGNITE-12421
> Project: Ignite
>  Issue Type: Task
>Reporter: Maxim Muzafarov
>Assignee: Maxim Muzafarov
>Priority: Major
> Fix For: 2.9
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Since the {{ignite-2.8}} the release branch created all version dependencies 
> must be updated to {{2.9.0-SNAPSHOT}}.



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


[jira] [Commented] (IGNITE-12421) Update pom depencencies to 2.9.0-SNAPSHOT version

2019-12-06 Thread Ignite TC Bot (Jira)


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

Ignite TC Bot commented on IGNITE-12421:


{panel:title=Branch: [pull/7106/head] Base: [master] : Possible Blockers 
(1)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}
{color:#d04437}JCache TCK 1.1{color} [[tests 0 Exit Code 
|https://ci.ignite.apache.org/viewLog.html?buildId=4817643]]

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

> Update pom depencencies to 2.9.0-SNAPSHOT version
> -
>
> Key: IGNITE-12421
> URL: https://issues.apache.org/jira/browse/IGNITE-12421
> Project: Ignite
>  Issue Type: Bug
>Reporter: Maxim Muzafarov
>Assignee: Maxim Muzafarov
>Priority: Major
> Fix For: 2.9
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Since the {{ignite-2.8}} the release branch created all version dependencies 
> must be updated to {{2.9.0-SNAPSHOT}}.



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


[jira] [Comment Edited] (IGNITE-11857) Investigate performance drop after IGNITE-10078

2019-12-06 Thread Aleksey Plekhanov (Jira)


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

Aleksey Plekhanov edited comment on IGNITE-11857 at 12/6/19 3:03 PM:
-

[~ascherbakov]

We can only change the type from {{long}} to {{int}} for delta values. There is 
no boxing for delta values in the code.

Resident size for both structures is also relatively low. 
{code:java}
System.out.println("Size: " + 
GraphLayout.parseInstance(benchmark.partCntr).totalSize())
{code}
Old implementation: 1752 bytes

 TreeMap (long delta): 2248 bytes

TreeMap (int delta): 2072 bytes

TreeMap: 1816 bytes

Even if we have 100 cache groups with 1000 partitions on each node it's about 
30-50 extra megabytes of heap.

This test is synthetic, in real production cases I think there will be much 
lower values.

TreeMap with int delta has a little drop compared to long deltas and map of 
 has a little drop compared to int deltas.

Overall comparison table:
||Implementation||Throughput||GC pressure||Footprint||
|Old implementation|4,338 ± 0,208 ops/us|25 182 056|1752|
|TreeMap (long delta)|6,089 ± 0,459 ops/us|11 828 272|2248|
|TreeMap (long delta)|5,905 ± 0,338 ops/us|11 436 760|2072|
|TreeMap|4,857 ± 0,318 ops/us|10 733 888|1816|

I think we should get "TreeMap (long delta)" version. What do you 
think?


was (Author: alex_pl):
[~ascherbakov]

We can only change the type from {{long}} to {{int}} for delta values. There is 
no boxing for delta values in the code.

Resident size for both structures is also relatively low.

 
{code:java}
System.out.println("Size: " + 
GraphLayout.parseInstance(benchmark.partCntr).totalSize())
{code}
Old implementation: 1752 bytes

 

TreeMap (long delta): 2248 bytes

TreeMap (int delta): 2072 bytes

TreeMap: 1816 bytes

Even if we have 100 cache groups with 1000 partitions on each node it's about 
30-50 extra megabytes of heap.

This test is synthetic, in real production cases I think there will be much 
lower values.

TreeMap with int delta has a little drop compared to long deltas and map of 
 has a little drop compared to int deltas.

Overall comparison table:
||Implementation||Throughput||GC pressure||Footprint||
|Old implementation|4,338 ± 0,208 ops/us|25 182 056|1752|
|TreeMap (long delta)|6,089 ± 0,459 ops/us|11 828 272|2248|
|TreeMap (long delta)|5,905 ± 0,338 ops/us|11 436 760|2072|
|TreeMap|4,857 ± 0,318 ops/us|10 733 888|1816|

I think we should get "TreeMap (long delta)" version. What do you 
think?

> Investigate performance drop after IGNITE-10078
> ---
>
> Key: IGNITE-11857
> URL: https://issues.apache.org/jira/browse/IGNITE-11857
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexei Scherbakov
>Assignee: Aleksey Plekhanov
>Priority: Major
> Attachments: ignite-config.xml, 
> run.properties.tx-optimistic-put-b-backup
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> After IGNITE-10078 yardstick tests show performance drop up to 8% in some 
> scenarios:
> * tx-optim-repRead-put-get
> * tx-optimistic-put
> * tx-putAll
> Partially this is due new update counter implementation, but not only. 
> Investigation is required.



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


[jira] [Commented] (IGNITE-11857) Investigate performance drop after IGNITE-10078

2019-12-06 Thread Aleksey Plekhanov (Jira)


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

Aleksey Plekhanov commented on IGNITE-11857:


[~ascherbakov]

We can only change the type from {{long}} to {{int}} for delta values. There is 
no boxing for delta values in the code.

Resident size for both structures is also relatively low.

 
{code:java}
System.out.println("Size: " + 
GraphLayout.parseInstance(benchmark.partCntr).totalSize())
{code}
Old implementation: 1752 bytes

 

TreeMap (long delta): 2248 bytes

TreeMap (int delta): 2072 bytes

TreeMap: 1816 bytes

Even if we have 100 cache groups with 1000 partitions on each node it's about 
30-50 extra megabytes of heap.

This test is synthetic, in real production cases I think there will be much 
lower values.

TreeMap with int delta has a little drop compared to long deltas and map of 
 has a little drop compared to int deltas.

Overall comparison table:
||Implementation||Throughput||GC pressure||Footprint||
|Old implementation|4,338 ± 0,208 ops/us|25 182 056|1752|
|TreeMap (long delta)|6,089 ± 0,459 ops/us|11 828 272|2248|
|TreeMap (long delta)|5,905 ± 0,338 ops/us|11 436 760|2072|
|TreeMap|4,857 ± 0,318 ops/us|10 733 888|1816|

I think we should get "TreeMap (long delta)" version. What do you 
think?

> Investigate performance drop after IGNITE-10078
> ---
>
> Key: IGNITE-11857
> URL: https://issues.apache.org/jira/browse/IGNITE-11857
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexei Scherbakov
>Assignee: Aleksey Plekhanov
>Priority: Major
> Attachments: ignite-config.xml, 
> run.properties.tx-optimistic-put-b-backup
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> After IGNITE-10078 yardstick tests show performance drop up to 8% in some 
> scenarios:
> * tx-optim-repRead-put-get
> * tx-optimistic-put
> * tx-putAll
> Partially this is due new update counter implementation, but not only. 
> Investigation is required.



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


[jira] [Updated] (IGNITE-12422) Clean up GG-XXX internal ticket references from the code base.

2019-12-06 Thread Alexei Scherbakov (Jira)


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

Alexei Scherbakov updated IGNITE-12422:
---
Description: 
Replace with Apache Ignite equivalent if possible.

Also it's desirable to implement checkstyle rule to prevent foreigh links in 
TODOs [1]

[1] https://checkstyle.sourceforge.io/config_misc.html#TodoComment

  was:Replace with Apache Ignite equivalent if possible.


> Clean up GG-XXX internal ticket references from the code base.
> --
>
> Key: IGNITE-12422
> URL: https://issues.apache.org/jira/browse/IGNITE-12422
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexei Scherbakov
>Assignee: Alexei Scherbakov
>Priority: Major
> Fix For: 2.9
>
>
> Replace with Apache Ignite equivalent if possible.
> Also it's desirable to implement checkstyle rule to prevent foreigh links in 
> TODOs [1]
> [1] https://checkstyle.sourceforge.io/config_misc.html#TodoComment



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


[jira] [Comment Edited] (IGNITE-6804) Print a warning if HashMap is passed into bulk update operations

2019-12-06 Thread Vyacheslav Koptilin (Jira)


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

Vyacheslav Koptilin edited comment on IGNITE-6804 at 12/6/19 2:45 PM:
--

Hello [~nizhikov], [~avinogradov],

> Maybe we should deprecate putAll(Map) and introduce putAll(SortedMap) instead?
I don't think that {{putAll(Map)}} can be deprecated just because it is a part 
of JSR-109.

> We should just perform instanceOf check inside the putAll() method if 
> pessimistic.
-The user can use any kind of implementation of Map interface. It does not seem 
a reliable solution.- Looks like this comment does not make sense (parameter 
must extend/implement {{SortedMap}})

> This will affect atomics and optimistic transactions, which are resistant to 
> this issue.
It must be done for the atomic cache as well. Please take a look at 
{{GridDhtAtomicCache.updateAllAsyncInternal0}}
{code:java}
// If batch store update is enabled, we need to lock all entries.
// First, need to acquire locks on cache entries, then check filter.
List locked = lockEntries(req, 
req.topologyVersion());;
{code}



was (Author: slava.koptilin):
Hello [~nizhikov], [~avinogradov],

> Maybe we should deprecate putAll(Map) and introduce putAll(SortedMap) instead?
I don't think that {{putAll(Map)}} can be deprecated just because it is a part 
of JSR-109.

> We should just perform instanceOf check inside the putAll() method if 
> pessimistic.
-The user can use any kind of implementation of Map interface. It does not seem 
a reliable solution.- Look like this comment does not make sense (parameter 
must extend/implement {{SortedMap}})

> This will affect atomics and optimistic transactions, which are resistant to 
> this issue.
It must be done for the atomic cache as well. Please take a look at 
{{GridDhtAtomicCache.updateAllAsyncInternal0}}
{code:java}
// If batch store update is enabled, we need to lock all entries.
// First, need to acquire locks on cache entries, then check filter.
List locked = lockEntries(req, 
req.topologyVersion());;
{code}


> Print a warning if HashMap is passed into bulk update operations
> 
>
> Key: IGNITE-6804
> URL: https://issues.apache.org/jira/browse/IGNITE-6804
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache
>Reporter: Denis A. Magda
>Assignee: Ilya Kasnacheev
>Priority: Critical
>  Labels: usability
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Ignite newcomers tend to stumble on deadlocks simply because the keys are 
> passed in an unordered HashMap. Propose to do the following:
> * update bulk operations Java docs.
> * print out a warning if not SortedMap (e.g. HashMap, 
> Weak/Identity/Concurrent/Linked HashMap etc) is passed into
> a bulk method (instead of SortedMap) and contains more than 1 element. 
> However, we should make sure that we only print that warning once and not 
> every time the API is called.
> * do not produce warning for explicit optimistic transactions
> More details are here:
> http://apache-ignite-developers.2346864.n4.nabble.com/Re-Ignite-2-0-0-GridUnsafe-unmonitor-td23706.html



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


[jira] [Comment Edited] (IGNITE-6804) Print a warning if HashMap is passed into bulk update operations

2019-12-06 Thread Vyacheslav Koptilin (Jira)


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

Vyacheslav Koptilin edited comment on IGNITE-6804 at 12/6/19 1:34 PM:
--

Hello [~nizhikov], [~avinogradov],

> Maybe we should deprecate putAll(Map) and introduce putAll(SortedMap) instead?
I don't think that {{putAll(Map)}} can be deprecated just because it is a part 
of JSR-109.

> We should just perform instanceOf check inside the putAll() method if 
> pessimistic.
-The user can use any kind of implementation of Map interface. It does not seem 
a reliable solution.- Look like this comment does not make sense (parameter 
must extend/implement {{SortedMap}})

> This will affect atomics and optimistic transactions, which are resistant to 
> this issue.
It must be done for the atomic cache as well. Please take a look at 
{{GridDhtAtomicCache.updateAllAsyncInternal0}}
{code:java}
// If batch store update is enabled, we need to lock all entries.
// First, need to acquire locks on cache entries, then check filter.
List locked = lockEntries(req, 
req.topologyVersion());;
{code}



was (Author: slava.koptilin):
Hello [~nizhikov], [~avinogradov],

> Maybe we should deprecate putAll(Map) and introduce putAll(SortedMap) instead?
I don't think that {{putAll(Map)}} can be deprecated just because it is a part 
of JSR-109.

> We should just perform instanceOf check inside the putAll() method if 
> pessimistic.
The user can use any kind of implementation of Map interface. It does not seem 
a reliable solution.

> This will affect atomics and optimistic transactions, which are resistant to 
> this issue.
It must be done for the atomic cache as well. Please take a look at 
{{GridDhtAtomicCache.updateAllAsyncInternal0}}
{code:java}
// If batch store update is enabled, we need to lock all entries.
// First, need to acquire locks on cache entries, then check filter.
List locked = lockEntries(req, 
req.topologyVersion());;
{code}


> Print a warning if HashMap is passed into bulk update operations
> 
>
> Key: IGNITE-6804
> URL: https://issues.apache.org/jira/browse/IGNITE-6804
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache
>Reporter: Denis A. Magda
>Assignee: Ilya Kasnacheev
>Priority: Critical
>  Labels: usability
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Ignite newcomers tend to stumble on deadlocks simply because the keys are 
> passed in an unordered HashMap. Propose to do the following:
> * update bulk operations Java docs.
> * print out a warning if not SortedMap (e.g. HashMap, 
> Weak/Identity/Concurrent/Linked HashMap etc) is passed into
> a bulk method (instead of SortedMap) and contains more than 1 element. 
> However, we should make sure that we only print that warning once and not 
> every time the API is called.
> * do not produce warning for explicit optimistic transactions
> More details are here:
> http://apache-ignite-developers.2346864.n4.nabble.com/Re-Ignite-2-0-0-GridUnsafe-unmonitor-td23706.html



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


[jira] [Commented] (IGNITE-6804) Print a warning if HashMap is passed into bulk update operations

2019-12-06 Thread Vyacheslav Koptilin (Jira)


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

Vyacheslav Koptilin commented on IGNITE-6804:
-

Hello [~nizhikov], [~avinogradov],

> Maybe we should deprecate putAll(Map) and introduce putAll(SortedMap) instead?
I don't think that {{putAll(Map)}} can be deprecated just because it is a part 
of JSR-109.

> We should just perform instanceOf check inside the putAll() method if 
> pessimistic.
The user can use any kind of implementation of Map interface. It does not seem 
a reliable solution.

> This will affect atomics and optimistic transactions, which are resistant to 
> this issue.
It must be done for the atomic cache as well. Please take a look at 
{{GridDhtAtomicCache.updateAllAsyncInternal0}}
{code:java}
// If batch store update is enabled, we need to lock all entries.
// First, need to acquire locks on cache entries, then check filter.
List locked = lockEntries(req, 
req.topologyVersion());;
{code}


> Print a warning if HashMap is passed into bulk update operations
> 
>
> Key: IGNITE-6804
> URL: https://issues.apache.org/jira/browse/IGNITE-6804
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache
>Reporter: Denis A. Magda
>Assignee: Ilya Kasnacheev
>Priority: Critical
>  Labels: usability
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Ignite newcomers tend to stumble on deadlocks simply because the keys are 
> passed in an unordered HashMap. Propose to do the following:
> * update bulk operations Java docs.
> * print out a warning if not SortedMap (e.g. HashMap, 
> Weak/Identity/Concurrent/Linked HashMap etc) is passed into
> a bulk method (instead of SortedMap) and contains more than 1 element. 
> However, we should make sure that we only print that warning once and not 
> every time the API is called.
> * do not produce warning for explicit optimistic transactions
> More details are here:
> http://apache-ignite-developers.2346864.n4.nabble.com/Re-Ignite-2-0-0-GridUnsafe-unmonitor-td23706.html



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


[jira] [Comment Edited] (IGNITE-11857) Investigate performance drop after IGNITE-10078

2019-12-06 Thread Alexei Scherbakov (Jira)


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

Alexei Scherbakov edited comment on IGNITE-11857 at 12/6/19 1:10 PM:
-

[~alex_pl]

You have only measured heap allocation (GC pressure) which seems to be very low 
for both implementation.
You also should measure resident size of both structures.
Long for value can be replaced with Integer because no tx with batch of size 
close to or larger than Integer.MAX_VALUE is viable.
For most frequent use cases object creation will be handled by Integer boxing 
cache.

I think I'm ok with proposed improvement, just make sure we couldn't do better.





was (Author: ascherbakov):
[~alex_pl]

You have only measured heap allocation (GC pressure) which seems to be very low 
for both implementation.
You also should measure resident size of both structures.
Long for value can be replaced with Integer because no tx with batch of size 
close to or larger than Integer.MAX_VALUE is viable.
For most frequent use cases object creation will be handled by Integer boxing 
cache.

I think I'm ok this proposed improvement, just make sure we couldn't do better.




> Investigate performance drop after IGNITE-10078
> ---
>
> Key: IGNITE-11857
> URL: https://issues.apache.org/jira/browse/IGNITE-11857
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexei Scherbakov
>Assignee: Aleksey Plekhanov
>Priority: Major
> Attachments: ignite-config.xml, 
> run.properties.tx-optimistic-put-b-backup
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> After IGNITE-10078 yardstick tests show performance drop up to 8% in some 
> scenarios:
> * tx-optim-repRead-put-get
> * tx-optimistic-put
> * tx-putAll
> Partially this is due new update counter implementation, but not only. 
> Investigation is required.



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


[jira] [Comment Edited] (IGNITE-11857) Investigate performance drop after IGNITE-10078

2019-12-06 Thread Alexei Scherbakov (Jira)


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

Alexei Scherbakov edited comment on IGNITE-11857 at 12/6/19 12:39 PM:
--

[~alex_pl]

You have only measured heap allocation (GC pressure) which seems to be very low 
for both implementation.
You also should measure resident size of both structures.
Long for value can be replaced with Integer because no tx with batch of size 
close to or larger than Integer.MAX_VALUE is viable.
For most frequent use cases object creation will be handled by Integer boxing 
cache.

I think I'm ok this proposed improvement, just make sure we couldn't do better.





was (Author: ascherbakov):
[~alex_pl]

You have only measured heap allocation (GC pressure) which seems to be very low 
for both implementation.
You also should measure resident size of both structures.
Long for value can be replaced with Integer because no tx with batch of size 
Integer.MAX_VALUE is viable.
For most frequent use cases object creation will be handled by Integer boxing 
cache.

I think I'm ok this proposed improvement, just make sure we couldn't do better.




> Investigate performance drop after IGNITE-10078
> ---
>
> Key: IGNITE-11857
> URL: https://issues.apache.org/jira/browse/IGNITE-11857
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexei Scherbakov
>Assignee: Aleksey Plekhanov
>Priority: Major
> Attachments: ignite-config.xml, 
> run.properties.tx-optimistic-put-b-backup
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> After IGNITE-10078 yardstick tests show performance drop up to 8% in some 
> scenarios:
> * tx-optim-repRead-put-get
> * tx-optimistic-put
> * tx-putAll
> Partially this is due new update counter implementation, but not only. 
> Investigation is required.



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


[jira] [Commented] (IGNITE-11857) Investigate performance drop after IGNITE-10078

2019-12-06 Thread Alexei Scherbakov (Jira)


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

Alexei Scherbakov commented on IGNITE-11857:


[~alex_pl]

You have only measured heap allocation (GC pressure) which seems to be very low 
for both implementation.
You also should measure resident size of both structures.
Long for value can be replaced with Integer because no tx with batch of size 
Integer.MAX_VALUE is viable.
For most frequent use cases object creation will be handled by Integer boxing 
cache.

I think I'm ok this proposed improvement, just make sure we couldn't do better.




> Investigate performance drop after IGNITE-10078
> ---
>
> Key: IGNITE-11857
> URL: https://issues.apache.org/jira/browse/IGNITE-11857
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexei Scherbakov
>Assignee: Aleksey Plekhanov
>Priority: Major
> Attachments: ignite-config.xml, 
> run.properties.tx-optimistic-put-b-backup
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> After IGNITE-10078 yardstick tests show performance drop up to 8% in some 
> scenarios:
> * tx-optim-repRead-put-get
> * tx-optimistic-put
> * tx-putAll
> Partially this is due new update counter implementation, but not only. 
> Investigation is required.



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


[jira] [Commented] (IGNITE-6804) Print a warning if HashMap is passed into bulk update operations

2019-12-06 Thread Anton Vinogradov (Jira)


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

Anton Vinogradov commented on IGNITE-6804:
--

[~nizhikov]
This will affect atomics and optimistic transactions, which are resistant to 
this issue.

> Print a warning if HashMap is passed into bulk update operations
> 
>
> Key: IGNITE-6804
> URL: https://issues.apache.org/jira/browse/IGNITE-6804
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache
>Reporter: Denis A. Magda
>Assignee: Ilya Kasnacheev
>Priority: Critical
>  Labels: usability
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Ignite newcomers tend to stumble on deadlocks simply because the keys are 
> passed in an unordered HashMap. Propose to do the following:
> * update bulk operations Java docs.
> * print out a warning if not SortedMap (e.g. HashMap, 
> Weak/Identity/Concurrent/Linked HashMap etc) is passed into
> a bulk method (instead of SortedMap) and contains more than 1 element. 
> However, we should make sure that we only print that warning once and not 
> every time the API is called.
> * do not produce warning for explicit optimistic transactions
> More details are here:
> http://apache-ignite-developers.2346864.n4.nabble.com/Re-Ignite-2-0-0-GridUnsafe-unmonitor-td23706.html



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


[jira] [Comment Edited] (IGNITE-6804) Print a warning if HashMap is passed into bulk update operations

2019-12-06 Thread Anton Vinogradov (Jira)


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

Anton Vinogradov edited comment on IGNITE-6804 at 12/6/19 12:34 PM:


Folks, 
A warning will be ignored.
Javadoс will be ignored too.

We should just perform instanceOf check inside the putAll() method if 
pessimistic.
Such check will not drop overall performance since it will be evaluated on the 
client node.

BTW, Can we perform same check by some annotation-based contract using static 
analysis?



was (Author: avinogradov):
Folks, 
A warning will be ignored.
Javadoс will be ignored too.

We should just perform instanceOf check inside the putAll() method if 
pessimistic.
Such check will not drop overall performance since it will be evaluated on the 
client node.

BTW, Can we perform same check by some annotation contract using static 
analysis?


> Print a warning if HashMap is passed into bulk update operations
> 
>
> Key: IGNITE-6804
> URL: https://issues.apache.org/jira/browse/IGNITE-6804
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache
>Reporter: Denis A. Magda
>Assignee: Ilya Kasnacheev
>Priority: Critical
>  Labels: usability
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Ignite newcomers tend to stumble on deadlocks simply because the keys are 
> passed in an unordered HashMap. Propose to do the following:
> * update bulk operations Java docs.
> * print out a warning if not SortedMap (e.g. HashMap, 
> Weak/Identity/Concurrent/Linked HashMap etc) is passed into
> a bulk method (instead of SortedMap) and contains more than 1 element. 
> However, we should make sure that we only print that warning once and not 
> every time the API is called.
> * do not produce warning for explicit optimistic transactions
> More details are here:
> http://apache-ignite-developers.2346864.n4.nabble.com/Re-Ignite-2-0-0-GridUnsafe-unmonitor-td23706.html



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


[jira] [Commented] (IGNITE-6804) Print a warning if HashMap is passed into bulk update operations

2019-12-06 Thread Nikolay Izhikov (Jira)


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

Nikolay Izhikov commented on IGNITE-6804:
-

[~avinogradov]

Maybe we should deprecate putAll(Map) and introduce putAll(SortedMap) instead?

> Print a warning if HashMap is passed into bulk update operations
> 
>
> Key: IGNITE-6804
> URL: https://issues.apache.org/jira/browse/IGNITE-6804
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache
>Reporter: Denis A. Magda
>Assignee: Ilya Kasnacheev
>Priority: Critical
>  Labels: usability
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Ignite newcomers tend to stumble on deadlocks simply because the keys are 
> passed in an unordered HashMap. Propose to do the following:
> * update bulk operations Java docs.
> * print out a warning if not SortedMap (e.g. HashMap, 
> Weak/Identity/Concurrent/Linked HashMap etc) is passed into
> a bulk method (instead of SortedMap) and contains more than 1 element. 
> However, we should make sure that we only print that warning once and not 
> every time the API is called.
> * do not produce warning for explicit optimistic transactions
> More details are here:
> http://apache-ignite-developers.2346864.n4.nabble.com/Re-Ignite-2-0-0-GridUnsafe-unmonitor-td23706.html



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


[jira] [Commented] (IGNITE-6804) Print a warning if HashMap is passed into bulk update operations

2019-12-06 Thread Anton Vinogradov (Jira)


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

Anton Vinogradov commented on IGNITE-6804:
--

Folks, 
A warning will be ignored.
Javadoс will be ignored too.

We should just perform instanceOf check inside the putAll() method if 
pessimistic.
Such check will not drop overall performance since it will be evaluated on the 
client node.

BTW, Can we perform same check by some annotation contract using static 
analysis?


> Print a warning if HashMap is passed into bulk update operations
> 
>
> Key: IGNITE-6804
> URL: https://issues.apache.org/jira/browse/IGNITE-6804
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache
>Reporter: Denis A. Magda
>Assignee: Ilya Kasnacheev
>Priority: Critical
>  Labels: usability
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Ignite newcomers tend to stumble on deadlocks simply because the keys are 
> passed in an unordered HashMap. Propose to do the following:
> * update bulk operations Java docs.
> * print out a warning if not SortedMap (e.g. HashMap, 
> Weak/Identity/Concurrent/Linked HashMap etc) is passed into
> a bulk method (instead of SortedMap) and contains more than 1 element. 
> However, we should make sure that we only print that warning once and not 
> every time the API is called.
> * do not produce warning for explicit optimistic transactions
> More details are here:
> http://apache-ignite-developers.2346864.n4.nabble.com/Re-Ignite-2-0-0-GridUnsafe-unmonitor-td23706.html



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


[jira] [Comment Edited] (IGNITE-12374) Too low performance ~200TPS for single ODBC client

2019-12-06 Thread Stanilovsky Evgeny (Jira)


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

Stanilovsky Evgeny edited comment on IGNITE-12374 at 12/6/19 12:29 PM:
---

[~yow] look, you can got some speed boost if :
1. replicated cache appropriate for your case :WITH 
\"template=REPLICATED,CACHE_NAME=cdrtest_cacheR,WRITE_SYNCHRONIZATION_MODE=PRIMARY_SYNC\"
2. call run.sh with default 50 2000 with clear persistent base can give flaky 
results cause some time need for inner structures initialization, partitions 
etc, run first warmup run and second one will give you clear results.
3. can you change your key for example for Long ? 
4. looks like 10k per one thread is impossible now.
looks like that`s all i can give you.


was (Author: zstan):
[~yow] look, you can got some speed boost if :
1. replicated cache appropriate for your case :WITH 
\"template=REPLICATED,CACHE_NAME=cdrtest_cacheR,WRITE_SYNCHRONIZATION_MODE=PRIMARY_SYNC\"
2. call run.sh with default 50 2000 witch clear persistent base can give flaky 
results cause some time need for inner structures initialization, partitions 
etc, run first warmup run and second one will give you clear results.
3. can you change your key for example for Long ? 
4. looks like 10k per one thread is impossible now.
looks like that`s all i can give you.

> Too low performance ~200TPS for single ODBC client
> --
>
> Key: IGNITE-12374
> URL: https://issues.apache.org/jira/browse/IGNITE-12374
> Project: Ignite
>  Issue Type: Improvement
>  Components: clients, odbc
>Affects Versions: 2.7.5
> Environment: Ignite server run on top of Kubernetes, with 2 server 
> nodes, persistence enabled. Both CPU and RAM at server/client server is 
> sufficient according to system reports.
>Reporter: swy
>Priority: Major
> Attachments: ignite-9bb53f34.0.log, 
> ignite-logs-config-source-20191128.zip, 
> ignite-logs-config-source-20191129.zip, my-config-zstan.xml, odbcsample, 
> odbcsample.allchar.rebind.cc, odbcsample.cc, profiling01.png, 
> profiling03.png, profling02.png, screenshot-1.png, 
> snapshot-1574845275597.nps, threaddump-1573207804944.tdump, 
> threaddump-1574845414243.tdump, values.yaml
>
>
> Hi, in our test ignite performance with ODBC connection is too bad to proceed 
> with product integration. It is about ~200 TPS, each transaction with 
> select+update operation.
> Please refer to attach sample program. It is just a simple test case. 
> Based on the profiling most of the time consumed by sql execution. Please 
> advice if the application did not do the right thing.
> Thank you.
> local ignite server, but the result same to remote container Ignite 
> deployment too.
> {{cat /etc/apache-ignite/my-config.xml}}
> {noformat}
> 
> http://www.springframework.org/schema/beans";
>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd";>
>  class="org.apache.ignite.configuration.IgniteConfiguration">
> 
>  class="org.apache.ignite.configuration.ClientConnectorConfiguration"/>
> 
> 
> 
> 
> 
>  class="org.apache.ignite.binary.BinaryBasicIdMapper">
> 
> 
> 
> 
> 
> 
> 
> {noformat}
> {{g++ -I/usr/include -I./ignite/binary/include -I./ignite/common/include 
> -I./ignite/common/os/linux/include -I./ignite/common/os/win/include 
> -I./ignite/core/include -I./ignite/jni/include odbcsample.cc -o odbcsample 
> -lodbc -L./ignite-libs/libignite.so -L./ignite-libs/libignite-odbc.so}}



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


[jira] [Commented] (IGNITE-12374) Too low performance ~200TPS for single ODBC client

2019-12-06 Thread Stanilovsky Evgeny (Jira)


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

Stanilovsky Evgeny commented on IGNITE-12374:
-

[~yow] look, you can got some speed boost if :
1. replicated cache appropriate for your case :WITH 
\"template=REPLICATED,CACHE_NAME=cdrtest_cacheR,WRITE_SYNCHRONIZATION_MODE=PRIMARY_SYNC\"
2. call run.sh with default 50 2000 witch clear persistent base can give flaky 
results cause some time need for inner structures initialization, partitions 
etc, run first warmup run and second one will give you clear results.
3. can you change your key for example for Long ? 
4. looks like 10k per one thread is impossible now.
looks like that`s all i can give you.

> Too low performance ~200TPS for single ODBC client
> --
>
> Key: IGNITE-12374
> URL: https://issues.apache.org/jira/browse/IGNITE-12374
> Project: Ignite
>  Issue Type: Improvement
>  Components: clients, odbc
>Affects Versions: 2.7.5
> Environment: Ignite server run on top of Kubernetes, with 2 server 
> nodes, persistence enabled. Both CPU and RAM at server/client server is 
> sufficient according to system reports.
>Reporter: swy
>Priority: Major
> Attachments: ignite-9bb53f34.0.log, 
> ignite-logs-config-source-20191128.zip, 
> ignite-logs-config-source-20191129.zip, my-config-zstan.xml, odbcsample, 
> odbcsample.allchar.rebind.cc, odbcsample.cc, profiling01.png, 
> profiling03.png, profling02.png, screenshot-1.png, 
> snapshot-1574845275597.nps, threaddump-1573207804944.tdump, 
> threaddump-1574845414243.tdump, values.yaml
>
>
> Hi, in our test ignite performance with ODBC connection is too bad to proceed 
> with product integration. It is about ~200 TPS, each transaction with 
> select+update operation.
> Please refer to attach sample program. It is just a simple test case. 
> Based on the profiling most of the time consumed by sql execution. Please 
> advice if the application did not do the right thing.
> Thank you.
> local ignite server, but the result same to remote container Ignite 
> deployment too.
> {{cat /etc/apache-ignite/my-config.xml}}
> {noformat}
> 
> http://www.springframework.org/schema/beans";
>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd";>
>  class="org.apache.ignite.configuration.IgniteConfiguration">
> 
>  class="org.apache.ignite.configuration.ClientConnectorConfiguration"/>
> 
> 
> 
> 
> 
>  class="org.apache.ignite.binary.BinaryBasicIdMapper">
> 
> 
> 
> 
> 
> 
> 
> {noformat}
> {{g++ -I/usr/include -I./ignite/binary/include -I./ignite/common/include 
> -I./ignite/common/os/linux/include -I./ignite/common/os/win/include 
> -I./ignite/core/include -I./ignite/jni/include odbcsample.cc -o odbcsample 
> -lodbc -L./ignite-libs/libignite.so -L./ignite-libs/libignite-odbc.so}}



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


[jira] [Commented] (IGNITE-6804) Print a warning if HashMap is passed into bulk update operations

2019-12-06 Thread Nikolay Izhikov (Jira)


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

Nikolay Izhikov commented on IGNITE-6804:
-

Hello, [~ilyak].

Any progress on that issue?
As far as I know, users still stumble with this issue.
It a very confusing Ignite behaviour, let's fix it!

> Print a warning if HashMap is passed into bulk update operations
> 
>
> Key: IGNITE-6804
> URL: https://issues.apache.org/jira/browse/IGNITE-6804
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache
>Reporter: Denis A. Magda
>Assignee: Ilya Kasnacheev
>Priority: Critical
>  Labels: usability
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Ignite newcomers tend to stumble on deadlocks simply because the keys are 
> passed in an unordered HashMap. Propose to do the following:
> * update bulk operations Java docs.
> * print out a warning if not SortedMap (e.g. HashMap, 
> Weak/Identity/Concurrent/Linked HashMap etc) is passed into
> a bulk method (instead of SortedMap) and contains more than 1 element. 
> However, we should make sure that we only print that warning once and not 
> every time the API is called.
> * do not produce warning for explicit optimistic transactions
> More details are here:
> http://apache-ignite-developers.2346864.n4.nabble.com/Re-Ignite-2-0-0-GridUnsafe-unmonitor-td23706.html



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


[jira] [Commented] (IGNITE-12419) JCache TCK fails with IgniteCheckedException and NullPointerException

2019-12-06 Thread Ignite TC Bot (Jira)


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

Ignite TC Bot commented on IGNITE-12419:


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

> JCache TCK fails with IgniteCheckedException and NullPointerException
> -
>
> Key: IGNITE-12419
> URL: https://issues.apache.org/jira/browse/IGNITE-12419
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 2.7.6
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Blocker
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> It seems a long period of time, JCache suite did not run TCK tests (it seems 
> that TeamCity uses the wrong maven goal - {{surefire:test}} instead of 
> {{test}}) and for now, more than 90 tests are broken.
>  For example:
> {noformat}
> javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
> Failed to complete exchange process.
>   at 
> org.jsr107.tck.integration.CacheWriterTest.onBeforeEachTest(CacheWriterTest.java:109)
> Caused by: org.apache.ignite.IgniteCheckedException: Failed to complete 
> exchange process.
> shouldWriteThroughUsingGetAndPut_SingleEntryMultipleTimes(org.jsr107.tck.integration.CacheWriterTest)
>   Time elapsed: 0.004 s  <<< ERROR!
> java.lang.NullPointerException
>   at 
> org.jsr107.tck.integration.CacheWriterTest.cleanup(CacheWriterTest.java:117)
> {noformat}
> {code:java}
> SEVERE: Failed to initialize cache(s) (will try to rollback) 
> [exchId=GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion [topVer=1, 
> minorTopVer=161], discoEvt=DiscoveryCustomEvent 
> [customMsg=DynamicCacheChangeBatch 
> [id=fe5df36de61-0dd20864-f118-4e11-bcf2-12a651e87cb0, reqs=ArrayList 
> [DynamicCacheChangeRequest [cacheName=cache-loader-test, hasCfg=true, 
> nodeId=4bed4ec0-7d64-473d-bc55-e5f79b9a02ab, clientStartOnly=false, 
> stop=false, destroy=false, disabledAfterStartfalse]], 
> exchangeActions=ExchangeActions [startCaches=[cache-loader-test], 
> stopCaches=null, startGrps=[cache-loader-test], stopGrps=[], resetParts=null, 
> stateChangeRequest=null], startCaches=false], 
> affTopVer=AffinityTopologyVersion [topVer=1, minorTopVer=161], 
> super=DiscoveryEvent [evtNode=TcpDiscoveryNode 
> [id=4bed4ec0-7d64-473d-bc55-e5f79b9a02ab, 
> consistentId=0:0:0:0:0:0:0:1,127.0.0.1,172.17.251.129,172.25.4.114:47500, 
> addrs=ArrayList [0:0:0:0:0:0:0:1, 127.0.0.1, 172.17.251.129, 172.25.4.114], 
> sockAddrs=HashSet [/0:0:0:0:0:0:0:1:47500, /127.0.0.1:47500, 
> DESKTOP-IMRCA1M.mshome.net/172.17.251.129:47500, /172.25.4.114:47500], 
> discPort=47500, order=1, intOrder=1, lastExchangeTime=1575552670125, 
> loc=true, ver=2.8.0#20191205-sha1:, isClient=false], topVer=1, 
> nodeId8=4bed4ec0, msg=null, type=DISCOVERY_CUSTOM_EVT, 
> tstamp=1575552674811]], nodeId=4bed4ec0, evt=DISCOVERY_CUSTOM_EVT], 
> caches=[o.a.i.i.processors.cache.ExchangeActions$CacheGroupActionData@24671b0e]]SEVERE:
>  Failed to initialize cache(s) (will try to rollback) 
> [exchId=GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion [topVer=1, 
> minorTopVer=161], discoEvt=DiscoveryCustomEvent 
> [customMsg=DynamicCacheChangeBatch 
> [id=fe5df36de61-0dd20864-f118-4e11-bcf2-12a651e87cb0, reqs=ArrayList 
> [DynamicCacheChangeRequest [cacheName=cache-loader-test, hasCfg=true, 
> nodeId=4bed4ec0-7d64-473d-bc55-e5f79b9a02ab, clientStartOnly=false, 
> stop=false, destroy=false, disabledAfterStartfalse]], 
> exchangeActions=ExchangeActions [startCaches=[cache-loader-test], 
> stopCaches=null, startGrps=[cache-loader-test], stopGrps=[], resetParts=null, 
> stateChangeRequest=null], startCaches=false], 
> affTopVer=AffinityTopologyVersion [topVer=1, minorTopVer=161], 
> super=DiscoveryEvent [evtNode=TcpDiscoveryNode 
> [id=4bed4ec0-7d64-473d-bc55-e5f79b9a02ab, 
> consistentId=0:0:0:0:0:0:0:1,127.0.0.1,172.17.251.129,172.25.4.114:47500, 
> addrs=ArrayList [0:0:0:0:0:0:0:1, 127.0.0.1, 172.17.251.129, 172.25.4.114], 
> sockAddrs=HashSet [/0:0:0:0:0:0:0:1:47500, /127.0.0.1:47500, 
> DESKTOP-IMRCA1M.mshome.net/172.17.251.129:47500, /172.25.4.114:47500], 
> discPort=47500, order=1, intOrder=1, lastExchangeTime=1575552670125, 
> loc=true, ver=2.8.0#20191205-sha1:, isClient=false], topVer=1, 
> nodeId8=4bed4ec0, msg=null, type=DISCOVERY_CUSTOM_EVT, 
> tstamp=1575552674811]], nodeId=4bed4ec0, evt=DISCOVERY_CUSTOM_EVT], 
> caches=[o.a.i.i.processors.cache.ExchangeActions$CacheGroupActionData@24671b0e]]class
>  o

[jira] [Resolved] (IGNITE-6191) Integration for Unix system

2019-12-06 Thread Nikolay Izhikov (Jira)


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

Nikolay Izhikov resolved IGNITE-6191.
-
Resolution: Fixed

> Integration for Unix system
> ---
>
> Key: IGNITE-6191
> URL: https://issues.apache.org/jira/browse/IGNITE-6191
> Project: Ignite
>  Issue Type: Task
>  Components: build
>Affects Versions: 2.1
>Reporter: Sergey Kozlov
>Priority: Major
>
> Current installation procedure of Apache Ignite is poor: unzip and run.
> We need to deep integration for Unix operation system, namely:
> #  Provide a script to *nix for start/stop/restart/reload Apache Ignite as 
> system service (a deamon). At the beginning focus on Ubuntu and RedHat 
> (CentOS)
> # Provide the start confugration for Apache Ignite where provide non-spring 
> options like number of Apache Ignite instances, JVM options, work/log 
> directories etc (at might be an ini file)
> # Provide platform-adopted packages (*.pkg, *deb) in the own repository that 
> will install (upgrade) Apache Ignite in proper directories, for instance: 
> configuration in /etc/ignite/config, visorcmd in /usr/sbin, start scripts in 
> /etc/init.d, work directory in /var/lib/ignite, logs in /var/log/ignite/. It 
> will significally reduce the efforts to install Apache Ignite for newbies 
> ("just add the reporsitory and run package manager") 



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


[jira] [Resolved] (IGNITE-8296) Move Spark Scala DataFrames code examples to correct directory and prefix with "Scalar" to follow convention used with other Scala examples

2019-12-06 Thread Nikolay Izhikov (Jira)


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

Nikolay Izhikov resolved IGNITE-8296.
-
Resolution: Not A Problem

> Move Spark Scala DataFrames code examples to correct directory and prefix 
> with "Scalar" to follow convention used with other Scala examples 
> 
>
> Key: IGNITE-8296
> URL: https://issues.apache.org/jira/browse/IGNITE-8296
> Project: Ignite
>  Issue Type: Improvement
>  Components: spark
>Affects Versions: 3.0
>Reporter: Akmal Chaudhri
>Assignee: Alexey Zinoviev
>Priority: Minor
>
> # The Spark Scala DataFrames code examples are in the wrong directory. They 
> should be moved to the correct directory structure.
>  # The Spark Scala DataFrames code examples should follow the naming 
> convention used for other Scala code examples and be prefixed with "Scalar".
> or move SparkScalar example and its logic to the appropriate folder in spark 
> folder



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


[jira] [Commented] (IGNITE-8296) Move Spark Scala DataFrames code examples to correct directory and prefix with "Scalar" to follow convention used with other Scala examples

2019-12-06 Thread Nikolay Izhikov (Jira)


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

Nikolay Izhikov commented on IGNITE-8296:
-

Hello [~zaleslaw], [~abchaudhri]

The examples in the right place.
Why do you think it's not?

scalar directory is for scalar module examples.
It differs from data frame examples.

> Move Spark Scala DataFrames code examples to correct directory and prefix 
> with "Scalar" to follow convention used with other Scala examples 
> 
>
> Key: IGNITE-8296
> URL: https://issues.apache.org/jira/browse/IGNITE-8296
> Project: Ignite
>  Issue Type: Improvement
>  Components: spark
>Affects Versions: 3.0
>Reporter: Akmal Chaudhri
>Assignee: Alexey Zinoviev
>Priority: Minor
>
> # The Spark Scala DataFrames code examples are in the wrong directory. They 
> should be moved to the correct directory structure.
>  # The Spark Scala DataFrames code examples should follow the naming 
> convention used for other Scala code examples and be prefixed with "Scalar".
> or move SparkScalar example and its logic to the appropriate folder in spark 
> folder



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


[jira] [Commented] (IGNITE-11857) Investigate performance drop after IGNITE-10078

2019-12-06 Thread Aleksey Plekhanov (Jira)


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

Aleksey Plekhanov commented on IGNITE-11857:


About 2.8, agreed with you, should be merged to master (2.8 already has own 
branch).

> Investigate performance drop after IGNITE-10078
> ---
>
> Key: IGNITE-11857
> URL: https://issues.apache.org/jira/browse/IGNITE-11857
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexei Scherbakov
>Assignee: Aleksey Plekhanov
>Priority: Major
> Attachments: ignite-config.xml, 
> run.properties.tx-optimistic-put-b-backup
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> After IGNITE-10078 yardstick tests show performance drop up to 8% in some 
> scenarios:
> * tx-optim-repRead-put-get
> * tx-optimistic-put
> * tx-putAll
> Partially this is due new update counter implementation, but not only. 
> Investigation is required.



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


[jira] [Commented] (IGNITE-12247) [Spark] Add initial support of Spark 2.4

2019-12-06 Thread Nikolay Izhikov (Jira)


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

Nikolay Izhikov commented on IGNITE-12247:
--

Hello [~zaleslaw]

I had a very minor comment for your patch - let's ignore tests instead of 
commenting.
Can you, please, resolve it, so we can include 2.4 initial support to Ignite 
2.8 release.

> [Spark] Add initial support of Spark 2.4
> 
>
> Key: IGNITE-12247
> URL: https://issues.apache.org/jira/browse/IGNITE-12247
> Project: Ignite
>  Issue Type: Sub-task
>  Components: spark
>Affects Versions: 2.8
>Reporter: Alexey Zinoviev
>Assignee: Alexey Zinoviev
>Priority: Critical
>  Labels: await
> Fix For: 2.8
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> This solution provides the initial support of spark 2.4 with copied codebase 
> from spark and with initial support of ExternalCatalog refactoring



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


[jira] [Commented] (IGNITE-11857) Investigate performance drop after IGNITE-10078

2019-12-06 Thread Aleksey Plekhanov (Jira)


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

Aleksey Plekhanov commented on IGNITE-11857:


[~ascherbakov], 

If we get rid of {{Item}} class, there will be a new {{Long}} object created 
each time we merge sequence with previous. With {{Item}} class we can just add 
delta to the old object. Sorted array of primitive tuples will get a drop on 
remove/add items to the middle of the array. Bitmaps in some cases will consume 
too much memory, the amount of memory depends on the difference between LWM and 
HWM (instead of a count of gaps). Also, I'm not sure about the performance 
boost in case of bitmaps usage. The current implementation is less risky, we 
can't get drop on some unpredictable place.

New solution use less heap. There is no {{tailSet}} and {{headSet}} methods 
usage. These methods allocate new objects for new {{Set}}s.

I've test heap allocation using this code:
{code:java}
JmhPartitionUpdateCounterBenchmark benchmark = new 
JmhPartitionUpdateCounterBenchmark();

benchmark.setup();

ThreadMXBean bean = (ThreadMXBean)ManagementFactory.getThreadMXBean();

long allocated0 = bean.getThreadAllocatedBytes(Thread.currentThread().getId());

for (int i = 0; i < 100_000; i++)
benchmark.updateWithGap();

long allocated1 = bean.getThreadAllocatedBytes(Thread.currentThread().getId());

System.out.println("Memory allocated: " + (allocated1 - allocated0));
{code}
Results:

Old implementation: 25 181 680 bytes

New implementation: 11 828 272 bytes

 

> Investigate performance drop after IGNITE-10078
> ---
>
> Key: IGNITE-11857
> URL: https://issues.apache.org/jira/browse/IGNITE-11857
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexei Scherbakov
>Assignee: Aleksey Plekhanov
>Priority: Major
> Attachments: ignite-config.xml, 
> run.properties.tx-optimistic-put-b-backup
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> After IGNITE-10078 yardstick tests show performance drop up to 8% in some 
> scenarios:
> * tx-optim-repRead-put-get
> * tx-optimistic-put
> * tx-putAll
> Partially this is due new update counter implementation, but not only. 
> Investigation is required.



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


[jira] [Updated] (IGNITE-12273) Slow TX recovery

2019-12-06 Thread Anton Vinogradov (Jira)


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

Anton Vinogradov updated IGNITE-12273:
--
Description: 
TX recovery cause B*B*N*2 GridCacheTxRecoveryRequest messages sending (B - 
backups, N - prepared txs amount).
Seems, we able to perform recovery more efficiently.
For example, we may send only B*B*2 messages, accumulates txs together.

  was:
TX recovery cause B*N*2 GridCacheTxRecoveryRequest messages sending (B - 
backups, N - prepared txs amount).
Seems, we able to perform recovery more efficiently.
For example, we may send only B*B*2 messages, accumulates txs together.


> Slow TX recovery
> 
>
> Key: IGNITE-12273
> URL: https://issues.apache.org/jira/browse/IGNITE-12273
> Project: Ignite
>  Issue Type: Task
>Reporter: Anton Vinogradov
>Assignee: Anton Vinogradov
>Priority: Major
>
> TX recovery cause B*B*N*2 GridCacheTxRecoveryRequest messages sending (B - 
> backups, N - prepared txs amount).
> Seems, we able to perform recovery more efficiently.
> For example, we may send only B*B*2 messages, accumulates txs together.



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


[jira] [Created] (IGNITE-12423) PME duration histogram updates only if log info enabled

2019-12-06 Thread Amelchev Nikita (Jira)
Amelchev Nikita created IGNITE-12423:


 Summary: PME duration histogram updates only if log info enabled
 Key: IGNITE-12423
 URL: https://issues.apache.org/jira/browse/IGNITE-12423
 Project: Ignite
  Issue Type: Bug
Reporter: Amelchev Nikita
Assignee: Amelchev Nikita
 Fix For: 2.8


The updates histogram method is placed at the log info block:

{noformat}
if (log.isInfoEnabled()) {
   ...
   updateDurationHistogram(System.currentTimeMillis() - initTime);
   ...
}
{noformat}




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


[jira] [Commented] (IGNITE-11857) Investigate performance drop after IGNITE-10078

2019-12-06 Thread Alexei Scherbakov (Jira)


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

Alexei Scherbakov commented on IGNITE-11857:


[~alex_pl]

I've looked at your contribution.

Changing TreeSet to TreeMap looks like a very minor change. I think you can go 
further and get rid of Item class. Out of order updates can be kept in 
SortedMap where key is a start and value is a range (or even in 
sorted array of primitive tuples). Another possibility is storing missing 
updates in a bitmap.

You should also check a new solution for heap usage in comparison to the old. 
For many partitions configurations less heap usage could be more significant 
advantage other the minor performance boost.

Also I have a little concern about the robustness of a fix. It might be risky 
to merge it to 2.8 without extensive testing.

So, I would postpone the change and improved the patch first.



> Investigate performance drop after IGNITE-10078
> ---
>
> Key: IGNITE-11857
> URL: https://issues.apache.org/jira/browse/IGNITE-11857
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexei Scherbakov
>Assignee: Aleksey Plekhanov
>Priority: Major
> Attachments: ignite-config.xml, 
> run.properties.tx-optimistic-put-b-backup
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> After IGNITE-10078 yardstick tests show performance drop up to 8% in some 
> scenarios:
> * tx-optim-repRead-put-get
> * tx-optimistic-put
> * tx-putAll
> Partially this is due new update counter implementation, but not only. 
> Investigation is required.



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


[jira] [Updated] (IGNITE-12422) Clean up GG-XXX internal ticket references from the code base.

2019-12-06 Thread Alexei Scherbakov (Jira)


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

Alexei Scherbakov updated IGNITE-12422:
---
Summary: Clean up GG-XXX internal ticket references from the code base.  
(was: Clean up GG-XXX internal ticket references from code base.)

> Clean up GG-XXX internal ticket references from the code base.
> --
>
> Key: IGNITE-12422
> URL: https://issues.apache.org/jira/browse/IGNITE-12422
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexei Scherbakov
>Assignee: Alexei Scherbakov
>Priority: Major
> Fix For: 2.9
>
>
> Replace with Apache Ignite equivalent if possible.



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