RU2783595C2 - Method for synchronization of databases between two points, using transport protocol - Google Patents

Method for synchronization of databases between two points, using transport protocol Download PDF

Info

Publication number
RU2783595C2
RU2783595C2 RU2020136629A RU2020136629A RU2783595C2 RU 2783595 C2 RU2783595 C2 RU 2783595C2 RU 2020136629 A RU2020136629 A RU 2020136629A RU 2020136629 A RU2020136629 A RU 2020136629A RU 2783595 C2 RU2783595 C2 RU 2783595C2
Authority
RU
Russia
Prior art keywords
database
lrpdus
registrar
applicant
local
Prior art date
Application number
RU2020136629A
Other languages
Russian (ru)
Other versions
RU2020136629A (en
Inventor
Дин ЧЭН
Норман ФИНН
Original Assignee
Хуавей Текнолоджиз Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Хуавей Текнолоджиз Ко., Лтд. filed Critical Хуавей Текнолоджиз Ко., Лтд.
Publication of RU2020136629A publication Critical patent/RU2020136629A/en
Application granted granted Critical
Publication of RU2783595C2 publication Critical patent/RU2783595C2/en

Links

Images

Abstract

FIELD: information technologies.
SUBSTANCE: invention relates to database control. The method contains reception, in a local node receiver, of a welcome message containing an application identifier (hereinafter – AppId) and an indication of a target communication line between a target port of the local node and a target port of a neighboring node, determination, by a processor in the local node, of AppId identifier associated with the application for synchronization of databases, establishment of a local database in a storage device in the local node as a part of a pair of databases for being used by the specified application, this pair of databases contains a neighboring database located in the neighboring node, association, by the processor, of the considered pair of databases with the target communication line, and synchronization of the local database with the neighboring database, using the target communication line.
EFFECT: provision of a possibility of synchronization of databases between two points, using a transport protocol.
26 cl, 15 dwg

Description

Перекрестные ссылки на родственные заявкиCross-references to related applications

Настоящая заявка на выдачу патента испрашивает приоритет предварительной заявки на выдачу патента США No. 62/655,625, поданной 10 апреля 2018 авторами Дин Чен и др. под названием «Способ синхронизации баз данных между двумя пунктами с использованием транспортного протокола» (Dean Cheng, et al., “Point-to-Point Database synchronization Over a Transport Protocol,”) предварительной заявки на выдачу патента США No. 62/782,993, поданной 20 декабря 2018 авторами Дин Чен и др. под названием «Способ синхронизации баз данных между двумя пунктами с использованием транспортного протокола» (Dean Cheng, et al., “Point-to-Point Database synchronization Over a Transport Protocol,”), которые включены сюда посредством ссылки.This patent application claims the priority of U.S. Provisional Application No. 62/655,625, filed April 10, 2018 by Dean Cheng, et al., “Point-to-Point Database synchronization Over a Transport Protocol, ”) U.S. Provisional Application No. 62/782,993 filed December 20, 2018 by Dean Cheng, et al., “Point-to-Point Database synchronization Over a Transport Protocol, ”), which are incorporated here by reference.

Область техники, к которой относится изобретениеThe field of technology to which the invention belongs

Настоящее изобретение в общем случае относится к управлению базами данных и, в частности, относится к протоколам связи для управления синхронизацией баз данных между двумя пунктами.The present invention generally relates to database management and, in particular, relates to communication protocols for managing database synchronization between two locations.

Уровень техникиState of the art

Синхронизация баз данных представляет собой процесс установления согласованности между несколькими системами баз данных. Целью синхронизации баз данных является обеспечение того, что изменения в первой базе данных распространяются к одной или нескольким соответствующим системам баз данных. Процедура синхронизации баз данных может содержать создание сложных специализированных для конкретных приложений реализаций, которые могут не быть способными к взаимодействию с другими реализациями. От таких приложений может потребоваться реализация механизмов для управления ресурсами связи с целью обеспечения согласованности и верификации, что информация фактически принята другими системами баз данных. Кроме того, поддержание синхронизации баз данных может оказаться проблематичным в случае потери соединения. Например, повторная передача всех файлов базы данных после восстановления соединения может в некоторых случаях привести к неэффективному использованию ресурсов связи.Database synchronization is the process of establishing consistency between multiple database systems. The purpose of database synchronization is to ensure that changes to the first database propagate to one or more of the appropriate database systems. The database synchronization procedure may involve the creation of complex, application-specific implementations that may not be capable of interoperability with other implementations. Such applications may be required to implement mechanisms for managing communication resources to ensure consistency and verify that the information is actually received by other database systems. Also, keeping the databases in sync can be problematic if the connection is lost. For example, retransferring all database files after a connection is restored can in some cases lead to inefficient use of communication resources.

Сущность изобретенияThe essence of the invention

В одном из вариантов, настоящее изобретение предлагает способ, реализуемый в локальном узле, этот способ содержит: прием, в приемнике локального узла, приветственного сообщения, содержащего идентификатор приложения (AppId) и указание целевой линии связи между целевым портом для локального узла и целевым портом для соседнего узла; определение, процессором в локальном узле, что этот идентификатор AppId ассоциирован с приложением для осуществления синхронизации баз данных; установление локальной базы данных в запоминающем устройстве локального узла в качестве части пары баз данных для использования этим приложением, эта пара баз данных содержит также соседнюю (или удаленную) базу данных, находящуюся в соседнем узле; ассоциирование, посредством указанного процессора, пары баз данных с целевой линией связи; и управление синхронизацией локальной базы данных с соседней базой данных с использованием целевой линии связи. Этот подход позволяет протоколу связи автоматически установить одну или более пар баз данных для синхронизации через сеть связи. Этот протокол получает указание целевой линии связи и идентификатор AppId из приветственных сообщений. Этот протокол может затем осуществить корреляцию этого приложения с целевой линией связи и установить базы данных для синхронизации от имени этого приложения. Такой подход позволяет разгрузить приложение от функции установления баз данных, что позволяет устанавливать и поддерживать установление баз данных без прямого управления со стороны приложения. Это в свою очередь позволяет приложению предписывать проведение синхронизации баз данных без прямой осведомленности об обмене сообщениями в используемой сети связи для осуществления такой синхронизации.In one embodiment, the present invention provides a method implemented at a local host, this method comprising: receiving, at a local host receiver, a hello message containing an application identifier (AppId) and specifying a target link between a target port for the local host and a target port for neighboring node; determining, by the processor at the local node, that this AppId is associated with an application for performing database synchronization; establishing a local database in the storage device of the local node as part of a pair of databases for use by this application, this pair of databases also contains a neighboring (or remote) database located in a neighboring node; associating, by said processor, a pair of databases with a target link; and managing synchronization of the local database with the neighboring database using the target link. This approach allows the communication protocol to automatically set up one or more pairs of databases for synchronization across the communication network. This protocol obtains the target link indication and AppId from hello messages. This protocol can then correlate this application with the target link and set up databases to synchronize on behalf of this application. This approach allows the application to be offloaded from the database installer function, allowing the installation and maintenance of database installation without direct control from the application. This, in turn, allows the application to direct database synchronization to take place without being directly aware of the messaging on the communication network being used to perform such synchronization.

В качестве опции, для какого-либо из предшествующих аспектов, другая реализация этого аспекта содержит, при управлении синхронизацией локальной базы данных с соседней базой данных, передачу, посредством передатчика в локальном узле, информации записей в соседнюю базу данных по целевой линии связи в сообщениях в единицах данных протокола регистрации локальной линии связи (Link-Local Registration Protocol Data Unit (LRPDU)). Информация базы данных сохранена в записях. Информацией о версиях записей (например, управляющей информацией) обмениваются посредством единиц LRPDU, передаваемых по целевой линии связи. Следовательно, сообщения в единицах LRPDU могут действовать в качестве механизма для индикации соседнему узлу, что записи базы данных были обновлены, и наоборот. В таком случае, сообщения в единицах LRPDU могут быть использованы для управления синхронизацией баз данных.As an option for any of the preceding aspects, another implementation of this aspect comprises, while controlling synchronization of the local database with the neighboring database, transmitting, by means of a transmitter at the local node, entry information to the neighboring database over the target link in messages in Link-Local Registration Protocol Data Unit (LRPDU) units. Database information is stored in records. Record version information (eg, control information) is exchanged via LRPDUs transmitted over the target link. Therefore, messages in LRPDUs can act as a mechanism to indicate to a neighbor that database records have been updated, and vice versa. In such a case, messages in units of LRPDUs can be used to control database synchronization.

В качестве опции, для какого-либо из предшествующих аспектов, в другой реализации этого аспекта локальная база данных содержит базу данных заявителя для сохранения локальных записей, которые должны быть переданы в базу данных регистратора, находящуюся в соседней базе данных.As an option for any of the preceding aspects, in another implementation of this aspect, the local database contains an applicant database for storing local records to be transferred to a registrar database located in an adjacent database.

В качестве опции, для какого-либо из предшествующих аспектов, в другой реализации этого аспекта локальная база данных содержит базу данных регистратора для приема соседних записей из базы данных заявителя, находящейся в соседней базе данных. Каждая такая пара баз данных содержит «заявителя», имеющего записи, которые должны быть загружены в другую базу данных, и «регистратора», принимающего копии записей заявителя. Каждый из узлов - и локальный узел, и соседний узел, может содержать и локальную базу данных, и базу данных регистратора для осуществления двухсторонней синхронизации. Кроме того, локальная база данных может быть расположена в локальном узле, а база данных регистратора может быть расположена в соседнем узле или, наоборот, для односторонней синхронизации.As an option for any of the preceding aspects, in another implementation of this aspect, the local database includes a registrar database for receiving neighboring records from an applicant database located in the neighboring database. Each such pair of databases contains an "applicant" that has records to be loaded into another database, and a "registrar" that receives copies of the applicant's records. Each of the nodes, both the local node and the neighboring node, may contain both a local database and a registrar database for two-way synchronization. In addition, the local database may be located in the local node and the registrar database may be located in a neighboring node, or vice versa for one-way synchronization.

В качестве опции, для какого-либо из предшествующих аспектов, в другой реализации этого аспекта приветственное сообщение представляет собой приветственную единицу LRPDU, и эта приветственная единица LRPDU представляет целевую линию связи и виде идентификатора «Мое шасси» (My Chassis identifier (ID)), идентифицирующего локальный узел, и идентификатора «Мой порт» (My Port ID), идентифицирующего целевой порт в локальном узле, идентификатора «Соседнее шасси» (Neighbor Chassis ID), идентифицирующего соседний узел, и идентификатора «Соседний порт» (Neighbor Port ID), идентифицирующего целевой порт в соседнем узле. Эта целевая линия связи может быть специфицирована идентификатором (ID) шасси и идентификатором (ID) порта, который представляет целевой порт на каждом конце целевой линии связи. Этот подход позволяет однозначно идентифицировать целевую линию связи, и, следовательно, указать каждый из узлов - локальный узел и соседний узел, где может находиться соответствующий узел для целей передачи и приема единиц LRPDU.Optionally, for any of the preceding aspects, in another implementation of this aspect, the hello message is a hello LRPDU, and this hello LRPDU represents the target link and is in the form of a My Chassis identifier (ID), identifying the local node, and the My Port ID identifying the target port in the local node, the Neighbor Chassis ID identifying the neighbor node, and the Neighbor Port ID, identifying the target port in the neighbor node. This target link may be specified by a chassis identifier (ID) and a port identifier (ID) that represents the target port at each end of the target link. This approach makes it possible to uniquely identify the target link, and therefore to indicate each of the nodes - the local node and the neighboring node - where the corresponding node can be located for the purposes of transmitting and receiving LRPDUs.

В одном из вариантов, настоящее изобретение содержит способ, реализуемый в локальном узле, этот способ содержит: передачу, посредством передатчика из локального узла, одного или нескольких сообщений записи в единицах LRPDU в направлении базы данных регистратора, расположенной в соседнем узле, эти сообщения записей в единицах LRPDU указывают обновления записей, сохраняемых в локальной базе данных; прием, посредством приемника в локальном узле, одного или нескольких сообщений в единицах LRPDU, подтверждающих (квитирующих) указанные сообщения записей в единицах LRPDU; маркировку, в запоминающем устройстве в локальном узле, по меньшей мере одной обновленной записи в локальной базе данных, в качестве подтвержденной (квитированной) базой данных регистратора; и сообщение, через процессор, приложению, что локальная база данных синхронизирована с базой данных регистратора. Этот механизм позволяет протоколу сети связи осуществлять мониторинг связи между базами данных и определять, когда базы данных синхронизированы. Этот протокол сети связи может затем известить приложение, что синхронизация завершена. При таком подходе приложению не нужно знать о каждом обмене записями и ассоциированных с этим передачах. Приложение может внести изменения в локальную базу данных и позволить протоколу сети связи поддерживать синхронизацию и оповещать это приложение, когда синхронизация будет завершена.In one embodiment, the present invention comprises a method implemented at a local node, this method comprising: transmitting, by means of a transmitter from the local node, one or more write messages in LRPDUs towards a registrar database located at a neighboring node, these write messages to LRPDUs indicate updates to records stored in the local database; receiving, by a receiver at the local node, one or more LRPDU messages acknowledging (acknowledging) said LRPDU entry messages; marking, in a storage device at the local node, at least one updated entry in the local database as acknowledged (acknowledged) by the registrar database; and telling, via the processor, to the application that the local database is synchronized with the registrar database. This mechanism allows the communication network protocol to monitor communication between databases and determine when the databases are synchronized. This communication network protocol can then notify the application that synchronization is complete. With this approach, the application does not need to know about each exchange of records and the transfers associated with it. The application can make changes to the local database and let the communication network protocol keep the synchronization and notify the application when the synchronization is complete.

В качестве опции, для какого-либо из предшествующих аспектов, другая реализация этого аспекта дополнительно содержит, определение, посредством процессора в локальном узле, что все обновленные записи в локальной базе данных подтверждены (квитированы) базой данных регистратора посредством сообщений в единицах LRPDU, где оповещение приложения о том, что локальная база данных синхронизирована с базой данных регистратора, инициируют на основе определения, что все обновленные записи в локальной базе данных квитированы базой данных регистратора посредством сообщений в единицах LRPDU. Заявитель может определить, что каждая запись квитирована, и сообщить приложению, когда все записи будут квитированы, и, следовательно, синхронизация между локальной базой данных и базой данных регистратора завершена.As an option, for any of the preceding aspects, another implementation of this aspect further comprises, determining, by a processor in the local node, that all updated records in the local database are acknowledged (acknowledged) by the registrar database via messages in LRPDUs, where the notification applications that the local database is in sync with the registrar's database are triggered based on the determination that all updated records in the local database have been acknowledged by the registrar's database via messages in LRPDUs. The applicant can determine that each entry has been acknowledged and inform the application when all entries have been acknowledged and therefore synchronization between the local database and the registrar's database is complete.

В качестве опции, для какого-либо из предшествующих аспектов, в другой реализации этого аспекта совокупность сообщений в единицах LRPDU, квитирующих сообщения записей в единицах LRPDU, содержит сообщение с парциальным списком (Partial List) в единицах LRPDU, это сообщение с парциальным списком в единицах LRPDU содержит по меньшей мере один заголовок записи, квитирующий по меньшей мере одну обновленную запись. Сообщение с парциальным списком в единицах LRPDU действует в качестве квитирующего сообщения. Такое сообщение с парциальным списком в единицах LRPDU передано регистратором и обозначает для заявителя, что регистратор выполнил обновление, запрошенное сообщением записи в единицах LRPDU.As an option, for any of the preceding aspects, in another implementation of this aspect, the set of messages in units of LRPDU, acknowledging messages of entries in units of LRPDU, contains a message with a partial list (Partial List) in units of LRPDU, this message with a partial list in units The LRPDU contains at least one entry header acknowledging at least one updated entry. The partial list message in LRPDUs acts as an acknowledgment message. Such a partial list message in LRPDUs is sent by the registrar and indicates to the applicant that the registrar has completed the update requested by the write LRPDU message.

В качестве опции, для какого-либо из предшествующих аспектов, в другой реализации этого аспекта заголовок записи содержит номер записи, обозначающий обновленную запись, и последовательный номер, идентифицирующий обновление, входящее в обновленную запись. Такая информация может обозначать конкретное(ые) обновление(я) записи(ей), которое(ые) может быть принято регистратором.Optionally, for any of the preceding aspects, in another implementation of this aspect, the record header contains a record number indicating the updated record and a sequence number identifying the update included in the updated record. Such information may indicate specific update(s) of the record(s) that may be accepted by the registrar.

В качестве опции, для какого-либо из предшествующих аспектов, другая реализация этого аспекта дополнительно содержит генерацию извещения о сбое для передачи приложению, когда истечет промежуток времени таймера сообщений записи в единицах LRPDU без приема соответствующего сообщение с парциальным списком в единицах LRPDU. Этот механизм позволяет приложению быть осведомленным о потенциальных сбоях передач записей. Сообщение записи в единицах LRPDU может не быть передано повторно автоматически, поскольку большие объемы передач могут переполнить приемные буферы у регистратора (например, потенциально вызвать больше сбоев синхронизации записей).As an option for any of the preceding aspects, another implementation of this aspect further comprises generating a fault notification to be sent to the application when the LRPDU write message timer expires without receiving a corresponding LRPDU partial list message. This mechanism allows the application to be aware of potential write transfer failures. The write message in LRPDUs may not be automatically retransmitted because large volumes of transmissions can overflow the receive buffers at the registrar (eg, potentially causing more write synchronization failures).

В качестве опции, для какого-либо из предшествующих аспектов, в другой реализации этого аспекта совокупность сообщений в единицах LRPDU, квитирующих сообщения записей в единицах LRPDU, содержит сообщение с полным списком (Complete List) в единицах LRPDU, это сообщение с полным списком в единицах LRPDU содержит заголовки записей, относящиеся ко всем записям базы данных регистратора. Это сообщение с полным списком в единицах LRPDU может передаваться регистратором через заданные промежутки времени. Сообщение с полным списком в единицах LRPDU содержит информацию о текущем состоянии базы данных регистратора. Следовательно, заявитель может использовать сообщение с полным списком в единицах LRPDU для того, чтобы определить, когда записи были приняты регистратором, а квитирующее сообщение было пропущено, и когда обновления записей не были приняты регистратором. Тогда заявитель может затем устранить погрешности синхронизации путем передачи дополнительных сообщений записей в единицах LRPDU на основе содержания сообщений с полным списком в единицах LRPDU.As an option, for any of the preceding aspects, in another implementation of this aspect, the set of messages in LRPDUs acknowledging messages of entries in LRPDUs contains a Complete List message in LRPDUs, this message is a complete list in units The LRPDU contains the entry headers relating to all entries in the registrar database. This full list message in units of LRPDUs may be sent by the registrar at specified intervals. The full list message, in LRPDU units, contains information about the current state of the registrar's database. Therefore, the applicant can use the full list message in LRPDUs to determine when records were accepted by the registrar and the acknowledgment message was skipped, and when record updates were not accepted by the registrar. The applicant can then eliminate timing errors by sending additional LRPDU entry messages based on the content of the full list messages in LRPDUs.

В качестве опции, для какого-либо из предшествующих аспектов, в другой реализации этого аспекта сообщение с полным списком в единицах LRPDU содержит поле с номером первой записи, указывающее первую запись, хранящуюся в базе данных регистратора, и поле с номером последней записи, указывающее последнюю запись, хранящуюся в базе данных регистратора, а также заголовки записей содержат номера записей, указывающие записи, хранящиеся в базе данных регистратора, и последовательные номера, идентифицирующие обновления, введенные в записи, хранящиеся в базе данных регистратора.As an option for any of the preceding aspects, in another implementation of that aspect, the full list message in LRPDUs contains a first entry number field indicating the first entry stored in the registrar database and a last entry number field indicating the last the record stored in the registrar's database, as well as the record headers, contain record numbers indicating records stored in the registrar's database and sequence numbers identifying updates made to records stored in the registrar's database.

В качестве опции, для какого-либо из предшествующих аспектов, в другой реализации этого аспекта совокупность сообщений записей в единицах LRPDU содержит один или несколько номеров записей, указывающих записи, обновленные в локальной базе данных, и один или несколько последовательных номеров идентифицирующих обновления, веденных в записи, обновленные в локальные базы данных.As an option for any of the preceding aspects, in another implementation of this aspect, the set of record messages in LRPDUs contains one or more record numbers indicating records updated in the local database and one or more sequence numbers identifying updates maintained in records updated in local databases.

В качестве опции, для какого-либо из предшествующих аспектов, другая реализация этого аспекта дополнительно содержит: передачу, посредством передатчика, сообщение с запросом получения полного списка в единицах LRPDU в адрес базы данных регистратора; и прием, посредством приемника, сообщения с полным списком в единицах LRPDU от базы данных регистратора в ответ на указанное сообщение с запросом получения полного списка в единицах LRPDU. Используя этот механизм, заявитель может затребовать сообщение с полным списком в единицах LRPDU в нужный момент по своему запросу вместо того, чтобы ожидать получения периодического сообщения с полным списком в единицах LRPDU.As an option for any of the preceding aspects, another implementation of this aspect further comprises: transmitting, by the transmitter, a complete list request message in LRPDUs to the registrar database address; and receiving, by the receiver, a complete LRPDU list message from the registrar database in response to said complete LRPDU list request message. Using this mechanism, an applicant can request a full list message in LRPDUs at the right time on its request, instead of waiting for a periodic full list message in LRPDUs.

В одном из вариантов, настоящее изобретение содержит способ, осуществляемый в локальном узле, способ содержит: генерацию, посредством процессора в локальном узле, кода разъединенности для приложения, этот код разъединенности указывает, что обмен приветственными сообщениями в единицах данных протокола регистрации локальной линии связи (в единицах LRPDU) не состоялся; прием, в процессоре, команды от приложения с целью поддержания локальной базы данных в запоминающем устройстве локального узла, несмотря на код разъединенности; прием, посредством приемника в локальном узле, сообщения с полным списком в единицах LRPDU от базы данных регистратора из соседнего узла после успешного обмена приветственными сообщениями в единицах LRPDU, это сообщение с полным списком в единицах LRPDU содержит заголовки для всех записей в базе данных регистратора; и сравнение, посредством процессора, заголовков записей из сообщения с полным списком в единицах LRPDU с заголовками записей в базе данных заявителя с целью ресинхронизации базы данных заявителя с базой данных регистратора. Этот механизм позволяет сохранять и поддерживать пару баз данных, несмотря на потерю соединения. Когда происходит потеря соединения, заявителю сообщают об этом и позволяют выбрать, будет ли он заново устанавливать синхронизацию после восстановления соединения (например, путем повторной передачи всех записей), или он будет восстанавливать синхронизацию после восстановления соединения. Пару баз данных можно поддерживать путем передачи сообщения с полным списком после повторного соединения посредством обмена приветствиями. База данных заявителя может затем сравнить заголовки записей из базы данных регистратора с заголовками записей из базы данных заявителя для определения, какие именно (если вообще какие-либо) обновления были утрачены из-за потери соединения. Затем база данных заявителя может передать повторно только утраченные обновления вместо того, чтобы повторно передавать весь список записей базы данных заявителя регистратору. Такой подход может уменьшить использование ресурсов сети связи и сократить время восстановления синхронизации, когда появится соединение между заявителем и регистратором.In one embodiment, the present invention comprises a method performed at a local node, the method comprising: generating, by a processor at the local node, a release code for the application, this release code indicates that the exchange of hello messages in local link registration protocol data units (in units LRPDU) did not take place; receiving, at the processor, an instruction from the application to maintain the local database in the local node's storage device despite the disconnect code; receiving, by the receiver at the local node, a full list message in LRPDUs from the registrar database from a neighbor node after a successful exchange of hello LRPDU messages, this full list message in LRPDUs contains headers for all entries in the registrar database; and comparing, by the processor, the record headers from the full list message in LRPDUs with the record headers in the applicant database to resynchronize the applicant database with the registrar database. This mechanism allows a pair of databases to be saved and maintained despite the loss of a connection. When a connection loss occurs, the claimant is informed and allowed to choose whether it will re-sync after the connection is re-established (eg, by retransmitting all records), or if it will re-sync after the connection is re-established. A pair of databases can be maintained by sending a message with a complete list after reconnecting through the exchange of hellos. The applicant database can then compare the record headers from the registrar database with the record headers from the applicant database to determine which, if any, updates were lost due to the loss of connection. The applicant database can then retransmit only the lost updates instead of retransmitting the entire list of applicant database records to the registrar. This approach can reduce the use of communication network resources and reduce the time to restore synchronization when a connection appears between the applicant and the registrar.

В качестве опции, для какого-либо из предшествующих аспектов, другая реализация этого аспекта дополнительно содержит начальную установку (сброс) таймеров оповещения в базе данных заявителя после безуспешной попытки обмена приветственными сообщениями, с целью предотвращения передачи сообщений записей в единицах LRPDU до тех пор, пока не будет принято сообщение с полным списком в единицах LRPDU. В результате этого база данных заявителя останавливает попытки синхронизировать базы данных до тех пор, пока не будет восстановлено соединение, и, следовательно, сберегает ресурсы сети связи и процессорные ресурсы.As an option to any of the preceding aspects, another implementation of this aspect further comprises initializing (resetting) the notification timers in the applicant's database after an unsuccessful attempt to exchange hello messages, in order to prevent transmission of record messages in LRPDUs until a message with a complete list in units of LRPDUs will not be received. As a result, the database of the applicant stops trying to synchronize the databases until the connection is restored, and therefore saves communication network resources and processor resources.

