ГРАНУЛЯРНОЕ УПРАВЛЕНИЕ ПОЛНОМОЧИЯМИ ДУБЛИРУЕМОЙ ИНФОРМАЦИИ ПРИ ПОМОЩИ ОГРАНИЧЕНИЯ И СНЯТИЯ ОГРАНИЧЕНИЯ Российский патент 2009 года по МПК G06F17/30 G06F12/16 

Описание патента на изобретение RU2372649C2

ССЫЛКА НА РОДСТВЕННУЮ ЗАЯВКУ НА ПАТЕНТ

Настоящая заявка на патент испрашивает приоритет предварительной заявки на патент США №60/486,627, поданной 10 июля 2003 г., озаглавленной "GRANULAR CONTROL OVER THE AUTHORITY OF REPLICATED INFORMATION VIA FENCING AND UNFENCING", которая включена в настоящее описание во всей своей полноте в качестве ссылки.

ОБЛАСТЬ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

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

УРОВЕНЬ ТЕХНИКИ

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

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

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

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

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

Другие преимущества будут понятны из нижеследующего подробного описания вместе с чертежами.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

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

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

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

на Фиг.4 показаны некоторые иллюстративные данные ресурсов и метаданные, которые могут быть использованы в машине по Фиг.2 и 3 согласно различным аспектам настоящего изобретения;

на Фиг.5 показаны некоторые иллюстративные данные ресурсов и метаданные, которые могут быть использованы согласно различным аспектам настоящего изобретения;

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

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

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

ПОДРОБНОЕ ОПИСАНИЕ

Иллюстративная рабочая среда

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

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

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

По Фиг.1 иллюстративная система для реализации настоящего изобретения включает в себя компьютерное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать в себя, но не ограничиваться ими, процессорное устройство 120, системную память 130 и системную шину 121, связывающую различные компоненты системы, в том числе и системную память с процессорным устройством 120. Системная шина 121 может быть шинной структурой любого типа, включая шину памяти или контроллер памяти, периферийную шину и локальную шину с любой из многочисленных шинных архитектур. Для примера, но не с целью ограничения, такие архитектуры включают в себя шину архитектуры промышленного стандарта (ISA), шину микроканальной архитектуры (MCA), расширенную ISA (EISA) шину, локальную шину ассоциации стандартов видеоэлектроники (VESA) и шину соединений периферийных компонентов (PCI), также известную как шину Mezzanine.

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

Системная память 130 включает в себя компьютерные средства хранения данных в виде энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ПЗУ) 131 и оперативное запоминающее устройство (ОЗУ) 132. Базовая система 133 ввода/вывода (BIOS), содержащая основные подпрограммы, участвующие в передаче информации между элементами в компьютере 110, например, во время запуска, обычно хранятся в ПЗУ 131. ОЗУ 132 обычно содержит данные и/или программные модули, которые являются непосредственно доступными и/или выполняются в настоящее время процессорным устройством 120. Для примера, но не с целью ограничения, на Фиг.1 показаны операционная система 134, прикладные программы 135, другие программные модули 136 и данные 137 программ.

Компьютер 110 также может включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные средства хранения данных. Исключительно в качестве примера на Фиг.1 показан привод 140 жесткого диска, считывающий или записывающий на несъемный, энергонезависимый магнитный носитель данных, привод 151 магнитного диска, считывающий или записывающий на несъемное, энергонезависимое магнитное устройство, привод 151 магнитного диска, считывающий или записывающий на съемный, энергонезависимый магнитный диск 152, и привод 155 оптического диска, считывающий и записывающий на съемный, энергонезависимый оптический диск 156, такой как CD-ROM или другой оптический носитель данных. Другие сменные/несменные, энергозависимые/энергонезависимые компьютерные средства хранения данных, которые могут применяться в иллюстративной рабочей среде, включают в себя, но не ограничиваются ими, кассеты с магнитной лентой, платы флэш-памяти, универсальные цифровые диски, цифровую видеоленту, твердотельное ОЗУ, твердотельное ПЗУ и т.п. Привод 141 жесткого диска обычно связан с системной шиной 121 посредством интерфейса несъемной памяти, такого как интерфейс 140, и привод 151 магнитного диска и привод 155 оптического диска обычно связаны с системной шиной 121 посредством интерфейса съемной памяти, такого как интерфейс 150.

