Последняя версия GridGain - Open Source грида, основанного на Java поддерживает
балансировку нагрузки и обработку распределенных данных.
GridGain Systems недавно выпустила версию 2.0 - продукта который так же реализовал так называемый "work stealing" функциональность по динамическому перераспределению задач с наиболее загруженных нодов на наименее.
Основанный на SPI архитектуре GridGain позволяет расширять функциональность без изменения ядра системы, что делает возможным реализацию новых концепций (в том числе и пользовательских) очень простой.
Балансировка нагрузки имеет несколько стратегий в том числе:
Round Robin (по умолчанию), адаптивная и привязанная к данным (co-locative) балансировка, позволяющая избежать пересылки больших данных по сети. Так же поставляется балансировщик нагрузки для Oracle Coherence и JBoss cache направляющий задачи на ноды с где хранятся необходимые данные.
"Work stealing" работает по принципу динамического перераспределения задач между нодами грида (передавая их с перегруженных нодов в гриде на наименее загруженные). Этот SPI так же как и другие поддерживает отказоустойчивость и управляемое выполнение задач на гриде. Изначальная идея "work stealing" основывается на Fork/Join предложенным Doug Lea и запланированными на
Java SE 7. Эта функциональность может использоваться чтобы избежать "зависания" задач на слабых нодах.
Работая с большими объемами данных необходимо избегать пересылки их по сети с ноды на ноду. GridGain предоставляет следующую функциональнось для оптимизации работы с большим объемом данных:
- Co-location балансировщик нагрузки позволяет привязывать задачи к
обрабатываемым данным и выполнять их на тех нодах где находятся данные
- Сегментация грида на группы, которые работают со своими задачами, что позволяет
при необходимости реализовать концепцию master/worker
- Сохранение промежуточных результатов вычислений, что необходимо при
выполнении длительных задач и позволяет продолжить вычисления с
последней "сохраненной" точки.
Релиз так же включает в себя следующую новую функциональность:
- Мониторинг: GridGain позволяет получать различную информацию о нодах,
такую как использование памяти или процессора, количество выполняемых
задач на ноде и другую
- IOC: GridGain поддерживает возможность определения пользовательских
ресурсов (таких как JDBC соединение или Spring бины в runtime)
- Контекст выполнения задачи позволяет подзадачам обмениваться информацией
<>GridGain интегрируется со многими open source и коммерческими продуктами, такими как JUnit, AspectJ, Spring, JBoss & JGroups, GlassFish, WebLogic, WebSphere, pCoherence, Mule, JXInsight, and GigaSpaces.
Также GridGain поддерживает распределенное выполнение JUnit тестов как версии 3 так и 4 что значительно сокращает время их выполнения. Распределенный тест конфигурируется буквально одной аннотацией @GridifyTest. Это полезно при выполнении большого количества тестов (например ночные билды и интеграционные тесты) которые обычно занимают очень длительное время.
|