В качестве опции, для какого-либо из предшествующих аспектов, другая реализация этого аспекта дополнительно содержит: определение, посредством процессора, рассогласования между одним или несколькими заголовками записей в базе данных заявителя и одним или несколькими заголовками записей, входящих в сообщение с полным списком в единицах LRPDU; и передачу сообщения записей в единицах LRPDU в базу данных регистратора, где это сообщение записей в единицах LRPDU содержит заголовки обновленных записей, относящиеся к указанному рассогласованию. В случае рассогласования обновленные записи могут быть переданы от заявителя регистратору. Это может происходить в тех случаях, когда предшествующее сообщение записи в единицах LRPDU было утрачено из-за потери соединения.As an option, for any of the preceding aspects, another implementation of this aspect further comprises: determining, by the processor, a mismatch between one or more record headers in the applicant's database and one or more record headers included in the message with a complete list in units LRPDU; and transmitting the LRPDU entry message to the registrar database, where the LRPDU entry message contains updated entry headers related to the specified mismatch. In case of disagreement, updated records may be transferred from the applicant to the registrar. This may occur in cases where the previous write message in LRPDUs was lost due to loss of connection.

В качестве опции, для какого-либо из предшествующих аспектов, другая реализация этого аспекта дополнительно содержит: определение, посредством процессора, что между заголовками записей в базе данных заявителя и заголовками записей из базы данных регистратора отсутствует рассогласование; и на основе определения, что рассогласование отсутствует, сообщение посредством процессора, приложению, что база данных заявителя синхронизирована с базой данных регистратора. Это позволяет протоколу сети связи управлять синхронизацией от имени этого приложения, и, следовательно, позволяет приложению оставаться в неведении относительно связи и передач, специфичных в отношении синхронизации базы данных.As an option for any of the preceding aspects, another implementation of this aspect further comprises: determining, by the processor, that there is no mismatch between the record headers in the applicant's database and the record headers from the registrar's database; and based on the determination that there is no mismatch, reporting by the processor to the application that the applicant's database is synchronized with the registrar's database. This allows the communication network protocol to manage synchronization on behalf of this application, and therefore allows the application to remain ignorant of communications and transfers specific to database synchronization.

В одном из вариантов, настоящее изобретение охватывает локальный узел, содержащий запоминающее устройство, передатчик, приемник и процессор, соединенный с этими запоминающим устройством, передатчиком и приемником, такой локальный узел конфигурирован для осуществления способа согласно предшествующим аспектам.In one embodiment, the present invention encompasses a local node comprising a storage device, a transmitter, a receiver, and a processor connected to the storage device, transmitter, and receiver, such a local node configured to implement the method according to the preceding aspects.

В одном из вариантов, настоящее изобретение содержит энергонезависимый читаемый компьютером носитель информации, имеющий компьютерный программный продукт для использования локальным узлом, этот компьютерный программный продукт содержит выполняемые компьютером команды, сохраненные на энергонезависимом читаемом компьютером носителе информации, так что при выполнении этих команд процессором локальный узел осуществляет способ согласно предшествующим аспектам.In one embodiment, the present invention comprises a non-volatile computer-readable storage medium having a computer program product for use by a local node, the computer program product having computer-executable instructions stored on the non-volatile computer-readable storage medium such that when these instructions are executed by the processor, the local node executes the method according to the preceding aspects.

В одном из вариантов, настоящее изобретение охватывает локальный узел, содержащий: приемный модуль для приема приветственного сообщения, в которое входят идентификатор приложения (AppId) и указание целевой линии связи между локальным узлом и соседним узлом; решающий модуль для определения, что идентификатор AppId ассоциирован с приложением для осуществления синхронизации баз данных; модуль установления пары баз данных для установления локальной базы данных в локальном узле в качестве части пары баз данных для использования указанным приложением, эта пара баз данных содержит также соседнюю базу данных в соседнем узле; ассоциирующий модуль для ассоциирования пары баз данных с целевой линией связи; и модуль управления синхронизацией для осуществления управления синхронизацией локальной базы данных с соседней базой данных по целевой линии связи.In one embodiment, the present invention encompasses a local node, comprising: a receiving module for receiving a hello message that includes an application identifier (AppId) and an indication of a target link between the local node and a neighbor node; a decision module for determining that the AppId is associated with an application for performing database synchronization; a database pair setting module for setting up a local database at the local node as part of the database pair for use by said application, the database pair also containing a neighbor database at the neighbor node; an association module for associating the database pair with the target link; and a synchronization control module for controlling synchronization of the local database with the neighboring database via the target link.

В одном из вариантов, настоящее изобретение содержит локальный узел, в который входят: передающий модуль для передачи одного или нескольких сообщений записей в единицах данных протокола регистрации локальной линии связи (единицах LRPDU) в базу данных регистратора, расположенную в соседнем, где эти сообщения записей в единицах LRPDU обозначают обновления для записей, сохраняемых в базе данных заявителя, расположенной в локальном узле; приемный модуль для приема одного из нескольких сообщений в единицах LRPDU, квитирующих сообщения записей в единицах LRPDU; модуль запоминающего устройства для маркировки по меньшей мере одной обновленной записи в базе данных заявителя, как подтвержденной (квитированной) базой данных регистратора; решающий модуль для определения, что все обновленные записи в базе данных заявителя квитированы базой данных регистратора посредством сообщений в единицах LRPDU; и модуль генерации уведомлений для оповещения приложения, что база данных заявителя синхронизирована с базой данных регистратора, на основе определения, что все обновленные записи в базе данных заявителя квитированы базой данных регистратора посредством сообщений в единицах LRPDU.In one embodiment, the present invention comprises a local node, which includes: a transmitting module for transmitting one or more record messages in local link registration protocol data units (LRPDUs) to a registrar database located in a neighboring one, where these record messages are in LRPDUs represent updates to records stored in the applicant's database located at the local node; a receiving module for receiving one of the plurality of LRPDU messages acknowledging the LRPDU entry messages; a memory module for marking at least one updated entry in the applicant's database as confirmed (acknowledged) by the registrar's database; a decision module for determining that all updated entries in the database of the applicant are acknowledged by the database of the registrar through messages in units of LRPDU; and a notification generation module for notifying the application that the applicant database is synchronized with the registrar database based on determining that all updated entries in the applicant database are acknowledged by the registrar database via LRPDU messages.

В одном из вариантов, настоящее изобретение содержит локальный узел, в который входят: модуль уведомления о разъединенности для генерации кода разъединенности для приложения, этот код разъединенности указывает, что обмен приветственными сообщениями в единицах данных протокола регистрации локальной линии связи (в единицах LRPDU) не увенчался успехом (не состоялся); командный модуль для приема команды от приложения для поддержания базы данных заявителя в запоминающем устройстве в локальном узле, несмотря на код разъединенности; приемный модуль для приема сообщения с полным списком в единицах LRPDU от базы данных регистратора, расположенной в соседнем узле, после успешного обмена приветственными сообщениями, такое сообщение с полным списком в единицах LRPDU содержит заголовки записей для всех записей в базе данных регистратора; и модуль сравнения записей для сравнения заголовков записей из сообщения с полным списком в единицах LRPDU с заголовками записей в базе данных заявителя с целью восстановления синхронизации базы данных заявителя с базой данных регистратора.In one embodiment, the present invention comprises a local node that includes: a release notification module for generating a release code for the application, this release code indicates that the exchange of hello messages in local link registration protocol data units (in LRPDUs) has failed success (did not take place); a command module for receiving a command from the application to maintain the database of the applicant in a storage device in the local node, despite the disconnect code; a receiving module for receiving a full list message in LRPDUs from a registrar database located at a neighboring node, after a successful exchange of hello messages, such a full list message in LRPDUs contains record headers for all records in the registrar database; and a record comparison module for comparing record headers from the full list message in LRPDUs with record headers in the applicant database to restore synchronization of the applicant database with the registrar database.

В качестве опции, для какого-либо из предшествующих аспектов, другая реализация этого аспекта дополнительно содержит модули для осуществления способа согласно какому-либо из предшествующих аспектов.As an option for any of the preceding aspects, another implementation of this aspect further comprises modules for implementing the method according to any of the previous aspects.

Для целей ясности, любой из приведенных выше вариантов может быть скомбинирован с какими-либо одним или несколькими другими из этих вариантов для создания нового варианта в пределах объема настоящего изобретения.For purposes of clarity, any of the above options may be combined with any one or more of the other options to create a new option within the scope of the present invention.

Эти и другие варианты будут лучше понятны из последующего подробного описания, рассматриваемого в сочетании с прилагаемыми чертежами и Формулой изобретения.These and other variations will be better understood from the following detailed description, taken in conjunction with the accompanying drawings and the claims.

Краткое описание чертежейBrief description of the drawings

Для более полного понимания настоящего изобретения ссылки здесь сделаны на следующее краткое описание, рассматриваемое в соединении с прилагаемыми чертежами, и подробное описание, где подобные цифровые позиционные обозначения представляют подобные части.For a more complete understanding of the present invention, reference is made herein to the following brief description, taken in conjunction with the accompanying drawings, and a detailed description where like reference numerals represent like parts.

Фиг. 1 представляет упрощенную схему примера реализации собственной системы для сети синхронизации баз данных.Fig. 1 is a simplified diagram of an example implementation of a proprietary system for a database synchronization network.

Фиг. 2 представляет упрощенную схему примера реализации прокси-системы для сети синхронизации баз данных.Fig. 2 is a simplified diagram of an example implementation of a proxy system for a database synchronization network.

Фиг. 3 представляет упрощенную схему примера системы баз данных для синхронизации баз данных.Fig. 3 is a simplified diagram of an example database system for database synchronization.

Фиг. 4 представляет диаграмму протокола для примера способа управления синхронизацией баз данных.Fig. 4 is a protocol diagram for an example of a database synchronization control method.

Фиг. 5 иллюстрирует пример кодирования приветственного сообщения в единицах данных протокола регистрации локальной линии связи (в единицах LRPDU).Fig. 5 illustrates an example of encoding a Hello message in Local Link Registration Protocol Data Units (in LRPDUs).

Фиг. 6 иллюстрирует пример кодирования сообщения записи в единицах LRPDU.Fig. 6 illustrates an example of encoding a write message in LRPDUs.

Фиг. 7 иллюстрирует пример кодирования сообщения с парциальным списком в единицах LRPDU.Fig. 7 illustrates an example of encoding a partial list message in LRPDUs.

Фиг. 8 иллюстрирует пример кодирования сообщения с полным списком в единицах LRPDU.Fig. 8 illustrates an example of encoding a full list message in LRPDUs.

Фиг. 9 представляет логическую схему примера способа установления пары баз данных.Fig. 9 is a flow diagram of an example of a method for establishing a database pair.

Фиг. 10 представляет логическую схему примера способа управления синхронизацией пары баз данных.Fig. 10 is a logic diagram of an example method for managing the synchronization of a pair of databases.

Фиг. 11 представляет логическую схему примера способа поддержания синхронизации баз данных, несмотря на прерывания соединения.Fig. 11 is a flowchart of an example of a way to keep databases in sync despite connection interruptions.

Фиг. 12 представляет упрощенную схему примера элемента сети связи для управления синхронизацией баз данных.Fig. 12 is a simplified diagram of an example communication network element for managing database synchronization.

Фиг. 13 представляет упрощенную схему примера устройства для установления пары баз данных.Fig. 13 is a simplified diagram of an example of an apparatus for establishing a database pair.

Фиг. 14 представляет упрощенную схему примера устройства для управления синхронизацией пары баз данных.Fig. 14 is a simplified diagram of an exemplary apparatus for controlling the synchronization of a pair of databases.

Фиг. 15 представляет упрощенную схему примера устройства для поддержания синхронизации баз данных, несмотря на прерывания соединения.Fig. 15 is a simplified diagram of an example device for maintaining database synchronization despite connection interruptions.

Подробное описаниеDetailed description

Сначала следует понять, что хотя ниже приведена иллюстративная реализация одного или нескольких вариантов, описываемые здесь системы и/или способы могут быть реализованы с использованием какого-либо числа технологий, известных или существующих в настоящий момент. Настоящее изобретение не следует никоим образом ограничивать иллюстративными реализациями, чертежами и технологиями, иллюстрируемыми ниже, включая примеры конструкций и реализаций, иллюстрируемые и описываемые здесь, но эти варианты могут быть модифицированы в пределах объема прилагаемой Формулы изобретения вместе с полным объемом эквивалентов.It should first be understood that while an exemplary implementation of one or more embodiments is provided below, the systems and/or methods described herein may be implemented using any number of technologies currently known or currently in existence. The present invention should not be limited in any way by the illustrative implementations, drawings, and techniques illustrated below, including the example designs and implementations illustrated and described herein, but these variations may be modified within the scope of the appended Claims, along with the full scope of equivalents.

Для поддержки синхронизации баз данных могут быть использованы стандартизированные протоколы связи. Такие протоколы связи могут быть конфигурированы для поддержания согласованности баз данных стандартизированным способом. Например, протокол регистрации локальной линии связи (Link-local Registration Protocol (LRP)) представляет собой стандарт, специфицирующий протоколы, процедуры и управляемые объекты для копирования регистрационной базы данных с одного конца на другой конец линии связи между двумя пунктами и для копирования изменений в части базы данных. Протокол LRP может быть оптимизирован для баз данных размером порядка одного МегаБайта. Протокол LRP синхронизации баз данных (LRP Database Synchronization (LRP-DS)) может быть использован для установления связи между базами данных. Протокол LRP-DS использует приветственные сообщения способом, аналогичным протоколу связи от одной промежуточной системы к другой промежуточной системе (Intermediate System to Intermediate System (IS-IS)), для установления соседства между узлами. Затем может быть использован протокол LRP транспорта баз данных (LRP Database Transport (LRP-DT)) для передачи (транспорта) данных, которые несут сообщения записей, генерируемых протоколом LRP-DS, способом, аналогичным сообщениям описания состояния линии связи (Link State Advertisement (LSA)), передаваемым по протоколу IS-IS. Протокол LRP-DS управляет, таким образом, синхронизацией баз данных от имени соответствующих приложений.Standardized communication protocols can be used to support database synchronization. Such communication protocols can be configured to maintain database consistency in a standardized manner. For example, the Link-local Registration Protocol (LRP) is a standard that specifies protocols, procedures, and managed entities for copying a registration database from one end to the other end of a link between two points, and for copying changes in part Database. The LRP protocol can be optimized for databases on the order of one Megabyte. The LRP Database Synchronization (LRP-DS) protocol can be used to establish communication between databases. The LRP-DS protocol uses hello messages in a manner similar to the Intermediate System to Intermediate System (IS-IS) communication protocol to establish neighborship between nodes. The LRP Database Transport (LRP-DT) protocol can then be used to transfer (transport) the data that carry the record messages generated by the LRP-DS protocol in a manner similar to the Link State Advertisement ( LSA)) transmitted over the IS-IS protocol. The LRP-DS protocol thus manages database synchronization on behalf of the respective applications.

Здесь рассмотрены механизмы для усовершенствования функциональных возможностей протокола LRP-DS. Например, протокол LRP-DS может быть усовершенствован для автоматического установления пар баз данных для синхронизации. Такая пара баз данных содержит базу данных заявителя, расположенную в первом узле, и базу данных регистратора, расположенную во втором узле. Такие узлы могут также называться локальным узлом и соседним узлом, соответственно, для ясности обсуждения. Когда в базе данных заявителя сделаны обновления, протокол LRP-DS передает эти обновления в базу данных регистратора для поддержания синхронизации. Для связи в одном направлении локальный узел содержит базу данных заявителя, и соседний узел содержит базу данных регистратора. Для двусторонней связи локальный узел содержит базу данных заявителя для синхронизации с базой данных регистратора, находящейся в соседнем узле, а соседний узел содержит базу данных заявителя для синхронизации с базой данных регистратора, расположенной в локальном узле. В любом случае, пара (ы) баз данных может быть установлена автоматически посредством обмена приветственными сообщениями в единицах данных протокола регистрации локальной линии связи (единиц LRPDU). Эти приветственные сообщения в единицах LRPDU содержат идентификатор (AppId) соответствующего приложения и указание целевой линии связи, обозначенной идентификатором «Мое шасси» ID, идентифицирующим локальный узел, идентификатором «Мой порт» ID, идентифицирующим целевой порт в локальном узле, идентификатором «Соседнее шасси» ID, идентифицирующим соседний узел, и идентификатором «Соседний порт» ID, идентифицирующим целевой порт в соседнем узле. После обмена приветственными сообщениями локальный узел и соседний узел могут автоматически создать пару из базы данных заявителя и базы данных регистратора для идентифицированного приложения и осуществить корреляцию таких пар баз данных на основе целевой линии связи.Mechanisms for enhancing the functionality of the LRP-DS protocol are discussed here. For example, the LRP-DS protocol can be enhanced to automatically set up database pairs for synchronization. Such a database pair contains an applicant database located at the first node and a registrar database located at the second node. Such nodes may also be referred to as a local node and a neighbor node, respectively, for clarity of discussion. When updates are made to the applicant's database, the LRP-DS protocol sends those updates to the registrar's database to maintain synchronization. For unidirectional communication, the local node contains the applicant database and the neighboring node contains the registrar database. For two-way communication, the local node contains the applicant database for synchronization with the registrar database located in the neighboring node, and the neighboring node contains the applicant database for synchronization with the registrar database located in the local node. In either case, the database pair(s) can be established automatically by exchanging hello messages in Local Link Registration Protocol Data Units (LRPDUs). These hello messages in units of LRPDUs contain the identifier (AppId) of the corresponding application and an indication of the target link, indicated by the My Chassis ID identifying the local node, the My Port ID identifying the target port in the local node, the Neighbor Chassis ID an ID identifying the neighbor, and a Neighbor Port ID identifying the target port in the neighbor. After exchanging hello messages, the local node and the neighbor node can automatically create an applicant database and registrar database pair for the identified application and correlate such database pairs based on the target link.

Протокол LRP-DS, работающий в компоненте, называемом порталом, может также быть использован для автоматического информирования приложения, когда базы данных станут синхронизированы после одного или нескольких обновлений. Например, когда в базе данных заявителя сделано какое-либо обновление, в базу данных регистратора передают сообщение записи в единицах LRPDU для индикации записи (ей) в базе данных, которая была обновлена, и последовательный номер (а) (например, номера версий) такой обновленной записи (ей). База данных регистратора отвечает сообщением с парциальным списком в единицах LRPDU, которое квитирует осведомленность об обновленных записях и которое может быть передано по протоколу LRP-DT. Когда сообщение с парциальным списком в единицах LRPDU принято, портал инициирует маркировку указанных записей в базе данных заявителя в качестве квитированных. Здесь можно обмениваться несколькими единицами LRPDU записей и единицами LRPDU парциального списка. Когда все записи в базе данных заявителя маркированы в качестве квитированных, портал может передать приложению индикацию того, что базы данных синхронизированы.The LRP-DS protocol running in a component called the portal can also be used to automatically inform the application when the databases are in sync after one or more updates. For example, when an update is made to the applicant's database, a record message in LRPDU units is sent to the registrar's database to indicate the record(s) in the database that has been updated and the sequence number(s) (e.g. version numbers) such updated entry(s). The registrar database responds with a partial list message in LRPDUs that acknowledges awareness of the updated records and that can be sent over the LRP-DT protocol. When a message with a partial list in LRPDUs is received, the portal initiates marking the specified entries in the applicant database as acknowledged. Here you can exchange multiple record LRPDUs and partial list LRPDUs. When all entries in the applicant's database are marked as acknowledged, the portal can provide an indication to the application that the databases are synchronized.

В другом примере, протокол LRP-DS может быть использован для поддержания синхронизации между базами данных, несмотря на прерывание связи. Приветственными сообщениями в единицах LRPDU можно обмениваться периодически. Когда обмен приветственными сообщениями в единицах LRPDU не состоялся (оказался неуспешным), портал может уведомить об этом приложение. Заявитель может выбрать ликвидацию спаривания и создание новой пары баз данных после восстановления соединения, для чего вновь загружает записи базы данных в новую базу данных регистратора. Заявитель может также выбрать поддержание текущей пары баз данных. Когда портал принимает индикацию, что спаривание баз данных следует поддерживать и сохранять, портал прерывает дальнейшую передачу сообщений записи в единицах LRPDU. После восстановления обмена приветственными сообщениями в единицах LRPDU регистратор передает сообщение с полным списком в единицах LRPDU заявителю. Сообщение с полным списком в единицах LRPDU содержит заголовки записей для всех записей в базе данных регистратора. База данных заявителя может сравнивать заголовки записей, входящих в это сообщение, с полным списком в единицах LRPDU с заголовками записей, сохраняемых в базе данных заявителя, для определения рассогласований каких-либо записей. Это может случиться, когда сообщения записи в единицах LRPDU оказываются утрачены из-за потери соединения. База данных заявителя может тогда передать сообщения записи в единицах LRPDU, содержащие любые обновления записей, сделанные с момента фиксации состояния записей, входящих в сообщение с полным списком в единицах LRPDU. Обычно результатом является передача меньшего числа записей в единицах LRPDU, чем было без быстрой передачи полного списка в единицах LRPDU. Этот портал может также уведомить приложение, когда базы данных будут синхронизированы. Эти и другие примеры вариантов обсуждаются более подробно со ссылками на следующие чертежи.In another example, the LRP-DS protocol can be used to maintain synchronization between databases despite communication interruptions. Hello messages in units of LRPDUs may be exchanged periodically. When the exchange of hello messages in units of LRPDUs did not take place (turned out to be unsuccessful), the portal can notify the application about this. The applicant may choose to terminate the pairing and create a new database pair upon reconnection by reloading the database records into the new registrar database. The applicant may also choose to maintain the current pair of databases. When the portal receives an indication that the database pairing should be maintained and retained, the portal aborts further transmission of write messages in LRPDUs. After the exchange of Hello messages in LRPDUs is restored, the registrar sends a message with a complete list in LRPDUs to the applicant. The full list message in LRPDUs contains the entry headers for all entries in the registrar database. The applicant's database may compare the titles of the records included in this message, with the full list in LRPDUs, with the titles of the records stored in the applicant's database to determine any record inconsistencies. This can happen when LRPDU write messages are lost due to connection loss. The applicant's database may then send LRPDU entry messages containing any entries updates made since the state of the entries included in the full list LRPDU message was committed. Typically, the result is that fewer entries are sent in LRPDUs than without the full list being sent quickly in LRPDUs. This portal can also notify the application when the databases are synchronized. These and other example options are discussed in more detail with reference to the following drawings.

На Фиг. 1 представлена упрощенная схема примера реализации собственной системы для сети 100 связи для синхронизации баз данных. Сеть 100 связи для синхронизации баз данных содержит собственную систему 110 и собственную систему 130, соединенные сетью 171 связи Интернет-протокола (Internet Protocol (IP)). Эти собственная система 110 и собственная система 130 содержит одну или несколько баз данных 120 и 122, соответственно, для синхронизации. Для ясности обсуждения, одна из собственных систем 110 или 130 называется здесь локальной при обсуждении в отношении операций источника, имеющих место в первой системе, а другая называется здесь соседней при обсуждении в отношении операций адресата, имеющих место во второй системе. Следовательно, каждая из собственных систем 110 и 130 может быть локальной, соседней или и такой, и другой в зависимости от контекста. Следует также отметить, что термины «локальная» и «соседняя», как они используются здесь, являются относительными и применяемыми для четкого различения между первым узлом и вторым узлом, а также могут быть использованы взаимозаменяемо при обсуждении работы одной и той же сети связи с разных точек зрения.On FIG. 1 is a simplified diagram of an example implementation of a native system for a communications network 100 for database synchronization. The database synchronization communication network 100 comprises a home system 110 and a home system 130 connected by an Internet Protocol (IP) communication network 171 . These home system 110 and home system 130 contain one or more databases 120 and 122, respectively, for synchronization. For clarity of discussion, one of the native systems 110 or 130 is referred to here as local when referring to source operations taking place in the first system, and the other is referred to here as neighbor when referring to destination operations taking place in the second system. Therefore, each of home systems 110 and 130 may be local, neighboring, or both, depending on the context. It should also be noted that the terms "local" and "neighbor" as used here are relative and used to clearly distinguish between a first node and a second node, and can also be used interchangeably when discussing the operation of the same communication network from different points of view.

Собственная система 110 представляет собой вычислительный компонент, содержащий приложение 111, портал 113, целевой порт 141 и базы 120 данных. Приложение 111 представляет собой компьютерную программу, работающую для распределения информации по меньшей мере между собственной системой 110 и/или прокси-систему и собственной системой 130 и/или прокси-системой. Прокси-системы обсуждаются в отношении Фиг. 2 ниже. Например, приложение 111 может содержать оперируемую пользователем программу с резервным файлом, синхронизированную с системой облачного хранилища информации. Приложение 111 загружает данные в приложение 131 и/или скачивает данные из приложения 131. Для простоты показаны только два приложения 111 и 131, но приложение 111 может синхронизироваться с любым числом других приложений.Home system 110 is a computing component containing an application 111, a portal 113, a target port 141, and databases 120. Application 111 is a computer program operable to distribute information between at least home system 110 and/or proxy system and home system 130 and/or proxy system. Proxy systems are discussed with respect to FIG. 2 below. For example, application 111 may include a user-operated program with a backup file synchronized with the cloud storage system. Application 111 uploads data to application 131 and/or downloads data from application 131. For simplicity, only two applications 111 and 131 are shown, but application 111 can be synchronized with any number of other applications.