Приводы и ассоциированные с ними компьютерные средства хранения данных, обсуждаемые выше и иллюстрированные на Фиг.1, обеспечивают в компьютере 110 хранение считываемых компьютером инструкций, структур данных, программных модулей и других данных. Например, на Фиг.1 привод жесткого диска 141 изображен хранящим операционную систему 144, прикладные программы 145, другие программные модули 146 и данные 147 программ. Необходимо заметить, что эти компоненты могут быть либо теми же самыми, либо отличаться от операционной системы 134, прикладных программ 135, других программных модулей 136 и данных 137 программ. Операционная система 144, прикладные программы 145, другие программные модули 146 и данные 147 программ имеют в данном случае отличающиеся номера для иллюстрации того, что, по меньшей мере, они являются отдельными копиями. Пользователь может вводить команды и информацию в компьютер 20 через устройства ввода, такие как клавиатуру 162 и указывающее устройство 161, обычно называемое мышью, трекболом или сенсорным планшетом. Другие устройства ввода (не показано) могут включать в себя микрофон, джойстик, игровую панель, спутниковую тарелку, сканнер, сенсорный экран карманного ПК или другие планшеты рукописного ввода и т.п. Эти и другие устройства ввода часто соединены с процессорным устройством 120 через пользовательский интерфейс 160 ввода, связанный с системной шиной, но могут быть подсоединены через другой интерфейс или шинные структуры, такие как параллельный порт, игровой порт или универсальную последовательную шину (USB). Монитор 191 или другое устройство отображения также подсоединены к системной шине 121 через интерфейс, такой как видеоинтерфейс 190. Дополнительно к монитору, компьютеры также могут включать в себя другие периферийные устройства вывода данных, такие как громкоговоритель 197 и принтер 196, которые могут быть подсоединены через периферийный интерфейс 190 вывода.

Компьютер 110 может работать в сетевом окружении, используя логические соединения с одним или более удаленными компьютерами, таким как удаленный компьютер 180. Удаленный компьютер 180 может быть персональным компьютером, сервером, маршрутизатором, сетевым ПК, одноранговым узлом сети, или другим обычным узлом сети, и обычно включает в себя ряд элементов, описанных выше в связи с компьютером 110, или все указанные элементы, несмотря на то что на Фиг.1 изображено только запоминающее устройство 181. Изображенные на Фиг.1 логические соединения включают в себя локальную сеть (ЛС) 171 и глобальную сеть (ГС) 173, но также могут включать в себя другие сети. Такие типы сетевого окружения являются обычными в офисах, промышленных компьютерных сетях, интрасетях и Интернете.

При использовании в локальной сетевой среде компьютер 110 подсоединяется к ЛС 171 через сетевой интерфейс или адаптер 170. При использовании в глобальной сетевой среде компьютер 110 обычно включает в себя модем 172 или другие средства для установления соединения через ГС 173, такую как Интернет. Модем 172, который может быть внутренним или внешним, может быть подсоединен к системной шине 121 через пользовательский интерфейс 160 ввода или другим подходящим способом. В сетевой среде программные модули, описанные в связи с компьютером 110, или часть их, могут храниться в удаленном устройстве хранения данных. Для примера, но не с целью ограничения, на Фиг.1 показаны удаленные прикладные программы 185, размещенные в запоминающем устройстве 181. Очевидно, что показанные сетевые соединения являются иллюстративными и могут быть использованы другие средства организации соединения между компьютерами.

Управление обновлениями с помощью дублирования ресурсов

Фиг.2 является блок-схемой, представляющей систему тиражирования (дублирования) ресурсов, включающую в себя две машины, тиражирующие ресурсы согласно различным аспектам настоящего изобретения. Обе машины 201 и 202 тиражируют (дублируют) ресурс А и выполняют его одновременное обновление от содержания контента х до содержания контента y, u, или z. Контент х, y, u и z может соответствовать, например, различным номерам последовательности версий и меткам времени для ресурса А.

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

Система дублирования обычно поддерживает два связанных набора данных для каждого из ресурсов: данные ресурса и метаданные ресурса. В системах дублирования (тиражирования), включающих в себя хранилища данных, основанные на именованных файлах в файловой системе, данные ресурса могут включать в себя контент файла, а также любые атрибуты файла, которые хранятся в файловой системе, связанные с контентом файла. Атрибуты файла могут включать в себя списки управления доступом (СУД), времена создания/модификации и другие данные, связанные с файлом. В системе дублирования, включающей в себя хранилища данных, не основанные на именованных файлах в файловой системе (например, такие, в которых ресурсы хранятся в базе данных или объектно-ориентрованные хранилища данных), хранятся данные ресурса, соответствующие хранилищу данных. В данном документе часто используются для иллюстрации системы дублирования, основанные на файлах в файловой системе, но является очевидным, что любое хранилище данных, выполненное с возможностью сохранения контента, может быть использовано без отступления от сущности или объема настоящего изобретения.

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

