В чем разница между "сетевым ОЗУ" и "распределенной общей памятью" (DSM)? По сути, я знаю, что они оба предоставляют общее хранилище в оперативной памяти для всех систем в кластере. Так в чем же разница?
1 ответ
Сетевое ОЗУ фактически является удаленным ОЗУ для обмена страницами. Как таковой, домашний узел для адреса страницы памяти отличается от узла, предоставляющего память RAM (когда страница была выгружена). Основная цель сетевого ОЗУ - сбалансировать использование объема памяти, особенно когда некоторые узлы не работают. Узел, предоставляющий ОЗУ, не сможет обращаться к этой памяти на уровне приложения (по крайней мере, не как память, связанная с этим узлом, обеспечивающим хранение).
Используя интерфейс подкачки, реализация сетевого ОЗУ будет существенно проще, чем реализация более общего механизма миграции. Сетевое ОЗУ также использует один умеренный размер сообщения, поэтому передачи будут более дружественными для сетей, не поддерживающих RDMA, чем, например, передачи с размером строки кэша.
В распределенной разделяемой памяти память для адресного пространства, связанного с узлом, полностью содержится в этом узле, но любой узел, который является частью того же многораздельного глобального адресного пространства, может адресовать эту память. Распределенная общая память обеспечивает основу для распределенных вычислений, позволяя другим узлам обращаться к удаленной памяти.
Чтобы запутать ситуацию, система DSM может выполнить оптимизацию для уменьшения сетевого трафика и задержек, таких как репликация и миграция памяти.
Сетевое ОЗУ представляет собой эффективную миграцию памяти на основе низкой временной локализации на узел с избыточной емкостью и может быть реализовано для системы DSM, системы передачи сообщений или даже кластера узлов, на которых выполняются полностью независимые рабочие нагрузки. Сетевое ОЗУ само по себе не предоставляет другим узлам никаких средств для обращения к удаленной активной памяти, поэтому его нельзя использовать в качестве основы для распределения вычислений.