Что означает "это дельта памяти" в контексте Терракоты?
Я читаю книгу "Весенние рецепты". Я не в состоянии понять некоторые вещи, сказанные о терракоте.
Ниже приводится абзац из книги
Терракотовая отличается от большинства кластеризованных кешей сегодня, потому что у нее нет видимого API, и потому что она намного более эффективна в передаче измененного состояния узлам по всему кластеру. Большинство систем используют своего рода механизм сериализации или широковещания Java, в котором каждому узлу присваивается весь объект или граф объекта, который изменяется независимо от того, нужно ли им вообще знать о новом состоянии. Терракота делает это по-другому: она разделяет память самих графов объектов и синхронизирует другие узлы в кластере, так как им требуется согласованное представление о состоянии объекта. Вкратце, он может сделать что-то равное передаче только одной обновленной переменной в объекте, а не всего объекта.
Я могу понять, что он не использует ничего, как сериализация, для передачи объектов через кластер, но что означает "это deltaas memory"?
2 ответа
Как прокомментировал axtavt, дельта - это, по сути, разница между двумя экземплярами объекта.
... это дельта памяти графов объектов...
Можно переформулировать в более простых терминах, таких как...
Определяет разницу между экземплярами объекта
По сути, этот абзац говорит...
Другие структуры / технологии кэширования синхронизируют состояние объектов по нескольким узлам в кластере, отправляя сообщения между узлами, которые содержат каждую информацию о каждом экземпляре, даже данные, которые не изменились. Терракота обрабатывает это более эффективно, только отправляя информацию, которая была изменена для синхронизации объектов.
Думайте об этом как о коммите SVN. Когда вы фиксируете файл в репозитории SVN, ваш компьютер не отправляет весь файл на сервер, он только отправляет diff (или дельту) для синхронизации версии файла репозитория с вашей локальной копией.
Надеюсь это поможет!
Стоит упомянуть, что книга устарела и в настоящее время большинство людей не используют терракоту (люди используют экспресс-режим, основанный на сериализации для "пользовательских типов").
В любом случае, пытаясь ответить на ваш вопрос: терракотовые инструменты используют ваши классы, так что все необходимые ловушки вокруг мутации и блокировки полей присутствуют, так что сделанные изменения (при надлежащей блокировке) будут распространяться, во-первых, на L2 (он же сервер Terracotta); во-вторых, узлам, пытающимся прочитать эти поля.
Я надеюсь, что этот (очень быстрый и короткий) ответ немного ответит на ваш вопрос.