В Master Hazelcast книге под «17.4.1 секциями в курсе операций» он заявляет:Hazelcast счетчики разделов и нить параллелизм
Для выполнения разделов-зависимых операций, массив операций нитей создается.
Один поток операций выполняет операции для нескольких разделов;
Каждый раздел относится только к одной рабочей нити.
Предположим, что у меня есть номер из 271 разделов по умолчанию в кластере из 17 узлов, каждый из которых имеет 16 потоков разделов. Распределяя разделы по кластеру, это означает, что у всех разделов будет один поток, связанный с ним, и каждый поток будет иметь только 1 раздел (для меня это представляется оптимальным).
Игнорирование резервных копий и кеш-кешей при создании экземпляра IMap, означает ли это, что я могу выполнять только одну параллельную операцию ввода/получения на каждом сегменте карты в кластере? Если я добавлю MapStore, значит ли это, что я могу использовать только 271 одновременных операций с моей бэкэнд-базой, поскольку нет способа сделать async MapStores?
Моей причиной для этого является то, что у меня есть очень параллельное веб-приложение, и я недавно переключил хранилище данных, чтобы работать с Hazelcast IMap перед ним. Приложение принимает тысячи одновременных соединений, и почти каждый отдельный запрос выполняет хотя бы операцию получения с распределенной карты. Я вижу много этих ошибок:
com.hazelcast.core.OperationTimeoutException: No response for 20000 ms. Aborting invocation! Invocation{serviceName='hz:impl:mapService', op=com.hazelcast.map.impl.operation.GetOperation{identityHash=1003806362, serviceName='hz:impl:mapService', partitionId=244, replicaIndex=0, callId=55212219, invocationTime=1462913274676 (Tue May 10 20:47:54 UTC 2016), waitTimeout=-1, callTimeout=10000, name=..., name=...}, partitionId=244, replicaIndex=0, tryCount=250, tryPauseMillis=500, invokeCount=1, callTimeout=10000, target=Address[10.0.2.221]:5701, backupsExpected=0, backupsCompleted=0, connection=Connection [/10.0.2.219:5701 -> /10.0.2.221:14565], endpoint=Address[10.0.2.221]:5701, alive=true, type=MEMBER} No response has been received! backups-expected:0 backups-completed: 0
Может ли это быть просто вызванное MapStore блокирование раздела нить, пока она пытается извлечь из базы данных? Я должен также отметить, что, пока он говорит No response for 20000 ms
, 20-е годы не прошли.
Я бегу Hazelcast 3.6.2 на Java 8.
Вы изменили файл hazelcast.operation.call.timeout.millis из-за вашего таймаута 20 секунд вместо обычных 2x60 секунд. – pveentjer