СПОСОБ УПРАВЛЕНИЯ ОБОРУДОВАНИЕМ, КЛАСТЕРНАЯ СИСТЕМА, ЭЛЕКТРОННОЕ УСТРОЙСТВО И ЧИТАЕМЫЙ НОСИТЕЛЬ ДАННЫХ
EQUIPMENT CONTROL METHOD, CLUSTER SYSTEM, ELECTRONIC DEVICE AND READABLE DATA MEDIA

В настоящей заявке испрашивается приоритет согласно заявке на патент Китая № 201810012150.2, поданной в Национальное управление по интеллектуальной собственности Китая 5 января 2018 года и озаглавленной «Способ управления оборудованием, кластерная система, электронное устройство и читаемый носитель данных», во всей полноте включенной в настоящую заявку посредством отсылки.
Область техники, к которой относится изобретение
Настоящая заявка относится к области кластерных систем, в частности – к способу, кластерной системе, электронному устройству для эксплуатации устройства и читаемому носителю данных.
Уровень техники
В распределенных системах или иных системах может иметь место необходимость обработки запросов с высокой степенью многопоточности. В таком случае выдача и обработка запросов должны происходить последовательно. Из-за большого количества одновременных запросов в  состоянии с высокой степенью многопоточности, их обработка может быть разупорядочена.
Сущность изобретения
Учитывая вышеизложенное, настоящее изобретение предусматривает способ, кластерную систему, электронное устройство для эксплуатации устройства и читаемый носитель данных с возможностью реализации последовательной обработки запросов.
Технические задачи по настоящей заявке решаются следующим образом.
Способ эксплуатации устройства, применимый к кластерной системе, которая включает в себя первый кластер и второй кластер, причем первый кластер включает в себя множество первых узлов, а второй кластер включает в себя множество вторых узлов, при этом способ эксплуатации устройства включает этапы, на которых:
получают, посредством по меньшей мере двух первых узлов в первом кластере соответственно, по меньшей мере два запроса операций над данными для целевого устройства связи;
проводят состязание между указанными по меньшей мере двумя первыми узлами за первую распределенную блокировку, предустановленную для целевого устройства связи;
сохраняют полученный запрос операции над данными посредством первого узла, получившего первую распределенную блокировку в результате состязания;
проводят состязание между вторыми узлами во втором кластере за вторую распределенную блокировку, предустановленную для целевого устройства связи;
получают, посредством второго узла, получившего вторую распределенную блокировку в результате состязания, запрос операции над данными из сохраненных запросов операций над данными согласно информации о времени сохранения сохраненных запросов операций над данными, для выполнения операции над данными в отношении целевого устройства связи.
В одном из вариантов реализации запросы операций над данными содержат идентификационную информацию целевого устройства связи, при этом проведение состязания между указанными по меньшей мере двумя первыми узлами за первую распределенную блокировку, предустановленную для целевого устройства связи, включает следующее:
определяют, посредством по меньшей мере двух первых узлов, первую распределенную блокировку, соответствующую целевому устройству связи, по идентификационной информации целевого устройства связи, и проводят состязание за первую распределенную блокировку.
В одном из вариантов реализации, после сохранения полученного запроса операции над данными посредством первого узла, получившего первую распределенную блокировку в результате состязания, способ дополнительно включает этап, на котором:
снимают первую распределенную блокировку посредством первого узла, получившего первую распределенную блокировку в результате состязания, так чтобы прочие первые узлы, получающие запросы операций над данными, вступали в состязание за первую распределенную блокировку.
В одном из вариантов реализации получение, посредством второго узла, получившего вторую распределенную блокировку в результате состязания, запроса операции над данными из сохраненных запросов операций над данными согласно информации о времени сохранения сохраненных запросов операций над данными включает этап, на котором:
получают, посредством второго узла, получившего вторую распределенную блокировку в результате состязания, запрос операции над данными с самым ранним временем сохранения из сохраненных запросов операций над данными.
В одном из вариантов реализации, после выполнения операции над данными в отношении целевого устройства связи посредством второго узла, получившего вторую распределенную блокировку в результате состязания, способ дополнительно включает этапы, на которых:
снимают, посредством второго узла, получившего вторую распределенную блокировку в результате состязания, вторую распределенную блокировку и удаляют из сохраненных запросов операций над данными запрос операции над данными, полученный посредством второго узла, получившего вторую распределенную блокировку в результате состязания.
В одном из вариантов реализации, после сохранения полученного запроса операции над данными посредством первого узла, получившего первую распределенную блокировку в результате состязания, способ дополнительно включает этапы, на которых:
генерируют и отправляют, посредством первого узла, получившего первую распределенную блокировку в результате состязания, уведомительное сообщение второму кластеру для выдачи вторым узлам во втором кластере инструкции на выполнение операций над данными в отношении целевого устройства связи.
В одном из вариантов реализации целевое устройство связи представляет собой коммутатор, при этом запрос операции над данными представляет собой запрос конфигурирования коммутатора.
В одном из вариантов реализации сохранение полученного запроса операции над данными посредством первого узла, получившего первую распределенную блокировку в результате состязания, включает в себя этап, на котором:
сохраняют запрос операции над данными так, что увеличение значения идентификатора происходит автоматически;
причем получение, посредством второго узла, получившего вторую распределенную блокировку в результате состязания, запроса операции над данными из сохраненных запросов операций над данными согласно информации о времени сохранения сохраненных запросов операций над данными включает в себя этап, на котором:
получают запрос операции над данными с наименьшим идентификатором из сохраненных запросов операций над данными.
В настоящей заявке также предложена кластерная система, включающая в себя первый кластер и второй кластер, при этом первый кластер включает в себя множество первых узлов, а второй кластер включает в себя множество вторых узлов, причем
по меньшей мере два первых узла в первом кластере соответственно получают по меньшей мере два запроса операций над данными для целевого устройства связи;
указанные по меньшей мере два первых узла состязаются за первую распределенную блокировку, предустановленную для целевого устройства связи;
первый узел, получивший первую распределенную блокировку в результате состязания, сохраняет полученный запрос операции над данными;
указанные вторые узлы во втором кластере состязаются за вторую распределенную блокировку, предустановленную для целевого устройства связи;
второй узел, получивший вторую распределенную блокировку в результате состязания, получает запрос операции над данными из сохраненных запросов операций над данными согласно информации о времени сохранения сохраненных запросов операций над данными, для выполнения операции над данными в отношении целевого устройства связи.
В одном из вариантов реализации запросы операций над данными содержат идентификационную информацию целевого устройства связи, при этом указанные по меньшей мере два первых узла выполнены с возможностью:
определения первой распределенной блокировки, соответствующей целевому устройству связи, по идентификационной информации целевого устройства связи и состязания за первую распределенную блокировку.
В одном из вариантов реализации первый узел, получивший первую распределенную блокировку в результате состязания, выполнен с возможностью снятия первой распределенной блокировки после сохранения полученного запроса операции над данными, так чтобы прочие первые узлы, получающие запросы операций над данными, вступали в состязание за первую распределенную блокировку.
В одном из вариантов реализации второй узел, получивший вторую распределенную блокировку в результате состязания, выполнен с возможностью:
получения запроса операции над данными с самым ранним временем сохранения из сохраненных запросов операций над данными.
В одном из вариантов реализации второй узел, получивший вторую распределенную блокировку в результате состязания, выполнен с возможностью снятия второй распределенной блокировки после выполнения операции над данными в отношении целевого устройства связи и удаления из сохраненных запросов операций над данными запроса операции над данными, полученного посредством второго узла, получившего вторую распределенную блокировку в результате состязания.
В одном из вариантов реализации первый узел, получивший первую распределенную блокировку в результате состязания, выполнен с возможностью, после сохранения полученного запроса операции над данными, генерирования и отправки уведомительного сообщения второму кластеру для выдачи вторым узлам во втором кластере инструкции на выполнение операций над данными в отношении целевого устройства связи.
В одном из вариантов реализации целевое устройство связи представляет собой коммутатор, при этом запрос операции над данными представляет собой запрос конфигурирования коммутатора.
В одном из вариантов реализации первый узел, получивший первую распределенную блокировку в результате состязания, выполнен с возможностью:
сохранения запроса операции над данными так, что увеличение значения идентификатора происходит автоматически;
причем второй узел, получивший вторую распределенную блокировку в результате состязания, выполнен с возможностью:
получения запроса операции над данными с наименьшим идентификатором из сохраненных запросов операций над данными.
В одном из вариантов по настоящей заявке также предложен читаемый носитель данных, который хранит первые инструкции, при исполнении которых на компьютере, компьютер осуществляет этапы, выполняемые посредством первого узла согласно вышеуказанному способу эксплуатации устройства; и/или читаемый носитель данных хранит вторые инструкции, при исполнении которых на компьютере, компьютер осуществляет этапы, выполняемые посредством второго узла согласно вышеуказанному способу эксплуатации устройства.
В одном из вариантов по настоящей заявке также предложено электронное устройство, содержащее память и процессор, причем память выполнена с возможностью хранения первого исполняемого программного кода, при этом процессор выполнен с возможностью чтения первого исполняемого программного кода, хранимого в памяти, для осуществления этапов, выполняемых посредством первого узла согласно вышеуказанному способу эксплуатации устройства; и/или память выполнена с возможностью хранения второго исполняемого программного кода, при этом процессор выполнен с возможностью чтения второго исполняемого программного кода, хранимого в памяти, для осуществления этапов, выполняемых посредством второго узла согласно вышеуказанному способу эксплуатации устройства.
В вариантах по настоящей заявке предложены способ, кластерная система, электронное устройство для эксплуатации устройства и читаемый носитель данных, причем операции над данными в отношении устройства связи реализуют путем взаимодействия между первым кластером и вторым кластером в кластерной системе. Первые узлы в первом кластере выполнены с возможностью состязания за первую распределенную блокировку для реализации последовательного сохранения запросов операций над данными. Вторые узлы во втором кластере выполнены с возможностью состязания за вторую распределенную блокировку для последовательного получения сохраненных запросов операций над данными и выполнения этих операций над данными в отношении целевого устройства связи. Благодаря наличию механизма двух распределенных блокировок, когда в кластерной системе имеет место состояние с высокой степенью многопоточности, в котором поступает большое количество запросов операций над данными, может быть реализована последовательная обработка большого количества запросов операций над данными за счет взаимоисключающего характера первой распределенной блокировки и второй распределенной блокировки. Это позволяет обеспечить не только последовательную обработку запросов операций над данными, но и улучшить пропускную способность первого кластера, при этом возможно горизонтальное расширение и первого, и второго кластеров, и, тем самым, улучшение работоспособности и обрабатывающей способности системы.
Вышеуказанные цели, признаки и преимущества изобретения по настоящей заявке станут более очевидны и понятны из нижеследующего описания предпочтительных вариантов осуществления при его рассмотрении совместно с прилагаемыми чертежами.
Краткое описание чертежей
Для более наглядного раскрытия технического решения согласно вариантам осуществления по настоящей заявке служат соответствующие чертежи, которые будут кратко описаны ниже. При этом следует понимать, что описанные ниже чертежи относятся только к некоторым вариантам осуществления по настоящей заявке, что не следует толковать как ограничение объема, при этом средний специалист в данной области техники также сможет создать другие чертежи на их основе без необходимости приложения творческих усилий.
ФИГ.1 – принципиальная схема состава кластерной системы по одному из вариантов осуществления по настоящей заявке.
ФИГ.2 – схема последовательности способа эксплуатации устройства по одному из вариантов осуществления по настоящей заявке.
ФИГ.3 – схема последовательности способа эксплуатации устройства по одному из вариантов осуществления по настоящей заявке.
ФИГ.4 – схема последовательности способа эксплуатации устройства по одному из вариантов осуществления по настоящей заявке.
ФИГ.5 – принципиальная схема конструкции электронного устройства по одному из вариантов осуществления по настоящей заявке.
Перечень номеров позиций: 10 - кластерная система; 100 - первый кластер; 101 - первый узел; 200 - второй кластер; 201 - второй узел; 300 - устройство связи; 400 - пространство хранения; 500 - электронное устройство; 501 - процессор; 502 - память.
Осуществление изобретения
Техническое решение вариантов осуществления по настоящей заявке будет ясно и полностью раскрыто ниже на примере чертежей вариантов осуществления изобретения по настоящей заявке. Разумеется, раскрываемые варианты являются не всеми, а только частью вариантов осуществления изобретения по настоящей заявке. Компоненты вариантов осуществления изобретения по настоящей заявке, в общем виде раскрытые и проиллюстрированные на прилагаемых чертежах, могут быть расположены и конструктивно выполнены в нескольких разных конфигурациях. Поэтому нижеследующее раскрытие вариантов осуществления изобретения по настоящей заявке, проиллюстрированных на чертежах, не предназначено для ограничения объема притязаний по настоящей заявке, а служит исключительно для представления избранных вариантов осуществления. Все прочие варианты осуществления, полученные специалистами в данной области техники на основе раскрытых в настоящем документе вариантов без приложения творческих усилий, входят в объем по настоящей заявке.
Следует отметить, что аналогичные номера позиций и буквы обозначают аналогичные позиции на следующих чертежах; таким образом, после того, как какая-либо позиция будет определена на одном чертеже, нет нужды в дополнительном определении и разъяснении данной позиции на последующих чертежах. При этом в тексте настоящей заявки такие слова, как «первый», «второй» служат исключительно для различения при раскрытии и не должны толковаться как указывающие на относительную важность или подразумевающие ее.
В некоторых вариантах по настоящей заявке предложен способ эксплуатации устройства, раскрытый на ФИГ.1, применимый к кластерной системе 10. Кластерная система 10 содержит первый кластер 100, состоящий из множества первых узлов 101, и второй кластер 200, состоящий из множества вторых узлов 201. Кластерная система 10 соединена с возможностью связи с по меньшей мере одним устройством 300 связи. Способ эксплуатации устройства на ФИГ.2 включает следующие этапы.
Этап S101: получают, посредством по меньшей мере двух первых узлов 101 в первом кластере 100 соответственно, по меньшей мере два запроса операций над данными для целевого устройства 300 связи.
В данном варианте по настоящей заявке кластерная система 10 может включать в себя множество серверов, могущее представлять собой, например, множество серверов, применяемых в программно-определяемой сети (англ. software defined network (SDN)). Разумеется, кластерная система 10 также может представлять собой кластер, состоящий из множества устройств, применяемых в других системах. Кластерная система 10 может включать в себя первый кластер 100 и второй кластер 200, при этом каждый из кластеров может включать в себя множество узлов. В одном из частных случаев реализации первый кластер 100 может включать в себя множество контроллерных узлов (управляющих узлов), второй кластер 200 может включать в себя множество узлов коммутационных услуг (узлов асинхронной обработки), при этом первый кластер 100 выполнен с возможностью связи со вторым кластером 200. В данном варианте по настоящей заявке устройство 300 связи может представлять собой коммутатор или иное устройство, при этом количество устройств 300 связи может быть разным в зависимости от архитектуры той или иной системы. В отношении разных устройств 300 связи или в зависимости от фактических эксплуатационных потребностей, запросы операции над данными могут быть разными. В одном из частных случаев реализации запрос операции над данными может представлять собой запрос конфигурирования коммутатора. Запрос операции над данными может представлять собой запрос, сгенерированный клиентом и полученный кластерной системой 10. После того, как кластерная система 10 обработает данные запросы операций над данными, выполняют соответствующие операции в отношении устройства 300 связи.
В процессе эксплуатации устройства 300 связи, когда имеет место состояние с высокой степенью многопоточности, в котором одновременно поступает большое количество запросов операций над данными, некоторые операции для устройства 300 связи нужно выполнять строго согласно порядку запросов операций над данными. Например, в процессе конфигурирования коммутатора посредством кластерной системы 10, конфигурирование нужно выполнять согласно порядку запросов конфигурирования. Если коммутатор не будет сконфигурирован по порядку, то окончательный результат конфигурирования может не соответствовать ожиданиям пользователя. После получения кластерной системой 10 запросов конфигурирования, запросы конфигурирования ставят в очередь для последовательной обработки во избежание их разупорядочения. Например, запросы конфигурирования обычно можно последовательно отправлять коммутатору в виде файла расширяемого языка разметки (англ. extensible markup language, xml). Так как отправка запроса конфигурирования занимает много времени, запросы конфигурирования находятся в состоянии ожидания своей очереди для обработки. В состоянии с высокой степенью многопоточности, когда в короткий период времени поступает большое количество запросов конфигурирования, такой способ обработки значительно уменьшит обрабатывающую способность и показатели работы системы в части многопоточной обработки.
В данном варианте по настоящей заявке кластерная система 10 может получать запросы операций над данными через интерфейс конфигурирования, при этом разные первые узлы 101 в первом кластере 100 могут получать разные запросы операций над данными. Данные запросы операций над данными могут относиться к одному и тому же устройству 300 связи. В данном варианте по настоящей заявке одно и то же устройство 300 связи, соответствующее этим разным запросам операций над данными, именуется «целевое устройство связи». Как раскрыто выше, запросы операций над данными, полученные разными первыми узлами 101, могут представлять собой разные запросы конфигурирования для одного и того же коммутатора, при этом коммутатор представляет собой целевое устройство связи.
Этап S102: проводят состязание между указанными по меньшей мере двумя первыми узлами 101, получающими указанные по меньшей мере два запроса операций над данными, за первую распределенную блокировку, предустановленную для целевого устройства связи.
Когда первый кластер 100 получает по меньшей мере два запроса операций над данными для одного и того же устройства 300 связи, устройство 300 связи обслуживают как целевое устройство связи, при этом по меньшей мере два первых узла 101, соответственно получающие запросы операций над данными, выполнены с возможностью состязания за первую распределенную блокировку, предустановленную для целевого устройства связи.
Распределенная блокировка – это механизм управления доступом к ресурсам, совместно используемым в распределенных системах. Действия разных узлов в распределенной системе зачастую скоординированы. Если разные системы или разные узлы одной и той же системы совместно используют один ресурс или группу ресурсов, то для доступа к этим ресурсам зачастую нужно взаимное исключение во избежание создания взаимных помех и обеспечения постоянства совместно используемых ресурсов, доступ к которым осуществляют разные узлы. Механизм распределенной блокировки обеспечивает системе или узлу, получившему распределенную блокировку, возможность доступа к совместно используемым ресурсам или их обработки. Ресурсы, предназначенные для совместного использования, могут быть снабжены соответствующей распределенной блокировкой, при этом распределенной блокировкой управляет диспетчер распределенной блокировки. Механизм состязания разных систем или узлов за распределенную блокировку может состоять в следующем: когда нужен доступ к совместно используемым ресурсам, разные системы или узлы сначала направляют запрос доступа к совместно используемым ресурсам диспетчеру распределенной блокировки; далее диспетчер распределенной блокировки обрабатывает запросы от множества систем или узлов и выбирает одну систему или один узел из этого множества систем или узлов в качестве «временного владельца» распределенной блокировки, которому нужен доступ к совместно используемым ресурсам. Система или узел, получающий распределенную блокировку, может осуществить доступ к совместно используемым ресурсам. Во время доступа другие системы или узлы, которым не удалось получить распределенную блокировку, не имеют привилегий в части доступа к совместно используемым ресурсам.
Можно понять, что в данном варианте по настоящей заявке применяют механизм распределенной блокировки, при этом состязание множества первых узлов 101 за первую распределенную блокировку может включать в себя этапы, на которых: множество первых узлов 101 направляют заявки на первую распределенную блокировку диспетчеру распределенной блокировки, при этом диспетчер распределенной блокировки определяет только один первый узел 101, получающий первую распределенную блокировку, согласно заявкам множества первых узлов 101, причем первый узел 101, получивший первую распределенную блокировку, имеет привилегию в части эксплуатации пространства 400 хранения, при этом прочие первые узлы 101, которым не удалось получить первую распределенную блокировку, не имеют привилегий в части эксплуатации пространства 400 хранения.
В частности, в данном варианте по настоящей заявке запрос операции над данными может содержать идентификационную информацию целевого устройства связи, например, запрос операции над данными может включать в себя IP-адрес, преднастроенный идентификатор устройства целевого устройства связи и т.п. Первые узлы 101 могут определять соответствующую первую распределенную блокировку по идентификационной информации целевого устройства связи. Разные устройства 300 связи соответствуют разным первым распределенным блокировкам, при этом первая распределенная блокировка, соответствующая целевому устройству связи, выполнена с возможностью реализации взаимоисключения между разными первыми узлами 101, благодаря чему в одно и то же время только один первый узел 101 может обрабатывать запрос операции над данными, полученный этим узлом. Например, два первых узла 101 в первом кластере 100 соответственно получают запрос конфигурирования коммутатора с IP-адресом 10.0.0.3, после чего коммутатор с IP-адресом 10.0.0.3 применяют в качестве целевого устройства связи. Кластерная система 10 заранее конфигурирует первую распределенную блокировку для коммутатора с IP-адресом 10.0.0.3, при этом два первых узла 101 выполнены с возможностью состязания за первую распределенную блокировку.
Этап S103: сохраняют полученный запрос операции над данными посредством первого узла 101, получившего первую распределенную блокировку в результате состязания.
Когда первый узел 101, получивший первую распределенную блокировку в результате состязания, обрабатывает запрос операции над данными, из-за взаимоисключающего характера первой распределенной блокировки прочие первые узлы 101, которым не удалось получить первую распределенную блокировку в результате состязания, не могут обрабатывать их запросы операций над данными.
В данном варианте по настоящей заявке первый узел 101, получивший первую распределенную блокировку в результате состязания, может сохранить полученный запрос операции над данными в пространстве 400 хранения. В частности, запросы операций над данными можно сохранять в пространстве 400 хранения, сконфигурированном заранее, например, в виде базы данных, быстродействующей буферной памяти, очереди сообщений и т.п. Если запросы операций над данными сохраняют в базе данных, запрос операции над данными можно сохранить в базе данных таким образом, при котором увеличение значения идентификатора происходит автоматически. В необязательном варианте, при сохранении запроса операции над данными, для формирования идентификатора запроса операции над данными используют натуральное число согласно порядку сохранения. Например, идентификатор n+1-го запроса операции над данными – это идентификатор n-го запроса операции над данными плюс 1. Таким образом, идентификаторы могут отражать временной порядок сохранения запросов операций над данными. Чем меньше значение идентификатора, тем раньше время сохранения, то есть второй узел 201, впоследствии получивший вторую распределенную блокировку в результате состязания, получает запрос операции над данными согласно временному порядку сохранения запросов операций над данными, для выполнения операции над данными в отношении целевого устройства связи. В частности, второй узел 201 получает запрос операции над данными с наименьшим идентификатором из сохраненных запросов операций над данными, т.е. запрос операции над данными с самым ранним временем сохранения, и далее обрабатывает его.
База данных может хранить запросы операций над данными, соответствующие одному целевому устройству связи, или запросы операций над данными, соответствующие разным целевым устройствам связи. Сохраненные запросы операций над данными различают по разной идентификационной информации разных целевых устройств связи.
Кроме того, если запросы операций над данными хранят в очереди сообщений, запросы операций над данными для одного и того же целевого устройства связи можно сохранять в одной и той же очереди сообщений посредством заранее заданного алгоритма, тем самым обеспечивая последовательное сохранение запросов операций над данными во временном порядке. Данный вариант по настоящей заявке не ограничивает сохранение запросов операций над данными указанным частным форматом, а предусматривает последовательное сохранение запросов операций над данными во временном порядке для последовательного сохранения запросов операций над данными и точного порядка последующих операций над данными.
Этап S104: проводят состязание между вторыми узлами 201 во втором кластере 200 за вторую распределенную блокировку, предустановленную для целевого устройства связи.
После выполнения сохранения первым узлом 101 в первом кластере 100 запроса операции над данными, указанные вторые узлы 201 во втором кластере вступают в состязание за вторую распределенную блокировку.
После выполнения сохранения первым узлом 101 в первом кластере 100 запроса операции над данными в результате состязания за первую распределенную блокировку, первый кластер 100 может дать второму кластеру 200 инструкцию на выполнение последующих этапов. Например, первый кластер 100 может дать инструкцию второму кластеру 200 путем отправки сообщения вызова удаленной процедуры (англ. RPC, Remote Procedure Call Protocol) второму кластеру 200. Первый узел 101 в первом кластере 100, выполнивший сохранение запроса операции над данными, может дать инструкцию всем узлам во втором кластере путем отправки сообщения вызова удаленной процедуры. Данное уведомительное сообщение может содержать идентификационную информацию целевого устройства связи, при этом указанные вторые узлы 201 во втором кластере 200 выполнены с возможностью состязания за вторую распределенную блокировку, соответствующую целевому устройству связи. Вторую распределенную блокировку для целевого устройства также создают заранее, при этом вторая распределенная блокировка также имеет взаимоисключающий характер. Когда второй узел 201, получивший вторую распределенную блокировку в результате состязания, обрабатывает запрос операции над данными, прочие вторые узлы 201, которым не удалось получить вторую распределенную блокировку в результате состязания, не могут обрабатывать запросы операций над данными.
Этап S105: получают запрос операции над данными посредством второго узла 201, получившего вторую распределенную блокировку в результате состязания, из сохраненных запросов операций над данными согласно информации о времени сохранения сохраненных запросов операций над данными.
Этап S106: выполняют операцию над данными в отношении целевого устройства связи посредством второго узла 201, получившего вторую распределенную блокировку в результате состязания.
Второй узел 201, получивший вторую распределенную блокировку в результате состязания, выполняет операцию над данными в отношении целевого устройства связи согласно полученному запросу операции над данными.
Второй кластер 200 может включать в себя множество вторых узлов 201, при этом второй узел 201, получивший вторую распределенную блокировку в результате состязания между множеством вторых узлов 201, может обработать запрос операции над данными. Процедура обработки может включать в себя этапы, на которых: получают запрос операции над данными в отношении целевого устройства связи с самым ранним временем сохранения из пространства 400 хранения, где были заранее сохранены запросы операций над данными, и выполняют указанную операцию над данными в отношении целевого устройства связи согласно информации об операции, содержащейся в запросе операции над данными с самым ранним временем сохранения. Как сказано выше, множество первых узлов 101 выполняет последовательное сохранение запросов операций над данными путем состязания за первую распределенную блокировку. Информация о времени сохранения запросов операций над данными включает в себя время сохранения запросов операций над данными при их последовательном сохранении. Указанные вторые узлы 201 во втором кластере 200 состязаются за вторую распределенную блокировку для последовательного извлечения запросов операций над данными согласно порядку сохранения запросов операций над данными, тем самым реализуя последовательную выдачу запросов операций над данными и обеспечивая правильный порядок операций над данными. Например, первые узлы 101 сохраняют запросы конфигурирования для коммутатора с IP-адресом 10.0.0.3 во временном порядке посредством состязания за первую распределенную блокировку. Множество вторых узлов 201 во втором кластере 200 состязаются за вторую распределенную блокировку для того, чтобы только один второй узел 201 мог обрабатывать сохраненные запросы конфигурирования в одно и то же время, при этом второй узел 201, получивший вторую распределенную блокировку в результате состязания, может получить запрос конфигурирования с самым ранним временем сохранения и сконфигурировать коммутатор с IP-адресом 10.0.0.3 согласно запросу конфигурирования. Взаимодействие между первым кластером 100 и вторым кластером 200 позволяет реализовать последовательную обработку запросов конфигурирования и выполнить последовательное конфигурирование коммутатора.
В данном варианте по настоящей заявке механизм распределенной блокировки создан для обработки, выполняемой и первым кластером 100, и вторым кластером 200. После получения первым узлом 101 в первом кластере 100 первой распределенной блокировки в результате состязания, запрос операции над данными сначала сохраняют посредством пространства 400 хранения для обеспечения последовательной обработки запросов операций над данными. Второй узел 201 во втором кластере 200A может получать множество запросов операций над данными для целевого устройства связи. Если множество вторых узлов 201 будут непосредственно работать с запросами операций над данными, относящимися к узлу, получившему вторую распределенную блокировку в результате состязания, нельзя будет обеспечить порядок запросов операций над данными. Запросы операций над данными нужно сохранять во временном порядке посредством пространства 400 хранения, благодаря чему второй узел 201, получивший вторую распределенную блокировку в результате состязания, получает запрос операции над данными с самым ранним временем сохранения из сохраненных запросов операций над данными согласно временному порядку. Это позволяет обеспечить принцип «первым введен, первым выведен» (англ. FIFO, First Input First Output) для сохраненных запросов операций над данными и, тем самым, реализовать последовательную обработку запросов операций над данными.
В другом частном варианте, после выполнения сохранения одного запроса операции над данными, для продолжения сохранения прочих запросов операций над данными после того, как первый узел 101, получивший первую распределенную блокировку в результате состязания, сохранит соответствующий запрос операции над данными, может быть продолжено состязание за первую распределенную блокировку. Способ на ФИГ.3 может включать в себя следующие этапы.
Этапы S201 - S203 идентичны этапам S101 - S103 и не будут раскрыты повторно.
Этап S204: снимают первую распределенную блокировку посредством первого узла 101, получившего первую распределенную блокировку в результате состязания, благодаря чему прочие первые узлы 101, получающие запросы операций над данными, вступают в состязание за первую распределенную блокировку.
Этапы S205 - S207 идентичны этапам S104 - S106 и не будут раскрыты повторно.
Первые узлы 101 в первом кластере 100 состязаются за первую распределенную блокировку для реализации последовательного сохранения запросов операций над данными. После выполнения первым узлом 101, получившим первую распределенную блокировку в результате состязания, сохранения запроса операции над данными, первую распределенную блокировку можно снять, благодаря чему прочие первые узлы 101, получающие запросы операций над данными, продолжат состязание за первую распределенную блокировку для продолжения сохранения прочих запросов операций над данными. Выполнение обработки запросов операций над данными первым кластером 100 и выполнение обработки запросов операций над данными вторым кластером 200 могут происходить одновременно, что улучшает скорость обработки кластерной системой 10.
В другом частном варианте, для продолжения обработки запросов операций над данными после выполнения операции над данными в отношении устройства 300 связи, можно продолжить состязание за вторую распределенную блокировку после того, как второй узел 201, получивший вторую распределенную блокировку в результате состязания, выполнит операцию в отношении целевого устройства связи. В частности, способ на ФИГ.4 может включать в себя следующие этапы.
Этапы S301 и S306 идентичны этапам S101 - S106 и не будут раскрыты повторно.
Этап S307: снимают вторую распределенную блокировку посредством второго узла 201, получившего вторую распределенную блокировку в результате состязания.
Этап S308: удаляют из сохраненных запросов операций над данными запрос операции над данными, соответствующий второму узлу 201, получившему вторую распределенную блокировку в результате состязания.
Можно понять, что после выполнения вторым узлом 201, получившим вторую распределенную блокировку, обработки запроса операции над данными, он может снять полученную вторую распределенную блокировку и удалить обработанный запрос операции над данными из пространства 400 хранения. Указанные вторые узлы 201 во втором кластере 200 могут продолжить состязание за вторую распределенную блокировку и обработку прочих запросов операций над данными. Своевременное снятие второй распределенной блокировки может обеспечить то, что процедура обработки запросов операций над данными не будет прервана. При этом удаление выполненного запроса операции над данными из пространства хранения может предотвратить последующее получение вторыми узлами 201 запроса операции над данными, который уже был обработан, и повторное выполнение операций в отношении целевого устройства связи.
Для предотвращения «ничейного» результата состязания за первую распределенную блокировку, в одном из частных случаев реализации первая распределенная блокировка может иметь «срок аренды», при этом сохранение первым узлом, получившим первую распределенную блокировку в результате состязания, запроса операции над данными включает этапы, на которых: осуществляют сохранение запроса операции над данными в пределах «срока аренды» первой распределенной блокировки; если сохранение не будет выполнено в пределах «срока аренды» первой распределенной блокировки, снимают первую распределенную блокировку после того, как «срок аренды» первой распределенной блокировки истечет.
Для предотвращения «ничейного» результата состязания за вторую распределенную блокировку, в одном из частных случаев реализации вторая распределенная блокировка имеет «срок аренды», при этом второй узел, получивший вторую распределенную блокировку в результате состязания, конфигурирует целевое устройство связи после получения запроса операции над данными, причем конфигурирование, в частности, включает в себя этапы, на которых: выполняют конфигурирование по запросу операции над данными в пределах «срока аренды» второй распределенной блокировки; если конфигурирование не будет выполнено в пределах «срока аренды» второй распределенной блокировки, снимают вторую распределенную блокировку после того, как «срок аренды» второй распределенной блокировки истечет.
«Срок аренды» предоставляют для первой распределенной блокировки и второй распределенной блокировки соответственно, при этом продолжительность «сроков аренды» первой распределенной блокировки и второй распределенной блокировки могут быть одинаковыми или разными, что может предотвратить «ничейный» результат состязания за первую распределенную блокировку и вторую распределенную блокировку, неспособность продолжения системой обработки из-за возможных сбоев, при этом обеспечив бесперебойную обработку запросов операций над данными.
В данном варианте осуществления настоящего изобретения предложен способ эксплуатации устройства, при котором операции над данными в отношении устройства 300 связи реализуют за счет взаимодействия между первым кластером 100 и вторым кластером 200 в кластерной системе 10. Первые узлы 101 в первом кластере 100 выполнены с возможностью состязания за первую распределенную блокировку для реализации последовательного сохранения запросов операций над данными. Вторые узлы 201 во втором кластере 200 выполнены с возможностью состязания за вторую распределенную блокировку для последовательного получения сохраненных запросов операций над данными и выполнения этих операций над данными в отношении целевого устройства связи. Благодаря наличию механизма двух распределенных блокировок, когда в кластерной системе 10 имеет место состояние с высокой степенью многопоточности, в котором поступает большое количество запросов операций над данными, может быть реализована последовательная обработка большого количества запросов операций над данными за счет взаимоисключающего характера первой распределенной блокировки и второй распределенной блокировки. Это позволяет обеспечить не только последовательную обработку запросов операций над данными, но и улучшение пропускной способности первого кластера 100, при этом возможно горизонтальное расширение и первого кластера 100, и второго кластера 200, и, тем самым, улучшение работоспособности и обрабатывающей способности системы.
На ФИГ.1 показано, что в одном из вариантов по настоящей заявке также предложена кластерная система 10, включающая в себя первый кластер 100 и второй кластер 200, отличающаяся тем, что первый кластер 100 включает в себя множество первых узлов 101, а второй кластер 200 включает в себя множество вторых узлов 201.
По меньшей мере два первых узла 101 в первом кластере 100 соответственно получают по меньшей мере два запроса операций над данными для целевого устройства 300 связи.
Указанные по меньшей мере два первых узла 101, получающие указанные по меньшей мере два запроса операций над данными, состязаются за первую распределенную блокировку, предустановленную для целевого устройства связи, и первый узел 101, получивший первую распределенную блокировку в результате состязания, сохраняет соответствующий запрос операции над данными. Подробности можно узнать из описания этапа S101, этапа S102 и этапа S103 раскрытого выше варианта способа.
Указанные вторые узлы 201 во втором кластере 200 состязаются за вторую распределенную блокировку, предустановленную для целевого устройства связи, и второй узел 201, получивший вторую распределенную блокировку в результате состязания, получает запрос операции над данными из сохраненных запросов операций над данными согласно информации о времени сохранения сохраненных запросов операций над данными для выполнения операции над данными в отношении целевого устройства связи. Подробности можно узнать из описания этапа S104, этапа S105 и этапа S106 раскрытого выше варианта способа.
В одном из вариантов реализации запросы операций над данными содержат идентификационную информацию целевого устройства связи, при этом указанные по меньшей мере два первых узла 101, получающие запросы операций над данными выполнены с возможностью:
определения первой распределенной блокировки, соответствующей целевому устройству связи, по идентификационной информации целевого устройства связи и состязания за первую распределенную блокировку.
В одном из вариантов реализации первый узел 101, получивший первую распределенную блокировку в результате состязания, выполнен с возможностью снятия первой распределенной блокировки после сохранения полученного запроса операции над данными, благодаря чему прочие первые узлы 101, получающие запросы операций над данными, вступают в состязание за первую распределенную блокировку. Подробности можно узнать из описания этапа S204 раскрытого выше варианта способа.
В одном из вариантов реализации второй узел 201, получивший вторую распределенную блокировку в результате состязания, выполнен с возможностью получения запроса операции над данными с самым ранним временем сохранения из сохраненных запросов операций над данными.
В одном из вариантов реализации второй узел 201, получивший вторую распределенную блокировку в результате состязания, выполнен с возможностью снятия второй распределенной блокировки после выполнения операции над данными в отношении целевого устройства связи и удаления запроса операции над данными, полученного вторым узлом 201, получившим вторую распределенную блокировку в результате состязания, из сохраненных запросов операций над данными. Подробности можно узнать из описания этапа S307 и этапа S308 раскрытого выше варианта способа.
В одном из вариантов реализации первый узел 101, получивший первую распределенную блокировку в результате состязания, выполнен с возможностью генерирования уведомительного сообщения после сохранения соответствующего запроса операции над данными и отправки уведомительного сообщения второму кластеру 200 для выдачи указанным вторым узлам 201 во втором кластере 200 инструкции на выполнение операций над данными в отношении целевого устройства связи.
В одном из вариантов реализации устройство 300 связи может представлять собой коммутатор, при этом запрос операции над данными представляет собой запрос конфигурирования коммутатора.
В одном из вариантов реализации первый узел 101, получивший первую распределенную блокировку в результате состязания, выполнен с возможностью сохранения запроса операции над данными так, что увеличение значения идентификатора происходит автоматически. Подробности можно узнать из описания этапа S103.
Соответственно, второй узел 201, получивший вторую распределенную блокировку в результате состязания, выполнен с возможностью получения запроса операции над данными с наименьшим идентификатором из сохраненных запросов операций над данными. Подробности можно узнать из описания этапа S105.
В одном из вариантов по настоящей заявке также предложен читаемый носитель данных, хранящий инструкции. При исполнении инструкций в компьютере, компьютер служит в качестве вышеуказанных первого узла 101 и/или второго узла 201 для осуществления раскрытого выше способа эксплуатации устройства.
В одном из вариантов по настоящей заявке также предложен читаемый носитель данных, выполненный с возможностью хранения первых инструкций и/или вторых инструкций. При исполнении первых инструкций в компьютере, компьютер осуществляет этапы, выполняемые посредством первого узла 101 согласно вышеуказанному способу эксплуатации устройства. При исполнении вторых инструкций в компьютере, компьютер осуществляет этапы, выполняемые посредством второго узла 201 согласно вышеуказанному способу эксплуатации устройства.
В одном из вариантов по настоящей заявке также предложено электронное устройство, содержащее память и процессор, отличающееся тем, что память выполнена с возможностью хранения первого исполняемого программного кода и/или второго исполняемого программного кода, при этом процессор выполнен с возможностью чтения первого исполняемого программного кода, хранимого в памяти для осуществления этапов, выполняемых посредством первого узла согласно вышеуказанному способу эксплуатации устройства, при этом процессор выполнен с возможностью чтения второго исполняемого программного кода, хранимого в памяти, для осуществления этапов, выполняемых посредством второго узла согласно вышеуказанному способу эксплуатации устройства.
ФИГ.5 представляет собой принципиальную схему электронного устройства 500 по одному из вариантов осуществления по настоящей заявке. Электронное устройство 500 может представлять собой первый узел 101 или второй узел 201 в раскрытой выше кластерной системе 10. В данном варианте по настоящей заявке электронное устройство 500 может включать в себя процессор 501 и память 502. Память 502 выполнена с возможностью хранения исполняемого программного кода, а процессор 501 выполнен с возможностью чтения исполняемого программного кода, хранимого в памяти 502. Когда процессор 501 исполняет исполняемый программный код, электронное устройство 500 может служить в качестве первого узла 101 и/или второго узла 201 для осуществления раскрытого выше способа эксплуатации устройства.
При наличии у электронного устройства 500 функций, реализованных в виде программных функциональных модулей и продаваемых или применяемых в качестве самостоятельного продукта, его можно хранить в машиночитаемом носителе данных. В этом смысле, техническое решение по настоящему варианту применения или его часть может быть по существу или в части, относящейся к предшествующему уровню техники,  реализовано в виде программного продукта. Данный компьютерный программный продукт, в том числе – несколько инструкций для побуждения процессора 501 к выполнению всех или части этапов способов по вариантам осуществления настоящей заявки, выполнен с возможностью хранения в носителе данных. Указанный носитель данных может включать в себя: диск типа U (англ. U disk), мобильный жесткий диск, постоянное запоминающее устройство (ПЗУ, англ. read-only memory, ROM), оперативное запоминающее устройство (ОЗУ, англ. random access memory, RAM), магнитный диск или оптический диск, а также разнообразные носители с возможностью хранения программного кода.
В вариантах по настоящей заявке предложены способ, кластерная система, электронное устройство для эксплуатации устройства и читаемый носитель данных, отличающиеся тем, что операции над данными в отношении устройства связи реализуют путем взаимодействия между первым кластером и вторым кластером в кластерной системе. Первые узлы в первом кластере выполнены с возможностью состязания за первую распределенную блокировку для реализации последовательного сохранения запросов операций над данными. Вторые узлы во втором кластере выполнены с возможностью состязания за вторую распределенную блокировку для последовательного получения сохраненных запросов операций над данными и выполнения этих операций над данными в отношении целевого устройства связи. Благодаря наличию механизма двух распределенных блокировок, когда в кластерной системе имеет место состояние с высокой степенью многопоточности, в котором поступает большое количество запросов операций над данными, может быть реализована последовательная обработка большого количества запросов операций над данными за счет взаимоисключающего характера первой распределенной блокировки и второй распределенной блокировки. Это позволяет обеспечить не только последовательную обработку запросов операций над данными, но и улучшение пропускной способности первого кластера, при этом возможно горизонтальное расширение и первого, и второго кластеров, и, тем самым, улучшение работоспособности и обрабатывающей способности системы.
Следует понимать, что аппаратура и способ, предложенные в нескольких вариантах осуществления изобретения по настоящей заявке, также могут быть реализованы и иными путями. Варианты осуществления аппаратуры раскрыты выше исключительно схематически. Например, технологические схемы и блок-схемы на прилагаемых чертежах изображают возможные варианты архитектуры, функций и операций аппаратуры, способов и компьютерных программных продуктов по нескольким вариантам осуществления изобретения по настоящей заявке. При этом каждый блок технологической схемы или блок-схемы может представлять модуль, программный сегмент или часть кода, содержащую одну или несколько исполняемых инструкций для реализации определенной логической функции. Также следует отметить, что в некоторых альтернативных вариантах порядок реализации тех или иных функций в тех или иных блокам может отличаться от указанного на чертеже. Например, выполнение действий двух следующих друг за другом блоков на практике может происходить по существу параллельно, а в некоторых случаях – в обратном порядке, в зависимости от функции, о которой идет речь. Также следует отметить, что каждый из блоков в блок-схемах и/или технологических схемах, а также комбинации блоков в блок-схемах и/или технологических схемах, могут быть реализованы с помощью специально предназначенной для этого аппаратной системы, выполняющей указанные функции или действия, либо могут быть реализованы с помощью комбинации специально предназначенной для этого аппаратуры и компьютерных инструкций.
Кроме того, функциональные модули в различных вариантах осуществления изобретения по настоящей заявке могут быть выполнены за одно целое с образованием самостоятельной части, либо каждый модуль может существовать сам по себе, либо два или более модулей могут быть выполнены за одно целое с образованием самостоятельной части.
Выше раскрыты только предпочтительные варианты осуществления изобретения по настоящей заявке, не предназначенные для того, чтобы ограничить его объем. Специалисты в данной области техники смогут внести различные модификации или изменения в изобретение по настоящей заявке. Любые модификации, альтернативные решения, улучшения и тому подобное без отступления от существа и принципа изобретения по настоящей заявке должны быть включены в объем охраны по настоящей заявке. Следует отметить, что аналогичные номера позиций и буквы обозначают аналогичные позиции на следующих чертежах; таким образом, после того, как какая-либо позиция будет определена на одном чертеже, нет нужды в дополнительном определении и разъяснении данной позиции на последующих чертежах.
Выше раскрыты только частные варианты реализации настоящей заявки, при этом объем охраны по настоящей заявке не ограничен ими. В отношении технической части объема, раскрытого в настоящей заявке, любые изменения или альтернативные решения, которые без труда может внести специалист в данной области техники, входят в объем охраны по настоящей заявке. Таким образом, объем охраны по настоящей заявке определяется формулой изобретения.
Промышленная применимость
Настоящее изобретение предлагает способ, кластерную систему, электронное устройство для эксплуатации устройства и читаемый носитель данных для выбора адаптивного режима. Они позволяют обеспечить не только последовательную обработку запросов операций над данными, но и улучшить пропускную способность первого кластера, при этом возможно горизонтальное расширение и первого, и второго кластеров, и, тем самым, улучшение работоспособности и обрабатывающей способности системы.