26 сент. 2010 г.

Hazelcast

hazelcast
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 комментария:

Unknown комментирует...

Что-нибудь полезное уже закомитил?

Анонимный комментирует...

http://tsya.ru