Высокоскоростное управление блокировками для мгновенного копирования в системах хранения данных с совместным использованием памяти n узлами

Иллюстрации

Показать все

Изобретение относится к вычислительным устройствам для управления памятью, в частности к контроллерам внешней памяти. Техническим результатом является расширение функциональных возможностей. Устройство управления памятью для работы в сети контроллеров памяти содержит контроллер памяти, являющийся узлом-владельцем, способным управлять блокировкой определенной области данных при выполнении операций ввода-вывода, и компонент для обмена сообщениями, обеспечивающий передачу по меньшей мере одного сообщения с запросом блокировки, разрешением блокировки, запросом снятия блокировки и сигналом снятия блокировки, а также компонент ввода-вывода, причем любой образ указанной области данных, полученный путем мгновенного копирования последней, поддерживается когерентным по отношению к самой области данных, а компонент ввода-вывода может помещать в кэш-память предыдущее прямое подтверждение, что эта область данных осталась когерентной любому такому образу, и выполнять операции ввода-вывода на основе этого предыдущего прямого подтверждения. Способ описывает работу указанного устройства. Программный продукт для ЭВМ реализован на машиночитаемом носителе и содержит записанную на нем программу, реализующую операции указанного способа. 3 н. и 6 з.п. ф-лы, 3 ил.

Реферат

Область техники, к которой относится изобретение

Настоящее изобретение относится к вычислительным устройствам для управления памятью, в частности к контроллерам внешней памяти с расширенными функциями в системах хранения данных с совместным использованием памяти n узлами, с функцией мгновенной копии данных.

Уровень техники

В области компьютерных систем хранения данных все более востребованными становятся так называемые "расширенные функции". Эти функции выходят за рамки простого управления вводом-выводом, реализуемого обычными системами контроллеров памяти. Расширенные функции широко известны и опираются на управление метаданными, которые используются для сохранения информации о состоянии реальных, или "пользовательских" данных, хранящихся в системе. Расширенные функции позволяют быстро осуществлять различные действия с виртуальными образами, или "снимками" данных, при этом реальные данные остаются доступными для использования пользовательскими приложениями. Одной из таких хорошо известных расширенных функций является мгновенное, или моментальное, копирование данных.

На самом высоком уровне мгновенное копирование представляет собой функцию, создающую вторичный образ неких данных. Такую функцию иногда называют копией данных в контрольной точке, или Т0-копией. Содержимое вторичного образа первоначально является идентичным содержимому первичного. Вторичный образ создается "мгновенно". На практике это означает, что вторичный образ создается за гораздо меньшее время, чем потребовалось бы для создания настоящей отдельной физической копии, и что при этом не происходит нежелательного нарушения работы программ, использующих копируемые данные.

Созданная таким образом вторичная копия может использоваться в различных целях, включая резервное копирование, проверку системы и извлечение информации из данных. При этом первичная копия продолжает использоваться первоначальным приложением в первоначальных целях. В отличие от этой функции для создания резервной копии без мгновенного копирования сначала необходимо закрыть приложение, сделать резервную копию и только потом можно снова запустить приложение. Находить временные окна, когда используемое приложение можно закрыть без ущерба для рабочего процесса, становится все сложнее. Таким образом, затраты на резервное копирование повышаются. Для предприятий возможность создания резервных копий при помощи функции мгновенного копирования данных без остановки рабочего процесса имеет значительную и все возрастающую ценность.

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

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

Поддержание такой структуры данных (далее - метаданные) является ключом к реализации алгоритма, лежащего в основе мгновенного копирования.

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

Однако производительность одного процессорного комплекса по выполнению операций ввода-вывода ограничена. Даже при повышении производительности одного процессорного комплекса, выражаемой в количестве операций ввода-вывода в секунду или в пропускной способности (Мбит/с), она имеет конечный предел, что в итоге накладывает ограничение на производительность системы при работе с приложениями. Такой предел существует во многих случаях применения технологии мгновенного копирования, но наиболее наглядным является пример контроллеров памяти. Типичный контроллер памяти имеет один процессорный комплекс (либо возможно пару дублирующих друг друга процессорных комплексов), определяющий предел производительности такого контроллера.

