ОБЛАСТЬ ТЕХНИКИ
[0001] Изобретение относится в общем к области хранения и обработки данных, а в частности к способу и системе перемещения данных в облачной среде, обеспечивающие своевременную бесперебойную поставку и перемещение больших объемов (от единиц терабайтов) структурированных, и/или неструктурированных, и/или разнородных (мультимодальных) данных, в том числе для целей обучения моделей машинного обучения.
УРОВЕНЬ ТЕХНИКИ
[0002] Из уровня техники известно решение для управления хранением данных, раскрытое в патенте US 8156086 В2, опубл. 10.04.2012. В известном решении для управления хранения данных осуществляют:
- выполнение первой операции хранения на первом наборе данных в первом местоположении для генерации множества блоков данных, при этом указанное выполнение первой операции хранения по меньшей мере для одного из множества блоков данных дополнительно включает этапы: генерации второго набора данных, связанных с первым набором данных; создания первого набора метаданных, связанных с первым набором данных; и хранения второго набора данных и первого набора метаданных на запоминающем устройстве;
- хранение копии первого набора метаданных в индексе, удаленном от запоминающего устройства;
- генерация второго набора метаданных, связанных со вторым набором данных, хранящихся на запоминающем устройстве;
- сравнение первого набора метаданных в индексе со вторым набором метаданных для проверки наличия различий между первым и вторым наборами данных без доступа к первому и второму наборам данных;
- выполнение второй операции хранения второго набора данных, вторая операция хранения включает этапы: генерации третьего набора данных, связанных со вторым набором данных; генерации третьего набора метаданных, содержащего информацию для извлечения третьего набора данных; и хранения третьего набора данных во втором месте; и
- сравнение первого набора метаданных в индексе с третьим набором метаданных, чтобы проверить, существуют ли различия между первым и третьим наборами данных.
[0003] Также известны способ и система мультиплексирования конвейерных данных для целей создания резервных копий, описанные в патенте US 7315923 В2, опубл. 01.01.2008. В известном решении выполняют получение первого потока данных, содержащего первые данные, причем первые данные получены первым агентом данных, специфичным для конкретного приложения; получение второго потока данных, содержащего вторые данные, причем вторые данные получаются вторым агентом данных для конкретного приложения; объединение первого и второго потоков данных в один поток из одного или нескольких блоков данных архивного файла, включая запись первых данных из первого потока данных и вторых данных из второго потока данных в первый блок данных одного или нескольких блоков данных; передача одного или нескольких блоков данных по транспортному каналу на резервный носитель; и хранение одного или нескольких блоков данных на носителе резервной копии.
[0004] Также известны способ и система управления информацией, описанные в заявке US 2020/0319694 А1, опубл. 14.02.2023. Известная система содержит: сетевую систему хранения данных, содержащую компьютерное оборудование, сконфигурированное для: настройки параметров управления питанием для медиа-агента, при этом медиа-агент является компонентом в системе управления информацией, который взаимодействует с вторичными запоминающими устройствами для выполнения операций с данными, хранящимися с использованием вторичных запоминающих устройств; идентификации с помощью модуля управления питанием задачи, которая должна быть выполнена в сетевой системе хранения данных, содержащая тип операции, в которой задача связана с медиаагентом; основываясь, по крайней мере частично, на типе операции задачи, определения состояния питания для медиаагента, связанного с задачей; и при определении того, что состояние питания медиаагента находится на указанном уровне или ниже: добавления задачи к списку задач, связанному с медиа-агентом, при этом список задач содержит задачи типа операции; определения, превышает ли список задач заданное пороговое значение; и на основе того, что модуль управления питанием определяет, что указанное пороговое значение превышено, направления указание агенту мультимедиа выполнить одну или несколько задач в списке задач.
[0005] Также известны системы и способы для создания единичных экземпляров блоков данных в системе хранения данных, описанные в патенте US 8578120 В2, опубл. 05.11.2013. В данном документе упоминается вычислительная система, содержащая: одно или несколько запоминающих устройств, хранящихся на физическом носителе; один или несколько логических контейнеров, включающих несколько дедуплицированных блоков данных, соответствующих объектам данных; и одну или несколько структур данных, указывающих, имеются ли ссылки на блоки данных; одну или несколько баз данных, хранящих информацию, указывающую, имеются ли ссылки на блоки данных; и вторичное запоминающее вычислительное устройство, запрограммированное на: получение указаний на удаление первого набора блоков данных из первого логического контейнера; для каждого из блоков данных в первом наборе - определение по базам данных ссылки на блок данных; и если на блок данных нет ссылки, обновление структуры данных, чтобы указать, что на блок данных не ссылаются; определения по структурам данных, что достигнуто пороговое число непрерывных блоков данных в первом логическом контейнере, на которые нет ссылок; и предоставление доступа для хранения части одного или нескольких физических носителей, соответствующих смежным блокам данных в первом логическом контейнере, при этом структуры данных и базы данных не являются частью собственных файловых систем устройств хранения.
[0006] Также известны системы и способы хранения данных, описанные в патенте US 7343453 В2, опубл. 11.03.2008. В данном документе раскрывается иерархическая система хранения данных, предоставляющая методы оценки состояния хранимых данных относительно потребностей потребителей с помощью взвешенных параметров, которые могут быть определены пользователем
[0007] Развитие технологий и методов обработки больших данных на мощных вычислительных комплексах и в облачной среде дополнительно требует реализацию новых механизмов управления большими наборами данных в связи с увеличением времени передачи в силу ограниченности сетевого ресурса и пропускной способности хранилищ данных, и обеспечения готовности данных к нужному моменту времени при создании непрерывных конвейеров обработки данных.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[0008] Технической проблемой или задачей, поставленной в данном техническом решении, является создание простого и надежного способа и системы перемещения больших объемов данных в облачной среде.
[0009] Техническим результатом является повышение надежности при перемещении данных из разных источников данных в соответствии с заданным временем, до которого следует выполнить упомянутое перемещение, и условиями перемещения данных.
[0010] Указанный технический результат достигается благодаря осуществлению способа перемещения данных в облачной среде, содержащий этапы, на которых:
- получают посредством API-сервиса 20 запрос на перемещение первого набора данных из первого источника данных (ИД) 30 и второго набора данных из второго ИД 31 в целевой ИД 40, содержащий по меньшей мере информацию об условиях перемещения данных;
- формируют посредством API-сервиса 20 запрос, содержащий последовательность операций по перемещению данных, а также параметр приоритета перемещения, определяющий очередность выполнения операции перемещения, и направляют сформированный запрос в адрес Планировщика задач 50;
- добавляют посредством Планировщика задач 50 новую задачу на перемещение данных в очередь в соответствии с упомянутым параметром приоритета;
- при поступлении задачи из очереди на исполнение передают задачу в Рабочий Узел 60;
- определяют посредством Рабочего Узла 60 список интерфейсов для работы с ИД 30, ИД 31 и ИД 40;
- выполняют посредством Рабочего Узла 60 оценку возможности проведения задачи по перемещению данных на основе имеющихся ресурсов;
- определяют посредством Рабочего Узла 60 способ взаимодействия с целевым ИД 40 на основе объема данных и формата перемещаемых данных и сохраненных в упомянутых ИД;
- определяют посредством Рабочего Узла 60 оптимальный маршрут перемещения данных от ИД 30 и ИД 31 в ИД 40;
- проверяют посредством Рабочего Узла 60 работоспособность ИД, задействованных для перемещения данных;
- посредством Рабочего Узла 60 осуществляют чтение первого и второго набора данных из ИД 30 и ИД 31 и передачу упомянутых данных в адрес целевого ИД 40 в соответствии с условиями перемещения данных.
[0011] В одном частном примере осуществления способа ИД 30, ИД 31 и ИД 40 находятся в одном облаке (т.е. логическом пуле, logical pools).
[0012] В другом частном примере осуществления способа по меньшей мере один ИД 30, ИД 31 или ИД 40 находится в другом облаке по отношению упомянутыми ИД.
[0013] В другом частном примере осуществления способа передачу данных в адрес целевого ИД 40 осуществляют с учетом кода коррекции ошибок, инкремента данных или параметров параллельной передачи данных.
[0014] В другом частном примере осуществления способа дополнительно выполняют этап, на котором проверяют регистрацию всех источников данных, участвующих в перемещении данных.
[0015] В другом частном примере осуществления способа запрос на перемещение данных содержит информацию о по меньше мере одном дополнительном целевом ИД, в который следует переместить первый и второй наборы данных, причем Планировщик задач 50 формирует несколько задач на перемещение данных с одинаковым параметром приоритета в зависимости от количества дополнительных ИД.
[0016] В другом частном примере осуществления способа дополнительно выполняют посредством Планировщика задач 50 этапы, на которых: извлекают из запроса на перемещение данных значение времени, до истечения которого следует завершить перенос данных; извлекают из памяти данные, характеризующие время выполнения аналогичных задач на перемещение по заданному маршруту; на основе извлеченных данных определяют спрогнозированное время выполнения задачи на перемещение; осуществляет перестановку задачи на перемещение данных в очереди для ее выполнения в указанное значение времени с учетом спрогнозированного времени выполнения других задач, содержащихся в очереди, и значений их приоритетов.
[0017] В другом частном примере осуществления способа для определения оптимального маршрута посредством Рабочего Узла 60 выполняют этапы, на которых: определяют маршрут от ИД 30 и ИД 31 до ИД 40, а также от ИД, в которых хранятся копии данных ИД 30 или ИД 31, которые следует переместить, до ИД 40; выбирают оптимальный маршрут для перемещения данных с учетом ИД, в которых хранятся копии данных.
[0018] В другом частном примере осуществления способа дополнительно выполняют этап проверки целостности перемещенных данных.
[0019] В другом частном примере осуществления способа дополнительно выполняют посредством Рабочего Узла 60 этап синхронизации завершения процесса перемещения данных из ИД 30 и 31, в том числе с учетом инкремента.
[0020] В другом частном примере осуществления способа дополнительно выполняют посредством Рабочего Узла 60 управление версиями перемещаемых данных.
[0021] В другом частном примере осуществления способа дополнительно фиксируют метрики, связанные с операцией перемещения данных и использованием ресурсов.
[0022] В другом частном примере осуществления способа выполнение операции транспортировки данных осуществляется в соответствии с заданным расписанием.
[0023] В другом частном примере осуществления способа первый или второй наборы данных содержат структурированные и/или неструктурированные данные и/или разнородные (мультимодальные) данных.
[0024] В другом предпочтительном варианте осуществления заявленного решения представлена система перемещения данных в облачной среде, содержащая по меньшей мере три ИД, API-сервис, Планировщик задач, по меньшей мере один Рабочий Узел, причем система выполнена с возможность осуществлять вышеуказанный способ.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0025] Признаки и преимущества настоящего технического решения станут очевидными из приводимого ниже подробного описания изобретения и прилагаемых чертежей, на которых:
- на Фиг. 1 представлена общая схема регистрации источников данных;
- на Фиг. 2 представлена общая схема системы перемещения данных;
- на Фиг. 3 и 4 представлена общая схема обработки данных;
- на Фиг. 5 представлен пример общего вида вычислительного устройства.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0026] Ниже будут описаны понятия и термины, необходимые для понимания данного технического решения.
[0027] В данном техническом решении под системой подразумевается, в том числе компьютерная система (в частности, информационная система, вычислительные комплексы, вычислительные кластеры), ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления, специализированные устройства, реализующие вычисления по технологиям FPGA и ASIC, и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций).
[0028] Под устройством обработки команд подразумевается электронный блок, вычислительное устройство, либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).
[0029] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройств хранения данных. В роли устройства хранения данных могут выступать, но не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.
[0030] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.
[0031] База данных (БД) - совокупность данных, организованных в соответствии с концептуальной структурой, описывающей характеристики этих данных и взаимоотношения между ними, причем такое собрание данных, которое поддерживает одну или более областей применения (ISO/IEC 2382:2015, 2121423 «database»).
[0032] Сигнал - материальное воплощение сообщения для использования при передаче, переработке и хранении информации.
[0033] Логический элемент - элемент, осуществляющий определенные логические зависимости между входными и выходными сигналами. Логические элементы обычно используются для построения логических схем вычислительных машин, дискретных схем автоматического контроля и управления. Для всех видов логических элементов, независимо от их физической природы, характерны дискретные значения входных и выходных сигналов.
[0034] Автоматизированная система (АС) - организационно-техническая система, обеспечивающая выработку решений на основе автоматизации информационных процессов.
[0035] В соответствии со схемой, приведенной на фиг. 1, на первом этапе осуществляют регистрацию источника 30 данных в системе перемещения данных в облачной среде. Операция регистрации источника 30 данных выполняется заранее до начала перемещения данных как в отношении источника перемещаемых данных, так и в отношении объекта хранения, т.е. целевого источника данных, в котором данные будут сохранены после перемещения.
[0036] Для регистрации источника 30 данных пользователь посредством устройства 10 пользователя заполняет форму запроса к API-сервису 20 с использованием графического интерфейса 11 пользователя, либо в режиме командной строки (UI пользователя). Устройство 10 пользователя может представлять собой портативный или стационарный компьютер, телефон, смартфон, планшет или прочее вычислительное устройство, оснащенное проводными и/или беспроводными средствами связи.
[0037] Форма запроса содержит идентификатор хранилища (имя либо идентификатор), тип источника данных («холодное хранилище», «горячее хранилище»), тип файловой системы (HDFS, S3, NFS и др.), авторизационную информацию (токен, пара «логин-пароль»). Заполненная форма может быть сохранена в модуле UI пользователя 11 для целей повторного ввода, а также для целей автоматизированной обработки данных.
[0038] Дополнительно пользователь указывает параметры доступа к источнику 30 данных - тип доступа (постоянный, сессионный или по расписанию), ключи шифрования для организации защищенного соединения, скорость передачи данных, протокол передачи данных (передача с подтверждением доставки либо без подтверждения, многоканальная передача), режиме передачи данных (синхронная или асинхронная передача).
[0039] Соответственно, заполненная форма запроса направляется устройством 10 в API-сервис 20, который при получении запроса формирует запрос к источнику данных 30 для подтверждения его доступности и направляет сформированный запрос в адрес источника данных. Для приема и обработки данных API-сервис 20 может быть реализован на базе по меньшей мере одного сервера, оснащенного программными и логическими элементами для выполнения приписанных ему функций. API сервис предоставляет интерфейсы для регистрации источников данных и инициализации операции транспортировки данных, а также интерфейсы к релевантным метрикам операций, выполненных Системой, ведет журнал событий, и передает команды на выполнение заданий от Пользователя к Планировщику 50 и Рабочему Узлу 60, а также отчеты и уведомления о статусе запланированных и проведенных операций.
[0040] При получении запроса на подтверждение доступности источник данных 30 запускает процедуру проверки, включающую проверку доступности источника (проверка доступности по сети / сетевой связанности), проверку совместимости (проверка форматов и протоколов передачи данных), авторизацию пользователя на источнике данных 30, проверку наличия разрешения на доступ к данным, хранимых в источнике данных, с уточнением набора прав доступа (только чтение данных, только запись данных, чтение и запись данных, отсутствие разрешений). API-сервис 20 ожидает поступление ответа от источника данных в течение периода ожидания, заранее заданного разработчиком в настройках API-сервиса 20. Например, период ожидания может составлять величину от доли секунды до десятков секунд.
[0041] Источник данных 30 возвращает в API-сервис 20 ответ с результатами проверки, включая подтверждение доступности по сети, подтверждение совместимости форматов и протоколов, подтверждение авторизации пользователя, подтверждение разрешения на доступ к данным. API-сервис 20 анализирует содержание ответа с учетом времени ожидания.
[0042] В случае, если API-сервис 20 по истечении заданного периода ожидания не получил ответ от источника данных с подтверждением доступности источника данных по сети, API-сервис считает источник данных недоступным и направляет в устройство 10 пользователя сообщение о недоступности источника данных для отображения его пользователю посредством UI 11.
[0043] В случае, если API-сервис 20 в течение заданного периода ожидания получает ответ с подтверждением несовместимости либо по истечении периода ожидания не получает ответ от источника данных 30 с подтверждением совместимости форматов и/или протоколов передачи данных, API-сервис 20 считает источник данных 30 недоступным и направляет в устройство 10 пользователя сообщение об ошибке совместимости при установлении соединения для отображения его пользователю посредством UI 11.
[0044] В случае, если API-сервис 20 в течение заданного периода ожидания получает ответ от источника данных 30, содержащий информацию об отказе в авторизации пользователя, API-сервис 20 направляет в устройство 10 пользователя сообщение об отказе в авторизации (запет доступа) для отображения его пользователю посредством UI 11.
[0045] В случае, если API-сервис 20 по истечении заданного периода ожидания не получил ответ от источника данных 30 с подтверждением авторизации пользователя на источнике данных, API-сервис 20 считает источник данных 30 недоступным и направляет в устройство 10 пользователя сообщение о недоступности источника данных 30 с указанием статуса «источник данных не отвечает» для отображения его пользователю посредством UI 11.
[0046] В случае, если API-сервис 20 в течение заданного периода ожидания получает ответ от источника данных 30, содержащий информацию об отказе в доступе к данным, хранимым на источнике, API-сервис 20 направляет в устройство 10 пользователя сообщение об отказе в доступе к данным для отображения его пользователю посредством UI 11.
[0047] В случае, если API-сервис 20 по истечении заданного периода ожидания не получил ответ с подтверждением набора прав доступа к данным, хранимым на источнике, API-сервис 20 направляет в устройство 10 пользователя сообщение об отказе в доступе к данным для отображения его пользователю посредством UI 11.
[0048] В случае успешного получения всех запрашиваемых подтверждений от источника данных 30 APl-сервис 20 производит регистрацию источника данных 30, после чего API-сервис 20 направляет в устройство 10 пользователя подтверждение регистрации источника данных для отображения его пользователю посредством UI 11.
[0049] После того, как необходимое число источников данных 30 зарегистрировано, может быть запущен процесс перемещения/транспортировки данных в облачной среде с использованием зарегистрированных источников, причем может быть выполнена единоразовая транспортировка данных между зарегистрированными источниками или транспортировка данных по расписанию между зарегистрированными источниками.
[0050] Единоразовая транспортировка является разовой операцией, при которой пользователь не планирует повторение этой операции без изменения параметров и не автоматизирует процесс повторного выполнения. Единоразовая транспортировка является, как правило, основной операцией при разработке и отладке алгоритмов обработки данных, а также при выполнении задач исследования данных. Далее процесс перемещения данных будет описан со ссылками на Фиг. 2, 3 и 4.
[0051] На первом этапе (100) пользователь посредством устройства 10 формирует запрос на объединение/перемещение первого набора данных из первого источника данных (ИД) 30 и второго набора данных из второго ИД (31) в целевом ИД 40, причем ИД 30, ИД 31 или ИД 40 могут находиться как в одном облаке (т.е. логическом пуле, logical pools) с другими упомянутыми ИД, так и в разных облаках. В альтернативном варианте реализации представленного решения пользователь может задать несколько целевых ИД 40 для параллельного перемещения первого и второго наборов данных в несколько ИД 40.
[0052] Для формирования запроса пользователь заполняет форму запроса к API-сервису 20 с использованием UI 11 пользователя. В упомянутой форме запроса пользователем могут быть указаны: идентификаторы ИД 30, ИД 31 и ИД 40 (например, имя ИД, IP-адрес или пр.), тип транспортировки (единоразовая или по расписанию), авторизационную информацию (токены, пары «логин-пароль»), адреса и идентификаторы объектов, содержащих перемещаемых данные, и перечень перемещаемых данных, адреса и идентификаторы объектов, в которые будут перемещены данные, параметры приоритета выполнения операции. Заполненная форма может быть сохранена в модуле UI 11 пользователя для целей транспортировки по расписанию, а также для целей автоматизированной обработки данных. Также указывается информация об условии перемещения данных (с удалением данных из источника после перемещения либо сохранения копий данных с указанием версии набора данных, либо без этого).
[0053] Форма запрос и запрос также могут содержать поля для ввода и передачи таких параметров как необходимость применение кода коррекции ошибок, передача инкремента (добавления) данных, применяемого алгоритма проверки целостности данных, условий в случае выполнения задачи Планировщиком при выполнении этих условий, информацию об источниках метаданных и инструкции по перемещению метаданных, параметрах параллельной передачи данных (перемещение данных с консолидацией или без консолидации из нескольких источников либо перемещение в адрес несколько целевых источников -получателей данных).
[0054] Например, пользователь может направить запрос на объединение по меньшей мере одной фотографий, сохраненной в ИД 30, и метаданных, например, характеризующих свойства файла, а именно имя файла, дата создания, размер файла, хеш сумма и т.д., сохраненных в ИД 31 в ИД 40. Соответственно, упомянутый запрос на объединение данных будет дополнительно содержать:
- ID пользователя;
- данные для авторизации пользователя;
- инструкции по объединению данных: разово или по расписанию;
- параметр приоритета перемещения, определяющего очередность выполнения операции перемещения;
- по меньшей мере одно условие, выбираемое из:
необходимость применения кода коррекции ошибок, например, для загрузки первого или второго набора данных аз альтернативного ИД, в котором хранится копия данных;
передача инкремента (добавления) данных, например, указывающего автора первого набора данных;
ID применяемого алгоритма проверки целостности данных;
условие для выполнения переноса данных, например, которое может указывать на то, что перенос данных в ИД 40 будет выполнено только при наличии свободного места для хранения данных или указывающее значение времени, до истечения которого следует завершить перенос данных;
информацию об источниках метаданных и инструкции по перемещению метаданных, например, метаданных, характеризующих свойства изображения, такие как фамилии тех, кто изображен на фото или тэги с указанием местоположения, где была сделана фотография;
параметрах параллельной передачи данных, указывающих на перемещение данных с консолидацией или без консолидации из нескольких источников либо перемещение в адрес несколько целевых источников - получателей данных.
[0055] После получения упомянутого запроса (101) API-сервис 20 анализирует инструкции по объединению данных, и идентифицирует его, например, как запрос на единоразовую транспортировку данных между зарегистрированными ИД 30, ИД 31 и ИД 40, после чего проверяет регистрацию всех источников данных, участвующих в перемещении данных. Для проверки регистрации API-сервис 20 обращается к памяти, которой он оснащен, в которой содержится информация о зарегистрированных ИД. Если API-сервис 20 определил, что по меньшей мере один ИД не зарегистрирован, то на устройство 10 пользователя направляется уведомление о наличии незарегистрированного ИД.
[0056] Если все ИД зарегистрированы, то API-сервис 20 формирует запрос, содержащий необходимую последовательность операций по перемещению данных, в частности команду на перемещение первого набора данных из ИД 30 и второго набора данных из ИД 31 в ИД 40, также параметр приоритета перемещения, определяющего очередность выполнения операции перемещения, и направляет сформированный запрос в адрес Планировщика задач 50, который может быть реализован на базе по меньшей мере одного вычислительного устройства, оснащенного логическими элементами для выполнения приписанным ему функций. Дополнительно в Планировщик 50 может быть направлена и другая информация, содержащаяся в запросе на перемещение данных. Планировщик задач 50 выполняет обработку очереди задач транспортировки, опрашивает систему о наличии подходящих событий, которые повлекут инициализацию искомых операций, ведет журнал событий.
[0057] При поступлении упомянутого запроса на перемещение Планировщик системы 50 в соответствии с параметром приоритета добавляет новую задачу на перемещение (транспортировку) данных в очередь и высылает подтверждение о постановке в очередь в адрес API-сервиса 20. При этом Планировщик 50 также может включить в состав подтверждения информацию о прогнозном сроке начала выполнения задачи, месте задачи в очереди, приоритете задачи (в случае если Планировщик 50 имеет несколько очередей различного приоритета), и другую информацию.
[0058] В случае, если запрос на перемещение данных содержит несколько целевых ИД 40, то Планировщика задач 50 формирует несколько задач на перемещение данных с одинаковым параметром приоритета в зависимости от количества ИД 40 и добавляет все задачи в очередь, причем каждый процесс транспортировки данных в ИД 40 определяется как отдельный самостоятельный процесс на этапе выполнения, а все процессы при параллельной транспортировке данных создаются с одинаковым приоритетом.
[0059] При получении подтверждения от Планировщика 50 о постановке задачи в очередь API-сервис 20 направляет в адрес устройства 10 пользователя подтверждение о постановке задачи в очередь для отображения пользователю посредством Ul 11.
[0060] Планировщик 50 системы обрабатывает очередь задач в соответствии с заранее заданными алгоритмами приоритезации и параметрами приоритета конкретной задачи, включая, но не ограничиваясь методами приоритезации: без дополнительной приоритезации (метод FIFO, первый пришел-первый вышел), с приоритезацией в виде выделения приоритетных очередей (каждая очередь имеет свой приоритет, всегда сначала выполняются задания из очереди с большим приоритетом), приоритезации пропорционального выделения ресурсов (в этом случае боле приоритетная очередь получает больше ресурсов для выполнения задачи, например, для случая трех очередей из очереди высшего приоритета выполняются четыре задания, далее выполняются два задания из очереди среднего приоритета, далее одна задача из очереди низшего приоритета, далее цикл повторяется), и другими методами и алгоритмами.
[0061] При необходимости выполнения задачи по условию Планировщик 50 приостанавливает обработку конкретной задачи до момента выполнения условия, после чего задача выполняется с высоким либо высшим приоритетом.
[0062] Дополнительно Планировщик 50 может быть выполнен с возможностью перестановки задачи на перемещение в очереди. Например, Планировщик 50 может быть оснащен памятью, в которой содержатся данные, описывающие время выполнения аналогичных задач на перемещение, которые могут быть введены разработчиком планировщика или сохранены планировщиком в качестве исторических данных при выполнении аналогичных задач на перемещение данных, с учетом маршрута передачи данных.
[0063] Соответственно, Планировщик 50 извлекает из запроса на перемещение данных значение времени, до истечения которого следует завершить перенос данных, извлекает из памяти данные, характеризующие время выполнения аналогичных задач на перемещение по заданному маршруту и на их основе определяет спрогнозированное время выполнения задачи на перемещение, после чего с учетом спрогнозированного времени выполнения других задач, содержащихся в очереди, и значений их приоритетов, осуществляет перестановку задачи на перемещение в очереди для ее выполнения в указанное значение времени. Упомянутая задача может быть переставлена как вперед по очереди для ее выполнения в заданное значение времени, так и назад для того, чтобы другие задачи были выполнены в указанное для них значение времени.
[0064] При поступлении задачи из очереди на исполнение Планировщик 50 системы передает задачу к исполнению (102) в Рабочий Узел 60, который при поступлении задачи на выполнение выполняет следующий набор действий -этапов.
[0065] На этапе 103 Рабочий Узел 60 выполняет определение интерфейсов для работы с ИД 30, ИД 31 и ИД 40, после чего осуществляет подключение к упомянутым ИД. Определение упомянутых интерфейсов и установление соединения может осуществляться известными методами автоматически либо на основе ранее сделанных настроек сетевой и вычислительной среды с учетом протоколов передачи данных, реализованных на различных уровнях сетевой модели OSI (https://ru.wikipedia.orq/wiki/Сетевая модель OSI), включая Прикладной уровень (например, при учете и применении условий и триггеров), уровень Представления (например, при применении шифрования данных при передаче между источниками данных), Сеансовый уровень (например, для установления сеансов связи при передаче по расписанию). При этом ИД могут быть подключены к сети передачи на Транспортном, Сетевом и Канальном уровнях.
[0066] После того, как Рабочий Узел 60 подключился к упомянутым ИД, Рабочий Узел 60 проводит предварительную оценку возможности проведения задачи по перемещению данных на основе имеющихся ресурсов. Например, Рабочий Узел 60 может определить итоговый объем данных, сохраненных в ИД 30 и ИД 31, предназначенных для перемещения, и определить наличие свободного места для хранения данных в ИД 40. Если Рабочим Узлом определено, что имеющихся ресурсов недостаточно для выполнения упомянутой задачи, то Рабочий Узел 60 направляет соответствующее уведомление на устройство 20 пользователя через АРI-сервис 20. Если упомянутых ресурсов достаточно, то Рабочий Узел 60 переходит к следующему этапу (105).
[0067] На следующем этапе (105) Рабочий Узел 60 определяет способ взаимодействия с целевым ИД 40 на основе объема данных и формата перемещаемых данных и сохраненных в упомянутых ИД. Например, Рабочий Узел 60 может определить, что файлы в целевом ИД 40 хранятся в формате jpeg или занимают одинаковый объем данных, и на основе данной информации в качестве способа взаимодействия с ИД 40 определить, что перенос данных следует выполнить только определенного формата, т.е. jpeg, а объем данных не должен превышать объема данных файлов, сохраненных в ИД 40, если только разработчиком не установлены разрешения на сохранения в ИД 40 данных любого формата и объема. Указанный формат файлов приведен в качестве примера, при этом описанным в настоящей заявке способом могут быть обработаны датасеты структурированных и неструктурированных файлов, содержащих звуковую и голосовую информацию в форматах vaw, MP3 и других, видео информацию в форматах avi, MP4 и других, а также представления файлов в форматах plain text, csv, табличных форматах представления, в кодированном виде, например, используя представление Base64, бинарное представление, представление в форматах JSON и xml и в других форматах и представлениях.
[0068] Соответственно, если разрешения на сохранения в ИД 40 данных любого формата и объема не установлены и по меньшей мере один файл из перемещаемых файлов в ИД 30 или ИД 31 сохранен в формате, отличном от jpeg (например, в формате png), или его объем в несколько раз превышает объем файлов, сохраненных в ИД 40, то в соответствии с определенным ранее способом взаимодействия с ИД 40 такой файл не будет перенесен, а пользователю устройства 10 будет направлено соответствующее уведомление.
[0069] После того, как способ взаимодействия с целевым ИД 40 определен, Рабочий Узел 60 переходит к этапу 106 построения оптимального маршрута перемещения данных от ИД 30 и ИД 31 в ИД 40 в сети передачи данных. В качестве сети передачи данных могут выступать: локальная вычислительной сети; разделенная на сегменты и домены сеть Интранет; виртуальная вычислительная среда в облачной вычислительной инфраструктуре; виртуальная вычислительная среда, осуществляющая передачу данных по выделенным каналам через сеть Интернет либо через другие сети; либо комбинации упомянутых сетей.
[0070] Оптимальный маршрут может быть определен широкого известными методами, причем для определения оптимального маршрута Рабочий Узел 60 определяет маршрут от ИД 30 и ИД 31 до ИД 40, а также от ИД, в которых хранятся копии данных ИД 30 или ИД 31, которые следует переместить, до ИД 40, после чего выбирается оптимальный маршрут для перемещения данных, например, на основе анализа Рабочим узлом 60 времени задержи при передачи данных по маршруту от ИД 30 и ИД 31 до ИД 40 и от ИД, в которых хранятся копии данных, до ИД 40. Информация ИД с копиями данных, сохраненных в ИД 30 и ИД 31, может быть заранее сохранена в памяти Рабочего Узла 60 или представлена пользователем в запросе на перемещение данных.
[0071] После того, как оптимальный маршрут передачи данных определен, Рабочий Узел 60 направляет соответствующий сигнал для проверки работоспособности ИД, задействованных для перемещения данных, и подтверждения их работоспособности и готовности передать и принять данные соответственно, после чего, в зависимости от технологии проверки целостности данных, назначает первому и второму набору данных, предназначенных для перемещения, параметры целостности данных. В качестве параметра целостности может быть назначена контрольная сумма или хеш-сумма, определенные Рабочим узлом 60 известными методами для первого и второго наборов данных, либо в качестве параметра целостности может быть назначен размер данных.
[0072] Далее Рабочий Узел 60 переходит к этапу перемещения данных 107 в соответствии с условиями перемещения данных, в частности, Рабочий Узел 60 производит чтение данных из ИД 30 и ИД 31 или из ИД, в которых хранятся копии данных согласно определенному ранее маршруту, и передачу (транспортировку) данных в адрес целевого ИД 40, а также с учетом кода коррекции ошибок, инкремента (добавления) данных и параметров параллельной передачи данных. Например, в соответствии с условиями перемещения данных сохранные в ИД 40 первый и второй наборы данных могут дополниться указанными метаданными, либо если перемещается множество фотографий, то в соответствии с условиями перемещения данных метаданные могут быть сохранены как для каждой фотографии, так и для заданного количества фотографий.
[0073] В процессе транспортировки Рабочий Узел 60 собирает и анализирует информацию о целостности передаваемых данных 108 посредством сравнения параметров целостности первого и второго набора данных и параметров целостности этих же данных, перенесенных в целевой ИД 40, определенных описанным выше способом после их переноса. В альтернативном варианте реализации представленного решение проверка целостности данных может быть проверена посредством кодирования первого и второго наборов данных, полученных от ИД, переноса их в целевой ИД 41 с последующим декодированием. Если полученные после декодирования данные соответствуют данным из первого или второго набора данных, например, соответствует их размер, то Рабочий Узел 60 принимает решение об успешном завершении переноса данных.
[0074] Соответственно, аналогичное решение об успешном завершении переноса данных Рабочий Узел 60 принимает в случае, если упомянутые параметры целостности данных совпадают. Подтверждение об успешной транспортировке соответствующего набора и/или фрагмента данных направляется Рабочим Узлом 60 в Планировщик 50, причем в случае отсутствия подтверждения успешной транспортировки Планировщик 50 направляет команду в Рабочий Узел 60 на повторную передачу до момента подтверждения успеха. Также команда на повторную передачу данных набора и/или фрагмента данных направляется Планировщиком 50 в случае проблем и сбоев в процессе передачи.
[0075] Также уведомления и отчеты о проведенных операциях и их статусе направляются через API-сервис 20 в устройство 10 пользователя, при необходимости обогащенные уведомлениями с параметрами выполняемой задачи.
[0076] Дополнительно Рабочий Узел 60 выполнен с возможностью синхронизации завершения процесса перемещения данных из ИД 30 и 31 с учетом инкремента. Процесс синхронизации заключается, в частности, в том, чтобы к моменту завершения передачи и фотографий, и метаданных все пары были собраны, а каждой фотографии сопоставлены свои метаданные, каждому набору метаданных сопоставлена своя фотография. Соответственно, Рабочий Узел 60 проверяет, были перенесены в ИД 40 первый и второй наборы данных и инкремент, прежде чем перейти к следующей задаче или следующему этапу задачи.
[0077] Также дополнительно перед перемещением первого или второго набор данных Рабочий Узел 60 проверяет, содержит ли ИД 40 аналогичный набор данных. Если ИД 40 не содержит аналогичный набор данных, то Рабочий Узел 60 после перемещения первого или второго набора данных назначает им первую версию. Если ИД 40 уже содержит аналогичный набор данных, то перемещаемому первому или второму набору данных назначается следующая версия данных в зависимости от версии аналогичного набора данных.
[0078] После завершения всех операций поставленных задач Планировщик 50, выполняющий мониторинг перемещения данных Рабочим Узлом 60, фиксирует метрики 110, связанные с самой операцией и использованием ресурсов, в частности, время перемещения файлов первого и второго набора данных, количество занимаемой ими памяти, количество переданных файлов, подтверждение выполнения операции в заданное время, значение задержки при передаче данных и т.д. С помощью API-Сервиса 20 пользователю устройство 10, а также другим модулям и системам может быть предоставлен доступ к релевантным метрикам для анализа и подготовки отчетов.
[0079] В случае если это предусмотрено планом транспортировки Планировщик задач 50 при получении подтверждения направляет в адрес API- сервиса 20 подтверждение успешной транспортировки набора и/или фрагмента данных, на основании которого API-сервис 20 выдает в адрес ИД команду на удаление соответствующих данных для исключения хранения избыточных копий данных.
[0080] Транспортировка данных по расписанию является операцией, повторяющейся без изменения параметров, с возможностью автоматизации процесса повторного выполнения. Транспортировка данных по расписанию является, как правило, основной операцией при промышленной эксплуатации информационных систем и вычислительных комплексов обработки данных, включая системы, работающие в режиме реального времени. Если пользователь при формировании запроса перемещение данных указал в качестве инструкции по объединению данных - перемещение данных по расписанию, то система обработки данных работает следующим образом.
[0081] На первом этапе (100) пользователь описанным ранее способом посредством устройства 10 формирует запрос на объединение первого набора данных из первого источника данных (ИД) 30 и второго набора данных из второго ИД (31) в целевом ИД 40. При этом указанные в запросе правила приоритета соблюдения условий включают, но не ограничиваются, проверку готовности данных для транспортировки, внешнего по отношению к системе разрешения на транспортировку (бизнес-логика), завершение задач транспортировки до конкретного момента, заданного пользователем, начало выполнения задачи по расписанию и другие параметры. Конкретные приоритеты для перечисленных правил и условия их применения могут изменяться в зависимости от условий применения системы, составляющей предмет изобретения.
[0082] Далее описанным ранее способом 101 запрос на перемещение данных направляется в API-сервис 20. При получении запроса API-сервис 20 анализирует полученный запрос, идентифицирует его как запрос на транспортировку данных по расписанию, проверяет регистрацию всех источников данных, участвующих в перемещении данных, формирует запрос, содержащий необходимую последовательность операций по перемещению данных и направляет сформированный запрос в адрес Планировщика задач 50.
[0083] При первом поступлении запроса на перемещение по расписанию Планировщик 50 системы добавляет новую задачу транспортировки в начало очереди, получает подтверждение готовности данных к транспортировке от источника данных и высылает подтверждение о постановке в очередь в адрес API-сервиса 20. При этом Планировщик 50 также может включить в состав подтверждения информацию о прогнозном сроке начала выполнения задачи, месте задачи в очереди, приоритете задачи (в случае если Планировщик 50 имеет несколько очередей различного приоритета), и другую информацию.
[0084] После этого Планировщик 50 осуществляет расчет времени на выполнение операции транспортировки данных, заданной расписанием, как отношение объема данных к скорости передачи данных, замеряемой на основе предыдущих транспортировок данных по конкретному маршруту. В случае если прогнозное время завершения транспортировки наступает после определенного пользователем момента, повышает приоритет задачи и перемещает задачу вперед в очереди на выполнение.
[0085] Планировщик 50 осуществляет сбор, анализ и хранение необходимых метрик, описывающих процесс транспортировки данных, в том числе информацию о скорости передачи данных по конкретным маршрутам по результатам измерений при выполнении предыдущих задач транспортировки данных.
[0086] Когда очередь для выполнения задания подошла, Планировщик 50 проверяет подтверждение готовности данных к транспортировке от источника данных, сравнивает текущее время и время начала выполнения задачи по расписанию, а также прогнозное время завершения выполнения задачи и время завершения, заданное пользователем. Если момент запланированного начала выполнения задания не наступил, и задача транспортировки будет завершена в требуемое время, Планировщик 50 ставит задачу на второе место в очереди, повторяет вычисление прогнозного времени завершения выполнения задачи транспортировки, сравнивает с временем завершения, заданным Пользователем 50, и в случае положительного ответа о завершении задач вовремя, принимает в работу следующую по приоритету задачу из очереди, для которой не задан момент выполнения.
[0087] В случае если прогнозное время завершения задачи транспортировки, переставленное на второе место в очереди, наступит после момента времени завершения транспортировки, заданного Пользователем, задача транспортировки по расписанию возвращается на первое место в очереди, и Планировщик 50 приступает к ее выполнению.
[0088] Если очереди есть две или более задачи на транспортировку данных, задачи сначала переставляются в очереди в порядке наступления момента начала выполнения и с учетом прогнозного времени завершения. Если момент начала выполнения для каждой из этих задач не наступил, и обе задачи по прогнозу будут завершены до момента, заданного Пользователем, Планировщик 50 принимает в работу задачу с приоритетом № 3 либо ниже по аналогии с алгоритмом, описанным ранее способом.
[0089] В случае если прогнозные моменты завершения выполнения двух или более задач транспортировки требуют изменения порядка выполнения в соответствии с условиями приоритезации, описанными ранее, Планировщик 50 осуществляет соответствующее изменение в очереди задач
[0090] Одновременно с первым поступлением запроса на перемещение по расписанию Планировщик 50 системы добавляет новую задачу транспортировки в расписание на транспортировку в будущих периодах, резервируя место в очереди.
[0091] Так как объем данных, предназначенных к транспортировке, может изменяться при повторном выполнении операций, Планировщик 50 осуществляет вычисление прогнозного времени начала и завершения операции заблаговременно до наступления момента выполнения в соответствии с расписанием, а также проверяет доступность источников данных и их готовность к транспортировке. Период времени для заблаговременного прогноза задается при установке системы и корректируется на фиксированную либо переменную величину в соответствии с успешным либо неуспешным по времени завершением предыдущей задачи транспортировки по соответствующему маршруту. Для своевременного выполнения задач транспортировки в системе также может быть задан пороговый интервал для резерва времени на компенсацию ошибки прогнозирования.
[0092] В случае неготовости источников данных к транспортировке (недоступность, отсутствие авторизации на источнике, отсутствие прав доступа и т.д.) Планировщик 50 направляет соответствующее уведомление в адрес API-сервиса 20, который в свою очередь пересылает соответствующее предупреждение (Алерт) о риске невыполнения транспортировке в Ul 11 Пользователя для принятия необходимый действий для восстановления доступности источников.
[0093] В случае готовности источников информация о прогнозируемых моментах времени начала и завершения транспортировки и статусе готовности источников сохраняется в журналах событий Планировщика 50.
[0094] После выполнения всех условий по приоритетам и условиям выполнения транспортировки Планировщик системы передает задачу к исполнению в Рабочий Узел 60. Перемещение данных рабочим узлом выполняется описанным ранее способом в соответствии с этапами 102 - 109.
[0095] В процессе транспортировки Планировщик 50 собирает и анализирует информацию о целостности передаваемых данных, получает подтверждение об успешной транспортировке соответствующего набора и/или фрагмента данных, а в случае отсутствия подтверждения успешной транспортировки контролирует и выполняет повторную передачу до момента подтверждения успеха.
[0096] АРI-сервис 20 направляет уведомления и отчеты о проведенных операциях и их статусе Пользователю, при необходимости обогащая уведомления параметрами выполняемой задачи. В случае проблем и сбоев в процессе передачи Планировщик 60 осуществляет повторную передачу соответствующего набора и/или фрагмента данных.
[0097] После завершения операции поставленных задач Система фиксирует метрики, связанные с самой операцией и использованных ресурсов. Пользователю и другим модулям, и системам предоставляется доступ к релевантным метрикам для анализа и подготовки отчетов.
[0098] Планировщик 60 опрашивает систему о наличии подходящих событий, которые повлекут инициализацию искомых операций.
[0099] Пользователь имеет возможность произвести остановку детерминированного процесса (запланированного либо уже выполняемого) через пользовательский интерфейс. При том через UI 11 пользователя в адрес API -сервиса 20 направляется соответствующий запрос на остановку операций, включая идентификаторы операций, условия проведения (период времени, в который эти операции должны быть выполнены) и другие необходимые параметры. При получении запроса на остановку API-сервис 20 запрашивает подтверждение операции остановки, и после получения подтверждения Пользователя направляет соответствующую команду Планировщику и Рабочему узлу.
[0100] При прерывании операции должны быть выполнены необходимые действия для сохранения данных, включая приостановку выполнения либо отмену операций удаления дублируемых данных.
[0101] В случае параллельной передачи данных от источника данных к целевому источнику система рассматривает каждый процесс транспортировки как отдельный самостоятельный процесс на этапе выполнения. Все процессы при параллельной транспортировке данных должны создаваться с одинаковым приоритетом.
[0102] Удаление дублированных данных осуществляется по завершении процессов параллельного переноса части данных либо всего набора перемещаемых данных.
[0103] При прогнозировании времени выполнения параллельных транспортировок данных принимается для построения прогнозов длительность выполнения процесса с максимальным временем выполнения.
[0104] В случае если Планировщик 50 и Рабочий узел 60 фиксируют большое количество ошибок при передаче, либо не получают подтверждение целостности передаваемых данных, Планировщик прерывает процесс передачи и направляет уведомление Пользователю через API-сервис 20 для принятия необходимых действий, с одновременным формированием отчета об ошибке.
[0105] Представленное решение обеспечивает гарантированное своевременное контролируемое безопасное перемещение больших и сверхбольших объемов структурированных и неструктурированных данных и потоков данных в облачных средах и в локальных средах, построенных с использование облачных технологий, включая виртуализацию, масштабирование, ограничение доступа, коллективную работу сданными, потоковую и онлайн обработку данных, непрерывную и пакетную обработку данных, консолидацию трансформацию данных, разметку данных, сбор метаданных, синхронную и асинхронную обработку потоков данных, резервирование, поставку данных к нужному моменту либо по готовности, удаление избыточных экземпляров и копий данных и другие технологии и методы
[0106] В общем виде (см. фиг. 5) вычислительное устройство (200) содержит объединенные общей шиной информационного обмена один или несколько процессоров (201), включая вычислительные для ускорения вычислений - модули GPU (Графический процессор, Англ. graphics processing unit), TPU (Тензорный процессор, англ. Tensor Processing Unit), lPU (Интегрированное процессорное устройство, англ. integrated Processing Unit), а также модулей на основе микропроцессоров FPGA и ASlC, средства памяти, такие как ОЗУ (202) и ПЗУ (203), интерфейсы ввода/вывода (204), устройства (средства) ввода/вывода (205), и устройство (средство) для сетевого взаимодействия (206).
[0107] Процессор (201) (или несколько процессоров, многоядерный процессор и т.п.) может быть реализован на базе архитектуры CISC, RISC, ARM и др., и выбираться из ассортимента устройств, широко применяемых в настоящее время, например, таких производителей, как: Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™, Huawei Kunpeng™ и Nvidia™, IBM™, Байкал™, IVA™ и т.п. Под процессором или одним из используемых процессоров в устройстве (200) также необходимо учитывать ускоритель вычислений, реализованный, например, в виде графического процессора, например, GPU NVIDlA с программной моделью, совместимой с CUDA, Graphcore, TPU (Тензорный процессор, англ. Tensor Processing Unit), IPU (Интегрированное процессорное устройство, англ. Integrated Processing Unit), а также модулей на основе микропроцессоров FPGA и ASIC, тип которых также является пригодным для полного или частичного выполнения способа, а также может применяться для обучения и применения моделей машинного обучения в различных информационных системах.
[0108] ОЗУ (202) представляет собой оперативную память и предназначено для хранения исполняемых процессором (201) машиночитаемых инструкций для выполнения необходимых операций по логической обработке данных. ОЗУ (202), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). При этом, в качестве ОЗУ (202) может выступать доступный объем памяти графической карты, графического процессора или других ускорителей вычислений.
[0109] ПЗУ (203) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.
[0110] Для организации работы компонентов устройства (200) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (204). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, lrDa, FireWire, СОМ, SATA, IDE, USB (2.0, 3.0, 3.1, micro, mini, type C), HDMl, DVI, VGA, RJ45, одномодовые и многомодовые оптические интерфейсы SC и ST, WiFi, NVLink, InfiniBand, STM, ATM и т.п.
[0111] Для обеспечения взаимодействия пользователя с вычислительным устройством (200) применяются различные средства (205) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.
[0112] Средство сетевого взаимодействия (206) обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п.В качестве одного или более средств (206) может использоваться, но не ограничиваться: Ethernet карта, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Wi-Fi модуль, одномодовые и многомодовые оптические интерфейсные модули, NVLink, lnfiniBand, STM, ATM и др.
[0113] Дополнительно могут применяться также средства спутниковой навигации в составе устройства (200), например, GPS, ГЛОНАСС, BeiDou, Galileo. Сигналы точного времени, полученные от упомянутых средств спутниковой навигации, могут использоваться для синхронизации работы географически разнесенных устройств.
[0114] Конкретный выбор элементов устройства (200) для реализации различных программно-аппаратных архитектурных решений может варьироваться с сохранением обеспечиваемого требуемого функционала.
[0115] Модификации и улучшения вышеописанных вариантов осуществления настоящего технического решения будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящего технического решения ограничен только объемом прилагаемой формулы изобретения.
название | год | авторы | номер документа |
---|---|---|---|
СПОСОБ И СИСТЕМА РАСПРЕДЕЛЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ РЕСУРСОВ ДЛЯ ОБРАБОТКИ ЗАПРОСОВ ПОЛЬЗОВАТЕЛЕЙ | 2023 |
|
RU2818490C1 |
СПОСОБ И СИСТЕМА УПРАВЛЕНИЯ ОБЪЕКТАМИ И ПРОЦЕССАМИ В ВЫЧИСЛИТЕЛЬНОЙ СРЕДЕ | 2023 |
|
RU2820753C1 |
СИСТЕМА ХРАНЕНИЯ ДАННЫХ | 2023 |
|
RU2824327C1 |
СПОСОБ И СИСТЕМА ПРОВЕДЕНИЯ ТРАНЗАКЦИЙ В СЕТИ С ИСПОЛЬЗОВАНИЕМ СЕТЕВЫХ ИДЕНТИФИКАТОРОВ | 2003 |
|
RU2376635C2 |
СИСТЕМА УПРАВЛЕНИЯ И ДИСПЕТЧЕРИЗАЦИИ КОНТЕЙНЕРОВ | 2019 |
|
RU2751576C2 |
СПОСОБ, СИСТЕМА И КОМПЬЮТЕРНОЕ УСТРОЙСТВО ДЛЯ ПРЕДОСТАВЛЕНИЯ УСЛУГ СВЯЗИ МЕЖДУ РЕСУРСАМИ В СЕТЯХ СВЯЗИ И ИНТЕРНЕТ С ЦЕЛЬЮ ПРОВЕДЕНИЯ ТРАНЗАКЦИЙ | 2002 |
|
RU2273107C2 |
СИСТЕМА И СПОСОБ УПРАВЛЕНИЯ СЕРВИСОМ ПРЕДОСТАВЛЕНИЯ ВИРТУАЛЬНЫХ КАНАЛОВ | 2022 |
|
RU2825320C2 |
СПОСОБ И СИСТЕМА ФОРМИРОВАНИЯ МАРШРУТА ПЕРЕДВИЖЕНИЯ ОТ ДВЕРИ ДО ДВЕРИ | 2023 |
|
RU2807495C1 |
СПОСОБ И УСТРОЙСТВО ДЛЯ ГЕНЕРАЦИИ УДАЛЕННЫХ ВЫЗОВОВ | 2023 |
|
RU2814437C1 |
Способ сбора и обработки данных с измерением эффективности рекламных материалов и рекламных кампаний для автоматизированного подбора онлайн рекламных площадок с целью размещения рекламных материалов. | 2021 |
|
RU2774604C1 |
Изобретение относится к области хранения и обработки данных. Техническим результатом является повышение надежности при перемещении данных. Технический результат достигается за счет выполнения этапов, на которых: получают посредством API-сервиса запрос на перемещение данных из первого и второго источников данных в целевой источник данных, содержащий информацию об условиях перемещения данных; формируют посредством API-сервиса запрос, содержащий последовательность операций по перемещению данных, а также параметр приоритета, и направляют сформированный запрос в Планировщик задач; добавляют посредством Планировщика задачу в очередь в соответствии с параметром приоритета; передают задачу на исполнение; определяют список интерфейсов для работы с источниками данных; выполняют оценку возможности исполнения задачи; определяют способ взаимодействия с целевым источником данных; определяют оптимальный маршрут перемещения данных; проверяют работоспособность источников данных; осуществляют чтение данных из источников данных и передачу упомянутых данных в адрес целевого источника в соответствии с условиями перемещения данных. 2 н. и 12 з.п. ф-лы, 5 ил.
1. Способ перемещения данных в облачной среде, содержащий этапы, на которых:
- получают посредством API-сервиса 20 запрос на перемещение первого набора данных из первого источника данных (ИД) 30 и второго набора данных из второго ИД 31 в целевой ИД 40, содержащий по меньшей мере информацию об условиях перемещения данных;
- формируют посредством API-сервиса 20 запрос, содержащий последовательность операций по перемещению данных, а также параметр приоритета перемещения, определяющий очередность выполнения операции перемещения, и направляют сформированный запрос в адрес Планировщика задач 50;
- добавляют посредством Планировщика задач 50 новую задачу на перемещение данных в очередь в соответствии с упомянутым параметром приоритета;
- извлекают посредством Планировщика задач 50 из запроса на перемещение данных значение времени, до истечения которого следует завершить перенос данных;
- извлекают посредством Планировщика задач 50 из памяти данные, характеризующие время выполнения аналогичных задач на перемещение по заданному маршруту;
- на основе извлеченных данных посредством Планировщика задач 50 определяют спрогнозированное время выполнения задачи на перемещение;
- осуществляют посредством Планировщика задач 50 перестановку задачи на перемещение данных в очереди для ее выполнения в указанное значение времени с учетом спрогнозированного времени выполнения других задач, содержащихся в очереди, и значений их приоритетов;
- при поступлении задачи из очереди на исполнение передают задачу в Рабочий Узел 60;
- определяют посредством Рабочего Узла 60 список интерфейсов для работы с ИД 30, ИД 31 и ИД 40;
- выполняют посредством Рабочего Узла 60 оценку возможности проведения задачи по перемещению данных на основе имеющихся ресурсов;
- определяют посредством Рабочего Узла 60 способ взаимодействия с целевым ИД 40 на основе объема данных и формата перемещаемых данных и сохраненных в упомянутых ИД;
- определяют посредством Рабочего Узла 60 оптимальный маршрут перемещения данных от ИД 30 и ИД 31 в ИД 40 на основе анализа задержки при передаче данных;
- проверяют посредством Рабочего Узла 60 работоспособность ИД, задействованных для перемещения данных;
- посредством Рабочего Узла 60 осуществляют чтение первого и второго набора данных из ИД 30 и ИД 31 и передачу упомянутых данных в адрес целевого ИД 40 в соответствии с условиями перемещения данных.
2. Способ по п. 1, характеризующийся тем, что ИД 30, ИД 31 и ИД 40 находятся в одном облаке (т.е. логическом пуле, logical pools).
3. Способ по п. 1, характеризующийся тем, что по меньшей мере один ИД 30, ИД 31 или ИД 40 находится в другом облаке по отношению упомянутыми ИД.
4. Способ по п. 1, характеризующийся тем, что передачу данных в адрес целевого ИД 40 осуществляют с учетом кода коррекции ошибок, инкремента данных или параметров параллельной передачи данных.
5. Способ по п. 1, характеризующийся тем, что дополнительно содержит этап, на котором проверяют регистрацию всех источников данных, участвующих в перемещении данных.
6. Способ по п. 1, характеризующийся тем, что запрос на перемещение данных содержит информацию о по меньше мере одном дополнительном целевом ИД, в который следует переместить первый и второй наборы данных, причем Планировщик задач 50 формирует несколько задач на перемещение данных с одинаковым параметром приоритета в зависимости от количества дополнительных ИД.
7. Способ по п. 1, характеризующийся тем, что для определения оптимального маршрута посредством Рабочего Узла 60 выполняют этапы, на которых:
- определяют маршрут от ИД 30 и ИД 31 до ИД 40, а также от ИД, в которых хранятся копии данных ИД 30 или ИД 31, которые следует переместить, до ИД 40;
- выбирают оптимальный маршрут для перемещения данных с учетом ИД, в которых хранятся копии данных.
8. Способ по п. 1, характеризующийся тем, что дополнительно выполняют этап проверки целостности перемещенных данных.
9. Способ по п. 1, характеризующийся тем, что дополнительно выполняют посредством Рабочего Узла 60 этап синхронизации завершения процесса перемещения данных из ИД 30 и 31, в том числе с учетом инкремента.
10. Способ по п. 1, характеризующийся тем, что дополнительно выполняют посредством Рабочего Узла 60 управление версиями перемещаемых данных.
11. Способ по п. 1, характеризующийся тем, что дополнительно фиксируют метрики, связанные с операцией перемещения данных и использованием ресурсов.
12. Способ по п. 1, характеризующийся тем, что выполнение операции транспортировки данных осуществляется в соответствии с заданным расписанием.
13. Способ по п. 1, характеризующийся тем, что первый или второй наборы данных содержат структурированные и/или неструктурированные данные и/или разнородные (мультимодальные) данные.
14. Система перемещения данных в облачной среде, содержащая по меньшей мере три ИД, API-сервис, Планировщик задач, по меньшей мере один Рабочий Узел, причем система выполнена с возможностью осуществлять способ по любому из пп. 1-13.
US 20210263894 A1, 26.08.2021 | |||
US 20200329101 A1, 15.10.2020 | |||
US 20210097020 A1, 01.04.2021 | |||
WO 2014178896 A1, 06.11.2014 | |||
СИСТЕМА И СПОСОБ ВЫПОЛНЕНИЯ ОЧЕРЕДИ ЗАПРОСОВ В ОТНОШЕНИИ ЦИФРОВЫХ ОБЪЕКТОВ | 2015 |
|
RU2609089C2 |
Авторы
Даты
2024-07-09—Публикация
2023-09-18—Подача