13.02.2020
220.018.01a8

СПОСОБ И УСТРОЙСТВО ОБРАБОТКИ ДАННЫХ

Вид РИД

Изобретение

Юридическая информация Свернуть Развернуть
№ охранного документа
0002714098
Дата охранного документа
11.02.2020
Краткое описание РИД Свернуть Развернуть
Аннотация: Изобретение относится к способу и устройству обработки данных. Технический результат заключается в повышении эффективности репликации данных. В способе принимают запрос обновления данных, отправленный пользователем, отправляют инструкцию обновления журнала в первичный сервер и два вторичных сервера на основе запроса обновления данных, с тем чтобы они осуществили операцию обновления журнала на основе инструкции обновления журнала, когда определено, что операция обновления журнала завершена, отправляют инструкцию сохранения данных в первичный сервер и первый вторичный сервер, с тем чтобы они осуществили операцию сохранения в отношении обновлений данных, определяют второй вторичный сервер, когда определено, что второй вторичный сервер совершает операцию обновления журнала, отправляют инструкцию пустой операции на второй вторичный сервер, причем инструкция пустой операции используется для предписания второму вторичному серверу не осуществлять никаких операций. 2 н. и 8 з.п. ф-лы, 9 ил.
Реферат Свернуть Развернуть

[0001] По настоящей заявке испрашивается приоритет китайской патентной заявки № 201610444320.5, поданной 20 июня 2016 г. под названием "DATA PROCESSING METHOD AND DEVICE", которая включена в настоящее описание изобретения посредством ссылки в полном объеме.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0015] фиг. 2 - блок-схема операций, демонстрирующая способ обработки данных, согласно варианту осуществления настоящей заявки;

[0016] фиг. 3 - схема, демонстрирующая процедуру определения первичного сервера, согласно варианту осуществления настоящей заявки;

[0017] фиг. 4 - структурная схема, демонстрирующая диагностику сервера, согласно варианту осуществления настоящей заявки;

[0018] фиг. 5 - структурная схема, демонстрирующая диагностику сервера, согласно варианту осуществления настоящей заявки;

[0019] фиг. 6 - структурная схема, демонстрирующая диагностику сервера, согласно варианту осуществления настоящей заявки;

[0020] фиг. 7 - структурная схема сервера в локальной аппаратной и сервера в удаленной аппаратной, согласно варианту осуществления настоящей заявки;

[0021] фиг. 8 - структурная схема, демонстрирующая устройство обработки данных, согласно варианту осуществления настоящей заявки; и

[0022] фиг. 9 - структурная схема, демонстрирующая устройство обработки данных, согласно варианту осуществления настоящей заявки.

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

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

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

[0025] На практике, в целях безопасности системы, до сохранения обновлений данных, первичный сервер (или вторичный сервер) должен сначала осуществлять обновление журнала, и затем первичный сервер (или вторичный сервер) сохраняет обновления данных. Таким образом, можно гарантировать согласованность между данными, хранящимися в первичном сервере (или вторичном сервере), и журналом. Когда первичный сервер (или вторичный сервер) не удается сохранять данные, данные могут восстанавливаться с использованием ранее сохраненного журнала.

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

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

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

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

[0030] Следует отметить, что технические решения, обеспеченные в настоящих вариантах осуществления настоящей заявки, могут основываться на распределенном протоколе согласования и применяться к распределенной системе хранения данных на основе распределенного протокола согласования. Распределенный протокол согласования может быть протоколом Paxos или другими протоколами согласования, что не является ограничением.

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

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

[0033] Технические решения, обеспеченные в вариантах осуществления настоящей заявки, подробно описаны ниже со ссылкой на прилагаемые чертежи.

Вариант осуществления 1

[0034] На фиг. 1 показана блок-схема операций, демонстрирующая способ обработки данных, согласно варианту осуществления настоящей заявки. Способ описан ниже. Телом выполнения в настоящем варианте осуществления настоящей заявки может быть распределенная система хранения данных на основе распределенного протокола согласования (в дальнейшем именуемая распределенной системой хранения данных).

[0035] Этап 101: принимать запрос обновления данных, отправленный пользователем.

[0036] Запрос обновления данных включает в себя обновления данных.

[0037] На этапе 101, после инициирования запроса службы и приема сообщения ответа, пользователь может отправлять запрос обновления данных в распределенную систему хранения данных. При этом, распределенная система хранения данных может принимать запрос обновления данных, отправленный пользователем.

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

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

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

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

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

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

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

