Будет ли Terracota хорошим решением для быстрой смены больших данных, состоящих из мелких объектов?

Я оцениваю Терракоту для моей текущей постановки проблемы. Процесс требует значительных ресурсов процессора и занимает около 5-10 ГБ оперативной памяти (ОЗУ). Каждый объект в памяти имеет размер 1 килобайт и состоит из нескольких примитивных типов данных. Все данные ОЗУ проходят тысячи итераций, и каждая итерация меняет все объекты. Каждый объект модифицируется полностью. Процесс занимает несколько дней, чтобы закончить.

Более миллиона объектов разделены и теперь работают на нескольких основных машинах, но мне нужно больше энергии и гораздо больше оперативной памяти (для больших проблем). Данные / объекты, обработанные одним потоком, не передаются другим

Будет ли Terracota хорошим решением? Будет ли синхронизация миллиона объектов на сервере кластеризации действительно плохим узким местом, делающим его неэффективным?

1 ответ

Я думаю, что терракота лучше всего подходит для кэширования и быстрого поиска. В качестве скорости размещения я видел частоту 10K "пакетных операций" в секунду на экземпляр сервера Cache. Режим "пакетного обновления" означает, что вы можете поместить коллекцию записей в один выстрел, что будет намного более эффективным по сравнению с одиночным размещением.

Вот пример пакетного обновления:

cache.setNodeBulkLoadEnabled(true);
try
{
  Collection<Element> entries= new ArrayList<Element>();
  while (...)
  {
    entries.add(new Element(key, value));
  }
  cache.putAll(entries);
}
finally
{
  cache.setNodeBulkLoadEnabled(false);
}

Кроме того, Terracotta имеет функцию BigMemory, которая позволяет использовать память вне кучи JVM. Чтобы включить его, вы должны добавить в свой ehcache.xml:

<cache name="com.xyz.MyPOJO" maxMemoryOffHeap="3g">
  <terracotta/>
</cache>

В приведенном выше примере будет использоваться 3Gig от Ram вне вашей JVM. В общем случае размер кучи не должен превышать 4G, в противном случае ваша JVM будет тратить на GC тонны циклов... что в вашем случае еще больше замедляет ваши вычисления.

Другой альтернативой для проверки являются решения "Вычисления / Сетка данных". Вы можете начать с http://www.gridgain.com/ и http://www.gigaspaces.com/

Другие вопросы по тегам