Кто нибудь подумает - вот работает в GridGain и продвигает, ничуть. Просто всвязи с вышедшей версией 2.0 и помня все ее фичи напишу коротенько что умеет и что нет. Начну с того что GridGain это полноценный грид очень простой в использовании и имеющий разумный и полноценный API.
Основа грида это набор нодов которые могут быть подняты как с помощью shell скриптов на разных машинах так и на одной. Так же можно запустить грид ноду программно в своем VM или например иметь несколько нодов в одной и той же VM что удобно для тестирования и отладки. То есть запустив несколько нодов мы получаем грид, в котором все ноды равны.
Следующая особеность это набор SPI (service provider interface) или просто стандартных интерфейсов и различных реализаций. Есть ядро взаимодействующее с SPI через фиксированный интерфейс, а что за ним скрывается ядру все равно. А скрываются за ним готовые решения для интеграции с серверами приложений: JBoss, WebSphere, WebLogic, GlassFish, Tomcat, различными фреймворками: JGroups, JMS, приложениями: Oracle Coherence Tangosole, Mule, JBCache, GigaSpaces, JXInsight и другими.
Такая архитектура позволяет не сложно и быстро интегрировать GridGain с любыми продуктами, написав свой SPI.
Map/Reduce.
GridGain построен на технологии map/reduce при которой сначала происходит разбиение задачи (task) на работы (jobs) и распределение работ по нодам (map) а после того как они выполнятся сборка результатов и объединение в один (reduce). На такой же технологии построены Hadoop, Google.
Последний релиз привнес ряд новой функциональности, так что я перечислю все:
1) Load balancing - балансировка нагрузки и возможность очень просто написать свою стратегию балансировки
2) Failover - перераспределение работ по нодам если одна из нод покинула топологию или работа на ней не смогла выполниться.
3) Metrics/attributes - все ноды получили аттрибуты и различные метрики такие как используемая/свободная память, использование процессора и другие. Пользователь может самостоятельно определять свои аттрибуты.
4) Job stealing - реализация предложенной Sun концепции при которой свободные ноды могут "воровать" работу у очень занятых что приводит к более равномерному перераспределению нагрузки автоматически.
5) Tracing - возможность поключать инструментарий для трассировки вызовов с помощью простого API.
6) Events - система событий позволяющая как в режиме реального исполнения получать различные типы событий от грида так и обработать их позднее.
6) Discovery - механизм поиска и включения в грид новых нод "на лету". GridGain поставляется с довольно широким спектром готовых SPI.
7) Loaders - готовые решения для встраивания Gridgain в популярные сервера приложений.
8) Checkpoint - возможность сохранения промежуточных результатов вычислений и использование их на других нодах после падения или перезапуска
9) Session - механизм обмена данными между различными работами (jobs) той же самой задачи (task)
10) P2P - возможность автоматического распространения классов на все ноды грида по мере необходимости
11) @Gridify - аннотация предоставляющая возможность выполнить метод удаленно без его модификации
И многое другое. Ключемыми понятиями являются задача (task) и работы (job) на которые происходит разделение задачи. Это те классы которые разработчик может написать для более тонкого управления выполнением, но GridGain поставляется и с готовыми решениями.
Ряд известных недостатков относится как к новой функциональности (например не очень гибкая реализация job stealing), невозможность использовать разные стратегии балансировки для разных задач, так и к общей концепции - все таки для оптимального и правильного выполения необходимо писать код который будет этим заниматься. Так же стоит заметить что продукт сугубо Java и использование его из других языков возможно но сопряжено с использованием сторонних продуктов.
Основа грида это набор нодов которые могут быть подняты как с помощью shell скриптов на разных машинах так и на одной. Так же можно запустить грид ноду программно в своем VM или например иметь несколько нодов в одной и той же VM что удобно для тестирования и отладки. То есть запустив несколько нодов мы получаем грид, в котором все ноды равны.
Следующая особеность это набор SPI (service provider interface) или просто стандартных интерфейсов и различных реализаций. Есть ядро взаимодействующее с SPI через фиксированный интерфейс, а что за ним скрывается ядру все равно. А скрываются за ним готовые решения для интеграции с серверами приложений: JBoss, WebSphere, WebLogic, GlassFish, Tomcat, различными фреймворками: JGroups, JMS, приложениями: Oracle Coherence Tangosole, Mule, JBCache, GigaSpaces, JXInsight и другими.
Такая архитектура позволяет не сложно и быстро интегрировать GridGain с любыми продуктами, написав свой SPI.
Map/Reduce.
GridGain построен на технологии map/reduce при которой сначала происходит разбиение задачи (task) на работы (jobs) и распределение работ по нодам (map) а после того как они выполнятся сборка результатов и объединение в один (reduce). На такой же технологии построены Hadoop, Google.
Последний релиз привнес ряд новой функциональности, так что я перечислю все:
1) Load balancing - балансировка нагрузки и возможность очень просто написать свою стратегию балансировки
2) Failover - перераспределение работ по нодам если одна из нод покинула топологию или работа на ней не смогла выполниться.
3) Metrics/attributes - все ноды получили аттрибуты и различные метрики такие как используемая/свободная память, использование процессора и другие. Пользователь может самостоятельно определять свои аттрибуты.
4) Job stealing - реализация предложенной Sun концепции при которой свободные ноды могут "воровать" работу у очень занятых что приводит к более равномерному перераспределению нагрузки автоматически.
5) Tracing - возможность поключать инструментарий для трассировки вызовов с помощью простого API.
6) Events - система событий позволяющая как в режиме реального исполнения получать различные типы событий от грида так и обработать их позднее.
6) Discovery - механизм поиска и включения в грид новых нод "на лету". GridGain поставляется с довольно широким спектром готовых SPI.
7) Loaders - готовые решения для встраивания Gridgain в популярные сервера приложений.
8) Checkpoint - возможность сохранения промежуточных результатов вычислений и использование их на других нодах после падения или перезапуска
9) Session - механизм обмена данными между различными работами (jobs) той же самой задачи (task)
10) P2P - возможность автоматического распространения классов на все ноды грида по мере необходимости
11) @Gridify - аннотация предоставляющая возможность выполнить метод удаленно без его модификации
И многое другое. Ключемыми понятиями являются задача (task) и работы (job) на которые происходит разделение задачи. Это те классы которые разработчик может написать для более тонкого управления выполнением, но GridGain поставляется и с готовыми решениями.
Ряд известных недостатков относится как к новой функциональности (например не очень гибкая реализация job stealing), невозможность использовать разные стратегии балансировки для разных задач, так и к общей концепции - все таки для оптимального и правильного выполения необходимо писать код который будет этим заниматься. Так же стоит заметить что продукт сугубо Java и использование его из других языков возможно но сопряжено с использованием сторонних продуктов.