Можно установить дополнительные контроллеры памяти. Но такие отдельные контроллеры памяти не имеют совместного доступа к метаданным и, следовательно, не взаимодействуют при управлении мгновенным образом данных. Объем памяти становится фрагментированным, причем область действия функция мгновенного копирования ограничивается рамками системы одного контроллера. Диск-источник и диск-адресат должны находиться под управлением одного и того же контроллера памяти. Пространство на диске одного такого контроллера памяти может оказаться заполненным, тогда как на диске другого контроллера может оставаться свободное пространство, но диск-источник и диск-адресат невозможно разделить, передав диск-адресат под управление другого контроллера. (Это особенно досадно в случае новой мгновенной копии, когда перемещение адресата не требует значительных ресурсов, поскольку с адресатом не сопоставлены какие-либо физические данные.)

Помимо ограничения потенциальной эффективности пары "источник-адресат", ограниченные функции системы хранения данных с единственным контроллером дополнительно усложняют администрирование средств хранения данных.

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

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

Основной недостаток такой системы и причина, сдерживающая ее распространение, заключаются в том, что затраты на пересылку каждого запроса ввода-вывода настолько велики, что могут даже удваивать расход ресурсов на уровне всей системы и, следовательно, примерно вдвое снижать производительность системы.

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

Таким образом, желательно использовать преимущества распределенного управления блокировками в вычислительных средах, реализующих функцию мгновенного копирования, при минимальных затратах вычислительных ресурсов на передачу блокировочных сообщений.

Краткое изложение сущности изобретения

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

Предпочтительно, чтобы компонент ввода-вывода мог отбрасывать помещенное в кэш-память прямое подтверждение когерентности и впоследствии снова запрашивать блокировку.

Путем такого избирательного отбрасывания помещенного в кэш-память прямого подтверждения когерентности может осуществляться управление ограниченным участком кэш-памяти.

Предпочтительно также, чтобы прямое подтверждение когерентности в отношении одной области данных также являлось прямым подтверждением когерентности в отношении другой, смежной с ней, области данных.

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

При осуществлении предлагаемого в изобретении способа предпочтительно отбрасывать помещенное в кэш-память прямое подтверждение когерентности с последующим повторным запросом блокировки.

В этом случае путем избирательного отбрасывания помещенного в кэш-память прямого подтверждения когерентности можно управлять ограниченным участком кэш-памяти.

Предпочтительно также, чтобы прямое подтверждение когерентности в отношении одной области данных также являлось прямым подтверждением когерентности в отношении другой, смежной с ней, области данных.

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

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

Краткое описание чертежей

Далее в качестве примера описан предпочтительный вариант осуществления настоящего изобретения со ссылкой на приложенные чертежи, на которых показано:

на фиг.1 - блок-схема, иллюстрирующая вариант реализации схемы двухфазного блокирования с использованием блокировочных сообщений для контроля когерентности области данных и ее образа, полученного мгновенным копированием,

на фиг.2 - компоненты предлагаемой в изобретении системы в ее предпочтительном исполнении,

на фиг.3 - дополнительные операции, выполняемые при осуществлении изобретения в его предпочтительном варианте.

Подробное описание предпочтительного варианта осуществления

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

В качестве примера рассмотрим систему с n узлами, в которой реализована функция мгновенного копирования области данных. Допустим, что каждый узел имеет доступ к памяти, управляемой группой из n взаимодействующих узлов. На шаге 102 один из узлов назначается владельцем метаданных, касающихся всех взаимоотношений по вводу-выводу в определенной области данных. Остальные узлы назначаются клиентами. Кроме того, в наиболее предпочтительном на данное время варианте осуществления изобретения один из узлов-клиентов назначается запасным владельцем и поддерживает копию метаданных, что в случае отказа узла-владельца обеспечивает их постоянную доступность.

