Является ли Terracotta распределенным кешем?
Является ли Terracotta распределенным кешем?
Ответы (4)
Хотя вы не указываете, о каком продукте идет речь, я предполагаю, что вы имеете в виду саму платформу с открытым исходным кодом. Короткий ответ — нет, но его можно использовать для написания распределенного кеша, и это было в одном из их собственных продуктов (Ehcache).
Вы можете увидеть обзор того, что такое основной движок здесь (похоже, что они сейчас скрывают информацию о своей платформе с открытым исходным кодом за регистрационной стеной). Это механизм кластеризации, не использующий технологию J2EE, и его основная цель — упростить разработку распределенных вычислений. Помимо кэширования, очевидные варианты использования включают потребности в высокой доступности и масштабируемости. Думайте об этом как о возможности запускать относительно простой Java-код «в облаке», не беспокоясь о многих деталях, которые могут быть связаны с этим.
Terracotta не имеет ничего общего с «кешированием», хотя большинство реализаций используют его для целей кэширования. Terracotta — это кластеризация, а сама терракота реализована с использованием java (насколько мне известно).
Как Terracotta достигает кластеризации:
1) JVM1 с запущенным APP 2) JVM2 с запущенным APP (то же самое) 3) JVM3 с запущенным APP (то же самое)
Без Terracotta все JVM работают независимо, не зная друг о друге, выполняя некоторые избыточные задачи и поддерживая свои независимые кучи.
Когда вы включаете Terracotta (работающий сервер Terracotta) на этих 3 JVM (настроенных для использования сервера Terracotta)
Terracotta дает логическое представление обо всех трех JVM как об одной JVM. Любой граф объекта, который вы назначаете для хранения на сервере (Root), доступен для всех 3 JVM, как и любой локальный объект, но каждая JVM может читать/записывать этот объект, чьи изменения немедленно (~) доступны для других JVM.
Именно по этой причине Terracotta используется в основном для кэширования и распределенных вычислений, поскольку бездействующие JVM без работы могут обрабатывать работу сильно загруженной отстающей JVM, если объект единицы работы предназначен для совместного использования.
Ваш вопрос не ясен (у Terracotta есть несколько продуктов), но да, Terracotta Platform действительно предлагает решение для Распределенное кэширование.
Кэш L2 является внешним по отношению к процессору (в нашем случае JVM) и разделяется между ними. Выступая в качестве прозрачного кэша L2, Terracotta объединяет ваш мультикомпьютер в мультипроцессор. Таким образом, это распределенный кеш. Но вы, кажется, не понимаете этого, потому что вы ребята из SW, которые никогда не представляли, что это может быть прозрачным. Вы ожидаете, что кеш — это вещь, которая имеет методы получения/установки и проблему согласованности, которую вам нужно решить на уровне приложения.
Прочтите «Полное руководство по терракоте». Авторы буквально говорят, что Terracotta — это распределенный кеш. Я думаю, они понимают это лучше, чем кто-либо, кто говорит «нет», отвечая здесь.