Получаване на com.hazelcast.spi.exception.PartitionMigratingException за неопределено време след рестартиране на клъстер

Имам клъстер hazelcast на два сървъра, с два възела на всеки сървър. Използвам буркана hazelcast, така че възлите на всеки сървър се рестартират при всяко рестартиране на сървъра. Всеки път, когато се случи внедряване на двата сървъра, те се рестартират с 30 секунди разлика. Имах един конкретен случай, когато всеки път, когато приложението поиска определена част от данните, това изключение се хвърля. Използвам MultiMap за кеширане на данни.

Caused by: com.hazelcast.spi.exception.PartitionMigratingException: Partition is migrating! this:Address[app01]:5701, partitionId: 0, operation: com.hazelcast.map.impl.operation.PutOperation, service: hz:impl:mapService
        at com.hazelcast.spi.impl.BasicOperationService$OperationHandler.ensureNoPartitionProblems(BasicOperationService.java:833)
        at com.hazelcast.spi.impl.BasicOperationService$OperationHandler.handle(BasicOperationService.java:741)
        at com.hazelcast.spi.impl.BasicOperationService$OperationHandler.access$500(BasicOperationService.java:725)
        at com.hazelcast.spi.impl.BasicOperationService$BasicDispatcherImpl.dispatch(BasicOperationService.java:576)
        at com.hazelcast.spi.impl.BasicOperationScheduler$OperationThread.process(BasicOperationScheduler.java:466)
        at com.hazelcast.spi.impl.BasicOperationScheduler$OperationThread.doRun(BasicOperationScheduler.java:458)
        at com.hazelcast.spi.impl.BasicOperationScheduler$OperationThread.run(BasicOperationScheduler.java:432)

Виждам няколко от тях след изключение.

2015-04-10 14:51:03,403 WARN  com.hazelcast.spi.impl.BasicInvocation - [app01]:5701 [dev] [3.4.2] Retrying invocation: BasicInvocation{ serviceName='hz:impl:mapService', op=PutOperation{alert-coms}, partitionId=0, replicaIndex=0, tryCount=250, tryPauseMillis=500, invokeCount=100, callTimeout=60000, target=Address[app01]:5701, backupsExpected=0, backupsCompleted=0}, Reason: com.hazelcast.spi.exception.PartitionMigratingException: Partition is migrating! this:Address[app01]:5701, partitionId: 0, operation: com.hazelcast.map.impl.operation.PutOperation, service: hz:impl:mapService

Разбирам, че се опитва отново същата операция, тъй като беше хвърлено изключение, но проблемът е, че миграцията на дяла не завърши цял уикенд, докато не рестартирах сървърите отново.

Моля, помогнете ми да разбера защо се случва това и какви мерки могат да бъдат взети, за да го предотвратя.

Благодаря.


person Joseph Nuthalapati    schedule 14.04.2015    source източник


Отговори (1)


Вашият трик за оптимизация работи, но изходът не е същият... всичко става по-малко в маската. Наистина не разбирам какви са тези постоянни фактори, които умножавате и добавяте. Бихте ли обяснили идеята и целта му?
person Greg Luck    schedule 27.07.2016
comment
Използвах Hazelcast 3.5.4. Ще опитам да надстроя до 3.7. Благодаря. - person Joseph Nuthalapati; 27.07.2016
comment
Разполагаме с технически проект на новата схема за миграция на дялове. Вижте hazelcast.atlassian.net/ wiki/display/COM/ - person Greg Luck; 29.07.2016