Рассмотрим случай, когда выполнения запроса на ввод-вывод, который на шаге 104 поступает от хост-системы (от англ. "host" - в данном случае автономный компьютер, например сервер или рабочая станция) в определенный узел-клиент С. Предполагается, что запрос ввода-вывода от хост-системы относится к считыванию или записи на диске-адресате, либо возможно операцией записи на диск-источник. Узел-клиент С начинает обработку данных путем приостановки выполнения запросов ввода-вывода на шаге 106. Затем на шаге 108 узел-клиент С направляет узлу-владельцу О сообщение REQ с вопросом, скопирован ли соответствующий фрагмент области данных.

После получения запроса REQ узел-владелец О проверяет структуры собственных метаданных. Если узел-владелец О установит, что область данных уже скопирована, на шаге 110 узел-владелец О передает в ответ сообщение NACK (отрицательное подтверждение). Если же узел-владелец О установит, что область данных еще не скопирована, он поместит напротив соответствующих метаданных, относящихся к вышеупомянутой области данных и находящихся в его собственных структурах метаданных, блокировочную запись и на шаге 112 ответит узлу-клиенту, направив ему сообщение GNT (запрос блокировки выполнен). Блокировочная запись необходима для обеспечения совместимости между только что принятым и выполненным запросом и поступающими впоследствии запросами, которые могут повлиять на те же метаданные в процессе продолжения обработки данных в узле-клиенте С. Процедура поддержания блокировочной записи в силе и ограничения на совместимость аналогичны процедуре и ограничениям в том случае, если бы запрос ввода-вывода был получен локально узлом О, что хорошо известно специалистам в данной области техники.

После получения сообщения NACK узел-клиент С на шаге 114 возобновляет выполнение приостановленного исходного запроса ввода-вывода.

После получения сообщения GNT узел-клиент С на шаге 116 продолжает работу, выполняя одну или несколько операций передачи данных, требуемых алгоритмом мгновенного копирования. В случае операции считывания из адресата это означает осуществление считывания применительно к исходному диску. Некоторое время спустя на шаге 118 узел-клиент С завершает обработку запроса на считывание и на шаге 120 передает узлу О сообщение UNL (блокировку снять) одновременно с передачей сообщения о завершении обработки исходного запроса на ввод-вывод хост-системе, которая направила такой запрос.

После получения сообщения UNL узел-владелец О на шаге 122 удаляет блокировочную запись из своей таблицы метаданных, тем самым возобновляя обработку других запросов ввода-вывода, выполнение которых было приостановлено из-за такой блокировки. В рассматриваемом наиболее предпочтительном варианте осуществления изобретения на шаге 124 узел-владелец О передает узлу-клиенту С сообщение UNLD (блокировка снята), разрешая узлу-клиенту С снова использовать ресурсы, указанные в исходном запросе. Однако собственно алгоритм мгновенной копии этого не требует.

В случае операции записи (в адресат или источник) узел-клиент С должен на шаге 127 выполнить операцию копирования при записи. После завершения всех шагов копирования при записи и пока исходный запрос записи ввода-вывода остается приостановленным, на шаге 126 узел-клиент С передает узлу О сообщение UNLC (запрос снятия блокировки копии).

После получения сообщения UNLC узел-владелец О на шаге 128 помечает в метаданных соответствующую область как скопированную, на шаге 130 снимает блокировку записи, на шаге 132 отвечает на все ожидающие выполнения запросы, сообщая, что область данных скопирована, и затем на шаге 134 передает узлу-клиенту С сообщение UNLD.

После получения сообщения UNLD узел-клиент С на шаге 136 возобновляет приостановленную операцию записи, которая выполняется через некоторое время, а затем на шаге 138 сообщает хост-системе о завершении операции записи.

В случае ошибки ввода-вывода на диске, отказа системы обмена сообщениями или отказа узла необходимы пути восстановления данных, однако требования к таким путям и их реализация хорошо известны из техники.

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