В общем случае, в глобальных распределенных системах не является возможным выполнять временную синхронизацию на самом гранулированном уровне. Это не позволяет использовать глобальное время в системах тиражирования для определения победителя при конкурентном обновлении и создании. Серверы дублирования (тиражирования) обычно используют логические распределенные сигналы синхронизации, внедренные в метаданные распределенного контента. Логический сигнал синхронизации увеличивается при обновлении контента, в отличие от перезаписи физическим локальным значением времени, соответствующему времени изменения. Таким образом, логическое время учитывает причинность: обновления одного и того же контента отмечаются непрерывно возрастающими значениями времени. Значение времени А:х на Фиг.2 может, например, составлять четыре ("4"). Затем система дублирования проверяет, что значения времени, связанные с А:х и А:z, превышают четыре. Взаимосвязь между указанными значениями времени является произвольной. Значения могут быть идентичными и могут не быть идентичными, поскольку они назначались независимо (например, машина 201 назначает значение времени для А:х, а машина 202 назначает значение времени для А:z).

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

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

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

Если во время выполнения тиражирования (дублирования) между двумя машинами ресурс (например, ресурс А) на одной из машин (например, машине 201) имеет более высокое ограничивающее значение, чем такой же ресурс на другой машине (например, машине 202), ресурс, имеющий более высокое ограничивающее значение, тиражируется на машину с ресурсом, имеющим более низкое ограничивающее значение. Другими словами, ресурс с более высоким ограничивающим значением выигрывает (и тиражируется) вне зависимости от других метаданных ресурса.

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

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

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

Ограничивающие значения могут иметь свойства, подобные логическому времени, поскольку в одном из вариантов осуществления они могут только увеличиваться или устанавливаться в ноль. Например, ограничивающее значение может увеличиваться, когда пользователь или процесс дает указание системе тиражирования сделать это. Иногда это называется "ограничение ресурса" или просто "ограничение". Увеличение ограничивающего значения является независимым от обновления данных ресурса. Увеличение ограничивающего значения становится видимым (например, передается в метаданных) посредством тиражирования. Поскольку ограничение не является частой операцией, может использоваться представление системного времени в виде целого числа для увеличения ограничивающего значения до максимума из текущего ограничивающего значения плюс один и текущего системного времени.

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

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

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

Ограничения могут быть установлены на существующие ресурсы через интерфейс прикладных программ (API) системы тиражирования, который ограничивает выбранные ресурсы. Помимо этого, ограничения могут быть установлены на будущие ресурсы, используя API, который ограничивает ресурсы, согласуя определенные параметры (такие как имена и атрибуты ресурсов), когда такие ресурсы становятся видимыми системе тиражирования. Управление будущим ограничением и снятием ограничения также может быть обеспечено при помощи задания связей: создания косвенно связанных ресурсов, например ресурсы в ограниченной/неограниченной директории могут наследовать ограничивающее значение исходя из родительского набора политик.

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

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

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

Фиг.3 является блок-схемой, предоставляющей систему, в которой две машины выполняют согласование ресурса, находящегося на обеих машинах, согласно различным аспектам настоящего изобретения. На Фиг.3 каждая машина имеет свою собственную версию ресурса, и ресурс имеет одинаковое имя или идентификатор. Задача заключается в том, чтобы в конце согласования тиражируемый ресурс имел либо контент х, либо y. В системе, показанной на Фиг.3, контент х на машине 301 выигрывает у контента y на машине 302. Это может произойти, например, если ограничивающее значение ресурса А на машине 301 больше, или при сравнении других метаданных ресурса.

На Фиг.4 показаны иллюстративные данные и метаданные ресурса, которые могут быть использованы в качестве А:х по Фиг.2 и 3, согласно различным аспектам настоящего изобретения. Метаданные ресурса включают в себя ограничивающее значение 1, значение времени, ГУИД, элемент реплики, авторизующий изменение, и дайджест. Данные ресурса включают в себя имя ресурса, сами данные, время создания, время изменения и другие атрибуты данных ресурса.

