In-Memory Data Grid for Java
hazelcast project on Google Code; Hazelcast.com
hazelcast documentation
Краткая история:
- Start-up, основан 2008
 - Open source бизнес модель. Получение прибыли на консалтинге и поддержке самого Hazelcast
 - Более 100 пользователей, в основном в США и в Европе
 
Характеристики:
- Pure java 5, NIO
 - Apache 2.0 licence
 - Light-weight & simple
 - Распределённая реализация 
- java.util.{Queue, Set, List, Map}
 - java.util.concurrency.locks.Lock
 - java.util.concurrent.ExecutorService
 
 - Распределённый MultiMap для взаимосвязи один-ко-многим
 - Поддержка шифрования на уровне socket
 - Распределённые Topic для публикации/подписки сообщений
 - Socket level encryption support for secure clusters
 - Синхронное (write-through) и асинхронное (write-behind) сохранение в БД
 - Мониторинг и управление кластером через JMX
 - Поддержка инфомации о состоянии кластера и его членов
 - Динамическое обранужение
 - Динамическое масштабирование
 - Динамическое перераспределние резервных копий данных
 - Динамический fail-over
 - и другое
 
Конкуренты:
Сами отцы Hazelcast'а называют своими конкурентами:
- Oracle Coherence
 - IBM WebSphere eXtreme Scale / ObjectGrid
 - TerracoWa
 - Gigaspaces
 - Gemstone
 - JBossCache/JGroups/Infinispan
 
Поскольку мой опыт ограничен Oracle/Tangosol Coherence, то сравниваю всегда именно с ним. Однако в целом продукты по функциональности очень похожи друг на друга:
- Quick start: один единственный jar, который нужно добавить в classpath
 - Простое конфигурирование:
- описание кластера - имя, пароль, шифрование, если необходимо
 - описание сети узлов- multicast,unicast,tcp/ip
 - декларация map и их свойств
 
 - Очень схожий API, как по функционалу, так и по названию - порой отличие только в наименовании package'ей
 - Производительность (latency) - разница не более 30% (как +, так и -)
 - Детально не исследовался вопрос:
- потребление cpu
 - потребление памяти
 - объём сетового траффика
 
 
Безусловно есть и различия.
Так, например, не касаясь вопросов лицензии и стоимости - не нашёл распределённый topic, queue, executor service
Bugs & Hazelcast:
Ошибки присутствуют, как и в любом проекте и продукте, большая часть не мешает его нормальному использованию - на критические ошибки реагируют (посте отправки issue в issue tracker) достаточно быстро - был случай, когда patch был создан в течении часа после отпраки issue.
Однако, было найденно несколько критических ошибок, которые не были исправлены (согласно svn и дате их "добавления") более полугода, что заставляет очень сильно задуматься/удивится/etc в свете заявления самих hazelcast'овцев о сотне пользователей в US/Europe.
Maven dependency:
<dependency>
    <groupId>com.hazelcast</groupId>
    <artifactId>hazelcast-all</artifactId>
    <version>1.9</version>
</dependency>Ivy dependency:
<dependency org="com.hazelcast" name="hazelcast-all" rev="1.9"/>P.S. Можно сказать, что Hazelcast - это реальная open source альтернатива Oracle Coherence под Apache license. Сообщество живое, реагируют быстро, новые идеи и функциональность приветствуется - проект растёт и вполне успешно.
P.P.S. С недавних пор я hazelcast committer.
2 комментария:
Что-нибудь полезное уже закомитил?
http://tsya.ru
Отправить комментарий