На фиг.2 показано предлагаемое в изобретении устройство в предпочтительном на данное время варианте его выполнения, реализованное в сети контроллеров памяти, включающей узел-владелец 202, узел-клиент 204, компонент, осуществляющий операции ввода-вывода, участок метаданных 206, относящийся к данным 208, которыми управляет сеть контроллеров памяти, копию 209 данных 208 и средства связи. Устройство имеет компонент 210, управляющий распределением прав владения данными и закрепляющий за узлом 202 права владельца метаданных, и компонент 212 для управления блокировками, способный управлять блокировкой на уровне метаданных 206 в процессе операций ввода-вывода для обеспечения их когерентности с любой копией 209. Устройство также включает компонент 214 для обмена сообщениями, который расположен при узле-владельце 202 и служит для осуществления обмена между узлом-клиентом 204 и узлом-владельцем 202 одним или несколькими сообщениями с запросом о состоянии метаданных, разрешением на установку блокировки, запросом снятия блокировки, а также сигналом снятия блокировки. Узел-клиент 204 осуществляет операции ввода-вывода в отношении данных, метаданными которых владеет узел-владелец 202, при условии выполнения узлом-клиентом 204 блокировочных протоколов на уровне метаданных, которыми управляет такой узел-владелец 202.

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

Поэтому для усовершенствования процесса использования системы по обработке данных в наиболее предпочтительном варианте осуществления настоящего изобретения для каждого узла-клиента предусмотрена возможность сохранять информацию, в которой записан последний ответ, полученную от узла-владельца. В частности (см. фиг.3, дополняющую блок-схему на фиг.1), узлу-клиенту С разрешено на шаге 308 помещать в кэш-память информацию о получении им сообщения NACK после шага 114, показанного на фиг.1, или о передаче и подтверждении им пары сообщений UNLC/UNLD на шаге 126 и после шага 134, показанного на фиг.1.

После получения от хост-системы на шаге 302 запроса ввода-вывода, аналогичного показанному на фиг.1 шагу 104, узел-клиент С в данном случае использует описанный далее измененный алгоритм управления блокировками.

Сначала на шаге 303 узел-клиент С проверяет, содержат ли его помещенные в кэш-память данные указание на то, что затронутая область данных уже скопирована. Если это так, то на шаге 304 узел-клиент С продолжает обработку запроса ввода-вывода, не передавая узлу О протокольных сообщений.

Если кэш-память не содержит такого указания, используется описанный выше протокол без изменений. Узел-клиент С выполняет шаг 106 и последующие шаги, показанные на фиг.1. В случае получения на шаге 306 сообщения NACK или пары сообщений UNLC/UNLD на шаге 308 происходит обновление находящейся в кэш-памяти информации, и после обнаружения на шаге 303 такой информации в кэш-памяти обработка последующих запросов ввода-вывода, которые затрагивают такую область, может продолжаться на шаге 304 без передачи протокольных сообщений.

При описании технологии, необходимой для работы настоящего изобретения в его наиболее предпочтительном на данное время варианте иногда используют понятие "пессимистический кэш". Это означает, что узел-клиент может не иметь полной обновленной копии метаданных узла-владельца: узел-клиент может считать, что определенная область памяти нуждается в копировании, а узел-владелец поправит его, уведомив сообщением NACK, что копирования не требуется. Но узел-клиент никогда не должен считать, что некая область скопирована, если узлу-владельцу известно обратное.

Для правильного функционирования системы при кэшировании сведений о блокировках в соответствии с наиболее предпочтительным вариантом осуществления изобретения в работу узла-клиента требуется внести ряд изменений. Во-первых, каждый раз при начале взаимодействия по созданию мгновенных копий (на шаге 300а) на шаге 301 необходимо инициализировать кэш-память (чтобы указать, что необходимо копировать все области). Это может быть сделано различными способами, но наиболее простым является сообщение узла-владельца узлу-клиенту. Во-вторых, каждый раз, когда узел-клиент на шаге 300b мог пропустить сообщение о том, что кэш-память была инициализирована повторно (возможно, из-за нарушения режима в энергосистеме), узел-клиент должен исходить из наихудшего варианта и на шаге 301 повторно инициализировать свою кэш-память или перепроверить правильность содержащихся в ней данных.

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

В другом варианте изобретения с расширенной функциональностью сообщение NACK (а также сообщения GNT или UNLD) может содержать дополнительную информацию сверх той, что относится непосредственно к области, обрабатываемой с использованием сообщений REQ/GNT/UNLC/UNLD. Узлы-владельцы могут также пересылать узлам-клиентам информацию, касающуюся соседних областей, которые также были очищены.

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

