Различия между хранилищем Ehcache 3 OffHeap и BigMemory
В Ehcache 2.X внешнее хранилище доступно с помощью коммерческого продукта Terracotta BigMemory. Однако, начиная с Ehcache 3, кажется, что внешнее хранилище свободно.
Интересно, перешел ли продукт BigMemory на Ehcache 3, и если это другой продукт, чем они отличаются?
Спасибо,
Рекомендации:
- Перегрузка хранилища в Ehcache 2.X с использованием BigMemory: http://www.ehcache.org/documentation/2.8/get-started/storage-options.html
- Перегрузка хранилища в Ehcache 3: http://www.ehcache.org/documentation/3.0/caching-concepts.html
2 ответа
BigMemory - это коммерческое название продукта, которое Ehcache + Terracotta кластеризация + автономная память и другие корпоративные функции, такие как безопасность.
Offheap - это название технологии, которая позволяет использовать память в мире Java, которая не находится под контролем сборщика мусора.
В начале 2015 года компания Terracotta открыла исходный код Offheap, что позволило снова создать кластерное решение с открытым исходным кодом для Ehcache. Это была основная особенность Ehcache 2.10.0, который работал с сервером Terracotta 4.3.0, который использует offheap для хранения на стороне сервера.
Ehcache 2.x не имеет функции offheap, доступной в открытом исходном коде. Однако в Ehcache 3.x он есть. Основная причина сохранения этой разницы заключается в технических ресурсах и желании продвигать новые версии библиотеки.
Базовая реализация "вне рынка", которая была с открытым исходным кодом, фактически является той, которая использовалась в коммерческих продуктах Terracotta в течение ряда лет и, таким образом, является проверенной в производственных условиях библиотекой.
Примечание: я работаю в Terracotta над Ehcache и связанными библиотеками / продуктами.
Смотрите исходный код. Я вижу, что Ehcache 3 использует библиотеку Terracotta для внутреннего пользования, которая лицензируется под Apache. Ehcache 3 вне класса. Terracota lib.
import org.terracotta.offheapstore.MetadataTuple;
import org.terracotta.offheapstore.Segment;
import org.terracotta.offheapstore.concurrent.AbstractConcurrentOffHeapCache;
import org.terracotta.offheapstore.pinning.PinnableSegment;
import org.terracotta.offheapstore.util.Factory;