[0045] После определения первичного сервера, другой сервер в распределенной системе хранения данных может выступать в роли вторичного сервера. В настоящем варианте осуществления настоящей заявки, существует, по меньшей мере, два вторичных сервера.

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

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

[0048] Следует отметить, что, когда инструкция обновления журнала отправляется на, по меньшей мере, два вторичных сервера, инструкция обновления журнала может отправляться на каждый из, по меньшей мере, двух вторичных серверов; или несколько (по меньшей мере, два) вторичных серверов можно выбирать из, по меньшей мере, двух вторичных серверов, и инструкция обновления журнала отправляется на несколько выбранных вторичных серверов, что не является ограничением.

[0049] Например, если распределенная система хранения данных включает в себя два вторичных сервера, инструкция обновления журнала может отправляться по отдельности на два вторичных сервера; или если распределенная система хранения данных включает в себя четыре вторичных сервера, инструкция обновления журнала может отправляться на два вторичных сервера, или инструкция обновления журнала может отправляться на любые три вторичных сервера, или инструкция обновления журнала может дополнительно отправляться по отдельности на четыре вторичных сервера, что не является ограничением.

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

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

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

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

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

[0055] Первый случай: когда определено, что первичный сервер совершает операцию обновления журнала, определяется, что операция обновления журнала завершена.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0071] Следует отметить, что "второй" во втором вторичном сервере и "первый" в ранее описанном первом вторичном сервере предназначены лишь для различения разных вторичных серверов, и не имеют никакого другого особого значения.

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

[0073] Таким образом, по меньшей мере, два вторичных сервера могут включать в себя один первый вторичный сервер и, по меньшей мере, один второй вторичный сервер. Например, если распределенная система хранения данных включает в себя два вторичных сервера, включены один первый вторичный сервер и один второй вторичный сервер; или если распределенная система хранения данных включает в себя три вторичных сервера, включены один первый вторичный сервер и два вторых вторичных сервера.

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

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

[0076] В распределенной системе хранения данных возможны, по меньшей мере, несколько следующих случаев отказа:

[0077] Первый случай отказа: отказ первичного сервера.

[0078] Второй случай отказа: отказ первого вторичного сервера.

[0079] Третий случай отказа: отказ второго вторичного сервера.

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

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

[0082] В первом случае отказа, конкретно происходит следующее:

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

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

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

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

[0087] Следует отметить, что "третий" в третьем вторичном сервере предназначен для отличения от первого вторичного сервера и второго вторичного сервера, и не имеет другого особого значения.

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

[0089] Во втором случае отказа, конкретно происходит следующее:

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

[0091] Способ определения нового вторичного сервера идентичен ранее описанному способу определения третьего вторичного сервера. Для простоты детали здесь опущены.

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

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

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

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

[0096] Способ определения четвертого вторичного сервера идентичен ранее описанному способу определения третьего вторичного сервера. Для простоты детали здесь опущены.

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

[0098] Здесь, сервер, который работает исправно, может быть другим сервером, отличным от второго вторичного сервера, или может быть первичным сервером, первым вторичным сервером или другим сервером, который совершает операцию обновления журнала, что не является ограничением.

[0099] "Четвертый" в четвертом вторичном сервере предназначен для отличения от первого вторичного сервера, второго вторичного сервера и третьего вторичного сервера, и не имеет другого особого значения.

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

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

Вариант осуществления 2

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

[0103] Этап 201: первичный сервер принимает запрос обновления данных, отправленный пользователем.

[0104] Запрос обновления данных включает в себя обновления данных.

[0105] На этапе 201, после инициирования запроса службы и приема сообщения ответа, пользователь может отправлять запрос обновления данных на первичный сервер в распределенной системе хранения данных. При этом, первичный сервер в распределенной системе хранения данных может принимать запрос обновления данных, отправленный пользователем.

[0106] В настоящем варианте осуществления настоящей заявки, первичный сервер определяется, когда данные, хранящиеся в распределенной системе хранения данных, пусты. Способ определения первичного сервера идентичен способу, описанному в предыдущем варианте осуществления 1. Для простоты детали здесь опущены.

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

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

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

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

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

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

[0113] Первичный сервер может определять, по меньшей мере, в следующих двух случаях, что операция обновления журнала завершена. Возможны следующие два случая:

[0114] Первый случай: когда определено, что первичный сервер совершает операцию обновления журнала, определяется, что операция обновления журнала завершена.

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

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

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

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

Вариант осуществления 3

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

[0120] Этап 1: определять первичный сервер, первый вторичный сервер и второй вторичный сервер из распределенной системы хранения данных.

[0121] Когда данные, хранящиеся в распределенной системе хранения данных, пусты, первичный сервер и два вторичных сервера могут определяться из распределенной системы хранения данных. Для простоты различения, два вторичных сервера можно соответственно именовать первым вторичным сервером и вторым вторичным сервером.

[0122] В настоящем варианте осуществления настоящей заявки, первичный сервер может сохранять обновления данных и обеспечивать внешнюю службу чтения/записи данных. Первый вторичный сервер может сохранять обновления данных, и второй вторичный сервер не сохраняет обновления данных.

[0123] В настоящем варианте осуществления настоящей заявки, последовательность определения первичного сервера, первого вторичного сервера и второго вторичного сервера не имеет ограничений.

[0124] Иллюстративное описание последовательности определения второго вторичного сервера, первичного сервера и первого вторичного сервера используется ниже.

[0125] Сначала определяется второй вторичный сервер.

[0126] В случае определения, второй вторичный сервер может определяться на основе распределенного протокола согласования, а именно, протокола Paxos, согласно способу выбора, поддерживаемого тремя серверами, включенными в распределенную систему хранения данных.

[0127] При определении второго вторичного сервера, один сервер может произвольно выбираться в качестве второго вторичного сервера, или второй вторичный сервер определяется на основе фактического случая. Здесь, способ определения второго вторичного сервера не имеет ограничений.

[0128] Затем определяется первичный сервер.

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

[0130] Следует отметить, что при определении первичного сервера согласно способу выбора, ни второй вторичный сервер, ни два других сервера не могут выбирать второй вторичный сервер в качестве первичного сервера.

[0131] На фиг. 3 показана схема, демонстрирующая процедуру определения первичного сервера, согласно варианту осуществления настоящей заявки.

[0132] Из фиг. 3 следует, что после определения второго вторичного сервера C согласно способу выбора, сервер A, сервер B, и второй вторичный сервер C может определять первичный сервер согласно способу выбора. Сервер A может выбирать сервер A или сервер B в качестве первичного сервера, но не может выбирать второй вторичный сервер C в качестве первичного сервера. Сервер B может выбирать сервер B или сервер A в качестве первичного сервера, но не может выбирать второй вторичный сервер C в качестве первичного сервера. Второй вторичный сервер C не может выбирать второй вторичный сервер C в качестве первичного сервера, но может выбирать сервер A или сервер B в качестве первичного сервера.

[0133] При определении первичного сервера, один из двух серверов, отличных от второго вторичного сервера, может произвольно выбираться в качестве первичного сервера, или один сервер можно выбирать в качестве первичного сервера на основе фактического случая, что не является ограничением.

[0134] Наконец, определяется первый вторичный сервер.

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

[0136] Этап 2: первичный сервер принимает запрос обновления данных, отправленный пользователем.

[0137] Запрос обновления данных включает в себя обновления данных.

[0138] Этап 3: первичный сервер отправляет инструкцию обновления журнала на первый вторичный сервер и второй вторичный сервер, благодаря чему, первый вторичный сервер, и второй вторичный сервер осуществляют операцию обновления журнала на основе инструкции обновления журнала.

[0139] После того, как первичный сервер отправляет инструкцию обновления журнала на первый вторичный сервер и второй вторичный сервер, первый вторичный сервер и второй вторичный сервер может принимать инструкцию обновления журнала. При этом, первичный сервер, первый вторичный сервер и второй вторичный сервер могут осуществлять обновление журнала на основе распределенного протокола согласования, а именно, протокола Paxos. Когда определено, что первичный сервер и, по меньшей мере, один из первого вторичного сервера и второго вторичного сервера завершают операцию обновления журнала, определяется, что операция обновления журнала завершена.

[0140] Этап 4: первичный сервер отправляет инструкцию сохранения данных на первый вторичный сервер, благодаря чему, первый вторичный сервер осуществляет, на основе инструкции сохранения данных, операцию сохранения на обновлениях данных.

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

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

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

[0144] В случае отказа первичного сервера, конкретно происходит следующее:

