Терракота это распределенный кеш? - PullRequest
8 голосов

Ответы [ 4 ]

9 голосов
/ 04 мая 2010

Хотя вы не указываете, о каком продукте вы говорите, я предполагаю, что вы имеете в виду саму платформу с открытым исходным кодом. Краткий ответ - нет, но его можно использовать для записи распределенного кэша, и он был в одном из своих собственных продуктов (Ehcache).

Вы можете увидеть обзор того, что такое ядро ​​ядра здесь (кажется, что они скрывают информацию на своей платформе с открытым исходным кодом за стеной регистрации). Это механизм кластеризации, который не использует технологию J2EE, и его основная цель - упростить разработку распределенных вычислений. Помимо кеширования, очевидные сценарии использования требуют высокой доступности и масштабируемости. Считайте, что это позволяет относительно простому Java-коду запускаться «в облаке», не беспокоясь о многих деталях, которые могут в этом возникнуть.

7 голосов
/ 06 марта 2011

Терракота не имеет ничего общего с «кэшированием», хотя большинство реализаций используют его для целей кэширования. Терракота о кластеризации, а сама терракота реализована с использованием Java (насколько мне известно).

Как Terracotta достигает кластеризации:

1) JVM1 работает APP 2) JVM2 работает APP (то же самое) 3) JVM3 работает APP (то же самое)

Без Terracotta все JVM работают независимо, не зная друг о друге, выполняя некоторые избыточные задачи и поддерживая свои независимые кучи

Когда вы включаете Terracotta (сервер Terracotta работает) через эти 3 JVM (настроенные для использования сервера Terracotta)

Терракота дает логическое представление о всех 3 JVM как одной JVM. Любой объектный граф, который вы определили для хранения на сервере (Root), доступен для всех 3 JVM, как и любой локальный объект, но каждая JVM может читать / записывать этот объект, чьи изменения немедленно (~) доступны для других JVM.

Именно по этой причине Terracotta используется в основном для кэширования и распределенных вычислений, поскольку незанятые JVM без работы могут обрабатывать работу сильно загруженной запаздывающей JVM, если объект единицы работы назначен для совместного использования.

3 голосов
/ 04 мая 2010

Ваш вопрос неясен (у Terracotta есть несколько продуктов), но да, платформа Terracotta действительно предлагает решение для распределенного кэширования.

1 голос
/ 20 мая 2012

Кэш второго уровня - это тот, который является внешним по отношению к процессору (в нашем случае JVM) и разделяется между ними. Выступая в качестве прозрачного кэша L2, Terracotta объединяет ваш мультикомпьютер в мультипроцессор. Таким образом, это распределенный кеш. Но, похоже, вы этого не понимаете, потому что вы парни из SW, которые никогда не представляли, что это может быть прозрачным. Вы ожидаете, что кеш - это то, что имеет методы get / set и проблему согласованности, которую необходимо решить на уровне приложения.

Прочтите «Определенное руководство по терракоте». Авторы буквально говорят, что Terracotta - это распределенный кеш. Я думаю, что они понимают это лучше, чем любой, кто говорит «нет», отвечая здесь.

...