Портал 113 представляет собой экземпляр интерфейса портала, который вместе с экземплярами конечных автоматов заявителя и/или регистратора и базами 120 данных ассоциирован с одним приложением 111. Например, этот портал 113 выполняет протокол LRP (например, протокол LRP-DS и/или протокол LRP-DT) от имени приложения 111. Этот портал 113 принимает уведомления от приложения 111 и/или баз 120 данных, выполняет операции соответствующего протокола LRP и передает соответствующие уведомления об этих операциях приложению 111 и/или базам 120 данных. Например, портал 113 выполняет протокол LRP-DS посредством управления передачей сообщений в единицах LRPDU. Этот портал 113 выполняет протокол LRP-DT посредством передачи и приема данных, таких как записи баз 120 данных, при обмене с соответствующим порталом 133, например, через соединение 170 протокола управления передачей (Transmission Control Protocol (TCP)). В некоторых примерах, приложение 111 в собственной системе 110 поддерживает отдельный портал 113 и соответствующие базы 120 данных в каждом из нескольких целевых портов 114 в собственной системе 110.Portal 113 is a portal interface instance that, along with applicant and/or registrar state machine instances and databases 120, is associated with a single application 111. For example, this portal 113 runs an LRP protocol (e.g., LRP-DS protocol and/or DT) on behalf of the application 111. This portal 113 receives notifications from the application 111 and/or the databases 120, performs the corresponding LRP protocol operations, and sends the appropriate notifications of these operations to the application 111 and/or the databases 120. For example, portal 113 executes the LRP-DS protocol by controlling the transmission of messages in LRPDUs. This portal 113 executes the LRP-DT protocol by transmitting and receiving data, such as database records 120, in exchange with the corresponding portal 133, for example, via a Transmission Control Protocol (TCP) connection 170). In some examples, application 111 on home system 110 maintains a separate portal 113 and associated databases 120 on each of multiple target ports 114 on home system 110.

Собственная система 110 может также применять протокол обнаружения 161 на уровне линии связи (Link Layer Discovery Protocol (LLDP)) в целевом порте 141. В альтернативном варианте, собственная система 110 поддерживает управляемое системным администратором хранилище информации, содержащее данные, эквивалентные данным, генерируемым протокол LLDP 161.Home system 110 may also use a Link Layer Discovery Protocol (LLDP) discovery protocol 161 at target port 141. Alternatively, home system 110 maintains an administrator-managed information store containing data equivalent to that generated by LLDP. 161.

Базы 120 данных содержат одно или несколько хранилищ информации, сохраняющих файлы для приложения 111. Файлы в базах 120 данных хранятся в виде записей. Запись представляет собой подмножество информации из базы 120 данных, передаваемое в виде единого блока от заявителя к регистратору в соответствии с протоколом LRP, выполняемым в портале 113. Каждая запись содержит данные, номер записи, идентифицирующий эти данные, и последовательный номер. Этот последовательный номер идентифицирует текущую версию записи. Например, последовательный номер может быть реализован в виде счетчика, указывающего число раз, когда обновлялась соответствующая запись. Совокупность баз 120 данных может содержать базу данных заявителя, базу данных регистратора или обе. «Заявитель» является одной из двух ролей (вместе с «регистратором»), какие может играть приложение 111 в отношении портала 113. Заявитель управляет базой 120 данных, которую протокол LRP копирует в базу регистратора в соседнем портале 133. «Регистратор» является одной из двух ролей (вместе с «заявителем»), какие может играть приложение 111 в отношении портала 113. Регистратор принимает копию базы 122 данных, которую протокол LRP копирует из базы заявителя, в соседнем портале 133. В такой ситуации, совокупность баз 120 данных, может содержать базу данных заявителя для загрузки записей в базу 122 данных, базу данных регистратора для скачивания записей из базы 122 данных или обе такие базы данных для двусторонней передачи и обмена записями с базами 122 данных.Databases 120 contain one or more information stores that store files for application 111. Files in databases 120 are stored as records. A record is a subset of information from the database 120 transmitted as a single block from the applicant to the registrar in accordance with the LRP protocol running in the portal 113. Each record contains data, a record number that identifies this data, and a sequence number. This sequence number identifies the current version of the entry. For example, the sequence number may be implemented as a counter indicating the number of times the corresponding entry has been updated. The set of databases 120 may contain an applicant database, a registrar database, or both. "Applicant" is one of two roles (along with "registrar") that application 111 can play in relation to portal 113. The applicant manages the database 120, which the LRP protocol copies to the registrar database in the neighboring portal 133. "Registrar" is one of two roles (together with "applicant") that application 111 can play in relation to portal 113. The registrar receives a copy of the database 122, which the LRP protocol copies from the database of the applicant, in the adjacent portal 133. In such a situation, the collection of databases 120 may contain an applicant database for uploading records to database 122, a registrar database for downloading records from database 122, or both such databases for two-way transfer and exchange of records with databases 122.

Целевой порт 141 представляет собой порт связи в собственной системе 110. Портал 113 и ассоциированные с ним базы 120 данных заявителя и регистратора ассоциированы с единственным целевым портом 141. Целевой порт 141 может быть ассоциирован более чем с одним порталом 113, если такие порталы 113 обслуживают разные приложения 111. Целевой порт 141 предоставляет доступ к линии связи, которая соединяется с одним или несколькими другими целевыми портами 151 (например, в других системах).Target port 141 is a communication port in home system 110. Portal 113 and its associated applicant and registrar databases 120 are associated with a single target port 141. Target port 141 may be associated with more than one portal 113 if such portals 113 serve different application 111. Target port 141 provides access to a link that connects to one or more other target ports 151 (eg, in other systems).

Собственная система 130 по существу аналогична собственной системе 110. Собственная система 130 содержит портал 133, приложение 131, базу 122 данных и целевой порт 151, которые могут быть аналогичны порталу 113, приложению 111, базе 120 данных и целевому порту 141, соответственно.Home system 130 is substantially the same as home system 110. Home system 130 includes portal 133, application 131, database 122, and target port 151, which may be similar to portal 113, application 111, database 120, and target port 141, respectively.

Собственные системы 110 и 130 обнаруживают одна другую для установления пар баз 120 и 122 данных посредством протокола LLDP 161. Этот протокол LLDP 161 представляет собой протокол уровня линии связи, описываемый в стандарте 802.1AB, разработанном Институтом инженеров по электротехнике и электронике (Institute of Electrical and Electronics Engineers (IEEE)) и используемый сетевыми устройствами для объявления их идентичности, функциональных возможностей и соседей в сети связи. В частности, собственные системы 110 и 130 могут объявить одна для другой о своих приложениях 111 и 131, а также о функциональных возможностях протокола LRP-DS и протокола LRP-DT через целевые порты 141 и 151 с использованием протокола LLDP 161. Адреса для использования протоколом LRP-DT при передаче сообщений в единицах LRPDU могут быть определены посредством протокола LLDP 161 вместе с предпочтениями для использования либо протокола 160 управления Edge (Edge Control Protocol (ECP)), либо протокола управления передачей (TCP) для передачи этих сообщений в единицах LRPDU. Протокол ECP 160 представляет собой протокол сети связи, определяемый стандартом IEEE Standard 802.1Q-2014. Протокол TCP 170 определен в документе «Запрос комментариев» (Request For Comment (RFC)) 793, выпущенном Рабочей группой инженеров Интернет (Internet Engineering Task Force (IETF)). Любой из этих протоколов может быть использован для передачи сообщений в единицах LRPDU. Если используется протокол ECP 160, пакеты этого протокола ECP проходят через целевые порты 141 и 151. Если используется протокол TCP 170, пакеты единиц LRPDU могут проходить через целевые порты 141, 151 или через какие-либо другие порты двух собственных систем 110 и 130.Home systems 110 and 130 discover each other to establish database pairs 120 and 122 via LLDP 161. This LLDP 161 is a link layer protocol described in the 802.1AB standard developed by the Institute of Electrical and Electronics Engineers. Electronics Engineers (IEEE)) and used by network devices to advertise their identity, functionality, and neighbors in a communications network. In particular, home systems 110 and 130 may advertise to each other their applications 111 and 131, as well as the functionality of the LRP-DS protocol and the LRP-DT protocol, through the target ports 141 and 151 using the LLDP protocol 161. Addresses for use by the protocol LRP-DTs when sending messages in LRPDUs can be defined by LLDP 161 along with preferences for using either Edge Control Protocol (ECP) 160 or Transmission Control Protocol (TCP) to send these messages in LRPDUs. The ECP 160 protocol is a communications network protocol defined by the IEEE Standard 802.1Q-2014. TCP 170 is defined in Request For Comment (RFC) 793 issued by the Internet Engineering Task Force (IETF). Any of these protocols can be used to send messages in LRPDUs. If ECP 160 is used, ECP packets go through destination ports 141 and 151. If TCP 170 is used, LRPDUs can go through destination ports 141, 151, or through any other ports of the two native systems 110 and 130.

Сообщения в единицах LRPDU действуют в качестве управляющих сообщений, указывающих обновления записей в базах 120 и/или данных, квитирование и другую управляющую информацию, относящуюся к синхронизации баз данных. Совокупность сообщений в единицах LRPDU, обсуждаемых здесь содержит приветственные сообщения в единицах LRPDU, сообщения записей в единицах LRPDU, сообщения с парциальным списком в единицах LRPDU, сообщения с полным списком в единицах LRPDU и сообщения с запросом получения полного списка в единицах LRPDU. Однако могут быть использованы и другие сообщения в единицах LRPDU, как потребуется для принудительной синхронизации баз 120 и 122 данных. Используя сообщения в единицах LRPDU, порталы 113 и 133 могут обмениваться записями баз 120 и 122 данных с целью синхронизации этих баз 120 и 122 данных. Например, обмен записями между базами 120 и 122 данных в единицах LRPDU может осуществляться через соединение 170 протокола TCP. Такое соединение 170 протокола TCP представляет собой сеанс связи между двумя пунктами для использования с целью обмена данными. Соединение 170 протокола TCP может проходить между целевыми портами 141 и 151 или между другими портами, в зависимости от примера. Соединение 170 протокола TCP может проходить через одну или несколько IP-сетей 171 связи, представляющих собой три сети связи уровня модели взаимодействия открытых систем (Open Systems Interconnection (OSI)), поддерживающие связь между двумя пунктами. Как обсуждается ниже со ссылками на чертежи, компоненты, перечисленные выше, могут быть использованы порталами 113 и/или 133 для управления синхронизацией баз 120 и 122 данных от имени приложений 111 и/или 131, частично через целевые порты 141 и 151.Messages in LRPDUs act as control messages indicating updates to records in databases 120 and/or data, acknowledgments, and other control information related to database synchronization. The set of LRPDU messages discussed here includes hello messages in LRPDUs, entry messages in LRPDUs, partial list messages in LRPDUs, full list messages in LRPDUs, and complete list request messages in LRPDUs. However, other LRPDU messages may be used as needed to force databases 120 and 122 to synchronize. Using messages in LRPDU units, portals 113 and 133 can exchange records of data bases 120 and 122 in order to synchronize these data bases 120 and 122. For example, the exchange of records between the databases 120 and 122 data in units of LRPDU can be carried out through the connection 170 protocol TCP. Such a TCP connection 170 is a communication session between two points for use in order to exchange data. TCP connection 170 may be between target ports 141 and 151, or between other ports, depending on the example. The TCP connection 170 may traverse one or more IP communication networks 171, which are three Open Systems Interconnection (OSI) layer communication networks that communicate between two points. As discussed below with reference to the drawings, the components listed above can be used by the portals 113 and/or 133 to manage the synchronization of the data bases 120 and 122 on behalf of the applications 111 and/or 131, in part through the target ports 141 and 151.

На Фиг. 2 представлена упрощенная схема примера реализации прокси-системы для сети 200 связи для синхронизации баз данных. Сеть 200 связи для синхронизации баз данных содержит прокси-систему 210, прокси-систему 230, ведомую систему 240 и ведомую систему 250. Такая сеть 200 связи для синхронизации баз данных аналогична сети 100 связи для синхронизации баз данных, однако целевые порты 241 и 251 перенесены из собственных систем на ведомые системы 240 и 250, соответственно. Как используется здесь, прокси-система 210 и/или 230 представляет собой вычислительный компонент, содержащий по меньшей мере приложение 211, которое по существу аналогично приложению 111. Например, прокси-система 210 содержит по меньшей мере приложение 211, работающее для распределения информации между прокси-системой 210 и собственной системой и/или прокси-системой 230. Прокси-система 210 может также содержать портал 213 и/или базы 220 данных, которые по существу аналогичны порталу 113 и базе 120 данных, соответственно.On FIG. 2 is a simplified diagram of an example implementation of a proxy system for communication network 200 for database synchronization. The database synchronization communication network 200 includes a proxy system 210, a proxy system 230, a slave system 240, and a slave system 250. Such a database synchronization communication network 200 is similar to the database synchronization communication network 100, however, the target ports 241 and 251 are moved from own systems to slave systems 240 and 250, respectively. As used herein, proxy system 210 and/or 230 is a computing component that includes at least an application 211 that is substantially similar to application 111. For example, proxy system 210 includes at least an application 211 that operates to distribute information between proxies. system 210 and a native system and/or proxy system 230. Proxy system 210 may also include a portal 213 and/or databases 220 that are essentially the same as portal 113 and database 120, respectively.

Ведомая система 240 может представлять собой компонент связи, такой как маршрутизатор, коммутатор и т.п., и может быть оконечной станцией, такой как видеокамера, механический привод или персональный компьютер. Ведомая система 240 связана с прокси-системой 210 посредством сетевого соединения. Ведомая система содержит по меньшей мере один целевой порт 241, который по существу аналогичен целевому порту 141. Компонент связи содержит несколько целевых портов 241. Прокси-система 210 и ведомая система 240 функционируют совместно способом, по существу аналогичным собственной системе 110. Благодаря расположению целевого порта 241 в ведомой системе 240 вместо прокси-системы 210, приложение 211, портал 213 и/или базы 220 данных могут быть выгружены в устройство (прокси-систему 210), которое может располагаться в сети связи, отдельной от сети связи, где находится ведомая система 240. Это создает гибкость при реализации, обеспечивая в то же время по существу такие же функциональные возможности.The slave system 240 may be a communication component such as a router, switch, or the like, and may be an end station such as a video camera, a mechanical drive, or a personal computer. The slave system 240 is connected to the proxy system 210 via a network connection. The slave system contains at least one target port 241, which is essentially the same as the target port 141. The communication component contains several target ports 241. The proxy system 210 and the slave system 240 operate together in a manner essentially similar to the native system 110. Due to the location of the target port 241 in the slave system 240, instead of the proxy system 210, the application 211, the portal 213 and/or the databases 220 may be uploaded to a device (the proxy system 210), which may be located on a communication network separate from the communication network where the slave system is located. 240. This creates flexibility in implementation while providing essentially the same functionality.

Прокси-система 230 по существу аналогична прокси-системе 210 и содержит портал 233, приложение 231 и базы 222 данных, которые могут быть по существу аналогичны порталу 213, приложению 211 и базам 220 данных, соответственно. Ведомая система 250 связана с прокси-системой 230 и содержит целевой порт 251, который может быть по существу аналогичен целевому порту 241. Ведомые системы 240 и 250 используют протокол LLDP 261 для обмена сообщения протокола LLDP между целевыми портами 241 и 251 способом, аналогичным протоколу LLDP 161. Эти ведомые системы 250 и 240 могут передавать такие сообщения порталам 233 и 213 соответственно. Информация о записях, входящих в сообщения протокола LLDP, может быть использована для установления передач и приема записей из баз 220 и/или 222 данных с целью синхронизации через сеть 271 IP-протокола. Эта сеть 271 IP-протокола может быть по существу аналогичной сеть 171 IP-протокола. Такие записи могут быть переданы через соединение 270 протокола TCP, по существу аналогичное соединению 170 протокола TCP.Proxy system 230 is essentially the same as proxy system 210 and includes portal 233, application 231, and databases 222, which may be essentially the same as portal 213, application 211, and databases 220, respectively. Slave system 250 is connected to proxy system 230 and contains target port 251, which may be substantially the same as target port 241. Slave systems 240 and 250 use LLDP 261 to exchange an LLDP message between target ports 241 and 251 in a manner similar to LLDP. 161. These slave systems 250 and 240 may transmit such messages to portals 233 and 213, respectively. The information about the records included in the LLDP messages can be used to establish transmissions and receptions of records from the databases 220 and/or 222 for the purpose of synchronization over the IP network 271 . This IP network 271 may be substantially similar to the IP network 171 . Such records may be transmitted over a TCP connection 270 substantially similar to a TCP connection 170 .

Следует отметить, что в пределах объема настоящего изобретения могут быть также использованы различные комбинации сетей 100 и 200 связи для синхронизации баз данных. Например, собственная система 110 может быть использована для синхронизации баз 120 данных с прокси-системой 230 и ведомой системой 250. Далее, собственная система 130 может быть использована для синхронизации баз 122 данных с прокси-системой 210 и ведомой системой 240. Для маршрутизации связи между собственными системами, прокси-системами и/или ведомыми системами могут быть использованы разнообразные ретрансляционные системы (например, маршрутизаторы и/или мосты). Такие компоненты могут иметь различные функциональные возможности, как обсуждается ниже. В любом устройстве связи приложения 111, 131, 211 и/или 231 могут обмениваться информацией между заявителем и регистратором в базах 120, 122, 220 и 222 данных через различные целевые порты 141, 151, 241 и 251, принадлежащие одной и той же системе.It should be noted that within the scope of the present invention, various combinations of communication networks 100 and 200 may also be used to synchronize databases. For example, home system 110 can be used to synchronize databases 120 with proxy system 230 and slave system 250. Further, home system 130 can be used to synchronize databases 122 with proxy system 210 and slave system 240. To route communication between a variety of relay systems (eg, routers and/or bridges) may be used by home systems, proxy systems, and/or slave systems. Such components may have different functionality, as discussed below. In any communication device, applications 111, 131, 211 and/or 231 can exchange information between the applicant and the registrar in data bases 120, 122, 220 and 222 through different target ports 141, 151, 241 and 251 belonging to the same system.

На Фиг. 3 представлена упрощенная схема примера системы 300 баз данных для синхронизации баз данных. Система 300 баз данных может быть использована для реализации собственной системы 110, собственной системы 130, прокси-системы 210 и/или прокси-системы 230. Система 300 баз данных содержит приложение 311, которое по существу аналогично приложению 111, 131, 211 и/или 231. В частности, приложение 311 представляет собой программу, использующую данные для синхронизации с удаленной системой, такой как соседняя база данных. Это приложение организует портал 313, который по существу аналогичен порталу 113, 133, 213 и/или 233. Этот портал 313 выполняет протокол LRP (например, протокол LRP-DS и/или протокол LRP-DT) от имени приложения 311. Следовательно, портал 313, среди других процедур, управляет передачей сообщений в единицах LRPDU и записей для целей синхронизации. Портал 313 взаимодействует с приложением 311 и базами 320 данных, которые по существу аналогичны базам 120, 122, 220 и/или 222 данных. Совокупность баз 320 данных может содержать базу данных заявителя 321 и/или базу данных регистратора 325.On FIG. 3 is a simplified diagram of an example database system 300 for database synchronization. Database system 300 may be used to implement home system 110, home system 130, proxy system 210, and/or proxy system 230. Database system 300 includes an application 311 that is substantially similar to application 111, 131, 211 and/or 231. Specifically, application 311 is a program that uses data to synchronize with a remote system, such as a neighboring database. This application organizes a portal 313, which is essentially the same as portal 113, 133, 213 and/or 233. This portal 313 runs an LRP protocol (eg, LRP-DS protocol and/or LRP-DT protocol) on behalf of application 311. Therefore, the portal 313, among other procedures, manages the transmission of LRPDUs and records for synchronization purposes. Portal 313 interacts with application 311 and databases 320, which are essentially the same as databases 120, 122, 220 and/or 222 data. The set of databases 320 may include an applicant database 321 and/or a registrar database 325.

Заявитель 321 представляет собой конечный автомат и соответствующее пространство запоминающего устройства, конфигурированное для загрузки копий логически сохраняемых данных в регистратор, находящийся в соседней базе данных. Регистратор 325 представляет собой конечный автомат и соответствующее пространство запоминающего устройства, конфигурированное для приема копий удаленно сохраняемых данных от заявителя, находящегося в соседней базе данных. Следовательно, база 320 данных может содержать заявителя 321 для загрузки данных с целью синхронизации, регистратор 325 для скачивания данных с целью синхронизации, либо и для загрузки, и для скачивания в случае двусторонней синхронизации. Каждый из объектов - заявитель 321 и регистратор 325, ассоциирован с порталом 313 для обеспечения достижения управляющими сообщениями и данными запланированных пунктов назначения. Портал 313 дополнительно ассоциирован с целевым портом для обеспечения того, чтобы указанные сообщения были приняты в запланированных для них порталах-адресатах (например, в портале 313).Applicant 321 is a state machine and associated storage space configured to load copies of logically stored data into a registrar located in an adjacent database. Registrar 325 is a state machine and associated storage space configured to receive copies of remotely stored data from an applicant located in a nearby database. Therefore, the database 320 may include a submitter 321 for downloading data for synchronization purposes, a registrar 325 for downloading data for synchronization purposes, or both downloading and downloading in the case of two-way synchronization. Applicant 321 and registrar 325 are each associated with portal 313 to ensure control messages and data reach their intended destinations. Portal 313 is further associated with a target port to ensure that said messages are received at their intended destination portals (eg, portal 313).

Данные в базах 320 данных сохранены в виде записей. Запись является наименьшей единицей данных, которая может быть передана и принята для целей синхронизации. Размеры записей могут быть конфигурированы приложением 311. Меньший размер записей создает сложность, но больший размер записей в результате ведет к передаче большего объема данных, когда осуществляется обновление записи.The data in the databases 320 is stored as records. A record is the smallest unit of data that can be sent and received for synchronization purposes. Record sizes can be configured by application 311. Smaller records create complexity, but larger records result in more data being transferred when the record is updated.

Заявитель 321 содержит локальные записи 323 и заголовки 324 локальных записей. Локальные записи 323 представляют собой записи, содержащие данные, используемые локально приложением 311. Заголовки записей составляют заданную группу статусной информации, относящейся к соответствующим записям. Например, каждый из заголовков 324 локальных записей содержит номер записи, последовательный номер и/или контрольную сумму для соответствующих локальных записей 323. Номер записи обозначает соответствующую запись 323. Последовательный номер содержит информацию о версии. Например, последовательный номер может содержать счетчик, указывающий число раз, когда соответствующая запись была модифицирована. Контрольная сумма представляет собой информацию для проверки ошибок и может содержать число, представляющее сумму правильного числа цифр в соответствующем множестве данных для передачи. Например, контрольная сумма может обозначать сумму правильного числа цифр в номере записи и в последовательном номере. В такой ситуации, когда происходит обновление локальной записи 323, соответствующий заголовок 324 локальной записи может быть передан посредством сигнализации для обозначения записи, которая была обновлена, и версии (например, последовательного номера) этого обновления.Applicant 321 contains local records 323 and headers 324 of local records. Local records 323 are records containing data used locally by the application 311. Record headers constitute a predetermined group of status information related to the respective records. For example, each of the local entry headers 324 contains an entry number, a sequence number, and/or a checksum for the corresponding local entries 323. The entry number designates the corresponding entry 323. The sequence number contains version information. For example, the sequence number may contain a counter indicating the number of times the corresponding entry has been modified. The checksum is error checking information and may contain a number representing the sum of the correct number of digits in the corresponding data set to be transmitted. For example, the checksum may be the sum of the correct number of digits in the entry number and in the sequence number. In such a situation, when a local entry 323 is updated, a corresponding local entry header 324 may be signaled to indicate the entry that has been updated and the version (eg, sequence number) of that update.

Регистратор 325 содержит соседние записи 326 и заголовки 327 соседних записей. Эти соседние записи 326 и заголовки 327 соседних записей аналогичны локальным записям 323 и заголовкам 324 локальных записей, соответственно, но относятся к данным, используемым приложением в соседнем узле/системе.The registrar 325 contains neighboring records 326 and headers 327 of neighboring records. These neighboring entries 326 and neighboring entry headers 327 are similar to the local entries 323 and local entry headers 324, respectively, but refer to the data used by the application in the neighboring node/system.

Соответственно, локальная база данных 320 может содержать базу данных заявителя 321 для сохранения локальных записей 323 с целью передачи в базу данных регистратора в соседней базе данных. Локальная база 320 данных может также содержать базу данных регистратора 325 для приема соседних записей 326 из базы данных заявителя, расположенного в соседней базе данных. Такая передача записей может быть осуществлена с использованием сообщений в единицах LRPDU. Например, сообщение записи в единицах LRPDU может быть передано из портала 313, когда происходит модификация локальных записей 323. Сообщение записи в единицах LRPDU содержит соответствующие заголовки 324 для уведомления регистратора, расположенного в соседней базе данных, о локальных записях 323, которые были обновлены, и о текущем порядковом номере обновления. Портал 313 может принять соответствующий частичный список записей из соседнего узла, который (список) подтверждает (квитирует) осведомленность об обновлениях локальных записей. Портал 313 может также установить передачу данных с порталом, находящимся в соседнем узле, для передачи обновленных локальных записей 323. Аналогично, заявитель, находящийся в соседнем узле, может передать сообщение записи в единицах LRPDU порталу 313, через соседний портал, для индикации изменений в соседней записи 326. Сообщение записей в единицах LRPDU из соседнего узла содержит заголовки обновленных соседних записей 327. Регистратор 325 может затем ответить через портал 313 посредством сообщения с парциальным списком в единицах LRPDU, содержащего заголовки 327 обновленных соседних записей для индикации осведомленности об обновлениях в соседней базе данных. Портал 313 может также управлять передачей данных обновленных соседних записей 326 из соседнего узла регистратору 325. Эти и другие схемы передачи сообщений для обмена записями и заголовками записей между заявителями 321 и регистраторами 325 с целью синхронизации баз данных обсуждаются ниже со ссылками на чертежи.Accordingly, the local database 320 may contain an applicant database 321 for storing local records 323 for transfer to a registrar database in a neighboring database. The local database 320 may also include a registrar database 325 for receiving neighboring records 326 from an applicant database located in the neighboring database. Such transfer of records can be done using messages in units of LRPDU. For example, an LRPDU entry message may be sent from the portal 313 when local entries 323 are updated. An LRPDU entry message contains appropriate headers 324 to notify a registrar located in a neighboring database that local entries 323 have been updated, and about the current update sequence number. The portal 313 may receive an appropriate partial list of records from the neighbor, which (the list) acknowledges (acknowledges) awareness of updates to local records. Portal 313 may also establish a communication with a portal located at a neighbor to send updated local records 323. Similarly, a claimant at a neighbor may send a record message in units of LRPDUs to portal 313, via a neighbor portal, to indicate changes to the neighboring entry 326. The LRPDU entry message from the neighbor contains the updated neighbor record headers 327. The registrar 325 can then respond through the portal 313 with a partial list LRPDU message containing the updated neighbor record headers 327 to indicate awareness of updates in the neighbor database . The portal 313 may also manage the transmission of updated neighbor records 326 from the neighbor to the registrar 325. These and other messaging schemes for exchanging records and record headers between applicants 321 and registrars 325 for the purpose of database synchronization are discussed below with reference to the drawings.