[0145] Как показано на фиг. 4, в случае отказа первичного сервера, первичный сервер не может продолжать обеспечение службы чтения/записи для пользователя, и при этом, первый вторичный сервер B может определяться как новый первичный сервер, и сервер D определяется как новый первый вторичный сервер. Первый вторичный сервер B может обеспечивать службу чтения/записи данных для пользователя, и поддерживать синхронизацию журнала со вторым вторичным сервером C. Сервер D получает копию данных путем копирования с первого вторичного сервера B для совершения синхронизации данных с первым вторичным сервером B, и сервер D осуществляет операцию синхронизации журнала для совершения синхронизация журнала с первым вторичным сервером B.

[0146] При отказе первого вторичного сервера, конкретно происходит следующее:

[0147] как показано на фиг. 5, при отказе первого вторичного сервера, первичный сервер A может продолжать обеспечение службы чтения/записи данных для пользователя. При этом, сервер E может определяться как новый первый вторичный сервер. Сервер E получает копию данных путем копирования с первичный сервер A для совершения синхронизации данных с первичным сервером A, и сервер E осуществляет операцию синхронизации журнала для совершения синхронизация журнала с первичным сервером A.

[0148] При отказе второго вторичного сервера, конкретно происходит следующее:

[0149] как показано на фиг. 6, при отказе второго вторичного сервера, первичный сервер A может продолжать обеспечение службы чтения/записи данных для пользователя. При этом, сервер F может определяться как новый второй вторичный сервер, и сервер F осуществляет операцию синхронизации журнала для совершения синхронизация журнала с первичным сервером A.

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

[0151] Как показано на фиг. 7, в локальной аппаратной можно использовать три сервера, обозначенные A, B, и C, сервер A является первичным сервером и сохраняет обновления данных, и сервер B и сервер C являются вторичными серверами и осуществляют только операцию обновления журнала, но не сохраняют обновления данных. В удаленной аппаратной, можно использовать серверы D, E, и F, сервер D является первичным сервером и сохраняет копию данных для данных, хранящихся в сервере A в локальной аппаратной, и сервер E и сервер F осуществляют только операцию обновления журнала, но не сохраняют обновления данных.

[0152] При отказе сервера A, сервер D может обеспечивать внешнюю службу чтения/записи данных.

[0153] При отказе сервера D, сервер A все же может продолжать обеспечение внешней службы чтения/записи данных. При этом, новый первичный сервер нуждается в определении в удаленной аппаратной. Новый первичный сервер может совершать синхронизацию данных и синхронизацию журнала с сервером A.

[0154] При отказе любого из сервера B, сервера C, сервера E и сервера F, сервер A все же может продолжать обеспечение внешней службы чтения/записи.

[0155] На фиг. 8 показана структурная схема, демонстрирующая устройство обработки данных, согласно варианту осуществления настоящей заявки. Устройство применяется к распределенной системе хранения данных, распределенная система хранения данных включает в себя первичный сервер и, по меньшей мере, два вторичных сервера, и устройство включает в себя блок 81 приема, блок 82 отправки и блок 83 определения.

[0156] Блок 81 приема выполнен с возможностью приема запроса обновления данных, отправленного пользователем, где запрос обновления данных включает в себя обновления данных.

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

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

[0159] Определение блоком 82 отправки, что операция обновления журнала завершена, включает в себя: когда определено, что первичный сервер совершает операцию обновления журнала, определение, что операция обновления журнала завершена; или когда определено, что первичный сервер и, по меньшей мере, один вторичный сервер из, по меньшей мере, двух вторичных серверов завершают операцию обновления журнала, определение, что операция обновления журнала завершена.

[0160] Отправка блоком 82 отправки инструкции сохранения данных по отдельности на первичный сервер и первый вторичный сервер из, по меньшей мере, двух вторичных серверов, включает в себя: когда определено, что первичный сервер совершает операцию обновления журнала, отправку инструкции сохранения данных на первичный сервер, и после отправки инструкции сохранения данных на первичный сервер и определения, что, по меньшей мере, один сервер из, по меньшей мере, двух вторичных серверов совершает операцию обновления журнала, отправку инструкции сохранения данных на первый вторичный сервер из, по меньшей мере, двух вторичных серверов; или когда определено, что первичный сервер и, по меньшей мере, один вторичный сервер из, по меньшей мере, двух вторичных серверов совершают операцию обновления журнала, отправку инструкции сохранения данных по отдельности на первичный сервер и первый вторичный сервер из, по меньшей мере, двух вторичных серверов.