Настоящее изобретение может быть подходящим образом осуществлено в виде программного продукта для использования в вычислительных системах. Изобретение может быть осуществлено в виде последовательности машиночитаемых команд, записанных на материальном носителе, таком как машиночитаемый носитель, например дискета, ПЗУ на компакт-диске (CD-ROM), ПЗУ или жесткий диск, либо передаваемых вычислительной системе посредством модема или иного устройства интерфейса с использованием материальной среды, включая (и не только) оптические или аналоговые линии связи, или нематериальным способом с использованием беспроводных технологий, включая (и не только) СВЧ-технику, инфракрасную или иную технологию передачи сигналов. В последовательности машиночитаемых команд частично или полностью реализованы описанные выше функциональные возможности.

Для специалистов ясно, что такие машиночитаемые команды могут быть записаны на ряде языков программирования, применимых в разнообразных архитектурах ЭВМ или операционных системах. Кроме того, такие команды могут храниться с использованием любой технологии хранения, существующей или будущей, включая (и не только) полупроводниковую, магнитную или оптическую технологию, либо передаваться с использованием любой техники связи, существующей или будущей, включая (и не только) оптическую, инфракрасную или СВЧ-технику. Предполагается, что такой программный продукт для ЭВМ может распространяться в виде съемного носителя с сопроводительной документацией в печатном или электронном виде, например, в виде закрытых программных средств (программный пакет без раскрытия внутренней структуры), предварительно загруженных в вычислительную систему, например, на системном ПЗУ или несъемном диске, либо распространяться с сервера или электронной доски объявлений по сети, например, через Интернет или всемирную паутину.

Для специалиста очевидно, что в описанный выше вариант осуществления настоящего изобретения могут быть внесены различные изменения.

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

2. Устройство по п.1, в котором компонент ввода-вывода может отбросить помещенное в кэш-память прямое подтверждение когерентности и впоследствии снова запросить блокировку.

3. Устройство по п.2, в котором путем избирательного отбрасывания помещенного в кэш-память прямого подтверждения когерентности осуществляется управление ограниченным участком кэш-памяти.

4. Устройство по п.1, в котором прямое подтверждение когерентности в отношении одной области данных также является прямым подтверждением когерентности в отношении другой, смежной с ней, области данных.

5. Способ управления памятью в сети контроллеров памяти, включающей контроллер памяти, являющийся узлом-владельцем, способным управлять блокировкой определенной области данных при выполнении операций ввода-вывода, и компонент для обмена сообщениями, обеспечивающий передачу по меньшей мере одного сообщения с запросом блокировки, разрешением блокировки, запросом снятия блокировки и сигналом снятия блокировки, заключающийся в том, что

выполняют операции ввода-вывода в отношении данных, принадлежащих любому узлу-владельцу, при условии соответствия блокировочным протоколам, управляемым этим узлом-владельцем,

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

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

6. Способ по п.5, в котором помещенное в кэш-память прямое подтверждение когерентности отбрасывают с последующим повторным запросом блокировки.

7. Способ по п.6, в котором путем избирательного отбрасывания помещенного в кэш-память прямого подтверждения когерентности осуществляют управление ограниченным участком кэш-памяти.

8. Способ по п.5, в котором прямое подтверждение когерентности в отношении одной области данных также является прямым подтверждением когерентности в отношении другой, смежной с ней, области данных.

9. Программный продукт для ЭВМ, материально реализованный на машиночитаемом носителе и содержащий программу, которая при загрузке в вычислительную систему и выполнении в ней управляет устройством управления памятью в сети контроллеров памяти, включающей в себя контроллер, являющийся узлом-владельцем данных, управляющим блокировкой области данных при выполнении операций ввода-вывода, и компонент для обмена сообщениями, обеспечивающий передачу по меньшей мере одного сообщения с запросом блокировки, разрешением блокировки, запросом снятия блокировки и сигналом снятия блокировки, с обеспечением выполнения устройством управления памятью следующих действий:

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

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

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