На Фиг. 4 представлена диаграмма протокола для примера способа 400 управления синхронизацией баз данных. Способ 400 может быть реализован собственной системой 110 и/или 130, прокси-системой 210 и/или 230 в сочетании с ведомой системой 240 и/или 250, и/или системой 300 баз данных. Способ 400 представляет механизмы для создания и поддержания пары баз данных, содержащей заявителя и регистратора. Процедура управления парой баз данных содержит поддержание синхронизации между базой данных заявителя и базой данных регистратора. Способ 400 осуществляется посредством приложения, локального портала, управляющего базой данных заявителя, расположенной в локальном узле, и соседнего портала, управляющего базой данных регистратора, расположенной в соседнем узле.On FIG. 4 is a protocol diagram for an example method 400 for managing database synchronization. Method 400 may be implemented by native system 110 and/or 130, proxy system 210 and/or 230 in conjunction with slave system 240 and/or 250, and/or database system 300. Method 400 represents mechanisms for creating and maintaining a database pair containing an applicant and a registrar. The database pair management procedure comprises maintaining synchronization between the applicant's database and the registrar's database. Method 400 is performed by an application, a local portal managing an applicant database located at the local node, and a neighboring portal managing a registrar database located at the neighboring node.

В некоторых примерах, локальный портал и соседний портал предварительно конфигурируют с портами и адресами соседних узлов, относящихся к приложению. В других примерах, локальный портал и соседний портал обнаруживают порты и адреса соседних узлов, относящихся к рассматриваемому приложению, посредством других протоколов обнаружения. В любом случае, локальный портал передает приветственное сообщение 401 в единицах LRPDU соседнему порталу, а этот соседний портал передает приветственное сообщение 403 в единицах LRPDU локальному порталу. Это может также называться обменом приветственными сообщениями в единицах LRPDU. Приветственные сообщения 401 и 403 в единицах LRPDU содержат идентификатор приложения (AppId) и идентифицируют целевую линию связи между целевым портом для локального узла и целевым портом для соседнего узла. Идентификатор AppId обозначает приложение и, следовательно, указывает, что отправитель ассоциирован с приложением, которое желает синхронизировать данные. Указание целевой линии связи в приветственных сообщениях 401 и 403 в единицах LRPDU обозначает, что попытка установить и осуществить связь была успешной и синхронизация может быть начата.In some examples, the local portal and the neighbor portal are preconfigured with the ports and addresses of the neighbors related to the application. In other examples, the local portal and the neighbor portal discover ports and neighbor addresses related to the application in question through other discovery protocols. In either case, the local portal sends a hello message 401 in LRPDUs to the neighbor portal, and that neighbor portal sends a hello message 403 in LRPDUs to the local portal. This may also be referred to as an exchange of hello messages in LRPDUs. Hello messages 401 and 403 contain an application identifier (AppId) in LRPDUs and identify the target link between the target port for the local host and the target port for the neighbor. The AppId designates an application and therefore indicates that the sender is associated with an application that wishes to synchronize data. The indication of the target link in hello messages 401 and 403 in units of LRPDUs indicates that the attempt to establish and establish communication was successful and synchronization can be started.

Соответственно, когда локальный портал принимает приветственные сообщения 403 в единицах LRPDU, этот локальный портал определяет, что идентификатор AppId ассоциирован с приложением для осуществления синхронизации баз данных. Затем локальный портал устанавливает локальную базу данных в запоминающем устройстве, расположенном в локальном узле, в качестве части пары баз данных для использования приложением. В этом примере, локальная база данных содержит заявителя. Далее, когда соседний портал принимает приветственные сообщения 401 в единицах LRPDU, этот соседний портал определяет, что идентификатор AppId ассоциирован с приложением для синхронизации баз данных. Соседний портал затем устанавливает соседнюю базу данных в запоминающем устройстве, расположенном в соседнем узле, в качестве части пары баз данных. В этом примере, соседняя база данных содержит регистратор. Каждый из порталов - локальный портал и соседний портал, ассоциирует пару баз данных с целевой линией связи. Локальный портал может тогда управлять синхронизацией локальной базы данных заявителя с соседней базой данных регистратора посредством целевой линии связи. Процедура управления синхронизацией локальной базы данных заявителя с соседней базой данных регистратора содержит передачу информации записей в соседнюю базу данных посредством целевой линии связи в сообщениях в единицах LRPDU, как обсуждается ниже. Следует отметить, что сообщения в единицах LRPDU могут всегда быть переданы по целевой линии связи с целью обеспечения того, что такие сообщения достигнут соответствующего портала.Accordingly, when the local portal receives hello messages 403 in LRPDUs, the local portal determines that the AppId is associated with the application to perform database synchronization. The local portal then installs the local database on a storage device located on the local host as part of the database pair for use by the application. In this example, the local database contains the applicant. Further, when a neighbor portal receives hello messages 401 in LRPDUs, that neighbor portal determines that the AppId is associated with the database synchronization application. The neighbor portal then installs the neighbor database in the storage device located at the neighbor node as part of the database pair. In this example, the neighbor database contains the logger. Each of the portals, a local portal and a neighboring portal, associates a pair of databases with a target link. The local portal can then manage the synchronization of the applicant's local database with a neighboring registrar database via the target link. The procedure for controlling synchronization of the local database of the applicant with the neighboring database of the registrar comprises the transfer of information of records to the neighboring database via the target link in messages in units of LRPDUs, as discussed below. It should be noted that messages in units of LRPDUs can always be transmitted on the target link in order to ensure that such messages reach the appropriate portal.

Когда произошел обмен приветственными сообщениями в единицах LRPDU и были установлены базы данных, рассматриваемое приложение может внести изменение 405 записи в базу данных заявителя через локальный портал. Это изменение 405 записи содержит обновление по меньшей мере одного бита данных, который входит в соответствующую запись. Когда запись обновлена, изменяют последовательный номер (например, увеличивают) в соответствующем заголовке записи для обозначения этого изменения. Запись, затронутая указанным изменением 405 записи, может также быть маркирована в качестве неподтвержденной (не квитированной) записи с использованием флага в базе данных заявителя для указания, что регистратор не осведомлен об этом изменении.Once the LRPDU hello messages have been exchanged and the databases have been established, the application in question can update 405 records in the applicant's database via the local portal. This record change 405 includes an update of at least one bit of data that is included in the corresponding record. When an entry is updated, the sequence number (eg, increment) in the corresponding entry header is changed to indicate that change. An entry affected by said entry change 405 may also be marked as an unacknowledged (unacknowledged) entry using a flag in the applicant's database to indicate that the registrar is not aware of the change.

Локальный портал может передать сообщение 407 записи в единицах LRPDU в базу данных регистратора, расположенную в соседнем узле, через соседний портал. Это сообщение 407 записи в единицах LRPDU указывает обновление записи, хранящейся в базе данных заявителя. В частности, сообщение 407 записи в единицах LRPDU содержит заголовки записей, относящиеся к записям в базе данных заявителя, обновленным посредством изменения 405 записи. Такие заголовки записей содержат номер записи и последовательный номер для каждой обновленной записи. В некоторых примерах, сообщение 407 записи в единицах LRPDU также содержит обновленные записи. В других примерах, обновленные записи передают от заявителя регистратору посредством отдельного сеанса связи и/или с использованием отдельного протокола связи, такого как протокол TCP и/или протокол LRP-DT. Следует отметить, что локальный портал может продолжать передавать дополнительные сообщения записей в единицах LRPDU по мере обновления записей, не дожидаясь получения квитирования.The local portal may send the write message 407 in LRPDUs to the registrar database located at the neighbor node via the neighbor portal. This LRPDU entry message 407 indicates an update of an entry stored in the applicant's database. In particular, the entry message 407 in LRPDUs contains entry headers relating to entries in the applicant's database updated by the entry change 405 . These record headers contain the record number and sequence number for each updated record. In some examples, the LRPDU entry message 407 also contains updated entries. In other examples, updated records are transmitted from the applicant to the registrar via a separate session and/or using a separate communication protocol such as TCP and/or LRP-DT. It should be noted that the local portal MAY continue to send additional entry messages in LRPDUs as entries are updated without waiting for an acknowledgment to be received.

Соседний портал и, следовательно, регистратор, принимает сообщение 407 записи в единицах LRPDU и обновляет базу данных регистратора в соответствии с входящими в это сообщение заголовками записей и/или записями. Соседний портал может затем генерировать сообщение 409 с парциальным списком в единицах LRPDU от имени регистратора. Сообщение 409 с парциальным списком в единицах LRPDU служит в качестве квитирования сообщения 407 записи в единицах LRPDU. Сообщение 409 с парциальным списком в единицах LRPDU содержит заголовки записей, входящих в сообщение 407 записи в единицах LRPDU, и, следовательно, обозначает, что регистратор осведомлен об обновлениях и/или принял обновления для этих записей, в зависимости от примера. Соседний портал передает сообщение 409 с парциальным списком в единицах LRPDU в базу данных заявителя. Это сообщение 409 с парциальным списком в единицах LRPDU, квитирующее сообщение 407 записи в единицах LRPDU, принимают в локальном портале. Локальный портал может затем маркировать обновленные записи в базе данных заявителя, как квитированные базой данных регистратора, используя флаг.The neighboring portal, and therefore the registrar, receives the entry message 407 in LRPDUs and updates the registrar's database according to the entry headers and/or entries included in the message. The neighbor portal may then generate a partial list message 409 in LRPDUs on behalf of the registrar. The LRPDU partial list message 409 serves as an acknowledgment of the LRPDU entry message 407 . The LRPDU entry list message 409 contains the headers of the entries included in the LRPDU entry message 407 and therefore indicates that the registrar is aware of updates and/or has accepted updates for these entries, depending on the example. The neighboring portal sends a message 409 with a partial list in LRPDUs to the database of the applicant. This LRPDU partial list message 409 acknowledging the LRPDU entry message 407 is received in the local portal. The local portal can then mark the updated entries in the applicant's database as having been acknowledged by the registrar's database using a flag.

Как отмечено выше, локальный портал может передать дальнейшие сообщения 407 записи в единицах LRPDU, не дожидаясь получения соответствующих сообщений 409 с парциальным списком в единицах LRPDU. Следовательно, различные обновления записей могут оставаться неподтвержденными (не квитированными), даже если были приняты конкретные сообщения 409 с парциальным списком в единицах LRPDU. Однако в некоторых случаях все сообщения 409 с парциальным списком в единицах LRPDU могут быть приняты для всех соответствующих сообщений 407 записи в единицах LRPDU, например, из-за паузы в обновлениях у заявителя. Когда это происходит, база данных заявителя и база данных регистратора оказываются синхронизированы. Локальный портал может проверять статус квитирования записей в базе данных заявителя каждый раз, когда будет принято сообщение 409 с парциальным списком в единицах LRPDU. Следовательно, когда базы данных синхронизированы, локальный портал может определить, что все обновленные записи в базе данных заявителя были подтверждены (квитированы) базой данных регистратора посредством сообщений в единицах LRPDU. На основе определения, что все обновленные записи в базе данных заявителя квитированы базой данных регистратора посредством сообщений в единицах LRPDU, локальный порт может передать квитанцию 411 для всех записей с целью уведомить приложение, что база данных заявителя синхронизирована с базой данных регистратора. Эта квитанция 411 для всех записей может представлять собой индикацию в форме заданного кода, переданного приложению для верификации синхронизации.As noted above, the local portal may send further entry messages 407 in LRPDUs without waiting for the corresponding partial list messages 409 in LRPDUs to be received. Therefore, various record updates may remain unacknowledged (unacknowledged) even if particular list partial messages 409 in LRPDUs have been received. However, in some cases, all LRPDU partial list messages 409 may be received for all corresponding LRPDU entry messages 407, for example, due to an update pause at the applicant. When this happens, the applicant database and the registrar database are synchronized. The local portal may check the acknowledgment status of entries in the database of the applicant each time a message 409 is received with a partial list in LRPDUs. Therefore, when the databases are synchronized, the local portal can determine that all updated entries in the applicant database have been acknowledged (acknowledged) by the registrar database via LRPDU messages. Based on the determination that all updated entries in the applicant database have been acknowledged by the registrar database via LRPDU messages, the local port may send an acknowledgment 411 for all entries to notify the application that the applicant database is synchronized with the registrar database. This receipt 411 for all records may be an indication in the form of a predetermined code passed to the application to verify the synchronization.

В качестве опции, локальный портал может быть конфигурирован для поддержания таймера ожидания для каждого сообщения 407 записи в единицах LRPDU. В таком случае, локальный портал может генерировать уведомление 412 о неуспехе для приложения, когда промежуток времени таймера ожидания для сообщения 407 записи в единицах LRPDU истечет, а соответствующее сообщение 409 с парциальным списком в единицах LRPDU получено не будет. Не подтвержденное (не квитированное) сообщение 407 записи в единицах LRPDU может не быть автоматически передано повторно локальным порталом. Соседний портал и/или соответствующий целевой порт может иметь буфер приема с ограниченным объемом. Автоматическая повторная передача может в результате привести к переполнению буфера из-за присутствия в нем других сообщений записей в единицах LRPDU 407. Соответственно, приложение может определить, как ему продолжать, например, передать повторно неподтвержденное сообщение 407 записи в единицах LRPDU, продолжить ожидание, «откатиться» назад к соответствующему обновлению записей в базе данных заявителя и т.п.As an option, the local portal can be configured to maintain a wait timer for each write message 407 in LRPDUs. In such a case, the local portal may generate a failure notification 412 to the application when the timeout period for the write LRPDU message 407 expires and the corresponding partial list LRPDU message 409 is not received. The unacknowledged (unacknowledged) write message 407 in LRPDUs may not be automatically retransmitted by the local portal. A neighboring portal and/or corresponding target port may have a limited receive buffer. Automatic retransmission may result in a buffer overflow due to the presence of other LRPDU 407 record messages in it. Accordingly, the application may determine how to continue, for example, retransmit an unacknowledged LRPDU record message 407, continue waiting, " rollback" back to the corresponding update of records in the database of the applicant, etc.

Соседний портал передает сообщения 413 с полным списком в единицах LRPDU от имени регистратора. Такие сообщения 413 с полным списком в единицах LRPDU содержат заголовки записей для всех записей в базе данных регистратора (но не сами записи). Сообщения 413 с полным списком в единицах LRPDU могут передаваться периодически и приниматься заявителем через локальный портал. Сообщение 413 с полным списком в единицах LRPDU может служить квитанцией для подтверждения одного или нескольких ранее переданных сообщений 407 записей в единицах LRPDU, например, если сообщение 409 с парциальным списком в единицах LRPDU не было принято локальным порталом/заявителем. Кроме того, сообщение 413 с полным списком в единицах LRPDU также может быть использовано заявителем для определения ситуации, когда сообщение 407 записи в единицах LRPDU не было принято регистратором. Например, заявитель может сравнить заголовки записей, входящие в сообщение 413 с полным списком в единицах LRPDU с заголовками записей в базе данных заявителя. Когда заголовки записей в базе данных заявителя согласуются с заголовками записей, входящими в сообщение 413 с полным списком в единицах LRPDU, заявитель может определить, что все обновления записей были приняты регистратором, и передать квитанцию 411 для всех записей. Если заголовки записей в базе данных заявителя не согласуются с заголовками записей, входящими в сообщение 413 с полным списком в единицах LRPDU, заявитель может определить, что определенные обновления записей не были приняты регистратором, и передать их повторно.The neighboring portal sends messages 413 with a complete list in units of LRPDU on behalf of the registrar. Such full list messages 413 in LRPDUs contain the entry headers for all entries in the registrar database (but not the entries themselves). Full list messages 413 in LRPDUs may be sent periodically and received by the applicant via the local portal. The full LRPDU list message 413 may serve as an acknowledgment to acknowledge one or more previously transmitted LRPDU record messages 407, for example, if the LRPDU partial list message 409 was not accepted by the local portal/applicant. In addition, the full list message 413 in LRPDUs can also be used by the applicant to determine if the write message 407 in LRPDUs was not received by the registrar. For example, the applicant may compare the entry titles included in the full list message 413 in LRPDUs with the entry titles in the applicant's database. When the record headers in the applicant database match the record headers included in the full list message 413 in LRPDUs, the applicant can determine that all record updates have been accepted by the registrar and send a receipt 411 for all records. If the record headers in the applicant's database do not match the record headers included in the full list message 413 in LRPDUs, the applicant can determine that certain record updates were not accepted by the registrar and retransmit them.

Способ 400 управляет также другими случаями. Например, может произойти прерывание 415 соединения. Такое прерывание 415 соединения может быть результатом выхода из строя узла или линии связи между целевыми портами для локального портала и соседнего портала. Прерывание 415 соединения может также возникать следствие перегрузки трафика данных. Обмен приветственными сообщениями в единицах LRPDU, такими как приветственные сообщения 401 и 403 в единицах LRPDU осуществляется периодически, так что порталы становятся осведомленными о прерывании 415 соединения, когда такой обмен не происходит. Когда обмен приветственными сообщениями не состоялся (неуспех), локальный портал генерирует код 416 разъединенности для приложения. Этот код 416 разъединенности указывает приложению, что обмен приветственными сообщениями в единицах LRPDU не состоялся, и что произошло прерывание 415 соединения. Заявитель тогда может определить действие, которое нужно осуществить в ответ на прерывание 415 соединения. Например, приложение может принять решение заново установить пару баз данных после восстановления соединения, в каком случае осуществление способа 400 запускается снова после обмена приветственными сообщениями 401 и 403 в единицах LRPDU.Method 400 also handles other cases. For example, a connection abort 415 may occur. Such a connection interruption 415 may be the result of a node or link failure between the target ports for the local portal and the neighboring portal. Connection interruption 415 may also occur as a result of data traffic congestion. The exchange of hello messages in LRPDUs, such as hello messages 401 and 403 in LRPDUs, occurs periodically so that the portals become aware of the connection abort 415 when no such exchange occurs. When the hello message exchange fails (failure), the local portal generates a release code 416 for the application. This disconnect code 416 indicates to the application that the exchange of hello messages in units of LRPDUs did not take place, and that a connection abort 415 occurred. The applicant can then determine the action to be taken in response to connection abort 415 . For example, an application may decide to re-establish a pair of databases upon reconnection, in which case the implementation of method 400 starts again after exchanging hello messages 401 and 403 in LRPDUs.

В качестве другого примера, приложение может принять решение сохранить прежнюю пару баз данных и заново установить соединение. В случае успешности, этот подход избегает необходимости повторно передавать все записи из базы данных заявителя в базу данных регистратора. Приложение может передать команду 417 поддерживать базы данных локальному порталу. Следовательно, локальный портал может принять эту команду 417 поддерживать базы данных от приложения для поддержания базы данных заявителя в запоминающем устройстве в локальном узле, несмотря на код 416 разъединенности. Когда локальный портал примет команду поддерживать пару баз данных, этот локальный портал прекращает передачу сообщений 407 записей в единицах LRPDU до тех пор, пока сообщение 418 с полным списком в единицах LRPDU не будет принято от базы данных регистратора через соседний портал. Например, локальный портал может выполнить начальную установку (сброс) таймеров оповещения в базе данных заявителя после безуспешного (не состоявшегося) обмена приветственными сообщениями в единицах LRPDU (например, в случае прерывания 415 соединения) для предотвращения передачи сообщений записи в единицах LRPDU до тех пор, пока не будет принято сообщение 418 с полным списком в единицах LRPDU.As another example, an application may decide to keep the old database pair and re-establish the connection. If successful, this approach avoids the need to retransmit all records from the applicant's database to the registrar's database. The application may send command 417 to maintain databases to the local portal. Therefore, the local portal may receive this maintain database command 417 from the application to maintain the database of the applicant in storage at the local node despite the disconnect code 416 . When a local portal receives a command to support a pair of databases, that local portal stops transmitting LRPDU entry messages 407 until a full list LRPDU message 418 is received from the registrar database through a neighboring portal. For example, the local portal may initialize (reset) the notification timers in the applicant database after an unsuccessful (failed) exchange of hello LRPDU messages (e.g., connection abort 415) to prevent transmission of write LRPDU messages until until message 418 is received with the complete list in LRPDUs.

Соседний портал осуществляет аналогичную процедуру с использованием приложения в соседнем узле. После успешного обмена приветственными сообщениями в единицах LRPDU регистратор, через соседний портал, передает сообщение 418 с полным списком в единицах LRPDU. Это сообщение 418 с полным списком в единицах LRPDU по существу аналогично сообщению 413 с полным списком в единицах LRPDU, и, следовательно, содержит все заголовки записей для базы данных регистратора. Если приложение в каком-либо узле - в локальном узле или в удаленном узле, делает выбор заново установить пару баз данных, тогда выполнение способа 400 запускается снова. Например, если соседний портал выполняет начальную установку (сброс) базы данных регистратора, а локальный портал не производит начальной установки (сброса) базы данных заявителя, тогда сообщение 418 с полным списком в единицах LRPDU оказывается пустым, и заявитель повторно передает все записи. В качестве другого примера, если соседний портал не выполняет начальную установку (сброс) базы данных регистратора, а локальный портал производит начальную установку (сброс) базы данных заявителя, тогда сообщение 418 с полным списком в единицах LRPDU содержит заголовки записей, которые не согласуются с базой данных заявителя, и происходит начальная установка (сброс) пары баз данных. Однако если оба приложения выбирают поддержание пары баз данных, тогда сообщение 418 с полным списком в единицах LRPDU содержит заголовки записей, которые являются такими же или аналогичными (например, из-за потерянных сообщений 407 записей в единицах LRPDU) заголовкам записей в базе данных заявителя. В этом случае заявитель может определить необходимые этапы для возобновления синхронизации между базами данных пары.The neighboring portal performs a similar procedure using the application in the neighboring site. After a successful exchange of hello messages in units of LRPDU, the registrar, through a neighboring portal, sends message 418 with a complete list in units of LRPDU. This LRPDU list message 418 is essentially the same as the LRPDU list message 413, and therefore contains all of the record headers for the registrar database. If the application at either the local node or the remote node chooses to re-install the database pair, then execution of method 400 starts again. For example, if the neighbor portal bootstrap (reset) the registrar database and the local portal does not bootstrap the applicant database, then LRPDU full list message 418 is empty and the applicant retransmits all entries. As another example, if the neighbor portal does not initialize (reset) the registrar database, but the local portal initializes (resets) the applicant database, then the LRPDU full list message 418 contains record headers that are inconsistent with the database. applicant data, and the initial installation (reset) of a pair of databases occurs. However, if both applications choose to maintain a pair of databases, then the full list LRPDU message 418 contains record headers that are the same or similar (eg, due to lost LRPDU record messages 407) to the record headers in the applicant's database. In this case, the applicant may determine the necessary steps to resume synchronization between the pair's databases.

Соответственно, локальный портал может принять сообщение 418 с полным списком в единицах LRPDU из базы данных регистратора, расположенной в соседнем узле, после успешного объема приветственными сообщениями. Сообщение 418 с полным списком в единицах LRPDU содержит заголовки записей для всех записей в базе данных регистратора. Локальный портал и/или база данных заявителя может тогда сравнить заголовки записей, входящих в сообщение 418 с полным списком в единицах LRPDU, с заголовками записей в базе данных заявителя с целью возобновления синхронизации базы данных заявителя с базой данных регистратора. В первом случае, локальный портал может определить, что нет рассогласования между заголовками записей в базе данных заявителя и заголовками записей из базы данных регистратора, как они входят в сообщение 418 с полным списком в единицах LRPDU. В таком случае пара баз данных оказывается синхронизированной. В таком случае, на основе определения, что рассогласований нет, портал может уведомить приложение, что база данных заявителя синхронизирована с базой данных регистратора, например, путем передачи квитанции 411 для всех записей. Во втором случае, локальный портал может определить рассогласование между одним или несколькими заголовками записей в базе данных заявителя и одним или несколькими заголовками записей, входящими в сообщение 418 с полным списком в единицах LRPDU. Это может произойти, если сообщение 407 записи в единицах LRPDU утрачено во время прерывания 415 соединения. Этот портал может сравнивать заголовки записей для определения, какие именно записи не были переданы в базу данных регистратора. Локальный портал тогда может передать сообщение 407 записи в единицах LRPDU в базу данных регистратора через соседний портал. Это сообщение 407 записи в единицах LRPDU содержит заголовки обновленных записей, как нужно для обработки рассогласования. В любом случае, пара баз данных становится синхронизированной без начальной установки (сброса) пары баз данных и повторной передачи всех записей базы данных заявителя.Accordingly, the local portal may receive message 418 with the full list in LRPDUs from the registrar database located at the neighbor node after a successful volume of hello messages. The full list message 418 in LRPDUs contains the entry headers for all entries in the registrar database. The local portal and/or the applicant database may then compare the titles of the entries included in the full list message 418 in LRPDUs with the titles of the entries in the applicant database to resume synchronization of the applicant database with the registrar database. In the first case, the local portal may determine that there is no mismatch between the record headers in the applicant database and the record headers from the registrar database as they appear in the full list message 418 in LRPDUs. In this case, the pair of databases is synchronized. In such a case, based on the determination that there are no mismatches, the portal may notify the application that the applicant's database is synchronized with the registrar's database, for example, by transmitting a receipt 411 for all entries. In the second case, the local portal may determine a mismatch between one or more entry headers in the applicant database and one or more entry headers included in message 418 with the complete list in LRPDUs. This can happen if the write message 407 in LRPDUs is lost during connection abort 415 . This portal can compare record headers to determine which records have not been submitted to the registrar's database. The local portal can then send the write message 407 in LRPDUs to the registrar database via the neighboring portal. This LRPDU entry message 407 contains the updated entry headers as needed for mismatch processing. In either case, the database pair becomes synchronized without first setting up (resetting) the database pair and retransmitting all applicant database records.

