[
https://issues.apache.org/jira/browse/IGNITE-2466?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Semen Boikov reassigned IGNITE-2466:
------------------------------------
Assignee: Dmitry Karachentsev (was: Semen Boikov)
Hi,
I reviewed your changes, have some comments:
- I think new interface BackPressureTracker is not needed, just use existing
GridNioMessageTracker everywhere. Also you can not change
CommunicationListener, this is public API, so use class cast where needed.
- I don't like you added one more thread local in GridNioBackPressureControl. I
think single thread local is enough, (threadProcessingMessage is true is there
is non-null tracker)
- this changes in GridDhtAtomicCache:
{noformat}
if (node.isClient() && !dhtFut.isDone()) {
final BackPressureTracker tracker =
GridNioBackPressureControl.threadTracker();
if (tracker != null) {
tracker.registerMessage();
dhtFut.listen(new IgniteInClosure<IgniteInternalFuture<Void>>() {
@Override public void apply(IgniteInternalFuture<Void> fut) {
tracker.deregisterMessage();
}
});
}
}
{noformat}
I think check 'node.isClient()' is not needed, it should not matter if update
was initiated by client or server, instead you need add check taht
writeSynchronizationMode = PRIMARY_SYNC
Thanks
> OutOfMemory when PRIMARY_SYNC mode is used
> ------------------------------------------
>
> Key: IGNITE-2466
> URL: https://issues.apache.org/jira/browse/IGNITE-2466
> Project: Ignite
> Issue Type: Bug
> Affects Versions: 1.5.0.final
> Reporter: Denis Magda
> Assignee: Dmitry Karachentsev
> Fix For: 2.0
>
> Attachments: example-ignite.xml, MemTest.java
>
>
> To reproduce, run two server nodes with 2g of heap each and then MemTest.
> Servers will fail with OOME. If backups are disabled or there is only one
> server node, it works.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)