На Фиг.5 показаны иллюстративные данные и метаданные ресурса, которые могут быть использованы согласно различным аспектам настоящего изобретения, относящимся к синхронизации, показанной на Фиг.3. Контент на машине 501 (например, х) выигрывает у контента на машине 502 (например, y) и, вследствие этого, будет дублирован на машину 502, поскольку ограничивающее значение ресурса, связанного с х, (т.е. 1056603359) больше, чем ограничивающее значение ресурса, связанного с y (т.е. 1). Необходимо отметить, что при традиционном способе тиражирования y выиграл бы у х вследствие более позднего времени обновления.

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

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

На этапе 615, если ресурс должен распространяться, обработка переходит к этапу 620; в противном случае обработка переходит к этапу 635. На этапе 620 определяется, равны ли ограничивающие значения. Если это так, обработка переходит к этапу 625, где для определения способа распространения ресурса используются другие метаданные. На этапе 627 ресурс или его часть (например, метаданные, ограничивающие значения, различия в контенте и т.п.) распространяются из машины, которая была определена на этапе 625.

Если на этапе 620 ограничивающие значения не равны, обработка переходит к этапу 630. На этапе 630 ресурс или его часть (например, метаданные, ограничивающие значения, различия в контенте и т.п.) распространяется из машины, имеющей более высокое ограничивающее значение ресурса, в машину, имеющую более низкое ограничивающее значение ресурса. На этапе 635 обработка завершается.

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

Непринудительное восстановление резервной копии: при порче или потере данных пользователь, управляющий элементом системы тиражирования (дублирования) ресурсов, может стереть указанный элемент и запросить все данные, связанные с указанным элементом через систему тиражирования ресурсов. Если элемент является относительно большим с точки зрения пропускной способности линии связи, соединяющей элемент с системой тиражирования ресурсов, указанный способ может занять слишком долгое время или иметь слишком высокую цену. Однако, применяя аспект настоящего изобретения, пользователь может восстановить ресурсы элемента из резервной копии. Затем пользователь может снять ограничение ресурсов в резервной копии (например, установить нулевое ограничивающее значение) и позволить системе тиражирования ресурсов обновить устаревшие ресурсы. В этом случае восстановленный контент работает всего лишь в качестве "кэша контента", который при использовании подходящей логики может быть использован сервером тиражирования для предотвращения передачи контента по медленной линии связи (например, "по телефонной линии"), тем самым, поддерживая начальный трафик синхронизации, являющийся следствием восстановления резервной копии, ограниченным метаданными и данными ресурса, которые требуют обновления. После синхронизации любые оставшиеся ресурсы, имеющие нулевое ограничивающее значение, могут быть стерты или их ограничивающее значение может быть установлено в 1 для того, чтобы позволить их тиражирование.

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

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

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

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

Фиг.7 является блок-схемой, в общем виде представляющей иллюстративные этапы, которые могут присутствовать при выполнении непринудительного восстановления резервной копии согласно различным аспектам настоящего изобретения. Данные в элементе стерты или испорчены (этап 710). Администратор проводит восстановление резервной копии (этап 715). Администратор отмечает восстановленные данные, как имеющие снятое ограничение (этап 720). Происходит синхронизация, как показано этапом 725. Администратор стирает или отмечает оставшиеся ресурсы ограничивающим значением 1 (этап 730), и процесс завершается (этап 735).

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

Фиг.8 является блок-схемой, представляющей машину, выполненную с возможностью работы в системе тиражирования (дублирования) ресурсов согласно различным аспектам настоящего изобретения. Машина 805 включает в себя механизм 810 обновления, ресурсы 822 и механизм 840 связи.

Механизм 810 обновления включает в себя логику 815 сравнения ограничивающих значений, которая используется для сравнения ограничивающих значений и определения, должны ли ресурсы распространяться из машины 805 или даже должны ли быть ресурсы видимыми для других машин. Логика 815 сравнения ограничивающих значений также может применяться для определения, каким образом должны быть обновлены ограничивающие значения при операции установления ограничения, или повреждении, или стирании и последующем восстановлении метаданных 830 ресурса (как более подробно описано ниже).