В качестве опции, локальный портал может также запросить, от имени заявителя, сообщение 421 с полным списком в единицах LRPDU. Это позволяет заявителю проверить синхронизацию баз данных по требованию. В таком случае, локальный портал передает сообщение 419 с запросом получения полного списка в единицах LRPDU в базу данных регистратора через соседний портал. Соседний портал и/или регистратор принимает это сообщение 419 с запросом получения полного списка в единицах LRPDU и передает сообщение 421 с полным списком в единицах LRPDU заявителю через локальный портал. Это сообщение 421 с полным списком в единицах LRPDU по существу аналогично сообщениям 418 и 413 с полным списком в единицах LRPDU. Локальный портал, и, следовательно, заявитель, может затем принять сообщение 421 с полным списком в единицах LRPDU от базы данных регистратора в ответ на сообщение 419 с запросом получения полного списка в единицах LRPDU. В таком случае, заявитель может сравнить заголовки записей, входящих в сообщение 421 с полным списком в единицах LRPDU, с заголовками записей в базе данных заявителя, чтобы определить, синхронизирована ли пара баз данных, и/или определить, какие записи следует передать регистратору для синхронизации пары баз данных.As an option, the local portal may also request, on behalf of the applicant, message 421 with the complete list in LRPDUs. This allows the applicant to verify the synchronization of the databases on demand. In such a case, the local portal sends a message 419 requesting the complete list in LRPDUs to the registrar database via the neighboring portal. The neighboring portal and/or registrar receives this LRPDU full list request message 419 and sends the full LRPDU list message 421 to the applicant via the local portal. This LRPDU full list message 421 is essentially the same as LRPDU full list messages 418 and 413. The local portal, and hence the applicant, may then receive a message 421 with the complete list in LRPDUs from the registrar database in response to a message 419 requesting the complete list in LRPDUs. In such a case, the applicant can compare the headers of the records included in the full list message 421 in LRPDUs with the headers of the records in the applicant's database to determine if the database pair is synchronized and/or determine which records to send to the registrar for synchronization. database pairs.

Следует отметить, что сообщения в единицах LRPDU и уведомления способа 400 иллюстрируются с целью описания разнообразных примеров функциональных возможностей настоящего изобретения. Такие сообщения/уведомления могут быть использованы в различных комбинациях. Например, обмен приветственными сообщениями 401 и 403 в единицах LRPDU, равно как сообщениями 413, 418 и 421 с полным списком в единицах LRPDU может происходить периодически на основе сигналов заданных таймеров, равно как на основе триггерных событий, как обсуждается выше. Далее, изменения 405 записи вместе с передаваемыми в результате таких изменений сообщениями 407 записей в единицах LRPDU и сообщениями 409 с парциальным списком в единицах LRPDU могут происходить многократно во время нормальной работы базы данных заявителя с вмешательством со стороны или без такого вмешательства. Кроме того, передачи квитанции 411 для всех записей, уведомления 412 о неуспехе, кода 416 разъединенности и команды 417 поддерживать базы данных могут быть запущены, когда возникают соответствующие обстоятельства. В такой ситуации, порядок сообщений в единицах LRPDU и уведомлений, показанный на Фиг. 4, является всего лишь примером, и его не следует считать ограничивающим, если не указано иное.It should be noted that the LRPDU messages and method notifications 400 are illustrated for the purpose of describing various examples of the functionality of the present invention. Such messages/notifications can be used in various combinations. For example, the exchange of hello messages 401 and 403 in LRPDUs, as well as messages 413, 418 and 421 with a complete list in LRPDUs, can occur periodically based on predetermined timer signals, as well as based on trigger events, as discussed above. Further, record changes 405, together with the LRPDU record messages 407 and LRPDU partial list messages 409 transmitted as a result of such changes, can occur multiple times during normal operation of the applicant database with or without outside intervention. In addition, transmission of a receipt 411 for all records, a failure notification 412, a disconnect code 416, and a command 417 to maintain databases can be triggered when appropriate circumstances arise. In such a situation, the order of LRPDU messages and notifications shown in FIG. 4 is merely an example and should not be considered limiting unless otherwise noted.

Кроме того, любое число единиц LRPDU могут быть соединены последовательно в одной единице данных протокола LRP-DT в системе с протоколом управления Edge (Edge Control Protocol Data Unit (ECPDU)), вплоть до максимального размера двух уровней в кадре. Одна единица LRPDU может не быть разделена по нескольким единицам LRP-DT ECP ECPDU. При использовании протокола TCP, размер единицы LRPDU может быть ограничено полем длиной шестнадцать бит.In addition, any number of LRPDUs may be concatenated in a single LRP-DT in an Edge Control Protocol Data Unit (ECPDU) system, up to a maximum size of two layers per frame. One LRPDU may not be split across multiple LRP-DT ECP ECPDUs. When using the TCP protocol, the size of the LRPDU unit can be limited to a field of sixteen bits.

Фиг. 5 иллюстрирует пример кодирования приветственного сообщения 500 в единицах LRPDU, который может реализовать приветственное сообщение 401 и/или 403 в единицах LRPDU. В такой ситуации приветственное сообщение 500 в единицах LRPDU может быть использовано для поддержания синхронизации пары баз данных в собственной системе 110 и/или 130, в прокси-системе 210 и/или 230, в ведомой системе 240 и/или 250 и/или в системе 300 баз данных.Fig. 5 illustrates an example encoding of hello message 500 in LRPDUs that can implement hello message 401 and/or 403 in LRPDUs. In such a situation, a hello message 500 in units of LRPDUs can be used to keep the pair of databases synchronized in the home system 110 and/or 130, in the proxy system 210 and/or 230, in the slave system 240 and/or 250 and/or in the system 300 databases.

Приветственное сообщение 500 в единицах LRPDU кодировано в формате TLV. Например, формат TLV, используемый здесь, может поддерживать поля данных размером до шестидесяти пяти тысяч пятисот тридцати пяти октетов. Приветственное сообщение 500 в единицах LRPDU содержит поле «Тип» (Type) 501 типа. Это поле «Тип» 501 имеет длину в один октет и сдвиг нуль октетов. Полю «Тип» 501 может быть присвоено значение единицы для индикации приветственного сообщения 500 в единицах LRPDU. Приветственное сообщение 500 в единицах LRPDU также содержит поле «Длина» (Length) 503. Это поле «Длина» 503 имеет длину в два октета и сдвиг в один октет. Поле «Длина» 503 может содержать целое число размеров два октета, с самыми старшими восемью битами в первом октете (сдвиг 1), содержащими длину поля данных (например, остальной части сообщения). Таким образом, когда в поле «Длина» 503 в формате TLV записан нуль, это означает, что поле данных отсутствует. Поле «Длина» 503 в приветственном сообщении 500 в единицах LRPDU, (октеты один и два после поля типа) содержит указание длины всех полей фиксированной длины плюс всех величин TLV в поле данных.The hello message 500 is encoded in LRPDUs in TLV format. For example, the TLV format used here can support data fields up to sixty-five thousand five hundred and thirty-five octets in size. Hello message 500 in LRPDU units contains the field "Type" (Type) 501 type. This Type field 501 is one octet long and offset zero octets. The Type field 501 may be set to one to indicate hello message 500 in units of LRPDUs. The Hello message 500 also contains a Length field 503 in LRPDU units. This Length field 503 is two octets long and offset by one octet. The Length field 503 may contain an integer of length two octets, with the most significant eight bits in the first octet (offset 1) containing the length of the data field (eg, the rest of the message). Thus, when zero is written in the Length field 503 in the TLV format, it means that there is no data field. The Length field 503 in the Hello Message 500 in units of LRPDUs (octets one and two after the type field) contains an indication of the length of all fixed length fields plus all TLV values in the data field.

Остальные данные имеют длину от нуля до шестидесяти пяти тысяч пятисот тридцати пяти октетов со сдвигом в три октета для первого поля данных. Поле данных приветственного сообщения 500 в единицах LRPDU содержит информацию, передаваемую одним экземпляром конечного автомата передачи приветствия у заявителя, у регистратора и/или у соответствующего портала. Это приветственное сообщение 500 в единицах LRPDU содержит несколько полей фиксированного размера, за которыми следует ряд величин TLV в пределах поля данных. Иными словами, десятый октет после поля «Длина» 503 в формате TLV может быть полем типа другой единицы LRPDU.The rest of the data is from zero to sixty-five thousand five hundred and thirty-five octets in length, offset by three octets for the first data field. The data field of the hello message 500, in units of LRPDUs, contains the information transmitted by one instance of the hello transmission state machine at the applicant, at the registrar, and/or at the corresponding portal. This hello message 500 in units of LRPDU contains several fields of a fixed size, followed by a number of TLV values within the data field. In other words, the tenth octet after the Length field 503 in the TLV format may be a different LRPDU type field.

Приветственное сообщение 500 в единицах LRPDU также содержит поле «идентификатор AppId» 505. Это поле 505 содержит идентификатор AppId, обозначающий приложение, ассоциированное с передающим порталом. Поле идентификатора AppId содержит идентификатор, уникальный в пределах организации, (Organizationally Unique Identifier (OUI)) или идентификатор компании (Company Identifier (CID)) длиной в три октета и частичный идентификатор приложения (Application Sub-ID) длиной в один октет и со сдвигом в три октета из общего числа четыре октета. Следует отметить, что владелец идентификатора OUI или CID несет ответственность за управление использованием идентификатора Application Sub-ID. Следует также отметить, что идентификатор AppId используется в целом ряде контекстов, включая переменные конечных автоматов, а не только в приветственном сообщении 500 в единицах LRPDU.The hello message 500 in LRPDUs also contains an AppId field 505. This field 505 contains an AppId identifying the application associated with the emitting portal. The AppId field contains an Organizationally Unique Identifier (OUI) or Company Identifier (CID) of three octets and an Application Sub-ID of one octet and offset three octets out of a total of four octets. It should be noted that the owner of the OUI or CID is responsible for managing the use of the Application Sub-ID. It should also be noted that the AppId is used in a variety of contexts, including state machine variables, and not just in the 500 hello message in LRPDUs.

Приветственное сообщение 500 в единицах LRPDU также содержит поле «Статус приветствия» 507 (Hello Status). Это поле «Статус приветствия» 507 представляет собой четырехбитовое номерное поле, расположенное в старших битах октета и содержащее одну из следующих величин: статус приветствия - обзор (hello status looking (hsLooking)), статус приветствия - соединение (hello status connecting (hsConnecting)) и статус приветствия - соединенный (hello status connected (hsConnected)). Величина hsLooking может быть установлена для индикации того, что соответствующий портал еще не принял успешный запрос на создание полного портала. Величина hsConnecting может быть установлена для индикации того, что соответствующий портал принял успешный запрос на создание полного портала и приветственное сообщение 500 в единицах LRPDU 500 со статусом hsLooking. В этом случае портал готов к приему всех единиц LRPDU. Величина hsConnected может быть установлена для индикации, что соответствующий портал «открыт» (включен) и готов к передаче данных приложения. В этом случае порталу разрешено передать все единицы LRPDU. Поле «Статус приветствия» 507 может также содержать поле «Статус ошибки» 508 (Error Status). Это поле «Статус ошибки» 508 может содержать четыре бита информации, расположенные в младших битах октета, и может указывать ошибки, такие как переполнение базы данных.The hello message 500 in LRPDUs also contains a Hello Status field 507 (Hello Status). This Hello Status field 507 is a four-bit number field located in the high bits of an octet and contains one of the following values: hello status looking (hsLooking) hello status connecting (hsConnecting)) and the hello status is connected (hello status connected (hsConnected)). The hsLooking value may be set to indicate that the corresponding portal has not yet received a successful request to create a full portal. The value hsConnecting may be set to indicate that the corresponding portal has received a successful request to create a full portal and a hello message 500 in units of LRPDU 500 with status hsLooking. In this case, the portal is ready to receive all LRPDUs. The hsConnected value can be set to indicate that the corresponding portal is "open" (enabled) and ready to transfer application data. In this case, the portal is allowed to send all LRPDUs. The Hello Status field 507 may also contain an Error Status field 508 (Error Status). This Error Status field 508 may contain four bits of information located in the least significant bits of an octet and may indicate errors such as a database overflow.

Приветственное сообщение 500 в единицах LRPDU также содержит поле «Номер моего портала» 509 (My Portal Number) Это поле «Номер моего портала» 509 содержит четырехоктетный номер, идентифицирующий передающий портал. Идентифицирующий номер является уникальным по всем порталам, совместно использующим один и тот же экземпляр протокола LRP-DT. Это поле имеет длину в четыре октета, поскольку прокси-система может осуществлять доверенные (прокси) функции для любого числа ведомых систем, каждая из которых содержит большое число целевых портов. Далее, прокси-система может создать соединение протокола TCP с другой, аналогичной прокси-системой. Каждая прокси-система использует одну величину параметра «Номер моего портала» для каждого целевого порта, для которого эта прокси-система является доверенным представителем. Поле «Номер моего портала» 509 используется в других сообщениях в единицах LRPDU для идентификации того, с какой парой целевых портов 141, 151, 241 и 251 и, таким образом, с каким порталом 113, 133, 213 и 233, и в конечном итоге, с какой базой 120, 122, 220 и 222 данных, ассоциирована какая-либо конкретная единица LRPDU записи, единица LRPDU частичного списка, единица LRPDU полного списка или единица LRPDU запроса полного списка.The hello message 500 in LRPDUs also contains a "My Portal Number" field 509 (My Portal Number) This "My Portal Number" field 509 contains a four octet number identifying the outgoing portal. The ID number is unique across all portals sharing the same instance of the LRP-DT protocol. This field is four octets long because the proxy system can perform trusted (proxy) functions for any number of slave systems, each containing a large number of target ports. Further, the proxy system can create a TCP connection with another, similar proxy system. Each proxy system uses one My Portal Number value for each target port for which that proxy system is a trusted representative. The My Portal Number field 509 is used in other messages in LRPDUs to identify which pair of target ports 141, 151, 241, and 251, and thus which portal 113, 133, 213, and 233, and ultimately which database 120, 122, 220, and 222 any particular record LRPDU, partial list LRPDU, full list LRPDU, or full list request LRPDU is associated with.

Приветственное сообщение 500 в единицах LRPDU также содержит поле «Время приветствия» 511 (Hello Time). Это поле «Время приветствия» 511 содержит два октета, представляющих «время жизни» приветственного сообщения в единицах LRPDU. Первый октет поля «Время приветствия» 511 представляет собой самый старший октет шестнадцати-битового числа секунд (от нуля до шестидесяти пяти тысяч пятисот тридцати пяти или от тридцати до шестидесяти пяти тысяч пятисот тридцати пяти), в течение которых приветственное сообщение 500 в единицах LRPDU. Это поле может не быть передано с величиной между единицей и двадцатью девятью включительно.The hello message 500 in LRPDUs also contains a "Hello Time" field 511 (Hello Time). This "Hello Time" field 511 contains two octets representing the "time to live" of the hello message in units of LRPDUs. The first octet of the Hello Time field 511 is the most significant octet of the sixteen-bit number of seconds (zero to sixty-five thousand five hundred thirty-five or thirty to sixty-five thousand five hundred and thirty-five) during which the hello message 500 is in units of LRPDUs. This field may not be transmitted with a value between one and twenty-nine inclusive.

Совокупность первых четырех величин TLV в приветственном сообщении500 в единицах LRPDU содержит по одному идентификатору каждого типа из группы идентификаторов «Мое шасси» ID TLV 513, «Мой порт» ID TLV 515, «Соседнее шасси» ID TLV 517 и «Соседний порт» ID TLV 519, в любом порядке. После этого следует либо нуль, либо одна из величин TLV «Информация о приложении» (Application Information) 521.The set of the first four TLVs in the Hello500 message, in LRPDU units, contains one identifier of each type from the group of identifiers My Chassis ID TLV 513, My Port ID TLV 515, Neighbor Chassis ID TLV 517, and Neighbor Port ID TLV 519, in any order. This is followed by either zero or one of the Application Information TLV 521 values.

Поле типа для идентификатора «Мое шасси» ID TLV 513 устанавливают равным величине typeMyChassisId. Поле данных для этого идентификатора «Мое шасси» ID TLV 513 содержит величину, специфицированную для передачи идентификатора шасси по протоколу LLDP Chassis ID TLV с использованием экземпляра протокола LLDP, названного в запросе создания полного портала, создавшего портал, передающий идентификатор «Мое шасси» ID TLV 513. В частности, идентификатор «Мое шасси» ID TLV 513 содержит величину, идентифицирующую локальный узел (например, машину), действующий в качестве передатчика для приветственного сообщения 500 в единицах LRPDU. Такой локальный узел содержит собственную систему или ведомую систему, используемую для установления и/или поддержания пары баз данных (например, содержащей или связанной с локальным регистратором, локальным заявителем или с обоими).The type field for the My Chassis ID TLV 513 is set to typeMyChassisId. The data field for this My Chassis ID TLV 513 contains the value specified for the LLDP Chassis ID TLV transmission using the LLDP protocol instance named in the Full Portal Creation Request that created the portal transmitting the My Chassis ID TLV 513. Specifically, My Chassis ID TLV 513 contains a value identifying the local node (eg, machine) acting as the transmitter for hello message 500 in units of LRPDUs. Such a local node contains its own system or a slave system used to establish and/or maintain a pair of databases (eg, containing or associated with a local registrar, a local applicant, or both).

Поле типа для идентификатора «Мой порт» ID TLV 515 устанавливают равным величине typeMyPortId. Поле данных для этого идентификатора «Мой порт» ID TLV 515 содержит такую же величину, какая была специфицирована для передачи идентификатора порта по протоколу LLDP Port ID TLV с использованием экземпляра протокола LLDP, названного в запросе создания полного портала, создавшего портал, передающий идентификатор «Мой порт» ID TLV 515. В частности, идентификатор «Мой порт» ID TLV 515 содержит величину, идентифицирующую целевой порт в локальном узле, пытающемся установить и/или поддерживать пару баз данных (например, в собственной системе или в ведомой системе). Идентификатор ID шасси и идентификатор ID порта совместно однозначно представляют локальную половину целевой линии связи для передачи сообщений в единицах LRPDU.The type field for the identifier "My Port" ID TLV 515 is set equal to the value typeMyPortId. The data field for this My Port ID TLV 515 contains the same value as was specified for the LLDP Port ID TLV port ID transmission using the LLDP protocol instance named in the Full Portal Creation Request that created the Portal sending the My Port ID TLV. port" ID TLV 515. In particular, the identifier "My port" ID TLV 515 contains a value that identifies the target port in the local node trying to install and/or maintain a pair of databases (for example, in its own system or in a slave system). The Chassis ID and the Port ID together uniquely represent the local half of the target link for messaging in LRPDUs.

Поле типа для идентификатора «Соседнее шасси» ID TLV 517 устанавливают равным величине typeNeighborChassisId. Поле данных для этого идентификатора «Соседнее шасси» ID TLV 517 имеет такой же формат, как поле данных для идентификатора «Мое шасси» ID TLV 513, и содержит идентификатор ID шасси для соседнего портала, с которым ассоциирован локальный портал. В частности, идентификатор «Соседнее шасси» ID TLV 517 содержит величину, идентифицирующую соседний узел (например, машину), действующий в качестве адресата приветственного сообщения 500 в единицах LRPDU. Такой соседний узел содержит собственную систему или ведомую систему, используемую для установления и/или поддержания пары баз данных (например, содержащей или связанной с соседним регистратором, соседним заявителем или с обоими).The type field for the Neighbor Chassis ID TLV 517 is set to typeNeighborChassisId. The data field for this Neighbor Chassis ID TLV 517 has the same format as the data field for the My Chassis ID TLV 513 and contains the chassis ID for the neighbor portal with which the local portal is associated. In particular, the Neighbor Chassis ID TLV 517 contains a value identifying the neighbor (eg, machine) acting as the destination of hello message 500 in units of LRPDUs. Such a neighbor contains its own system or a slave system used to establish and/or maintain a pair of databases (eg, containing or associated with a neighboring registrar, a neighboring applicant, or both).

Поле типа для идентификатора «Соседний порт» ID TLV 519 устанавливают равным величине typeNeighborPortId. Поле данных для этого идентификатора «Соседний порт» ID TLV 519 имеет такой же формат, как поле данных для идентификатора «Мой порт» ID TLV 515, и содержит идентификатор ID порта соседнего портала, с которым ассоциирован указанный локальный портал. В частности, идентификатор «Соседний порт» ID TLV 519 содержит величину, идентифицирующую целевой порт в сетевом узле, используемый для установления и/или поддержания пары баз данных (например, в собственной системе или в ведомой системе). Идентификаторы «Соседнее шасси» ID и «Соседний порт» ID совместно однозначно представляют соседнюю половину целевой линии связи для передачи сообщений в единицах LRPDU. Следовательно, приветственное сообщение 500 в единицах LRPDU представляет целевую линию связи в виде совокупности идентификатора «Мое шасси» ID, идентифицирующего локальный узел, идентификатора «Мой порт» ID, идентифицирующего целевой порт в локальном узле, идентификатора «Соседнее шасси» ID, идентифицирующего соседний узел, и идентификатора «Соседний порт» ID, идентифицирующего целевой порт в соседнем узле.The type field for the Neighbor Port ID TLV 519 is set to typeNeighborPortId. The data field for this Neighbor Port ID TLV 519 has the same format as the data field for the My Port ID TLV 515 and contains the port ID of the neighbor portal with which the specified local portal is associated. In particular, the Neighbor Port ID TLV 519 contains a value identifying the target port on the network node used to establish and/or maintain the database pair (eg, on the home system or on the slave system). The Neighbor Chassis ID and Neighbor Port ID together uniquely represent the adjacent half of the target link for message transmission in LRPDUs. Therefore, hello message 500 in LRPDUs represents the target link as a combination of My Chassis ID identifying the local node, My Port ID identifying the target port at the local node, Neighbor Chassis ID identifying the neighbor node , and a Neighbor Port ID identifying the target port at the neighbor.

Параметр «Информация о приложении» (Application Information) TLV 521 устанавливают равным величине typeAppInfo. Поле данных для «Информации о приложении» TLV 521 содержит информацию, поступающую из запроса создания активного портала. Эти данные представляют приложению у адресата посредством индикации статуса портала на обращенном к адресату конце соединения протокола LRP-DT. Эти данные могут быть непрозрачными и неинтерпретируемыми протоколом LRP. «Информация о приложении» TLV 521 является опцией.The Application Information parameter of TLV 521 is set to typeAppInfo. The data field for "Application Information" TLV 521 contains information coming from the request to create an active portal. This data is presented to the application at the destination via a portal status indication on the destination end of the LRP-DT connection. This data may be opaque and non-interpretable by the LRP protocol. "Application Information" TLV 521 is an option.

Соответственно, поле «Тип» 501 составляет один октет со сдвигом нуль октетов, поле «Длина» 503 составляет два октета со сдвигом на один октет, поле идентификатора AppId 505 составляет четыре октета со сдвигом на три октета, поле «Статус приветствия» 507 составляет один октет со сдвигом на семь октетов, поле «Номер моего портала» 509 составляет четыре октета со сдвигом на восемь октетов, поле «Время приветствия» 511 составляет два октета со сдвигом на двенадцать октетов и остальные поля TLV 513-521 имеют переменные длины со стартовым сдвигом в четырнадцать октетов.Accordingly, the Type field 501 is one octet offset by zero octets, the Length field 503 is two octets offset by one octet, the AppId field 505 is four octets offset by three octets, the Hello Status field 507 is one octet offset by seven octets, the My Portal Number field 509 is four octets offset by eight octets, the Hello Time field 511 is two octets offset by twelve octets, and the remaining fields of TLV 513-521 are variable length with a starting offset fourteen octets.

Фиг. 6 иллюстрирует пример кодирования сообщения 600 записи в единицах LRPDU, которое может реализовать сообщение 407 записи в единицах LRPDU. В такой ситуации сообщение 600 записи в единицах LRPDU может быть использовано для поддержания синхронизации пары баз данных в собственной системе 110 и/или 130, прокси-системе 210 и/или 230, ведомой системе 240 и/или 250, и/или в системе 300 баз данных. Сообщение 600 записи в единицах LRPDU содержит поле «Тип» 601 и поле «Длина» 603, аналогичные полям «Тип» 501 и «Длина» 503, соответственно. Поле «Тип» 601 может содержать величину два для указания сообщения 600 записи в единицах LRPDU (например, typeRecordLRPDU), и поле «Длина» 603 содержит указание длины сообщения 600 записи в единицах LRPDU. Первые два октета в поле данных в сообщении записи в единицах LRPDU представляют собой поле «Номер моего портала» 609 и кодируют идентификатор ID шасси, идентификатор ID порта и идентификатор appId для передающего портала. Поле имеет такую же величину, как соответствующее поле, переданное в приветственном сообщении 500 в единицах LRPDU для того же самого портала. После этого следуют нуль (ни одной) или несколько записей в поле «Запись» (Record) 630.Fig. 6 illustrates an example of encoding a write message 600 in LRPDUs that can implement a write message 407 in LRPDUs. In such a situation, an LRPDU write message 600 can be used to maintain synchronization of a pair of databases in the home system 110 and/or 130, the proxy system 210 and/or 230, the slave system 240 and/or 250, and/or in the system 300 databases. The LRPDU write message 600 contains a Type field 601 and a Length field 603, similar to the Type fields 501 and Length 503, respectively. The Type field 601 may contain a value of two to indicate the record message 600 in LRPDU units (eg, typeRecordLRPDU), and the Length field 603 contains an indication of the length of the record message 600 in LRPDU units. The first two octets in the data field in the LRPDU record message are the My Portal Number field 609 and encode the chassis ID, port ID, and appId for the emitting portal. The field has the same value as the corresponding field sent in hello message 500 in LRPDUs for the same portal. This is followed by zero (none) or more entries in the Record field 630.

