Что означает «это дельта памяти» в контексте Терракоты? - PullRequest
4 голосов
/ 21 ноября 2011

Я читаю книгу Весенние рецепты.Я не в состоянии понять некоторые вещи, сказанные о терракоте.

Ниже приводится абзац из книги

Терракота отличается от большинства кластеризованных кешей сегодня, потому что у нее нет видимого API,и потому, что он гораздо более эффективен в передаче измененного состояния узлам по всему кластеру.В большинстве систем используется своего рода механизм сериализации или широковещания Java, в котором каждому узлу присваивается весь объект или граф объекта, который изменяется независимо от того, нужно ли им даже знать о новом состоянии.Terracotta делает это по-другому: она сама разделяет память графов объектов и синхронизирует другие узлы в кластере, поскольку им требуется согласованное представление о состоянии объекта .Вкратце, он может сделать что-то равносильное передаче только одной обновленной переменной в объекте, а не всего объекта.

Я могу понять, что он не использует ничего, как сериализация, для передачи объектов через кластер, ночто означает " it deltaas memory "?

Ответы [ 2 ]

2 голосов
/ 22 ноября 2011

Как прокомментировал axtavt, Delta - это, по сути, разница между двумя экземплярами объекта.

... он разделяет память графов объектов ...

Можно переформулировать в более простых терминах, например ...

Определяет разницу между экземплярами объекта

Что в сущности говорит этот абзац ...

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

Думайте об этом как о коммите SVN. Когда вы фиксируете файл в репозитории SVN, ваш компьютер не отправляет весь файл на сервер, он только отправляет diff (или дельту) для синхронизации версии файла репозитория с вашей локальной копией.

Надеюсь, это поможет!

2 голосов
/ 22 ноября 2011

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

В любом случае,пытаясь ответить на ваш вопрос: Terracotta применяет ваши классы так, чтобы все необходимые хуки вокруг мутации и блокировки полей присутствовали, так что сделанные изменения (при надлежащей блокировке) будут распространяться, во-первых, на L2 (иначе Terracotta server);во-вторых, узлам, пытающимся прочитать эти поля.

Надеюсь, этот (очень быстрый и короткий) ответ немного ответит на ваш вопрос.

...