Логика 820 разрешения конфликта с помощью других метаданных включает в себя логику, используемую для определения, какой ресурс выигрывает (и должен распространяться) в случае, если ограничивающие значения ресурсов эквивалентны. При использовании логики 820 разрешения конфликта других метаданных механизм 810 обновления может иметь доступ к данным в метаданных 830 ресурса и/или данных 825 ресурса для определения, должен ли быть ресурс распространен на другую машину или принят из нее.

Ресурсы 822 включают в себя данные 825 ресурса и метаданные 830 ресурса. Различие между данными ресурса и метаданными ресурса описано выше со ссылкой на Фиг.2. Хотя и показанные в одном блоке данные 825 ресурса могут храниться в хранилище отдельно от метаданных 830 ресурса.

Механизм 840 связи позволяет механизму 810 обновления связываться с другими механизмами обновления (не показано) на других машинах. Вместе механизмы обновления определяют, какие ресурсы следует синхронизовать и каким образом должна происходить синхронизация. Механизм 840 связи может представлять собой сетевой интерфейс или адаптер 170, модем 172 или любое другое средство установления связи, как описано в связи с Фиг.1.

Очевидно, что могут быть реализованы другие варианты машины, показанные на Фиг.8, без отступления от сущности или объема настоящего изобретения.

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

В еще одном варианте осуществления настоящего изобретения в качестве возможных ограничивающих значений применяются -∞ и 0. Функционально ограничивающее значение -∞ заменяет 0 (т.е. является значением снятого ограничения), тогда как 0 заменяет 1 (т.е. указывает, что ресурс следует тиражировать). Дополнительно, могут быть использованы другие отрицательные ограничивающие значения (например, -1, -2, -3, …, -n) для указания ресурсов, которые могут быть тиражированы. Такие ограничивающие значения проигрывают ресурсам, огражденным более высокими ограничивающими значениями. Применение такого обобщения включает в себя сценарии, в которых доступность свежих ресурсов является более важной, чем использование пропускной способности во время восстановления. Каждой машине может быть назначено отдельное ограничивающее значение (например, -1, -2, -3, …, -n), которое используется для начальных ресурсов. Порядок дает преимущества головной машине, использующей ограничивающее значение -1, вместе с тем, неконфликтующий контент со всех машин становится немедленно доступным.

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

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

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

Похожие патенты RU2372649C2

название год авторы номер документа
ТИРАЖИРОВАНИЕ ДАННЫХ 2011
  • Массули Лоран
  • Иоаннидис Ефстратиос
  • Чжоу Ся
RU2586598C2
ОБНОВЛЕНИЕ И РЕПЛИКАЦИЯ РЕСУРСОВ 2006
  • Суриянараянан Гухан
  • Лю Хойшэн
  • Бьернер Николай С.
RU2425415C2
УПРАВЛЕНИЕ ФАЙЛАМИ С ПОМОЩЬЮ ЗАПОЛНИТЕЛЕЙ 2013
  • Новак Майкл Джон
  • Гузак Крис
  • Ранджит Сангеета
  • Хогерверф Скотт Дэвид
  • Говрин Амнон Итамар
  • Вотье Марк
  • Рейнигер Киернон
  • Рамани Раманараянан
  • Шекел Одед Йехуда
  • Иванович Релджа
RU2646334C2
ОБЪЕДИНЕНИЕ И СИНХРОНИЗАЦИЯ БЛИЗЛЕЖАЩИХ ИСТОЧНИКОВ ИНФОРМАЦИИ 2006
  • Валлабх Джитеш
  • Тумси Даякар Камеш С.
  • Свони Ричард Дж.
  • Мадан Викрам
RU2421795C2
КОНТЕЙНЕР ДАННЫХ ДЛЯ ДАННЫХ КОНТЕНТА ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА 2005
  • Танмер Майкл Люк
  • Дикенз Мартин
RU2363039C2
ЦИФРОВЫЕ ПОДПИСИ ДЛЯ ПРИЛОЖЕНИЙ ЦИФРОВОГО ТЕЛЕВИДЕНИЯ 2003
  • Хередиа Эдвин А.
RU2336658C2
Способ ограничения доступа образа машинного кода к ресурсам операционной системы 2016
  • Иванов Дмитрий Геннадьевич
  • Павлов Никита Алексеевич
  • Швецов Дмитрий Владимирович
  • Горшенин Михаил Александрович