Каждая запись содержит поле «Номер записи» (Record Number) 631, поле «Последовательный номер» (Sequence number) 633, поле «Контрольная сумма» (Checksum) 635 и, в качестве опции, поле «Длина данных» (Data Length) 637 и поле «Данные приложения» (Application Data) 639. Поле «Номер записи» 631 содержит данные, указывающие запись в базе данных заявителя, которая была обновлена. Поле «Последовательный номер» 633 содержит данные, указывающие номер версии и/или число изменений, ассоциированных с соответствующей записью. Поле «Контрольная сумма» 635 содержит данные для коррекции ошибок, такие как двух-октетная величина, вычисленная на основе значений, входящих в соответствующую запись (например, значений в поле «Номер записи» 631, в поле «Последовательный номер» 633, в поле «Длина данных» 637 и/или в поле «Длина приложения» 639). Поле «Длина данных» 637, когда оно присутствует, обозначает длину данных в соответствующей записи и/или длину поля «Данные приложения» 639. Поле «Длина приложения» 639, когда оно присутствует, содержит обновленную запись при передаче из базы данных заявителя в базу данных регистратора.Each record contains a Record Number field 631, a Sequence number field 633, a Checksum field 635, and optionally a Data Length field 637 and an "Application Data" field 639. The "Record Number" field 631 contains data indicating an entry in the applicant's database that has been updated. The Sequence Number field 633 contains data indicating the version number and/or number of changes associated with the corresponding entry. The "Checksum" field 635 contains data for error correction, such as a two-octet value calculated from the values included in the corresponding record (for example, the values in the "Record number" field 631, in the "Sequence number" field 633, in the field "Data Length" 637 and/or in the "Application Length" field 639). The Data Length field 637, when present, indicates the length of the data in the corresponding record and/or the length of the Application Data field 639. The Application Length field 639, when present, contains the updated record when transferred from the applicant's database to the database. recorder data.

Соответственно, сообщение 600 записи в единицах LRPDU может содержать один или несколько номеров записей, обозначающих обновленные записи в базе данных заявителя, и один или несколько последовательных номеров, идентифицирующих обновления, входящих в обновленные записи в базе данных заявителя. Далее, поле «Тип» 601 занимает один октет со сдвигом в нуль октетов, поле «Длина» 603 занимает два октета со сдвигом в один октет, поле «Номер моего портала» 609 занимает четыре октета со сдвигом в три октета, и поле «Запись» 630 имеет переменную длину со сдвигом в семь октетов. Кроме того, каждая запись содержит поле «Номер записи» 631 из четырех октетов со сдвигом в нуль октетов, поле «Последовательный номер» 633 из четырех октетов со сдвигом в четыре октета, поле «Контрольная сумма» 635 из двух октетов со сдвигом в восемь октетов, поле «Длина данных» 637 из двух октетов со сдвигом в десять октетов и поле «Данные приложения» 639 размером от нуля до шестидесяти пяти тысяч пятисот тридцати пяти или от тридцати до шестидесяти пяти тысяч пятисот двадцати октетов и со сдвигом в двенадцать октетов, где сдвиги в записи измеряют от начала записи.Accordingly, the entry message 600 in LRPDUs may contain one or more entry numbers identifying updated entries in the applicant's database and one or more sequence numbers identifying updates included in the updated entries in the applicant's database. Further, the Type field 601 occupies one octet offset by zero octets, the Length field 603 occupies two octets offset by one octet, the My Portal Number field 609 occupies four octets offset by three octets, and the Record field » 630 has a variable length offset of seven octets. In addition, each record contains a Record Number field 631 of four octets with a zero-shift octet, a Sequence Number field 633 of four octets with a four-octet shift, a Checksum field 635 of two octets with a shift of eight octets , a "Data Length" field 637 of two octets, offset by ten octets, and an "Application Data" field 639 of zero to sixty-five thousand, five hundred and thirty-five or thirty to sixty-five thousand, five hundred and twenty octets, and offset by twelve octets, where offsets in the record are measured from the beginning of the record.

Фиг. 7 иллюстрирует пример кодирования сообщения 700 с парциальным списком в единицах LRPDU, которое может реализовать сообщение 409 с парциальным списком в единицах LRPDU. В таком случае, сообщение 700 с парциальным списком в единицах LRPDU может быть использовано для поддержания синхронизации пары баз данных в собственной системе 110 и/или 130, в прокси-системе 210 и/или 230, в ведомой системе 240 и/или 250, и/или в системе 300 баз данных. Сообщение 700 с парциальным списком в единицах LRPDU содержит поле «Тип» 701 и поле «Длина» 703, которые аналогичны полю «Тип» 501 и полю «Длина» 503, соответственно. Поле «Тип» 701 может содержать величину три для индикации сообщения 700 с парциальным списком в единицах LRPDU (например, typePartialListLRPDU), и поле «Длина» 703 содержит длину сообщения 700 с парциальным списком в единицах LRPDU.Fig. 7 illustrates an example encoding of an LRPDU partial list message 700 that can implement an LRPDU list partial message 409. In such a case, a partial list message 700 in LRPDUs can be used to keep the pair of databases in sync on the home system 110 and/or 130, on the proxy system 210 and/or 230, on the slave system 240 and/or 250, and /or 300 databases in the system. The LRPDU partial list message 700 contains a Type field 701 and a Length field 703, which are the same as the Type field 501 and the Length field 503, respectively. The Type field 701 may contain a value of three to indicate the partial list message 700 in LRPDU units (eg, typePartialListLRPDU), and the Length field 703 contains the length of the partial list message 700 in LRPDU units.

Первые два октета в поля данных сообщения 700 с парциальным списком в единицах LRPDU составляют поле «Номер моего портала» 709, которое кодирует идентификатор ID шасси, идентификатор ID порта и идентификатор appId приложения для передающего портала. Это такая же величина, как величина, передаваемая в приветственном сообщении 500 в единицах LRPDU для того же самого портала. После этого присутствуют нуль или более полей «Заголовок записи» (Record header) 730, которые по существу аналогичны полям «Запись» 630, но не содержат данных записей. В частности, каждое поле «Заголовок записи» 730 содержит поле «Номер записи» 731, поле «Последовательный номер» 733 и поле «Контрольная сумма» 735, которые по существу аналогичны полю «Номер записи» 631, полю «Последовательный номер» 633 и полю «Контрольная сумма» 635, соответственно. Далее, поле «Номер записи» 731 и поле «Последовательный номер» 733 содержат величины, добавленные регистратором, осуществляющим согласование величин соответствующих поле «Запись» 630 в сообщении 600 записи в единицах LRPDU 600 (например, как это включил в сообщение 600 записи в единицах LRPDU заявитель). Следовательно, поля «Заголовок записи» 730 квитируют прием полей «Запись» 630.The first two octets in the data field of the LRPDU partial list message 700 make up the My Portal Number field 709, which encodes the chassis ID, port ID, and application appId for the emitting portal. This is the same value as the value sent in Hello message 500 in LRPDUs for the same portal. Thereafter, zero or more Record header fields 730 are present, which are essentially the same as the Record fields 630, but contain no record data. In particular, each Record Header field 730 contains a Record Number field 731, a Sequence Number field 733, and a Checksum field 735, which are essentially the same as the Record Number field 631, the Serial Number field 633, and field "Checksum" 635, respectively. Further, the Record Number field 731 and the Sequence Number field 733 contain the values added by the registrar negotiating the values of the corresponding Record field 630 in the record message 600 in units of the LRPDU 600 (for example, as included in the message 600 records in units LRPDU Applicant). Therefore, the Record Header fields 730 acknowledge receipt of the Record fields 630.

Следовательно, сообщение 700 с парциальным списком в единицах LRPDU квитирует сообщение 600 записи в единицах LRPDU, и это сообщение 700 с парциальным списком в единицах LRPDU содержит по меньшей мере одно поле «Заголовок записи» 730, квитирующее по меньшей мере одну обновленную запись 630. Далее поле «Заголовок записи» 730 содержит номер записи в поле «Номер записи» 731, указывающий обновленную запись (например, в поле «Запись» 630) и последовательный номер в поле «Последовательный номер» 733, идентифицирующий обновление, входящее в обновленную запись (например, в поле «Запись» 630).Therefore, LRPDU list partial message 700 acknowledges LRPDU entry message 600, and this LRPDU list partial message 700 contains at least one Record Header field 730 acknowledging at least one updated record 630. Next the Record Title field 730 contains the record number in the Record Number field 731 indicating the updated record (for example, in the Record field 630) and the sequence number in the Sequence Number field 733 identifying the update included in the updated record (for example , in the "Record" field 630).

Фиг. 8 иллюстрирует пример кодирования сообщения 800 с полным списком в единицах LRPDU, которое может реализовать сообщение 413, 418 и/или 421 с полным списком в единицах LRPDU. В таком случае, сообщение 800 с полным списком в единицах LRPDU может быть использовано для поддержания синхронизации пары баз данных в собственной системе 110 и/или 130, в прокси-системе 210 и/или 230, в ведомой системе 240 и/или 250, и/или в системе 300 баз данных. Сообщение 800 с полным списком в единицах LRPDU содержит поле «Тип» 801 и поле «Длина» 803, которые аналогичны полю «Тип» 501 и полю «Длина» 503, соответственно. Поле «Тип» 801 может содержать величину четыре для индикации сообщения 800 с полным списком в единицах LRPDU (например, typeCompleteListLRPDU), и поле «Длина» 803 содержит указание длины сообщения 800 с полным списком в единицах LRPDU.Fig. 8 illustrates an example encoding of a full list message 800 in LRPDUs that can implement a full list message 413, 418 and/or 421 in LRPDUs. In such a case, the full list message 800 in LRPDUs can be used to keep the pair of databases in sync on the home system 110 and/or 130, on the proxy system 210 and/or 230, on the slave system 240 and/or 250, and /or 300 databases in the system. The LRPDU listing message 800 contains a Type field 801 and a Length field 803, which are the same as the Type field 501 and the Length field 503, respectively. The Type field 801 may contain a value of four to indicate the complete list message 800 in LRPDU units (eg, typeCompleteListLRPDU), and the Length field 803 contains an indication of the length of the complete list message 800 in LRPDU units.

Первые два октета в поле данных сообщения 800 с полным списком в единицах LRPDU представляют собой поле «Номер моего портала» 809, которое кодирует идентификатор ID шасси, идентификатор ID порта и идентификатор appId приложения для передающего портала. Это такая же величина, как величина, передаваемая в приветственном сообщении 500 в единицах LRPDU для того же самого портала. После этого следует поле «Номер первой записи» 823 и поле «Номер последней записи» 825, каждое из которых имеет длину четыре октета, и эти поля содержат наименьший номер записи и наибольший номер записи, соответственно, охватываемые рассматриваемым сообщением 800 с полным списком в единицах LRPDU. Например, поле «Номер первой записи» 823 и поле «Номер последней записи» 825 содержат номер первой записи и номер последней записи, сохраняемых регистратором.The first two octets in the data field of the full list message 800 in LRPDU units are the My Portal Number field 809, which encodes the chassis ID, port ID, and application appId for the emitting portal. This is the same value as the value sent in Hello message 500 in LRPDUs for the same portal. This is followed by a "First Entry Number" field 823 and a "Last Entry Number" field 825, each of which is four octets long, and these fields contain the lowest entry number and the highest entry number, respectively, covered by the message 800 in question with a complete list in units LRPDU. For example, the First Record Number field 823 and the Last Record Number field 825 contain the first record number and the last record number stored by the registrar.

За этим следуют нуль или более полей «Заголовок записи» 830, которые по существу аналогичны полям «Заголовок записи» 730. Однако поля «Заголовок записи» 830 содержат заголовки всех записей, присутствующих в базе данных регистратора, в противоположность случаю, когда участвуют только заголовки записей для квитированных обновленных записей. Каждое поле «Заголовок записи» 830 содержит поле «Номер записи» 8731, поле «Последовательный номер» 833 и поле «Контрольная сумма» 835, которые по существу аналогичны полю «Номер записи» 731, полю «Последовательный номер» 733 и полю «Контрольная сумма» 735, соответственно.This is followed by zero or more Record Title fields 830, which are essentially the same as the Record Title fields 730. However, the Record Title fields 830 contain the titles of all records present in the registrar's database, as opposed to the case where only the titles are involved. entries for acknowledged updated entries. Each Record Header field 830 contains a Record Number field 8731, a Sequence Number field 833, and a Checksum field 835, which are essentially the same as the Record Number field 731, the Sequence Number field 733, and the Checksum field. sum” 735, respectively.

Каждое поле «Номер записи» 831, передаваемое в сообщении 800 с полным списком в единицах LRPDU, содержит величину, которая не меньше величины в поле «Номер первой записи» 823 и не больше величины в поле «Номер последней записи» 825. Поле «Номер первой записи» 823 и поле «Номер последней записи» 825 позволяют полный список записей, известных регистратору, разбить между более чем одним сообщением 800 с полным списком в единицах LRPDU. Пары из первого и последнего номеров записей во всех сообщениях 800 с полным списком в единицах LRPDU содержат полный список записей, который может охватывать все возможные номера записей от нуля до четырех миллиардов двухсот девяноста четырех миллионов девятисот шестидесяти семи тысяч двухсот девяносто пяти.Each Entry Number field 831 carried in the LRPDU Complete List Message 800 contains a value that is not less than the value in the First Entry Number field 823 and not greater than the value in the Last Entry Number field 825. The No. first entry" 823 and the "Last entry number" field 825 allow the complete list of entries known to the registrar to be split between more than one full list message 800 in LRPDUs. Pairs of the first and last entry numbers in all LRPDU-full list messages 800 contain the complete list of entries, which may cover all possible entry numbers from zero to four billion two hundred ninety-four million nine hundred sixty-seven thousand two hundred ninety-five.

Фиг. 9 представляет логическую схему примера способа 900 для установления пары баз данных, например, в собственной системе 110 и/или 130, в прокси-системе 210 и/или 230, в ведомой системе 240 и/или 250, и/или в системе 300 баз данных. Способ 900 использует сигнализацию из способа 400, такую как приветственные сообщения 401, 403 и/или 500 в единицах LRPDU. Способ 900 обсуждается с точки зрения локального узла, оперирующего базой данных заявителя, для ясности обсуждения, но может также осуществляться целиком или частично в узле, оперирующем регистратором (например, в локальном узле или в соседнем узле).Fig. 9 is a flow diagram of an exemplary method 900 for establishing a pair of databases, for example, on a native system 110 and/or 130, on a proxy system 210 and/or 230, on a slave system 240 and/or 250, and/or on a database system 300 data. Method 900 uses signaling from method 400, such as hello messages 401, 403, and/or 500 in LRPDUs. The method 900 is discussed in terms of the local node operating the applicant's database for clarity of discussion, but may also be performed wholly or partly at the node operating the registrar (eg, the local node or a neighboring node).

Осуществление способа 900 начинается, когда локальный узел желает установить пару баз данных для синхронизации с соседним узлом. В блоке 901 локальный узел принимает приветственное сообщение. Это приветственное сообщение содержит идентификатор AppId и указание целевой линии связи между целевым портом для локального узла и целевым портом для соседнего узла. Когда локальный узел является собственной системой, целевой порт расположен в локальном узле. Когда локальный узел является прокси-системой, целевой порт расположен в ведомой системе. Приветственное сообщение может представлять собой приветственное сообщение в единицах LRPDU, такое как приветственное сообщение 401, 403 и/или 500 в единицах LRPDU. Далее, приветственное сообщение в единицах LRPDU может представлять целевую линию связи посредством идентификатора «Мое шасси» ID, идентифицирующего локальный узел или соответствующий ведомый узел, идентификатора «Мой порт» ID, идентифицирующего целевой порт в локальном узле или в соответствующем ведомом узле, идентификатора «Соседнее шасси» ID, идентифицирующего соседний узел или соответствующий ведомый узел, и идентификатора «Соседний порт» ID, идентифицирующего целевой порт в соседнем узле или в соответствующем ведомом узле. Для завершения приветственного обмена, соответствующее приветственное сообщение также передают от локального узла соседнему узлу. Такое приветственное сообщение может быть по существу аналогичным приветственному сообщению, принятому локальным узлом с другим «Номером моего портала». Например, приветственное сообщение, переданное из локального узла, содержит поле «Номер моего портала», ассоциированное с локальным узлом, а приветственное сообщение, принятое в локальном узле, содержит поле «Номер моего портала», ассоциированное с соседним узлом. Такие сообщения могут быть переданы в любом порядке.Method 900 begins when a local node wishes to set up a database pair to synchronize with a neighbor node. In block 901, the local node receives a hello message. This hello message contains an AppId and an indication of the target link between the target port for the local host and the target port for the neighbor. When the local host is the home system, the target port is located on the local host. When the local host is a proxy system, the target port is located on the slave system. The hello message may be a hello message in LRPDUs, such as hello message 401, 403, and/or 500 in LRPDUs. Further, the hello message in units of LRPDUs may represent the target link by a "My Chassis" ID identifying the local node or corresponding slave node, a "My Port" ID identifying a target port in the local node or corresponding slave node, a "Neighbor Chassis" ID identifying the neighbor node or the corresponding slave node, and the identifier "Neighbour Port" ID identifying the target port in the neighbor node or the corresponding slave node. To complete the hello exchange, a corresponding hello message is also sent from the local node to the neighboring node. Such a hello message may be essentially the same as a hello message received by a local node with a different "My Portal Number". For example, a hello message sent from the local node contains a "My Portal Number" field associated with the local node, and a hello message received at the local node contains a "My Portal Number" field associated with a neighbor node. Such messages may be transmitted in any order.

В блоке 903, локальный узел и/или соответствующий портал определяет, что идентификатор AppId ассоциирован с приложением для осуществления синхронизации баз данных. На основе такого определения, что идентификатор AppId ассоциирован с синхронизацией баз данных, устанавливают локальную базу данных в запоминающем устройстве в локальном узле в блоке 905. Эта локальная база данных представляет собой часть пары баз данных для использования указанным приложением. Рассматриваемая пара баз данных содержит соседнюю базу данных, установленную в соседнем узле (например, посредством портала в соседнем узле). В некоторых примерах, локальная база данных может представлять собой базу данных заявителя для сохранения локальных записей с целью передачи в базу данных регистратора в соседней базе данных. В некоторых примерах, локальная база данных содержит базу данных регистратора для приема соседних записей из базы данных заявителя, находящейся в соседней базе данных. В некоторых примерах, локальная база данных содержит и базу данных заявителя, и базу данных регистратора.In block 903, the local node and/or the corresponding portal determines that the AppId is associated with the application to perform database synchronization. Based on this determination that the AppId is associated with database synchronization, a local database is set in storage at the local node in block 905. This local database is part of a pair of databases for use by the specified application. The database pair in question comprises a neighbor database installed at a neighbor node (eg, via a portal at a neighbor node). In some examples, the local database may be an applicant database for storing local records for transfer to a registrar database in a neighboring database. In some examples, the local database contains a registrar database for receiving neighboring records from an applicant database located in the neighboring database. In some examples, the local database contains both the applicant database and the registrar database.

В блоке 907, пару баз данных ассоциируют с целевой линией связи (например, в собственной системе и/или от ведомой системы к прокси-системе). Такое ассоциирование обеспечивают, чтобы сообщения в единицах LRPDU, направленные заявителю/регистратору, достигли правильного портала, либо потому, что портал находится в локальном узле с целевым портом, либо потому, что целевой порт находится в ведомой системе, конфигурированной для пересылки таких сообщений в прокси-систему, содержащую указанный портал и работающую в локальном узле.At block 907, the database pair is associated with the target link (eg, in the home system and/or from the slave system to the proxy system). This association ensures that LRPDU messages directed to the applicant/registrar reach the correct portal, either because the portal is on the local node with the target port, or because the target port is on a slave configured to forward such messages to the proxy. - the system containing the specified portal and running in the local node.

В блоке 909, локальный узел/портал начинать управлять синхронизацией локальной базы данных с соседней базой данных посредством целевой линии связи. Такое управление может осуществляться путем передачи информации записей в соседнюю базу данных по целевой линии связи в сообщениях в единицах LRPDU. Такая информация записей может содержать записи, заголовки записей или комбинацию записей и заголовков. Например, такие сообщения в единицах LRPDU могут представлять собой другие приветственные сообщения 500 в единицах LRPDU, сообщения 600 записи в единицах LRPDU, сообщения 700 с парциальным списком в единицах LRPDU, сообщения 800 с полным списком в единицах LRPDU и/или какие-либо сообщения в единицах LRPDU из способа 400.In block 909, the local node/portal begin to manage synchronization of the local database with a neighboring database via the target link. Such control may be performed by transmitting entry information to the neighboring database over the target link in messages in units of LRPDUs. Such entry information may comprise entries, entry titles, or a combination of entries and titles. For example, such LRPDU messages may be other LRPDU hello messages 500, LRPDU write messages 600, LRPDU partial list messages 700, LRPDU full list messages 800, and/or any messages in LRPDUs. LRPDUs from method 400.

На Фиг. 10 представлена логическая схема примера способа 1000 управления синхронизацией пары баз данных, например, после завершения выполнения способа 900. Способ 1000 может быть реализован в собственной системе 110 и/или 130, в прокси-системе 210 и/или 230, в ведомой системе 240 и/или 250, и/или в системе 300 баз данных. Способ 1000 использует сигнализацию из способа 400. Далее, способ 1000 может использовать сообщения в единицах LRPDU, такие как приветственные сообщения 500 в единицах LRPDU, сообщения 600 записи в единицах LRPDU, сообщения 700 с парциальным списком в единицах LRPDU, сообщения 800 с полным списком в единицах LRPDU и/или комбинации таких сообщений. Способ 1000 обсуждается с точки зрения локального узла, оперирующего базой данных заявителя, для ясности обсуждения, но может также работать полностью или частично в узле, оперирующем регистратором (например, в локальном узле или в соседнем узле).On FIG. 10 is a flow chart of an exemplary method 1000 for managing the synchronization of a pair of databases, for example, after execution of method 900 has completed. /or 250, and/or in the system 300 databases. Method 1000 uses signaling from method 400. Further, method 1000 can use messages in LRPDUs, such as hello messages 500 in LRPDUs, write messages 600 in LRPDUs, partial list messages 700 in LRPDUs, full list messages 800 in LRPDUs, units of LRPDU and/or a combination of such messages. Method 1000 is discussed in terms of the local node operating the applicant's database for clarity of discussion, but may also operate wholly or partly in the node operating the registrar (eg, local node or neighbor node).

В блоке 1001, приложение заменяет одну или несколько записей в базе данных заявителя. Соответственно, портал в локальном узле передает одно или несколько сообщений записи в единицах LRPDU в базу данных регистратора, расположенную в соседнем узле, например, через соседний портал. Сообщения записей в единицах LRPDU указывают обновления для записей, хранящихся в базе данных заявителя, расположенной в локальном узле, и могут также содержать такие обновленные записи. Например, сообщения записей в единицах LRPDU могут содержать один или несколько номеров записей, указывающих обновленные записи в базе данных заявителя, и один или несколько последовательных номеров, идентифицирующих обновления в обновленных записях в базе данных заявителя. Обновленные записи могут также быть маркированы как неподтвержденные (не квитированные) в базе данных заявителя.At block 1001, the application replaces one or more entries in the applicant's database. Accordingly, the portal at the local site sends one or more write messages in units of LRPDUs to the registrar database located at the neighboring site, for example, through the neighboring portal. Record messages in LRPDUs indicate updates to records stored in the applicant's database located at the local node and may also contain such updated records. For example, the LRPDU entry messages may contain one or more entry numbers indicating updated entries in the applicant's database and one or more sequence numbers identifying updates in the updated entries in the applicant's database. Updated records may also be marked as unconfirmed (not acknowledged) in the applicant's database.

В блоке 1003, портал принимает одно или несколько сообщений в единицах LRPDU, квитирующих сообщения записей в единицах LRPDU из блока 1001. В некоторых примерах, совокупность сообщений в единицах LRPDU, квитирующих сообщения записей в единицах LRPDU, содержит сообщение с парциальным списком в единицах LRPDU. Это сообщение с парциальным списком в единицах LRPDU содержит по меньшей один заголовок записи, квитирующий по меньшей мере одну обновленную запись из блока 1001. Этот по меньшей мере один заголовок записи содержит номер записи, указывающий обновленную запись (и) из блока 1001, и последовательный номер, идентифицирующий обновление (я), входящее в обновленную запись из блока 1001. В некоторых примерах, совокупность сообщений в единицах LRPDU, квитирующих сообщения записи в единицах LRPDU, может содержать сообщение с полным списком в единицах LRPDU. Это сообщение с полным списком в единицах LRPDU содержит заголовки записей относительно всех записей, хранящихся в базе данных регистратора. Далее, это сообщение с полным списком в единицах LRPDU содержит поле с номером первой записи, обозначающее первую запись, хранящуюся в базе данных регистратора, и поле с номером последней записи, обозначающее последнюю запись, хранящуюся в базе данных регистратора. Кроме того, заголовки записей содержат номера записей, обозначающих записи, хранящиеся в базе данных регистратора, и последовательные номера, идентифицирующие обновления, входящие в записи, хранящиеся в базе данных регистратора.At block 1003, the portal receives one or more LRPDU messages acknowledging LRPDU entry messages from block 1001. In some examples, the set of LRPDU messages acknowledging LRPDU entry messages contains a partial list message in LRPDUs. This LRPDU partial list message contains at least one entry header acknowledging at least one updated entry from block 1001. This at least one entry header contains an entry number indicating the updated entry(s) from block 1001 and a sequence number , identifying the update(s) included in the updated entry from block 1001. In some examples, the set of LRPDU messages acknowledging the LRPDU write messages may contain a complete LRPDU list message. This full list message in LRPDUs contains the record headers for all records stored in the registrar database. Further, this LRPDU listing message contains a first entry number field indicating the first entry stored in the registrar database and a last entry number field indicating the last entry stored in the registrar database. In addition, record headers contain record numbers identifying records stored in the registrar's database and sequence numbers identifying updates included in records stored in the registrar's database.