[0161] В необязательном порядке, устройство обработки данных дополнительно включает в себя блок 83 определения.

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

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

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

[0165] На фиг. 9 показана структурная схема, демонстрирующая устройство обработки данных, согласно варианту осуществления настоящей заявки. Устройство применяется к распределенной системе хранения данных, распределенная система хранения данных включает в себя первичный сервер и, по меньшей мере, два вторичных сервера, и устройство включает в себя блок 91 приема и блок 92 отправки.

[0166] Блок 91 приема выполнен с возможностью приема запроса обновления данных, отправленного пользователем, где запрос обновления данных включает в себя обновления данных.

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

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

[0169] Специалисту в данной области техники очевидно, что варианты осуществления настоящей заявки могут быть реализованы как способ, система или компьютерный программный продукт. Таким образом, настоящая заявка может использовать только аппаратные реализации, только программные реализации, или реализации, где сочетаются программное и аппаратное обеспечение. Кроме того, настоящая заявка может использовать форму компьютерного программного продукта, который реализован на одном или более компьютерных носителях данных (в том числе, но без ограничения, магнитном диске, CD-ROM, оптическом диске и т.д.), которые включают в себя компьютерный программный код.

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

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

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

[0173] В типичной конфигурации, вычислительное устройство включает в себя один или более процессоров (CPU), интерфейс ввода/вывода, сетевой интерфейс и память.

[0174] Память может включать в себя непостоянную память, RAM, энергонезависимую память и/или другую форму компьютерно-считываемого носителя, например, ROM или флэш-память (флэш-RAM). Память является примером компьютерно-считываемого носителя.

[0175] Компьютерно-считываемый носитель включает в себя постоянные, непостоянные, подвижные и неподвижные среды, которые могут реализовать хранение информации с использованием любого способа или технологии. Информация может представлять собой компьютерно-считываемую инструкцию, структуру данных, программный модуль или другие данные. Компьютерный носитель данных включает в себя, но без ограничения, оперативную память на фазовых переходах (PRAM), статическую RAM (SRAM), динамическую RAM (DRAM), оперативную память (RAM) другого типа, постоянную память (ROM), электрически стираемую программируемую постоянную память (EEPROM), флэш-память или другое запоминающее устройство, компакт-диск с возможностью только чтения (CD-ROM), цифровой универсальный диск (DVD), или другое оптическое запоминающее устройство, кассету, магнитный диск, или другое магнитное запоминающее устройство или любой другой носитель, не связанный с передачей. Компьютерный носитель данных может быть выполнен с возможностью хранения информации, доступной вычислительному устройству. На основе настоящего описания изобретения, компьютерно-считываемый носитель не включает в себя компьютерно-считываемые транзиторные среды, например, модулирующий сигнал данных и несущую.

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

[0177] Специалисту в данной области техники очевидно, что варианты осуществления настоящей заявки могут быть реализованы как способ, система или компьютерный программный продукт. Таким образом, настоящая заявка может использовать только аппаратные реализации, только программные реализации, или реализации, где сочетаются программное и аппаратное обеспечение. Кроме того, настоящая заявка может использовать форму компьютерного программного продукта, который реализован на одном или более компьютерных носителях данных (в том числе, но без ограничения, магнитном диске, CD-ROM, оптическом диске и т.д.), которые включают в себя компьютерный программный код.

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


СПОСОБ И УСТРОЙСТВО ОБРАБОТКИ ДАННЫХ
СПОСОБ И УСТРОЙСТВО ОБРАБОТКИ ДАННЫХ
СПОСОБ И УСТРОЙСТВО ОБРАБОТКИ ДАННЫХ
СПОСОБ И УСТРОЙСТВО ОБРАБОТКИ ДАННЫХ
СПОСОБ И УСТРОЙСТВО ОБРАБОТКИ ДАННЫХ
СПОСОБ И УСТРОЙСТВО ОБРАБОТКИ ДАННЫХ
СПОСОБ И УСТРОЙСТВО ОБРАБОТКИ ДАННЫХ
СПОСОБ И УСТРОЙСТВО ОБРАБОТКИ ДАННЫХ
СПОСОБ И УСТРОЙСТВО ОБРАБОТКИ ДАННЫХ
СПОСОБ И УСТРОЙСТВО ОБРАБОТКИ ДАННЫХ
Источник поступления информации: Роспатент

Всего документов: 65

Похожие РИД в системе