RU2625052C1
СИСТЕМЫ И СПОСОБЫ МОДЕЛИРОВАНИЯ ДАННЫХ В ОСНОВАННОЙ НА ПРЕДМЕТАХ ПЛАТФОРМЕ ХРАНЕНИЯ 2003
  • Нори Анил К.
  • Агарвал Самит
  • Томпсон Дж. Патрик
  • Селис Педро
  • Кэмпбелл Дэвид Г.
  • Терек Сонер Ф.
  • Камерон Ким
  • Смит Уолтер Р.
  • Шакиб Даррен А.
  • Бэллоу Натаниел Х.
  • Ачария Сринивасмуртхи П.
  • Раман Балан Сетху
  • Спиро Питер М.
RU2371757C2
БЕЗОПАСНОСТЬ В ПРИЛОЖЕНИЯХ СИНХРОНИЗАЦИИ РАВНОПРАВНЫХ УЗЛОВ 2006
  • Джхавери Вивек Джавахир
  • Новик Лев
RU2421799C2
РАСШИРЕННОЕ МЕНЮ ПОИСКА И КОНФИГУРАЦИЯ ДЛЯ КОМПЬЮТЕРНЫХ ПРИЛОЖЕНИЙ 2012
  • Джейкоб Сурадж
RU2609075C2

Иллюстрации к изобретению RU 2 372 649 C2

Реферат патента 2009 года ГРАНУЛЯРНОЕ УПРАВЛЕНИЕ ПОЛНОМОЧИЯМИ ДУБЛИРУЕМОЙ ИНФОРМАЦИИ ПРИ ПОМОЩИ ОГРАНИЧЕНИЯ И СНЯТИЯ ОГРАНИЧЕНИЯ

Изобретение относится к способам и системам управления контентом. Техническим результатом является обеспечение управления тиражированием контента. Набор реплик включает в себя набор ресурсов. Каждый ресурс связан с данными ресурса и метаданными ресурса. Для систем, основанных на файлах, данные ресурса включают в себя контент файлов и атрибуты, тогда как метаданные ресурса включают в себя дополнительные атрибуты, которые важны для согласования синхронизации во время тиражирования. К метаданным, связанным с каждым ресурсом, добавлено дополнительное поле, называемое "ограничивающее значение". Во время синхронизации сначала сравниваются ограничивающие значения. Ресурс с наивысшим ограничивающим значением включает в себя контент, которым производится управление и который тиражируется. Если ограничивающие значения равны (и превышают определенное значение), управляемые ресурсы определяются исходя из других метаданных. 2 н. 14 з.п. ф-лы, 8 ил.

Формула изобретения RU 2 372 649 C2

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

2. Способ по п.1, в котором второе ограничивающее значение и вторые метаданные хранятся в хранилище отдельно от контента второго элемента.

3. Способ по п.1, в котором изменение контента второго элемента содержит определение одного или более отличий между контентом на первом элементе и контентом на втором элементе.

4. Способ по п.1, в котором контент на втором элементе содержит данные файла и атрибуты файла.

5. Способ по п.1, в котором первые метаданные дополнительно содержат первый дайджест, который суммирует контент на первом элементе, и вторые метаданные дополнительно содержат дайджест, который суммирует контент на первом элементе.

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

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

8. Способ по п.1, в котором каждое из первого ограничивающего значения и второго ограничивающего значения назначается части контента на их соответствующем элементе из набора реплик.

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

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

11. Способ по п.10, в котором другие метаданные включают в себя логическое время, указывающее время последнего обновления соответствующего контента.

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

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

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

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

16. Способ по п.15, дополнительно содержащий, если ограничивающее значение второго ресурса имеет более высокое старшинство, чем ограничивающее значение первого ресурса, обновление первого ресурса из второго ресурса.

Документы, цитированные в отчете о поиске Патент 2009 года RU2372649C2

Топка с несколькими решетками для твердого топлива 1918
  • Арбатский И.В.
SU8A1
Топка с несколькими решетками для твердого топлива 1918
  • Арбатский И.В.
SU8A1
Металлический водоудерживающий щит висячей системы 1922
  • Гебель В.Г.
SU1999A1
Топка с несколькими решетками для твердого топлива 1918
  • Арбатский И.В.
SU8A1
Management API Reference
Аппарат для очищения воды при помощи химических реактивов 1917
  • Гордон И.Д.
SU2A1
Металлический водоудерживающий щит висячей системы 1922
  • Гебель В.Г.
SU1999A1

RU 2 372 649 C2

Авторы

Теодосиу Дэн

Бьорнер Николай С.

Даты

2009-11-10Публикация

2004-07-09Подача