В блоке 1005, по меньшей мере одну обновленную запись маркируют в базе данных заявителя как квитированную базой данных регистратора на основе заголовков записей, входящих в сообщение (я) с парциальным списком и/или с полным списком в единицах LRPDU из блока 1003.At block 1005, at least one updated entry is marked in the applicant database as acknowledged by the registrar database based on the headers of the entries included in the partial list and/or full list message(s) in LRPDUs from block 1003.

В блоке 1007, портал/заявитель может определить все обновленные записи в базе данных заявителя, квитированные базой данных регистратора посредством сообщений в единицах LRPDU. На основе определения в блоке 1007, что все обновленные записи в базе данных заявителя квитированы базой данных регистратора посредством сообщений в единицах LRPDU, портал/заявитель уведомляет приложение, что база данных заявителя синхронизирована с базой данных регистратора, в блоке 1009.In block 1007, the portal/applicant may determine all updated entries in the applicant database acknowledged by the registrar database via LRPDU messages. Based on the determination at block 1007 that all updated entries in the applicant database have been acknowledged by the registrar database via messages in LRPDUs, the portal/applicant notifies the application that the applicant database has been synchronized with the registrar database at block 1009.

В некоторых случаях, сообщение записи в единицах LRPDU может не достигнуть регистратора, и/или сообщение с парциальным списком в единицах LRPDU может быть отброшено по пути назад к заявителю. В таких случаях, в являющемся опцией блоке 1011, портал генерирует уведомление о неуспехе, когда истечет промежуток времени таймера сообщения записи в единицах LRPDU без приема соответствующего сообщения с парциальным списком в единицах LRPDU, для передачи приложению.In some cases, the LRPDU write message may not reach the registrar and/or the LRPDU partial list message may be dropped on the way back to the applicant. In such cases, at an optional block 1011, the portal generates a failure notification when the LRPDU write message timer expires without receiving a corresponding LRPDU partial list message for transmission to the application.

Блок 1013 также является опцией. В некоторых примерах, этот портал/заявитель может быть конфигурирован для передачи в базу данных регистратора сообщения с запросом получения полного списка в единицах LRPDU. Регистратор/соседний портал отвечает посредством сообщения с полным списком в единицах LRPDU. По этой причине, портал/заявитель в локальном узле принимает сообщение с полным списком в единицах LRPDU от базы данных регистратора в ответ на сообщение с запросом получения полного списка в единицах LRPDU.Block 1013 is also an option. In some examples, this portal/applicant may be configured to send a message to the registrar database requesting a complete list in LRPDUs. The registrar/neighbor portal responds with a full list message in LRPDUs. For this reason, the portal/applicant at the local site receives a full LRPDU list message from the registrar database in response to a full LRPDU list request message.

На Фиг. 11 представлена логическая схема примера способа 1100 поддержания синхронизации баз данных, несмотря на прерывание соединения, например, после осуществления способа 900 и во время/после осуществления способа 1000. Способ 1100 может быть осуществлен в собственной системе 110 и/или 130, в прокси-системе 210 и/или 230, в ведомой системе 240 и/или 250, и/или в системе 300 баз данных. Способ 1100 использует сигнализацию из способа 400. Далее, способ 1100 может использовать сообщения в единицах LRPDU, такие как приветственные сообщения 500 в единицах LRPDU, сообщения 600 записей в единицах LRPDU, сообщения 700 с парциальным списком в единицах LRPDU, сообщения 800 с полным списком в единицах LRPDU и/или комбинации таких сообщений. Способ 1100 обсуждается с точки зрения локального узла, оперирующего базой данных заявителя, для ясности обсуждения, но может также быть осуществлен в целом или частично в узле, оперирующем регистратором (например, в локальном узле или в соседнем узле).On FIG. 11 is a flow chart of an exemplary method 1100 of maintaining database synchronization despite a connection interruption, for example, after method 900 is performed and during/after method 1000 is performed. 210 and/or 230, in the slave system 240 and/or 250, and/or in the database system 300. Method 1100 uses the signaling from method 400. Further, method 1100 may use messages in LRPDUs, such as hello messages 500 in LRPDUs, entry messages 600 in LRPDUs, partial list messages 700 in LRPDUs, full list messages 800 in LRPDUs, units of LRPDU and/or a combination of such messages. Method 1100 is discussed in terms of the local node operating the applicant database for clarity of discussion, but may also be performed in whole or in part at the node operating the registrar (eg, local node or neighbor node).

Осуществление способа 1100 начинается, когда обмен приветственными сообщениями в единицах LRPDU оказывается неуспешным (не состоялся), что указывает на прерывание соединения. В блоке 1101, генерируют код разъединенности для приложения. Этот код разъединенности указывает, что обмен приветственными сообщениями в единицах LRPDU оказывался неуспешным (не состоялся). Это также указывает, что дополнительные сообщения в адрес соседнего узла/регистратора вероятно приняты не будут, и что ранее не подтвержденные (не квитированные) сообщения могут не достигнуть регистратора.Method 1100 begins when the exchange of hello messages in LRPDUs fails (failed), indicating a connection abort. In block 1101, a release code is generated for the application. This disassociation code indicates that the exchange of hello messages in units of LRPDUs was unsuccessful (did not take place). It also indicates that additional messages to the neighbor/registrar address are likely not to be received, and that previously unacknowledged (unacknowledged) messages may not reach the registrar.

Заявитель может определить, что нужно выполнить возврат в начальное положение (сброс) пары баз данных после повторного установления соединения. В таком случае используется способ 900. Однако заявитель может также определить, что нужно заново синхронизировать текущую базу данных заявителя с базой данных регистратора, когда будет вновь установлено соединение. В таком случае, в блоке 1103 портал принимает команду от приложения для поддержания базы данных заявителя в запоминающем устройстве, расположенном в локальном узле, несмотря на код разъединенности.The applicant may specify that a database pair should be reset (reset) after the connection is reestablished. In such a case, method 900 is used. However, the applicant may also specify that the applicant's current database needs to be resynchronized with the registrar's database when the connection is re-established. In such a case, at block 1103, the portal receives a command from the application to maintain the database of the applicant in the storage device located at the local node, despite the disconnect code.

В блоке 1105, портал выполняет начальную установку (сброс) таймеров оповещения в базе данных заявителя после безуспешного обмена приветственными сообщениями. Это предотвращает передачу сообщения записи в единицах LRPDU до тех пор, пока не будет принято сообщение с полным списком в единицах LRPDU после повторного установления соединения.In block 1105, the portal initializes (resets) the alert timers in the applicant database after an unsuccessful exchange of hello messages. This prevents the write message in LRPDUs from being transmitted until a full list message in LRPDUs has been received after the connection is re-established.

Приветственные сообщения в единицах LRPDU могут передаваться периодически в попытках повторного установления соединения. Когда база данных регистратора после разъединения примет приветственное сообщение в единицах LRPDU, регистратор отвечает сообщением с полным списком в единицах LRPDU. Соответственно, в блоке 1107, заявитель/портал после успешного обмена приветственными сообщениями в единицах LRPDU принимает сообщение с полным списком в единицах LRPDU из базы данных регистратора, расположенной в соседнем узле. Это сообщение с полным списком в единицах LRPDU содержит заголовки записей для всех записей, находящихся в базе данных регистратора.Hello messages in units of LRPDUs may be sent periodically in attempts to re-establish a connection. When the registrar database receives a hello message in LRPDUs after disconnection, the registrar responds with a message with a complete list in LRPDUs. Accordingly, at block 1107, the applicant/portal, after successfully exchanging hello LRPDUs, receives a message with the complete list in LRPDUs from the registrar database located at the neighboring node. This full list message in LRPDUs contains the entry headers for all entries in the registrar database.

В блоке 1109, портал/заявитель сравнивает заголовки записей из сообщения с полным списком в единицах LRPDU с заголовками записей, хранящимися в базе данных заявителя, для восстановления синхронизации базы данных заявителя с базой данных регистратора. В частности, в блоке 1111 портал/заявитель определяет, имеет ли место рассогласование записей между заголовками записей, входящих в сообщения с полным списком в единицах LRPDU, и заголовками записей в базе данных заявителя.In block 1109, the portal/applicant compares the entry headers from the full list message in LRPDUs with the entry headers stored in the applicant database to restore synchronization of the applicant database with the registrar database. In particular, at block 1111, the portal/applicant determines whether there is a record mismatch between the headers of the records included in the full list messages in LRPDUs and the headers of the records in the applicant database.

Когда портал/заявитель определит рассогласование между одним или несколькими заголовками записей в базе данных заявителя и одним или несколькими заголовками записей из сообщения с полным списком в единицах LRPDU, способ 1100 переходит к блоку 1113. Рассогласование указывает, что по меньшей мере одно предшествующее сообщение записи в единицах LRPDU было утрачено. Следовательно, заявитель определяет, какие обновления записей не представлены в сообщении с полным списком в единицах LRPDU. В блоке 1113, заявитель/портал передает одно или несколько сообщений записи в единицах LRPDU в адрес базы данных регистратора. Эти сообщения записи в единицах LRPDU содержат заголовки обновленных записей, что нужно для рассмотрения рассогласования и синхронизации пары баз данных.When the portal/applicant determines a mismatch between one or more record headers in the applicant database and one or more record headers from the full list message in LRPDUs, method 1100 proceeds to block 1113. The mismatch indicates that at least one previous write message in units of LRPDU were lost. Therefore, the applicant determines which record updates are not present in the full list message in LRPDUs. In block 1113, the applicant/portal sends one or more write messages in LRPDUs to the registrar database address. These write messages, in units of LRPDUs, contain the headers of the updated writes, which is necessary to deal with the misalignment and synchronization of the database pair.

Когда портал/заявитель определит, что нет рассогласования между заголовками записей в базе данных заявителя и заголовками записей в базе данных регистратора, способ 1100 переходит к блоку 1115. На основе такого определения, что рассогласования нет, в блоке 1115 портал/заявитель может уведомить приложение, что база данных заявителя синхронизирована с базой данных регистратора.When the portal/applicant determines that there is no mismatch between the record headers in the applicant database and the record headers in the registrar database, method 1100 proceeds to block 1115. Based on this determination that there is no mismatch, at block 1115, the portal/applicant may notify the application that the applicant's database is synchronized with the registrar's database.

На Фиг. 12 представлена упрощенная схема примера узла 1200 сети связи для управления синхронизацией баз данных в соответствии с одним из вариантов настоящего изобретения. Этот узел 1200 сети связи является подходящим для реализации рассмотренных примеров/вариантов, как описывается здесь. Например, узел 1200 сети связи может быть использован для осуществления собственной системы 110/130, прокси-системой 210/230, ведомой системы 240/250, комбинаций таких систем, и/или какого-либо локального узла и/или соседнего узла, описываемых здесь. Например, такой узел 1200 сети связи может осуществлять систему 300 базу данных.On FIG. 12 is a simplified diagram of an example of a communications network node 1200 for managing database synchronization in accordance with one embodiment of the present invention. This node 1200 of the communication network is suitable for implementing the considered examples/options, as described here. For example, a communication network node 1200 may be used to implement a native system 110/130, a proxy system 210/230, a slave system 240/250, combinations of such systems, and/or any local node and/or neighbor node described here. . For example, such a communication network node 1200 may implement a database system 300 .

Узел 1200 сети связи содержит порты 1220 нисходящей линии, порты 1250 восходящей линии и/или приемопередающие модули (Tx/Rx) 1210, имеющие передатчики и/или приемники для передачи данных в восходящем направлении и/или в нисходящем направлении по сети связи. Узел 1200 сети связи содержит также процессор 1230, имеющий логический модуль и/или центральный процессор (central processing unit (CPU)) для обработки данных, и запоминающее устройство 1232 для сохранения данных. Узел 1200 сети связи может также содержать опто-электрические (optical-to-electrical (OE)) компоненты, электрооптические компоненты (electrical-to-optical (EO)) и/или компоненты радиосвязи, соединенные с портами 1250 восходящей линии и/или портами 1220 нисходящей линии для передачи данных по оптическим или радио сетям связи. Узел 1200 сети связи может также содержать устройства ввода и/или вывода (I/O) для передачи данных к пользователю и от него. К устройствам ввода/вывода (I/O) могут относиться устройства вывода, такие как дисплей для представления видеоданных, громкоговорители для вывода аудиоданных и т.д. К устройствам ввода/вывода (I/O) могут также относиться устройства ввода, такие как клавиатура, мышь, трекбол и т.д., и/или соответствующие интерфейсы для сопряжения с такими устройствами вывода.Communication network node 1200 includes downlink ports 1220, uplink ports 1250, and/or transceiver modules (Tx/Rx) 1210 having transmitters and/or receivers for transmitting data in the uplink and/or downlink over the communication network. The communication network node 1200 also includes a processor 1230 having a logic module and/or a central processing unit (CPU) for processing data, and a storage device 1232 for storing data. Communication network node 1200 may also contain opto-electrical (optical-to-electrical (OE)) components, electro-optical components (electrical-to-optical (EO)) and/or radio components connected to uplink ports 1250 and/or ports 1220 downlink for data transmission over optical or radio communication networks. Communication network node 1200 may also include input and/or output (I/O) devices for transmitting data to and from a user. Input/output (I/O) devices may include output devices such as a display for presenting video data, speakers for outputting audio data, and so on. Input/output (I/O) devices may also include input devices such as a keyboard, mouse, trackball, etc., and/or appropriate interfaces for interfacing with such output devices.

Процессор 1230 реализован посредством аппаратуры и программного обеспечения. Этот процессор 1230 может быть реализован в виде одного или нескольких кристаллов процессоров CPU, ядер (например, как в многоядерном процессоре), программируемых пользователем вентильных матриц (field-programmable gate array (FPGA)), специализированных интегральных схем (application specific integrated circuit (ASIC)) и цифровых процессоров сигнала (digital signal processor (DSP)). Процессор 1230 имеет связь с портами 1220 нисходящей линии, модулями Tx/Rx 1210, портами 1250 восходящей линии и запоминающим устройством 1232. Этот процессор 1230 содержит модуль 1214 протокола LRP-DS. Такой модуль 1214 протокола LRP-DS реализует описываемые здесь варианты изобретения, такие как способы 400, 900, 1000, 1100 и/или какой-либо другой способ/механизм, описываемый здесь. Далее, модуль 1214 протокола LRP-DS может передавать, принимать и/или обрабатывать сообщения в единицах LLPDU, такие как приветственные сообщения 500 в единицах LRPDU, сообщения 600 записей в единицах LRPDU, сообщения 700 с парциальным списком в единицах LRPDU, сообщения 800 с полным списком в единицах LRPDU и/или комбинации таких сообщений. Например, модуль 1214 протокола LRP-DS может быть использован для установления соединения с применением приветственных сообщений в единицах LRPDU и установления пары баз данных для синхронизации. В качестве другого примера модуль 1214 протокола LRP-DS может быть использован для уведомления приложения, когда все записи у заявителя будут квитированы регистратором и/или для уведомления приложения, когда регистратор не сможет квитировать какое-либо обновление записи. В качестве еще одного примера, модуль 1214 протокола LRP-DS может быть использован для возобновления синхронизации пары баз данных после разъединения без того, чтобы передавать все записи от заявителя к регистратору. Следовательно, этот модуль 1214 протокола LRP-DS улучшает функциональные возможности узла 1200 сети связи. Далее, модуль 1214 протокола LRP-DS решает проблемы управления запоминающим устройством, специфичные для компьютерной техники. Кроме того, модуль 1214 протокола LRP-DS осуществляет преобразование узла 1200 сети связи в другое состояние. Этот модуль 1214 протокола LRP-DS может быть реализован в виде команд, хранящихся в запоминающем устройстве 1232 и выполняемых процессором 1230 (например, в виде компьютерного программного продукта, сохраняемого на энергонезависимом носителе информации).Processor 1230 is implemented in hardware and software. This processor 1230 may be implemented as one or more CPU dies, cores (such as in a multi-core processor), field-programmable gate array (FPGA), application specific integrated circuit (ASIC )) and digital signal processors (DSP). Processor 1230 is in communication with downlink ports 1220, Tx/Rx modules 1210, uplink ports 1250, and memory 1232. This processor 1230 includes an LRP-DS protocol module 1214. Such LRP-DS protocol module 1214 implements embodiments of the invention described here, such as methods 400, 900, 1000, 1100, and/or any other method/mechanism described here. Further, the LRP-DS protocol module 1214 may send, receive, and/or process messages in LLPDUs, such as hello messages 500 in LRPDUs, entries messages 600 in LRPDUs, partial list messages 700 in LRPDUs, full list messages 800 list in units of LRPDU and/or a combination of such messages. For example, LRP-DS protocol module 1214 may be used to establish a connection using hello messages in LRPDUs and establish a database pair for synchronization. As another example, the LRP-DS protocol module 1214 may be used to notify an application when all entries in an applicant have been acknowledged by the registrar and/or to notify the application when the registrar is unable to acknowledge any record update. As yet another example, LRP-DS protocol module 1214 can be used to resume synchronization of a database pair after disconnection without having to transfer all records from the applicant to the registrar. Therefore, this LRP-DS protocol module 1214 improves the functionality of the node 1200 of the communication network. Further, the LRP-DS protocol module 1214 solves computer-specific storage management problems. In addition, the LRP-DS protocol module 1214 converts the communication network node 1200 to another state. This LRP-DS protocol module 1214 may be implemented as instructions stored in memory 1232 and executed by processor 1230 (eg, as a computer program product stored on a non-volatile storage medium).

Запоминающее устройство 1232 содержит запоминающие устройства одного или нескольких типов, такие как диски, устройства с записью на ленту, твердотельные диски, постоянные запоминающие устройства (ПЗУ (read only memory (ROM))), запоминающие устройства с произвольной выборкой (ЗУПВ (random access memory (RAM))), флэш-память, троичное ассоциативное запоминающее устройство (ternary content-addressable memory (TCAM)), статическое ЗУПВ (static random-access memory (SRAM)) и т.д. Запоминающее устройство 1232 может быть использовано в качестве запоминающего устройства с переполнением данных для сохранения программ, когда эти программы выбраны для исполнения, и для сохранения команд и данных, считываемых при выполнении программ.The storage device 1232 contains storage devices of one or more types, such as disks, tape devices, solid state disks, read only memory (ROM))), random access memory (RAM) (RAM))), flash memory, ternary content-addressable memory (TCAM), static random-access memory (SRAM), etc. Memory 1232 may be used as a data overflow memory for storing programs when those programs are selected for execution and for storing instructions and data read when programs are executed.

На Фиг. 13 представлена упрощенная схема примера устройства 1300 для установления пары баз данных. Это устройство 1300 может быть использовано для осуществления способа 400 и/или способа 900. Устройство 1300 содержит приемный модуль 1301 для приема приветственного сообщения, содержащего идентификатор AppId и указание целевой линии связи между локальным узлом и соседним узлом. Это устройство 1300 также содержит решающий модуль 1303 для определения, что идентификатор AppId ассоциирован с приложением для синхронизации баз данных. Устройство 1300 также содержит модуль 1305 установления пары баз данных для установления локальной базы данных в локальном узле в качестве части пары баз данных для использования приложением, эта пара баз данных содержит соседнюю базу данных, расположенную в соседнем узле. Устройство 1300 содержит также ассоциирующий модуль 1307 для ассоциирования пары баз данных с целевой линией связи. Устройство содержит также модуль 1309 управления синхронизацией, осуществляющий синхронизацию локальной базы данных с соседней базой данных с использованием целевой линии связи.On FIG. 13 is a simplified diagram of an example device 1300 for establishing a database pair. This device 1300 may be used to implement method 400 and/or method 900. Device 1300 includes a receiving module 1301 for receiving a hello message containing an AppId and an indication of a target link between a local node and a neighbor node. This device 1300 also includes a decision module 1303 for determining that an AppId is associated with a database synchronization application. Apparatus 1300 also includes a database pair installer 1305 for establishing a local database on a local node as part of a database pair for use by an application, this database pair containing a neighbor database located at a neighbor node. Device 1300 also includes an association module 1307 for associating a pair of databases with a target link. The device also includes a synchronization control module 1309 that synchronizes the local database with a neighboring database using the target link.

На Фиг. 14 представлена упрощенная схема примера устройства 1400 для управления синхронизацией пары баз данных. Это устройство 1400 может быть использовано для осуществления способа 400 и/или способа 1000. Устройство 1400 содержит передающий модуль 1401 для передачи одного или нескольких сообщений записи в единицах LRPDU в адрес базы данных регистратора в соседнем узле, где эти сообщения записи в единицах LRPDU указывают обновления для записей, хранящихся в базе данных заявителя в локальном узле. Устройство 1400 также содержит приемный модуль 1403 для приема одного или нескольких сообщений в единицах LRPDU, квитирующих сообщения записи в единицах LRPDU. Устройство 1400 также содержит модуль 1405 запоминающего устройства для маркировки по меньшей одной обновленной записи в базе данных заявителя в качестве квитированной базой данных регистратора. Это устройство 1400 также содержит решающий модуль 1407 для определения, что все обновленные записи из базы данных заявителя квитированы базой данных регистратора посредством сообщений в единицах LRPDU. Устройство 1400 также содержит модуль 1409 генерации уведомлений с целью уведомления приложения о том, что база данных заявителя синхронизирована с базой данных регистратора, на основе определения, что все обновленные записи в базе данных заявителя квитированы базой данных регистратора посредством сообщений в единицах LRPDU.On FIG. 14 is a simplified diagram of an example device 1400 for managing the synchronization of a pair of databases. This device 1400 may be used to implement method 400 and/or method 1000. Device 1400 includes a transmitter module 1401 for transmitting one or more LRPDU write messages to a registrar database address at a neighbor node, where those LRPDU write messages indicate updates. for records stored in the applicant's database at the local node. The device 1400 also includes a receiving module 1403 for receiving one or more LRPDU messages acknowledging the write LRPDU messages. The device 1400 also includes a memory module 1405 for marking at least one updated entry in the applicant's database as acknowledged by the registrar's database. This device 1400 also includes a decision module 1407 for determining that all updated entries from the applicant database have been acknowledged by the registrar database via LRPDU messages. The device 1400 also includes a notification generation module 1409 to notify the application that the applicant database is synchronized with the registrar database based on a determination that all updated entries in the applicant database have been acknowledged by the registrar database via LRPDU messages.

Фиг. 15 представлена упрощенная схема примера устройства 1500 для поддержания синхронизации баз данных, несмотря на прерывание соединения. Это устройство 1500 может быть использовано для осуществления способа 400 и/или способа 1100. Устройство 1500 содержит модуль 1501 уведомления о разъединенности для генерации кода разъединенности для приложения, где этот код разъединенности обозначает, что обмен приветственными сообщениями в единицах LRPDU не состоялся (был неуспешным). Это устройство 1500 также содержит командный модуль 1503 для приема команды от приложения с целью поддержания базы данных заявителя в запоминающем устройстве в локальном узле, несмотря на код разъединенности. Устройство 1500 также содержит приемный модуль 1505 для приема сообщения с полным списком в единицах LRPDU от базы данных регистратора, расположенной в соседнем узле, после успешного обмена приветственное сообщение, где такое сообщение с полным списком в единицах LRPDU содержит заголовки записей для всех записей, сохраняемых в базе данных регистратора. Это устройство 1500 также содержит модуль 1507 сравнения записей для осуществления сравнения заголовков записей, входящих в сообщение с полным списком в единицах LRPDU, с заголовками записей, сохраняемых в базе данных заявителя, с целью восстановления синхронизации базы данных заявителя с базой данных регистратора.Fig. 15 is a simplified diagram of an exemplary device 1500 for maintaining database synchronization despite connection interruptions. This device 1500 may be used to implement method 400 and/or method 1100. Device 1500 includes a release notification module 1501 for generating a release code for the application, where the release code indicates that the exchange of hello messages in LRPDUs did not take place (was unsuccessful). . This device 1500 also includes a command module 1503 for receiving a command from the application to maintain the database of the applicant in the storage device at the local node, despite the disconnect code. The device 1500 also includes a receiving module 1505 for receiving a full list message in LRPDUs from a registrar database located at a neighboring node after a successful exchange of a hello message, where such a full list message in LRPDUs contains the record headers for all records stored in registrar database. This device 1500 also includes a record comparison module 1507 for comparing the headers of the records included in the full list message in LRPDUs with the headers of the records stored in the applicant database in order to restore synchronization of the applicant database with the registrar database.

