зареди цялата реализация за hazelcast

Опитвам се да използвам hazelcast сървър върху множество възли. Внедрих натоварването all в внедряването на магазина за карти. Чудя се дали това трябва да бъде активирано само на сървърен възел или всички? Ако разположа същото на всички възли, това няма ли да създаде операции за четене на база данни, които не би трябвало да са необходими. Ако трябва да разположа цялото натоварване само на един възел, коя е най-добрата стратегия (базирана на код/API извикване или конфигурация), която би ми позволила чисто да внедря сценария, при който само един сървърен възел прилага изпълнението на цялото натоварване за хранилище на карта. Винаги мога да разположа различен код на различни сървъри, но бих искал да избегна това и да се чудя за по-добър избор.


person Community    schedule 14.08.2014    source източник
comment
някакви мисли от някой?   -  person    schedule 14.08.2014


Отговори (1)


Всеки възел трябва да има една и съща конфигурация/буркани и т.н.

В момента MapLoader.loadAllKeys се изпълнява на един от възлите в клъстера. След като ключовете се заредят, те се присвояват на притежаващите дялове, където действителните данни се зареждат с помощта на метода MapLoader.loadAll(keys).

Смятате ли, че споделянето на една и съща конфигурация/буркани е проблем?

person pveentjer    schedule 15.08.2014
comment
Предполагам, че исках да съм наясно с това. Hazelcast ще поеме ли отговорността да гарантира, че само възелът извиква loadlAll/loadAllkeys или това е нещо, което трябва да внедря? Ако кодът/конфигурацията е същият, това би било чудесно (без да се налага да прилагате логика, за да се уверите, че само възелът извиква loadAll) - person ; 15.08.2014
comment
Не е необходимо да го прилагате; това е част от инфраструктурата на Hazelcast. - person pveentjer; 17.08.2014
comment
Вероятно в Hazelcast 3.4 ще обогатим модела на зареждане. Вярвам, че ще има повече контрол върху зареждането на всички ключове на дял, защото в момента 1 машина ще бъде „жертва“, за да зареди всички ключове, но в някои случаи е по-добре да разпределите натоварването. - person pveentjer; 17.08.2014
comment
благодаря ви за коментара - това, което вземам от това, е следното: че трябва просто да разположа внедряванията си за съхраняване на карти (със зареждане на всички ключове) на всички възли - зареждането на всички ключове се извиква само от един възел в клъстера - person ; 18.08.2014
comment
Във версия hazelcast 3.3 ключовете за зареждане се извикват веднъж и аз връщам 2 ключа в него, но когато стигна до loadAll, той се извиква два пъти с един ключ като вход, изпълнява се като load(), а не loadAll(). За ваша информация, аз не конфигурирам дял, нито над 1000 ключа, имам само два ключа. Къде бъркам??? Благодаря и поздрави, Хари - person Harry; 30.09.2014
comment
Не правиш нищо лошо. Това което казваш е правилно. Ще ви дам по-добри числа. Представете си 27100 ключа в db, тогава loadAllKeys ще зареди 27100 ключа наведнъж. И след това всеки дял зарежда 100 ключа (27100/271) с помощта на метода loadKeys. Във вашия случай имате само 2 ключа, така че вероятно всеки ключ завършва в различен дял, където всеки дял прави loadKeys с един ключ. Това има ли смисъл за вас? Или не те разбирам погрешно? - person pveentjer; 30.09.2014
comment
Малко правилно: всеки дял ще зареди записите с помощта на метода loadAll. - person pveentjer; 30.09.2014