В одном из вариантов, узел или элемент содержит передающее устройство для передачи одного или нескольких сообщений записей в единицах данных протокола регистрации локальной линии связи (в единицах LRPDU) в адрес базы данных регистратора, расположенной в соседнем узле, где эти сообщения записей в единицах LRPDU обозначают обновления записей, хранящихся в базе данных заявителя, расположенной в локальном узле, равно как приемное устройство для приема одного или нескольких сообщений в единицах LRPDU, квитирующих сообщения записи в единицах LRPDU. Указанный узел или элемент далее содержит запоминающее устройство для маркировки по меньшей мере одной обновленной записи в базе данных заявителя в качестве подтвержденной (квитированной) базой данных регистратора. Указанный узел или элемент содержит также решающее устройство для определения, что все обновленные записи в базе данных заявителя квитированы базой данных регистратора посредством сообщений в единицах LRPDU, и уведомляющее устройство для осуществления уведомления приложения о том, что база данных заявителя синхронизирована с базой данных регистратора на основе определения, что все обновленные записи в базе данных заявителя квитированы базой данных регистратора посредством сообщений в единицах LRPDU.In one embodiment, the node or element comprises a transmitter for transmitting one or more Local Link Registration Protocol Data Unit (LRPDU) record messages to a registrar database address located at a neighboring node, where the LRPDU record messages denote updates to records stored in the applicant's database located at the local node, as well as a receiver to receive one or more LRPDU messages acknowledging the LRPDU write messages. Said node or element further comprises a storage device for marking at least one updated entry in the applicant's database as confirmed (acknowledged) by the registrar's database. Said node or element also includes a decision device for determining that all updated entries in the applicant database have been acknowledged by the registrar database through messages in units of LRPDUs, and a notifying device for notifying the application that the applicant database is synchronized with the registrar database based on determining that all updated entries in the applicant's database are acknowledged by the registrar's database via messages in LRPDUs.

Первый компонент считается напрямую связанным со вторым компонентом, когда между этими первым и вторым компонентами нет никаких промежуточных компонентов, за исключением линии связи, дорожки или другого носителя. Первый компонент считается непрямо связанным со вторым компонентом, когда между этими первым и вторым компонентами присутствуют промежуточные компоненты, отличные от линии связи, дорожки или другого носителя. Термин «связанный» и его варианты охватывают как прямую связь, так и непрямую связь. Термин «около» означает некий диапазон, охватывающий ±10% от последующего числа, если специально не указано иначе.The first component is considered to be directly connected to the second component when there are no intermediate components between these first and second components, except for a link, track or other medium. A first component is considered to be indirectly associated with a second component when there are intermediate components other than a link, track, or other medium between those first and second components. The term "coupled" and its variants cover both direct communication and indirect communication. The term "about" means a range covering ±10% of the following number, unless specifically stated otherwise.

Хотя в настоящем описании предложены несколько вариантов, может быть понятно, что рассматриваемые системы и способы могут быть реализованы во множестве других конкретных форм, не отклоняясь от смысла или объема настоящего изобретения. Представленные здесь примеры следует считать только иллюстративными, но не исчерпывающими, так что настоящее описание не имеет целью ограничить изобретение только рассмотренными здесь подробностями. Например, разнообразные элементы или компоненты могут быть скомбинированы или интегрированы в другую систему, либо некоторые признаки могут быть опущены или не реализованы.While several variations are provided herein, it may be understood that the systems and methods contemplated may be implemented in a variety of other specific forms without departing from the spirit or scope of the present invention. The examples presented here are to be considered illustrative only and not exhaustive, so the present description is not intended to limit the invention to the details discussed here. For example, various elements or components may be combined or integrated into another system, or some features may be omitted or not implemented.

Кроме того, технологии, системы, подсистемы и способы, описываемые и иллюстрируемые в разнообразных вариантах как дискретные или раздельные, могут быть скомбинированными или интегрированы с другими системами, компонентами, технологиями или способами, не отклоняясь от объема настоящего изобретения. Специалист в рассматриваемой области может понять другие примеры замен, подстановок и изменений и осуществить их, не отклоняясь от смысла и объема, описываемых здесь.In addition, technologies, systems, subsystems and methods, described and illustrated in various ways as discrete or separate, can be combined or integrated with other systems, components, technologies or methods without deviating from the scope of the present invention. A person skilled in the art can understand other examples of substitutions, substitutions and changes and implement them without deviating from the meaning and scope described here.

Claims (57)

1. Способ синхронизации базы данных, осуществляемый в локальном узле, способ содержит:1. The method of database synchronization, carried out in the local node, the method contains: прием, в приемнике локального узла, приветственного сообщения, содержащего идентификатор приложения (AppId) и указание целевой линии связи между целевым портом локального узла и целевым портом соседнего узла;receiving, at the local node receiver, a hello message containing an application identifier (AppId) and an indication of the target link between the target port of the local node and the target port of the neighbor node; определение, процессором в локальном узле, идентификатора AppId, ассоциированного с приложением для осуществления синхронизации баз данных; determining, by the processor at the local node, an AppId associated with the application for performing database synchronization; установление локальной базы данных в запоминающем устройстве в локальном узле в качестве части пары баз данных для использования указанным приложением, эта пара баз данных содержит соседнюю базу данных, расположенную в соседнем узле; establishing a local database in storage at the local node as part of a database pair for use by said application, the database pair containing a neighbor database located at the neighbor node; ассоциирование, процессором, рассматриваемой пары баз данных с целевой линией связи; иassociation, by the processor, of the database pair in question with the target link; and синхронизация локальной базы данных с соседней базой данных с использованием целевой линии связи. synchronization of the local database with a neighboring database using the target link. 2. Способ по п. 1, отличающийся тем, что процедура управления синхронизацией локальной базы данных с соседней базой данных содержит передачу, посредством передатчика из локального узла, информации записей в адрес соседней базы данных по целевой линии связи в сообщениях в единицах данных протокола регистрации локальной линии связи (link-local registration protocol data unit (в единицах LRPDU)).2. The method according to claim. 1, characterized in that the procedure for managing synchronization of the local database with the neighboring database comprises transmitting, by means of a transmitter from the local node, information of records to the address of the neighboring database over the target communication line in messages in data units of the local registration protocol. communication lines (link-local registration protocol data unit (in units of LRPDU)). 3. Способ по какому-либо из пп. 1, 2, отличающийся тем, что локальная база данных содержит базу данных заявителя для сохранения локальных записей с целью передачи в адрес базы данных регистратора, находящейся в соседней базе данных.3. The method according to any of paragraphs. 1, 2, characterized in that the local database contains the applicant's database for saving local records in order to transfer them to the address of the registrar's database located in the neighboring database. 4. Способ по какому-либо из пп. 1-3, отличающийся тем, что локальная база данных содержит базу данных регистратора для приема соседних записей из базы данных заявителя, находящейся в соседней базе данных. 4. The method according to any of paragraphs. 1-3, characterized in that the local database contains a registrar database for receiving neighboring records from the applicant's database located in the neighboring database. 5. Способ по какому-либо из пп. 1-4, отличающийся тем, что приветственное сообщение представляет собой приветственную единицу LRPDU, и тем, что эта приветственная единица LRPDU представляет целевую линию связи посредством идентификатора «Мое шасси» (ID), идентифицирующего локальный узел, идентификатора «Мой порт» ID, идентифицирующего целевой порт в локальном узле, идентификатора «Соседнее шасси» ID, идентифицирующего соседний узел, и идентификатора «Соседний порт» ID, идентифицирующего целевой порт в соседнем узле.5. The method according to any one of paragraphs. 1-4, characterized in that the hello message is a hello LRPDU and that the hello LRPDU represents the target link by means of a My Chassis Identifier (ID) identifying the local node, a My Port ID identifying the target port at the local node, the Neighbor Chassis ID identifying the neighbor, and the Neighbor Port ID identifying the target port at the neighbor. 6. Способ синхронизации базы данных, осуществляемый в локальном узле, способ содержит:6. The method of database synchronization carried out in the local node, the method includes: передачу, посредством передатчика из локального узла, одного или нескольких сообщений записей в единицах данных протокола регистрации локальной линии связи (в единицах LRPDU) в адрес базы данных регистратора, находящейся в соседнем узле, где эти сообщения записи в единицах LRPDU указывают обновления для записей, хранящихся в базе данных заявителя, находящейся в локальном узле; transmission, by the transmitter from the local node, of one or more Local Link Registration Protocol Data Unit (LRPDU) record messages to the address of the registrar database located at the neighbor node, where these LRPDU record messages indicate updates to the records stored in the database of the applicant, located in the local node; прием, в приемнике локального узла, одного или нескольких сообщений в единицах LRPDU, квитирующих сообщения записей в единицах LRPDU;receiving, at the local node receiver, one or more LRPDU messages acknowledging the LRPDU entry messages; маркировку, в запоминающем устройстве, находящемся в локальном узле, по меньшей мере одной обновленной записи в базе данных заявителя в качестве квитированной базой данных регистратора.marking, in a storage device located in the local node, at least one updated entry in the database of the applicant as acknowledged by the database of the registrar. 7. Способ по какому-либо из пп. 1-6, дополнительно содержащий определение, процессором в локальном узле, что все обновленные записи в базе данных заявителя квитированы базой данных регистратора посредством сообщений в единицах LRPDU, где передачу приложению уведомления о том, что база данных заявителя синхронизирована с базой данных регистратора, инициируют на основе определения, что все обновленные записи в базе данных заявителя квитированы базой данных регистратора посредством сообщений в единицах LRPDU.7. The method according to any one of paragraphs. 1-6, further comprising determining, by the processor at the local node, that all updated entries in the applicant database have been acknowledged by the registrar database via messages in LRPDUs, where notification to the application that the applicant database is synchronized with the registrar database is initiated at on the basis of determining that all updated records in the applicant database are acknowledged by the registrar database via messages in LRPDUs. 8. Способ по какому-либо из пп. 1-7, отличающийся тем, что совокупность сообщений в единицах LRPDU, квитирующих сообщения записей в единицах LRPDU, содержит сообщение с парциальным списком в единицах LRPDU, где это сообщение с парциальным списком в единицах LRPDU содержит по меньшей мере один заголовок записи, квитирующий указанную по меньшей мере одну обновленную запись.8. The method according to any one of paragraphs. 1-7, characterized in that the set of messages in LRPDUs acknowledging record messages in LRPDUs contains a message with a partial list in LRPDUs, where this message with a partial list in LRPDUs contains at least one record header acknowledging the specified by at least one updated entry. 9. Способ по какому-либо из пп. 1-8, отличающийся тем, что заголовок записи содержит номер записи, указывающий обновленную запись, и последовательный номер, идентифицирующий обновление, входящее в эту обновленную запись.9. The method according to any one of paragraphs. 1-8, characterized in that the entry header contains an entry number indicating the updated entry and a sequence number identifying the update included in this updated entry. 10. Способ по какому-либо из пп. 1-9, дополнительно содержащий генерацию уведомления о неуспехе для передачи приложению, когда истечет промежуток времени таймера для сообщения записи в единицах LRPDU без приема соответствующего сообщения с парциальным списком в единицах LRPDU. 10. The method according to any one of paragraphs. 1-9, further comprising generating a failure notification to be sent to the application when the timer for the write LRPDU message expires without receiving a corresponding LRPDU partial list message. 11. Способ по какому-либо из пп. 1-10, отличающийся тем, что совокупность сообщений в единицах LRPDU, квитирующих сообщения записей в единицах LRPDU, содержит сообщение с полным списком в единицах LRPDU, где это сообщение с полным списком в единицах LRPDU содержит заголовки записей относительно всех записей, находящихся в базе данных регистратора. 11. The method according to any of paragraphs. 1-10, characterized in that the set of messages in units of LRPDU, acknowledging messages of entries in units of LRPDU, contains a message with a complete list in units of LRPDU, where this message with a full list in units of LRPDU contains the headers of records regarding all records in the database registrar. 12. Способ по какому-либо из пп. 1-11, отличающийся тем, что указанное сообщение с полным списком в единицах LRPDU содержит поле с номером первой записи, обозначающее первую запись, хранящуюся в базе данных регистратора, и поле с номером последней записи, обозначающее последнюю запись, хранящуюся в базе данных регистратора, и тем, что заголовки записей содержат номера записей, обозначающие записи, хранящиеся в базе данных регистратора, и последовательные номера, идентифицирующие обновления, входящие в эти записи, хранящиеся в базе данных регистратора. 12. The method according to any of paragraphs. 1-11, characterized in that the specified message with a complete list in LRPDU units contains a field with the first record number, indicating the first record stored in the registrar database, and a field with the last record number, indicating the last record stored in the registrar database, and in that the record headers contain record numbers identifying records stored in the registrar's database and sequence numbers identifying updates included in those records stored in the registrar's database. 13. Способ по какому-либо из пп. 1-12, отличающийся тем, что сообщения записей в единицах LRPDU содержат один или несколько номеров записей, обозначающих обновленные записи в базе данных заявителя, и один или несколько последовательных номеров, идентифицирующих обновления, входящие в указанные обновленные записи, в базе данных заявителя.13. The method according to any of paragraphs. 1-12, characterized in that the record messages in LRPDUs contain one or more record numbers indicating updated records in the database of the applicant, and one or more sequence numbers identifying updates included in these updated records in the database of the applicant. 14. Способ по какому-либо из пп. 1-13, дополнительно содержащий: 14. The method according to any of paragraphs. 1-13, additionally containing: передачу, посредством указанного передатчика, сообщения с запросом получения полного списка в единицах LRPDU в адрес базы данных регистратора; иtransmitting, by said transmitter, a message requesting a complete list in units of LRPDUs to the registrar database address; and прием, посредством указанного приемника, сообщения с полным списком в единицах LRPDU от база данных регистратора в ответ на сообщение с запросом получения полного списка в единицах LRPDU.receiving, via the specified receiver, a message with a complete list in LRPDUs from the registrar database in response to a message requesting a complete list in LRPDUs. 15. Способ синхронизации базы данных, осуществляемый в локальном узле, способ содержит:15. The method of database synchronization, carried out in the local node, the method contains: генерацию, посредством процессора, расположенного в локальном узле, кода разъединенности для приложения, где этот код разъединенности обозначает, что обмен приветственными сообщениями в единицах данных протокола регистрации локальной линии связи (единиц LRPDU) оказался неуспешным (не состоялся); generating, by the processor located at the local node, a release code for the application, where the release code indicates that the exchange of hello messages in local link registration data units (LRPDUs) was unsuccessful (did not take place); прием, в указанном процессоре, команды от рассматриваемого приложения для поддержания базы данных заявителя в запоминающем устройстве в локальном узле, несмотря на код разъединенности;receiving, at said processor, an instruction from the application in question to maintain the applicant's database in storage at the local node despite the disconnect code; прием, в приемнике в локальном узле, сообщения с полным списком в единицах LRPDU от базы данных регистратора, расположенной в соседнем узле, после успешного обмена приветственными сообщениями в единицах LRPDU, сообщения с полным списком в единицах LRPDU, содержащего заголовки записей в отношении всех записей, хранящихся в базе данных регистратора; иreceiving, at the receiver at the local node, a full list message in LRPDUs from a registrar database located in a neighboring node, after a successful exchange of hello LRPDU messages, a full list message in LRPDUs containing the record headers for all records, stored in the registrar's database; and сравнение, указанным процессором, заголовков записей из сообщения с полным списком в единицах LRPDU с заголовками записей, хранящихся в базе данных заявителя, с целью восстановления синхронизации базы данных заявителя с базой данных регистратора.comparing, as indicated by the processor, the record headers from the message with the full list in LRPDUs with the record headers stored in the applicant database in order to restore synchronization of the applicant database with the registrar database. 16. Способ по какому-либо из пп. 1-15, дополнительно содержащий начальную установку (сброс) таймеров оповещения в базе данных заявителя после безуспешного обмена приветственными сообщениями для предотвращения передачи сообщений записи в единицах LRPDU, пока не будет принято сообщение с полным списком в единицах LRPDU.16. The method according to any one of paragraphs. 1-15, further comprising initializing (resetting) the notification timers in the applicant database after an unsuccessful exchange of hello messages to prevent the transmission of write messages in LRPDUs until a message with a complete list in LRPDUs is received. 17. Способ по какому-либо из пп. 1-16, дополнительно содержащий: 17. The method according to any one of paragraphs. 1-16, further comprising: определение, посредством указанного процессора, рассогласования между одним или несколькими заголовками записей, хранящихся в базе данных заявителя, и одним или несколькими заголовками записей из сообщения с полным списком в единицах LRPDU; иdetermining, by said processor, a mismatch between one or more entry headers stored in the applicant's database and one or more entry headers from the full list message in LRPDUs; and передачу сообщения записи в единицах LRPDU в адрес базы данных регистратора, где это сообщение записи в единицах LRPDU содержит заголовки обновленных записей, связанных с рассогласованием.sending an LRPDU write message to the registrar database address, where the LRPDU write message contains the headers of the updated records associated with the mismatch. 18. Способ по какому-либо из пп. 1-17, дополнительно содержащий: 18. The method according to any one of paragraphs. 1-17, additionally containing: определение, посредством указанного процессора, что нет рассогласования между заголовками записей, хранящихся в базе данных заявителя, и заголовками записей, хранящихся в базе данных регистратора; иdetermining, by said processor, that there is no mismatch between the titles of the records stored in the applicant's database and the titles of the records stored in the registrar's database; and на основе определения, что нет рассогласования, уведомление, посредством указанного процессора, приложения о том, что база данных заявителя синхронизирована с базой данных регистратора.based on the determination that there is no mismatch, notifying, via said processor, the application that the applicant's database is synchronized with the registrar's database. 19. Способ по п. 1, дополнительно содержащий способ по какому-либо из пп. 6 и 15.19. The method according to p. 1, additionally containing the method according to any one of paragraphs. 6 and 15. 20. Способ по п. 6, дополнительно содержащий способ по п. 15.20. The method of claim 6, further comprising the method of claim 15. 21. Локальный узел, дополнительно содержащий запоминающее устройство, передатчик, приемник и процессор, соединенные с этим запоминающим устройством, где эти передатчик, приемник, локальный узел конфигурированы для осуществления способа по какому-либо из пп. 1-20.21. A local node, further comprising a storage device, a transmitter, a receiver and a processor connected to this storage device, where these transmitter, receiver, local node are configured to implement the method according to any one of paragraphs. 1-20. 22. Энергонезависимый читаемый компьютером носитель информации, содержащий компьютерный программный продукт для использования локальным узлом, этот компьютерный программный продукт содержит выполняемые компьютером команды, хранящиеся на указанном энергонезависимом читаемом компьютером носителе информации, так что при выполнении процессором эти команды управляют локальным узлом для осуществления способа по какому-либо из пп. 1-20.22. A non-volatile computer-readable storage medium containing a computer program product for use by a local node, this computer program product contains computer-executable instructions stored on the specified non-volatile computer-readable storage medium, so that when executed by the processor, these instructions control the local node to implement the method by which - either from paragraphs. 1-20. 23. Локальный узел, содержащий:23. Local node containing: приемное устройство для приема приветственного сообщения, содержащего идентификатор приложения (AppId) и указание целевой линии связи между локальным узлом и соседним узлом;a receiving device for receiving a hello message containing an application identifier (AppId) and an indication of a target link between the local node and the neighboring node; решающее устройство для определения, что указанный идентификатор AppId ассоциирован с приложением для осуществления синхронизации баз данных; a decision device for determining that the specified AppId is associated with an application for performing database synchronization; устройство для установления пары баз данных с целью установления локальной базы данных в локальном узле в качестве части пары баз данных для использования указанным приложением, где эта пара баз данных содержит также соседнюю базу данных, расположенную в соседнем узле; a device for establishing a database pair for establishing a local database in the local node as part of the database pair for use by the specified application, where this pair of databases also contains a neighboring database located in the neighboring node; ассоциирующее устройство, для ассоциирования пары баз данных с целевой линией связи; иan association device for associating the database pair with the target link; and устройство управления синхронизацией для осуществления управления синхронизацией локальной базы данных с соседней базой данных посредством целевой линии связи. a synchronization control device for controlling synchronization of the local database with the neighboring database via the target link. 24. Локальный узел, содержащий:24. Local node containing: передающее устройство для передачи одного или нескольких сообщений записей в единицах данных протокола регистрации локальной линии связи (в единицах LRPDU) в адрес базы данных регистратора, находящейся в соседнем узле, где эти сообщения записей в единицах LRPDU обозначают обновления записей, хранящихся в базе данных заявителя, находящейся в локальном узле; a transmitting device for transmitting one or more record messages in local link registration protocol data units (in LRPDUs) to the address of the registrar database located at the neighbor node, where these record messages in LRPDUs indicate updates of records stored in the database of the applicant, located in the local node; приемное устройство для приема одного или нескольких сообщений в единицах LRPDU, квитирующих указанные сообщения записи в единицах LRPDU;a receiving device for receiving one or more LRPDU messages acknowledging said LRPDU write messages; запоминающее устройство для маркировки по меньшей мере одной обновленной записи, хранящейся в базе данных заявителя, как квитированной базой данных регистратора;a storage device for marking at least one updated entry stored in the applicant's database as acknowledged by the registrar's database; решающее устройство для определения, что все обновленные записи, хранящиеся в базе данных заявителя, квитированы базой данных регистратора посредством сообщений в единицах LRPDU. a resolver for determining that all updated records stored in the applicant's database have been acknowledged by the registrar's database via messages in LRPDUs. 25. Локальный узел, содержащий:25. Local node containing: разъединяющее устройство для генерации кода разъединенности для приложения, этот код разъединенности обозначает, что обмен приветственными сообщениями в единицах данных протокола регистрации локальной линии связи (в единицах LRPDU) не состоялся (оказался неуспешным); a release device for generating a release code for the application, this release code indicates that the exchange of hello messages in local link registration data units (in units of LRPDU) did not take place (was not successful); командное устройство для приема команды от указанного приложения с целью поддержания базы данных заявителя в запоминающем устройстве, находящемся в локальном узле, несмотря на код разъединенности;a command device for receiving a command from said application to maintain the database of the applicant in a storage device located at the local node despite the disconnect code; приемное устройство для приема сообщения с полным списком в единицах LRPDU от базы данных регистратора, находящейся в соседнем узле, после успешного обмена приветственными сообщениями, где это сообщение с полным списком в единицах LRPDU содержит заголовки записей, относящиеся ко всем записям, хранящимся в базе данных регистратора; иa receiving device to receive a full list message in LRPDUs from the registrar database located in the neighbor node after a successful exchange of hello messages, where the full list message in LRPDUs contains the record headers related to all records stored in the registrar database ; and устройство для сравнения записей для осуществления сравнения заголовков записей из сообщения с полным списком в единицах LRPDU с заголовками записей, хранящихся в базе данных заявителя, для восстановления синхронизации базы данных заявителя с базой данных регистратора.a record comparison device for comparing the record headers from the full list message in LRPDUs with the record headers stored in the applicant database to restore synchronization of the applicant database with the registrar database. 26. Локальный узел по какому-либо из пп. 23-25, дополнительно содержащий устройство для осуществления способа по какому-либо из пп. 1-20.26. Local node according to any one of paragraphs. 23-25, further comprising a device for implementing the method according to any one of paragraphs. 1-20.
RU2020136629A 2018-04-10 2019-04-06 Method for synchronization of databases between two points, using transport protocol RU2783595C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62/655,625 2018-04-10
US62/782,993 2018-12-20

Publications (2)

Publication Number Publication Date
RU2020136629A RU2020136629A (en) 2022-05-11
RU2783595C2 true RU2783595C2 (en) 2022-11-15

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020059279A1 (en) * 2000-07-29 2002-05-16 Lg Electronics Inc. Apparatus and method for database synchronization in a duplex system
US20090116514A1 (en) * 2007-10-31 2009-05-07 Huawei Technologies Co., Ltd. Method for implementing synchronization of link state database, router, line card and master board
US20090177631A1 (en) * 2008-01-09 2009-07-09 Ricoh Company, Ltd. Data providing device, method for providing data, and recording medium
US20140376562A1 (en) * 2012-02-02 2014-12-25 Hangzhou H3C Technologies Co., Ltd. Routing generation for implementation of fiber channel over ethernet
RU2595546C2 (en) * 2011-05-17 2016-08-27 Сажем Дефенс Секюрите System and communication method, computer program and corresponding data storage device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020059279A1 (en) * 2000-07-29 2002-05-16 Lg Electronics Inc. Apparatus and method for database synchronization in a duplex system
US20090116514A1 (en) * 2007-10-31 2009-05-07 Huawei Technologies Co., Ltd. Method for implementing synchronization of link state database, router, line card and master board
US20090177631A1 (en) * 2008-01-09 2009-07-09 Ricoh Company, Ltd. Data providing device, method for providing data, and recording medium
RU2595546C2 (en) * 2011-05-17 2016-08-27 Сажем Дефенс Секюрите System and communication method, computer program and corresponding data storage device
US20140376562A1 (en) * 2012-02-02 2014-12-25 Hangzhou H3C Technologies Co., Ltd. Routing generation for implementation of fiber channel over ethernet

Similar Documents

Publication Publication Date Title
US7929422B2 (en) Method of moving a transport connection among network hosts
US8693313B2 (en) Apparatus and method for switching between redundant communication devices
Lindgren et al. Probabilistic routing protocol for intermittently connected networks
US7801135B2 (en) Transport protocol connection synchronization
US20240048645A1 (en) Point-to-point database synchronization over a transport protocol
WO2009067865A2 (en) Method, router, line card and active master card for realizng a link state database synchronization
US8780692B2 (en) Accelerated routing convergence
US8239555B2 (en) Method and apparatus for mobility agent recovery
RU2783595C2 (en) Method for synchronization of databases between two points, using transport protocol
TWI740210B (en) Method for terminal device management and server
EP1684481B1 (en) System and Method for selecting an active connection
Cisco Novell IPX commands
Cisco Novell IPX commands
Cisco Novell IPX Commands
JP2002199013A (en) Multicasting method
WO2019087240A1 (en) Terminal apparatus, base station apparatus, communication method, and wireless communication system
JPH1188396A (en) Communication equipment
CN115022345A (en) Method, device and equipment for switch data synchronization and readable medium
WO2017000759A1 (en) Mobility management method and network device
JP2020202434A (en) Mobile communication system, gateway device, communication method, and program
Nawrin Ferdous et al. Comparison Between Different Transport Layer Mobility Protocols