RU2609089C2 - System and method of performing queue of requests for digital objects - Google Patents

System and method of performing queue of requests for digital objects Download PDF

Info

Publication number
RU2609089C2
RU2609089C2 RU2015106007A RU2015106007A RU2609089C2 RU 2609089 C2 RU2609089 C2 RU 2609089C2 RU 2015106007 A RU2015106007 A RU 2015106007A RU 2015106007 A RU2015106007 A RU 2015106007A RU 2609089 C2 RU2609089 C2 RU 2609089C2
Authority
RU
Russia
Prior art keywords
request
task
server
subqueries
subquery
Prior art date
Application number
RU2015106007A
Other languages
Russian (ru)
Other versions
RU2015106007A (en
Inventor
Денис Сергеевич Кутуков
Петр Михайлович Резников
Original Assignee
Общество С Ограниченной Ответственностью "Яндекс"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество С Ограниченной Ответственностью "Яндекс" filed Critical Общество С Ограниченной Ответственностью "Яндекс"
Priority to RU2015106007A priority Critical patent/RU2609089C2/en
Priority to PCT/IB2015/054607 priority patent/WO2016135537A1/en
Publication of RU2015106007A publication Critical patent/RU2015106007A/en
Application granted granted Critical
Publication of RU2609089C2 publication Critical patent/RU2609089C2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/214Monitoring or handling of messages using selective forwarding

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • Economics (AREA)
  • General Physics & Mathematics (AREA)
  • Marketing (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

FIELD: electronics.
SUBSTANCE: invention relates to a server and a method of performing a queue of requests with respect to digital objects. Method involves obtaining from a client device the first request to execute the first task containing indication of digital objects from the first set of digital objects, separation of the first request into multiple subrequests, each of the subrequests contains information on the first task and indication of digital objects from the first set of digital objects, calculation of a unique identifier of a subrequest on the basis of its content, saving the subrequests and their identifiers in a storage of subrequests, receiving from the client device the second request for the second task execution, which indicates a digital object associated with the second request, determination of presence in the storage of subrequests a subrequest containing indication of the same digital object, the indication of which is contained in the second request, deleting in the found subrequest the indication of this digital object, execution of subrequests in respect to the digital objects, identifiers of which are contained in the subrequests.
EFFECT: technical result is eliminating conflicts when in series performing crossing requests.
28 cl, 6 dwg

Description

ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY

[1] Настоящая технология относится к системе и способу выполнения очереди запросов в отношении цифровых объектов.[1] This technology relates to a system and method for performing a queue of requests for digital objects.

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

[2] В современных компьютерных технологиях, пользователи онлайн сервисов зачастую направляют со своих клиентских устройств на серверы, обеспечивающие предоставление соответствующего сервиса, запросы на выполнение массовых операций. В некоторых случаях, пользователи направляют два или несколько последовательных запроса на выполнение различных операций. В некоторых случаях, два и более последовательных запросов на выполнение различных операций делаются в отношении двух и более множеств цифровых объектов. В некоторых случаях, данные два и более множества могут, по меньшей мере частично, пересекаться, что может вызывать конфликты при исполнении последовательных запросов в отношении пересекающихся множеств цифровых объектов. В качестве неограничивающего примера ситуации, потенциально ведущей к конфликту при выполнении запросов, можно привести направление пользователем на сервер задачи на удаление всех файлов из определенной папки в облачном хранилище данных, и последующее направление тем же пользователем на сервер второй задачи на перенос файла из вышеуказанной папки в другую папку до окончания исполнения первого запроса.[2] In modern computer technologies, users of online services often send requests from the client devices to the servers providing the corresponding service, to perform mass operations. In some cases, users send two or more consecutive requests to perform various operations. In some cases, two or more consecutive requests for various operations are made with respect to two or more sets of digital objects. In some cases, these two or more sets may, at least partially, intersect, which may cause conflicts when executing consecutive requests for intersecting sets of digital objects. As a non-limiting example of a situation that potentially leads to a conflict when executing requests, we can cite the user sending to the server a task to delete all files from a specific folder in the cloud data storage, and then the same user sending a second task to the server to transfer the file from the above folder to another folder until the completion of the first request.

[3] В заявке на патент США US 20070073720 A1 «Email Server for Processing a Threshold Number of Email Jobs for a Given User and Related Methods» («Почтовый сервер для обработки ограниченного пороговым значением количества сообщений электронной почты определенного пользователя, и относящийся к нему способ») отмечается возможность при направлении пользователем серии заданий для выполнения нескольких одинаковых команд (дубликатов). Такая ситуация возможна, указывается в данном патенте, когда одно взаимодействующее приложение находится в режиме блокировки, а другое взаимодействующее приложение продолжает повторно направлять задание. Формула данного патента предусматривает способ обработки сообщений электронной почты, включая: сохранение программой, управляющей заданиями в отношении сообщений электронной почты, множества заданий в отношении множества пользователей; и в случае, когда количество заданий одного пользователя, обрабатываемых одной программой, управляющей заданиями, в очереди превышает предельно установленное количество, осуществление обработки предельного количества сообщений электронной почты для данного пользователя.[3] In US patent application US 20070073720 A1 “Email Server for Processing a Threshold Number of Email Jobs for a Given User and Related Methods” (“A mail server for processing a threshold-limited number of email messages of a specific user and related thereto” method ”), the possibility is noted when a user sends a series of tasks to perform several identical commands (duplicates). Such a situation is possible, is indicated in this patent when one interacting application is in blocking mode and another interacting application continues to re-direct the task. The formula of this patent provides a method for processing e-mail messages, including: saving a program managing tasks in relation to e-mail messages, many tasks in relation to many users; and in the case when the number of tasks of one user processed by one program managing the tasks in the queue exceeds the maximum number, the processing of the maximum number of e-mail messages for this user.

[4] Таким образом, улучшение существующих компьютерных систем обработки очередей заданий возможно.[4] Thus, the improvement of existing computer systems for processing job queues is possible.

СУЩНОСТЬ ТЕХНОЛОГИИESSENCE OF TECHNOLOGY

[5] Целью настоящей технологии является устранение или смягчение по меньшей мере некоторых из неудобств, присутствующих на существующем уровне техники.[5] The purpose of this technology is to eliminate or mitigate at least some of the inconveniences present in the art.

[6] В соответствии с вариантами осуществления настоящей технологии, предусматривается исполняемый на сервере способ выполнения очереди запросов в отношении цифровых объектов. Способ включает: получение с клиентского устройства по сети передачи данных первого запроса на выполнение первой задачи, первый запрос на выполнение первой задачи, включающий в себя первую задачу и указание на цифровые объекты из первого множества цифровых объектов, связанных с первой задачей; разделение первого запроса на множество подзапросов, каждый из подзапросов относящийся к части цифровых объектов из первого множества цифровых объектов, связанных с первым запросом, каждый из подзапросов, включающий в себя: информацию о первой задаче и указание на цифровые объекты из соответствующей части цифровых объектов; расчет уникального идентификатора подзапроса, причем уникальный идентификатор подзапроса основывается по меньшей мере частично на содержимом соответствующего подзапроса; сохранение подзапросов в хранилище подзапросов совместно с соответствующими им идентификаторами подзапросов; получение с клиентского устройства по сети передачи данных второго запроса на выполнение второй задачи, второй запрос на выполнение второй задачи, включающий в себя вторую задачу и указание на по меньшей мере один цифровой объект, связанный со вторым запросом; основываясь на уникальных идентификаторах подзапросов, хранящихся в хранилище подзапросов, определение по меньшей мере одного подзапроса из множества подзапросов, содержащего указания на тот по меньшей мере один цифровой объект, указание на который также содержится во втором запросе на выполнение второй задачи; обращение к указанному по меньшей мере одному подзапросу из множества подзапросов, и удаление из этого подзапроса указания на тот по меньшей мере один цифровой объект, указание на который также содержится во втором запросе на выполнение второй задачи; выполнение подзапросов в отношении цифровых объектов, указания на которые содержатся в подзапросах после удаления из по меньшей мере одного подзапроса указанного по меньшей мере одного цифрового объекта.[6] In accordance with embodiments of the present technology, a server-executable method for executing a request queue for digital objects is provided. The method includes: receiving from a client device via a data network a first request for performing a first task, a first request for performing a first task, including a first task and an indication of digital objects from a first plurality of digital objects associated with a first task; dividing the first request into a plurality of subqueries, each of the subqueries relating to a part of digital objects from the first set of digital objects associated with the first request, each of the subqueries including: information about the first task and pointing to digital objects from the corresponding part of digital objects; calculating a unique subquery identifier, wherein the unique subquery identifier is based at least in part on the contents of the corresponding subquery; saving subqueries to the subquery repository together with their corresponding subquery identifiers; receiving from the client device via the data network a second request for a second task, a second request for a second task, including a second task and an indication of at least one digital object associated with the second request; based on the unique identifiers of the subqueries stored in the subquery repository, determining at least one subquery from a plurality of subqueries containing references to that at least one digital object, an indication of which is also contained in the second request for the second task; accessing said at least one subquery from a plurality of subqueries, and removing from this subquery indications of that at least one digital object, an indication of which is also contained in the second request for performing the second task; the execution of subqueries in relation to digital objects, the references to which are contained in subqueries after the deletion of at least one digital object from at least one subquery.

[7] В некоторых вариантах осуществления технологии, способ дополнительно включает в себя выполнение второго запроса.[7] In some embodiments of the technology, the method further includes executing a second request.

[8] В некоторых вариантах осуществления технологии, выполнение второго запроса осуществляется параллельно с выполнением по меньшей мере одного подзапроса.[8] In some embodiments of the technology, the second query is executed in parallel with the execution of at least one subquery.

[9] В некоторых вариантах осуществления технологии, выполнение второго запроса осуществляется после выполнения по меньшей мере одного подзапроса.[9] In some embodiments of the technology, the second query is executed after at least one subquery has been completed.

[10] В некоторых вариантах осуществления технологии, разделение первого запроса на множество подзапросов включает в себя определение сервером количества цифровых объектов в первом множестве цифровых объектов, и разделение первого запроса на множество подзапросов осуществляется в случае, когда количество цифровых объектов в первом множестве цифровых объектов превышает пороговое значение.[10] In some embodiments of the technology, dividing the first request into a plurality of subqueries includes determining the number of digital objects in the first plurality of digital objects by the server, and dividing the first request into the plurality of subqueries when the number of digital objects in the first plurality of digital objects threshold value.

[11] В некоторых вариантах осуществления технологии, расчет уникального идентификатора подзапроса осуществляется с использованием алгоритма хеширования.[11] In some embodiments of the technology, the calculation of the unique identifier of the subquery is performed using a hash algorithm.

[12] В некоторых вариантах осуществления технологии, определение по меньшей мере одного подзапроса из множества подзапросов, содержащего указания на тот по меньшей мере один цифровой объект, указание на который также содержится во втором запросе на выполнение второй задачи, осуществляется с использованием алгоритма вероятностной структуры данных.[12] In some embodiments of the technology, the determination of at least one subquery from a plurality of subqueries containing references to that at least one digital object, which is also indicated in the second request for the second task, is performed using the probabilistic data structure algorithm .

[13] В некоторых вариантах осуществления технологии, алгоритм вероятностной структуры данных является фильтром Блума.[13] In some embodiments of the technology, the probabilistic data structure algorithm is a Bloom filter.

[14] В некоторых вариантах осуществления технологии, в ответ на получение сервером с клиентского устройства третьего запроса на выполнение третьей задачи, сервер дополнительно осуществляет блокировку исполнения третьего запроса на выполнение третьей задачи.[14] In some embodiments of the technology, in response to the server receiving from the client device a third request to perform the third task, the server additionally blocks the execution of the third request to perform the third task.

[15] В некоторых вариантах осуществления технологии, сервер, после выполнение подзапросов в отношении цифровых объектов из первого множества цифровых объектов, осуществляет разблокировку исполнения третьего запроса на выполнение третьей задачи.[15] In some embodiments of the technology, the server, after performing subqueries on digital objects from the first plurality of digital objects, unlocks the execution of the third request to perform the third task.

[16] В некоторых вариантах осуществления технологии, сервер, после выполнения второго запроса в отношении цифровых объектов, осуществляет разблокировку исполнения третьего запроса на выполнение третьей задачи.[16] In some embodiments of the technology, the server, after executing the second request for digital objects, unlocks the execution of the third request for the third task.

[17] В некоторых вариантах осуществления технологии, цифровые объекты являются сообщениями электронной почты.[17] In some embodiments of the technology, digital objects are email messages.

[18] В некоторых вариантах осуществления технологии, способ дополнительно включает в себя приступание к последовательному исполнению сервером подзапросов до получения сервером с клиентского устройства по сети передачи данных второго запроса на выполнение второй задачи.[18] In some embodiments of the technology, the method further includes initiating sequential execution by the server of subqueries until the server receives from the client device via the data network a second request to perform the second task.

[19] Другим объектом настоящей технологии является сервер. Сервер включает в себя процессор. Конфигурация процессора настроена таким образом, чтобы сервер мог осуществлять: получение с клиентского устройства по сети передачи данных первого запроса на выполнение первой задачи, первый запрос на выполнение первой задачи, включающий в себя первую задачу и указание на цифровые объекты из первого множества цифровых объектов, связанных с первой задачей; разделение первого запроса на множество подзапросов, каждый из подзапросов относящийся к части цифровых объектов из первого множества цифровых объектов, связанных с первым запросом, каждый из подзапросов, включающий в себя: информацию о первой задаче и указание на цифровые объекты из соответствующей части цифровых объектов; расчет уникального идентификатора подзапроса, причем уникальный идентификатор подзапроса основывается по меньшей мере частично на содержимом соответствующего подзапроса; сохранение подзапросов в хранилище подзапросов совместно с соответствующими им идентификаторами подзапросов; получение с клиентского устройства по сети передачи данных второго запроса на выполнение второй задачи, второй запрос на выполнение второй задачи, включающий в себя вторую задачу и указание на по меньшей мере один цифровой объект, связанный со вторым запросом; основываясь на уникальных идентификаторах подзапросов, хранящихся в хранилище подзапросов, определение по меньшей мере одного подзапроса из множества подзапросов, содержащего указания на тот по меньшей мере один цифровой объект, указание на который также содержится во втором запросе на выполнение второй задачи; обращение к указанному по меньшей мере одному подзапросу из множества подзапросов, и удаление из этого подзапроса указания на тот по меньшей мере один цифровой объект, указание на который также содержится во втором запросе на выполнение второй задачи; выполнение подзапросов в отношении цифровых объектов, указания на которые содержатся в подзапросах после удаления из по меньшей мере одного подзапроса указанного по меньшей мере одного цифрового объекта.[19] Another object of the present technology is a server. The server includes a processor. The processor configuration is configured so that the server can: receive from the client device via the data network the first request for the first task, the first request for the first task, which includes the first task and an indication of digital objects from the first set of digital objects connected with the first task; dividing the first request into a plurality of subqueries, each of the subqueries relating to a part of digital objects from the first set of digital objects associated with the first request, each of the subqueries including: information about the first task and pointing to digital objects from the corresponding part of digital objects; calculating a unique subquery identifier, wherein the unique subquery identifier is based at least in part on the contents of the corresponding subquery; saving subqueries to the subquery repository together with their corresponding subquery identifiers; receiving from the client device via the data network a second request for a second task, a second request for a second task, including a second task and an indication of at least one digital object associated with the second request; based on the unique identifiers of the subqueries stored in the subquery repository, determining at least one subquery from a plurality of subqueries containing references to that at least one digital object, an indication of which is also contained in the second request for the second task; accessing said at least one subquery from a plurality of subqueries, and removing from this subquery indications of that at least one digital object, an indication of which is also contained in the second request for performing the second task; the execution of subqueries in relation to digital objects, the references to which are contained in subqueries after the deletion of at least one digital object from at least one subquery.

[20] В некоторых вариантах воплощения сервера, конфигурация процессора настроена таким образом, чтобы сервер мог дополнительно осуществлять выполнение второго запроса.[20] In some embodiments of the server, the processor configuration is configured so that the server can further execute the second request.

[21] В некоторых вариантах воплощения сервера, выполнение второго запроса осуществляется параллельно с выполнением по меньшей мере одного подзапроса.[21] In some embodiments of the server, the second request is executed in parallel with the execution of at least one subquery.

[22] В некоторых вариантах воплощения сервера, выполнение второго запроса осуществляется после выполнения по меньшей мере одного подзапроса.[22] In some embodiments of the server, the second request is executed after at least one subquery has been completed.

[23] В некоторых вариантах воплощения сервера, разделение первого запроса на множество подзапросов включает в себя определение сервером количества цифровых объектов в первом множестве цифровых объектов, и в котором разделение первого запроса на множество подзапросов осуществляется в случае, когда количество цифровых объектов в первом множестве цифровых объектов превышает пороговое значение.[23] In some embodiments of the server, dividing the first request into a plurality of subqueries includes determining by the server the number of digital objects in the first plurality of digital objects, and in which dividing the first request into a plurality of subqueries is performed when the number of digital objects in the first plurality of digital objects exceeds the threshold value.

[24] В некоторых вариантах воплощения сервера, расчет уникального идентификатора подзапроса осуществляется с использованием алгоритма хеширования.[24] In some embodiments of the server, the calculation of the unique identifier of the subquery is performed using a hashing algorithm.

[25] В некоторых вариантах воплощения сервера, определение по меньшей мере одного подзапроса из множества подзапросов, содержащего указания на тот по меньшей мере один цифровой объект, указание на который также содержится во втором запросе на выполнение второй задачи, осуществляется с использованием алгоритма вероятностной структуры данных.[25] In some embodiments of the server, the determination of at least one subquery from a plurality of subqueries containing references to that at least one digital object, which is also indicated in the second request for the second task, is performed using the probabilistic data structure algorithm .

[26] В некоторых вариантах воплощения сервера, алгоритм вероятностной структуры данных является фильтром Блума.[26] In some embodiments of the server, the probabilistic data structure algorithm is a Bloom filter.

[27] В некоторых вариантах воплощения сервера, конфигурация процессора настроена таким образом, чтобы сервер, в ответ на получение сервером с клиентского устройства третьего запроса на выполнение третьей задачи, мог дополнительно осуществлять блокировку исполнения третьего запроса на выполнение третьей задачи.[27] In some embodiments of the server, the processor configuration is configured so that the server, in response to the server receiving from the client device the third request for the third task, can additionally block the execution of the third request for the third task.

[28] В некоторых вариантах воплощения сервера, конфигурация процессора настроена таким образом, чтобы сервер, после выполнения подзапросов в отношении цифровых объектов из первого множества цифровых объектов, мог дополнительно осуществлять разблокировку исполнения третьего запроса на выполнение третьей задачи.[28] In some embodiments of the server, the processor configuration is configured so that the server, after performing subqueries on digital objects from the first set of digital objects, can further unlock the execution of the third request for the third task.

[29] В некоторых вариантах воплощения сервера, конфигурация процессора настроена таким образом, чтобы сервер, после выполнения второго запроса в отношении цифровых объектов, мог дополнительно осуществлять разблокировку исполнения третьего запроса на выполнение третьей задачи.[29] In some embodiments of the server, the processor configuration is configured so that the server, after executing the second request for digital objects, can further unlock the execution of the third request to perform the third task.

[30] В некоторых вариантах воплощения сервера, цифровые объекты являются сообщениями электронной почты.[30] In some embodiments of the server, the digital objects are email messages.

[31] В некоторых вариантах воплощения сервера, конфигурация процессора настроена таким образом, чтобы сервер мог дополнительно осуществлять приступание к последовательному исполнению сервером подзапросов до получения сервером с клиентского устройства по сети передачи данных второго запроса на выполнение второй задачи.[31] In some embodiments of the server, the processor configuration is configured so that the server can further initiate the sequential execution of the server sub-requests before the server receives from the client device via the data network a second request for the second task.

[32] В контексте описания настоящей технологии, «сервер» представляет собой программу, выполняемую на соответствующем оборудовании и способную осуществлять прием запросов (например, подаваемых клиентскими устройствами), передаваемых по сети, и выполнять эти запросы или обеспечивать их выполнение. Оборудование может представлять собой один компьютер или одну компьютерную систему, однако ни одно, ни другое не является обязательным в отношении предлагаемой технологии. В данном контексте выражение «по меньшей мере один сервер» не означает, что каждая задача (например, предусмотренная принятыми инструкциями или запросами) или какая-либо конкретная задача будет принята, выполнена или ее выполнение будет обеспечено тем же самым сервером (то есть тем же самым программным обеспечением и/или оборудованием); предполагается, что прием и передача, выполнение или обеспечение выполнения любой задачи или запроса либо обработка результатов задачи или запроса может осуществлять любое число компонентов программного обеспечения или устройств и все эти компоненты программного обеспечения или оборудования могут быть представлены одним сервером или несколькими серверами, причем термин «сервер» охватывает оба указанных варианта.[32] In the context of the description of the present technology, a “server” is a program running on appropriate equipment and capable of receiving requests (for example, submitted by client devices) transmitted over the network, and executing these requests or ensuring their execution. The equipment may be a single computer or a single computer system, however, neither one nor the other is mandatory in relation to the proposed technology. In this context, the expression “at least one server” does not mean that each task (for example, provided for by accepted instructions or requests) or any specific task will be accepted, completed, or its execution will be provided by the same server (that is, the same most software and / or hardware); it is assumed that the reception and transmission, execution or enforcement of any task or request, or the processing of the results of a task or request, can be carried out by any number of software or device components, and all these software or equipment components can be represented by one server or several servers, the term " server ”covers both of these options.

[33] В контексте описания настоящей технологии, «клиентское устройство» представляет собой любое компьютерное оборудование, обеспечивающее возможность выполнения программного обеспечения, предназначенного для решения требуемой задачи. В контексте настоящего описания, термин «клиентское устройство» в основном ассоциируется с пользователем клиентского устройства. Некоторые (не имеющие ограничительного характера) примеры клиентских устройств включают в себя персональные компьютеры (настольные компьютеры, переносные компьютеры, нетбуки и т.д.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует отметить, что в данном контексте тот факт, что устройство функционирует в качестве клиентского устройства, не исключает возможности его функционирования в качестве сервера для других клиентских устройств. Использование выражения «клиентское устройство» не препятствует применению нескольких клиентских устройств в процессе приема и передачи, выполнения или обеспечения выполнения задачи либо запроса или обработки результатов задачи или запроса либо этапов способа, представленного в настоящем описании.[33] In the context of the description of this technology, a "client device" is any computer equipment that provides the ability to run software designed to solve the required task. In the context of the present description, the term "client device" is mainly associated with the user of the client device. Some (non-restrictive) examples of client devices include personal computers (desktop computers, laptop computers, netbooks, etc.), smartphones and tablets, and network equipment such as routers, switches, and gateways. It should be noted that in this context, the fact that the device functions as a client device does not exclude the possibility of its functioning as a server for other client devices. The use of the expression “client device” does not impede the use of several client devices in the process of receiving and transmitting, executing, or ensuring the completion of a task or request or processing the results of a task or request or the steps of the method described in the present description.

[34] В контексте описания настоящей технологии, термин «сообщение электронной почты» включает в себя файл, содержащий текст, формируемый отправителем и предназначенный для передачи одному или нескольким получателям посредством электронной почты. Сообщение электронной почты включает в себя также метаданные, в том числе такие метаданные, которые позволяют идентифицировать соответствующее сообщение электронной почты.[34] In the context of the description of the present technology, the term "email message" includes a file containing text generated by the sender and intended to be transmitted to one or more recipients by e-mail. The e-mail message also includes metadata, including such metadata, which allows the identification of the corresponding e-mail message.

[35] В контексте описания настоящей технологии, термин «информация» включает в себя информацию любого характера или типа, которая может быть записана в базе данных. Таким образом, информация охватывает, среди прочего, аудиовизуальную информацию (изображения, фильмы, звукозаписи, презентации и т.д.), данные (данные местоположения, числовые данные и т.д.), текстовую информацию (высказывания, комментарии, вопросы, сообщения и т.д.), документы, электронные таблицы и т.д.[35] In the context of the description of the present technology, the term "information" includes information of any nature or type that can be recorded in a database. Thus, information covers, among other things, audiovisual information (images, films, sound recordings, presentations, etc.), data (location data, numerical data, etc.), text information (statements, comments, questions, messages etc.), documents, spreadsheets, etc.

[36] В контексте описания настоящей технологии, термин «компонент программного обеспечения» охватывает программное обеспечение (соответствующее конкретному оборудованию), которое является одновременно необходимым и достаточным для выполнения конкретной указанной функции (функций).[36] In the context of the description of this technology, the term "software component" covers software (corresponding to a specific hardware), which is both necessary and sufficient to perform a specific specified function (s).

[37] В настоящем описании выражение «носитель информации, предназначенный для использования компьютером» (также кратко именуемый «носитель информации») охватывает носители любого характера и типа, в том числе оперативные запоминающие устройства, постоянные запоминающие устройства, диски (компакт-диски, DVD-диски, гибкие диски, жесткие диски и т.д.), USB-ключи, твердотельные накопители, ленточные накопители и т.д.[37] In the present description, the expression "storage medium intended for use by a computer" (also referred to as "storage medium") encompasses storage media of any nature and type, including random-access memory, read-only memory devices, disks (CDs, DVDs) disks, floppy disks, hard drives, etc.), USB keys, solid state drives, tape drives, etc.

[38] В контексте описания настоящей технологии, «база данных» представляет собой любой структурированный набор данных, независимо от конкретной структуры, программы управления базой данных или оборудования, на котором осуществляется хранение данных, реализована память или иным способом обеспечивается возможность использования данных. База данных может быть реализована на том же оборудовании, что и процесс, осуществляющий хранение или использование информации, записанной в базе данных, или на отдельном оборудовании, таком как выделенный сервер или множество серверов.[38] In the context of describing this technology, a “database” is any structured data set, regardless of the particular structure, database management program or equipment on which data is stored, memory is implemented, or the data can be used in any other way. The database can be implemented on the same equipment as the process that stores or uses the information recorded in the database, or on separate equipment, such as a dedicated server or multiple servers.

[39] В настоящем описании слова «первый», «второй», «третий» и т.д. используются только в качестве описательных элементов для целей разделения существительных, отличающихся друг от друга, а не с целью определения какого-либо конкретного соотношения между указанными существительными. Таким образом, например, следует понимать, что термины «первая база данных» и «третий сервер» не означают введения конкретной последовательности, типа, хронологии, иерархии или ранжирования (например) конкретного сервера или нескольких серверов, а их использование (само по себе) не означает, что в какой-либо конкретной ситуации должен обязательно существовать какой-либо «второй сервер». Кроме того, как указано в данном описании относительно других примеров осуществления технологии, ссылка на «первый» элемент и «второй» элемент не означает, что два элемента не могут представлять собой в реальном мире фактически один и тот же элемент. Таким образом, например, в некоторых случаях «первый» сервер и «второй» сервер могут представлять собой один компонент программного обеспечения и (или) оборудования, а в других ситуациях могут быть реализованы на различном программном обеспечении и (или) оборудовании.[39] In the present description, the words “first”, “second”, “third”, etc. are used only as descriptive elements for the purpose of separating nouns that differ from each other, and not for the purpose of determining any specific relationship between these nouns. Thus, for example, it should be understood that the terms “first database” and “third server” do not mean the introduction of a specific sequence, type, chronology, hierarchy or ranking (for example) of a particular server or several servers, but their use (by itself) does not mean that in any particular situation there must necessarily exist some kind of “second server”. In addition, as indicated in this description regarding other embodiments of the technology, a reference to the “first” element and the “second” element does not mean that two elements cannot actually represent the same element in the real world. Thus, for example, in some cases, the “first” server and the “second” server can be one component of software and (or) equipment, and in other situations can be implemented on various software and (or) equipment.

[40] Каждый из вариантов реализации технологии имеет по меньшей мере одну из вышеупомянутых целей и/или один из вышеупомянутых аспектов, но не обязательно все их. Следует иметь в виду, что некоторые аспекты настоящей технологии, которые стали результатом попытки достичь вышеупомянутой цели, могут не достигать этой цели и/или могут достигать другие цели, специально не упомянутые здесь.[40] Each of the technology implementation options has at least one of the above objectives and / or one of the above aspects, but not all of them. It should be borne in mind that some aspects of this technology that are the result of an attempt to achieve the aforementioned goal may not achieve this goal and / or may achieve other goals not specifically mentioned here.

[41] Дополнительные и/или альтернативные особенности, цели, аспекты и преимущества данной технологии станут очевидны из нижеследующего описания, сопровождающих чертежей и прилагаемой формулы изобретения.[41] Additional and / or alternative features, objectives, aspects and advantages of this technology will become apparent from the following description, accompanying drawings, and the attached claims.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

[42] Для лучшего понимания настоящей технологии, а также других ее аспектов и особенностей, предлагается обратиться к нижеследующему описанию, которым следует пользоваться совместно с прилагаемыми чертежами, на которых:[42] For a better understanding of the present technology, as well as its other aspects and features, it is proposed to refer to the following description, which should be used in conjunction with the accompanying drawings, in which:

[43] Фиг. 1 является схематическим изображением варианта воплощения сетевой компьютерной системы 100, реализованной в соответствии с вариантами осуществления настоящей технологии, не ограничивающими ее объем.[43] FIG. 1 is a schematic illustration of an embodiment of a networked computer system 100 implemented in accordance with embodiments of the present technology that do not limit its scope.

[44] Фиг. 2 является схематическим изображением способа разделения первого запроса пользователя на выполнение задачи в отношении множества цифровых объектов на множество подзапросов на выполнение задачи в отношении подмножеств цифровых объектов, выполняемого в соответствии с вариантами осуществления настоящей технологии, не ограничивающими ее объем.[44] FIG. 2 is a schematic depiction of a method for dividing a first user request to complete a task regarding a plurality of digital objects into a plurality of subqueries to perform a task on a subset of digital objects performed in accordance with embodiments of the present technology that do not limit its scope.

[45] Фиг. 3 является схематическим изображением структуры первого запроса пользователя на выполнение задачи в отношении множества цифровых объектов, и структуры подзапросов, образованных в результате разделения указанного первого запроса, реализованной в соответствии с вариантами осуществления настоящей технологии, не ограничивающими ее объем.[45] FIG. 3 is a schematic diagram of the structure of a first user request to perform a task with respect to a plurality of digital objects, and the structure of subqueries generated by dividing said first request, implemented in accordance with embodiments of the present technology, not limiting its scope.

[46] Фиг. 4 является схематическим изображением структуры хранения подзапросов в хранилище подзапросов с использованием Апачи Зукипер™, реализованной в соответствии с вариантами осуществления настоящей технологии, не ограничивающими ее объем.[46] FIG. 4 is a schematic representation of a subquery storage structure in a subquery storage using Apache Zukiper ™ implemented in accordance with embodiments of the present technology that do not limit its scope.

[47] Фиг. 5 является блок-диаграммой способа 500, выполняемого на сервере 102, изображенном на Фиг. 1, выполняемого в соответствии с вариантами осуществления настоящей технологии, не ограничивающими ее объем.[47] FIG. 5 is a flowchart of a method 500 running on the server 102 of FIG. 1, performed in accordance with embodiments of the present technology, not limiting its scope.

[48] Фиг. 6 является схематическим изображением структуры второго запроса пользователя на выполнение второй задачи, и структуры подзапросов, образованных в результате разделения первого запроса, реализованных в соответствии с вариантами осуществления настоящей технологии, не ограничивающими ее объем.[48] FIG. 6 is a schematic diagram of the structure of a second user request for a second task, and the structure of subqueries generated by dividing the first request, implemented in accordance with embodiments of the present technology, not limiting its scope.

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

[49] На Фиг. 1 изображена принципиальная схема сетевой компьютерной системы 100, компоненты которой находятся в связи друг с другом с помощью сети 112 передачи данных.[49] In FIG. 1 is a schematic diagram of a network computer system 100, the components of which are in communication with each other via a data network 112.

[50] Важно иметь в виду, что сетевая компьютерная система 100 представлена как наглядный вариант осуществления настоящей технологии. Таким образом, нижеследующее описание должно рассматриваться исключительно как описание наглядных примеров настоящей технологии. Это описание не предназначено для определения объема или установления границ настоящей технологии. Некоторые полезные примеры модификаций сетевой компьютерной системы 100 также могут быть охвачены нижеследующим описанием. Целью этого описания является исключительно оказание помощи в понимании, а не определение объема и границ настоящей технологии. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где это еще не было сделано, т.е. там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным способом осуществления этого элемента данной технологии. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что сетевая компьютерная система 100 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления настоящей технологии, и в подобных случаях представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящей технологии будут обладать гораздо большей сложностью.[50] It is important to keep in mind that the networked computer system 100 is presented as an illustrative embodiment of the present technology. Thus, the following description should be considered solely as a description of illustrative examples of the present technology. This description is not intended to determine the scope or scope of this technology. Some useful examples of modifications to the network computer system 100 may also be covered by the following description. The purpose of this description is solely to assist in understanding, and not to determine the scope and boundaries of this technology. These modifications are not an exhaustive list, and it will be understood by those skilled in the art that other modifications are possible. In addition, this should not be interpreted so that where it has not yet been done, i.e. where examples of modifications have not been set forth, no modifications are possible, and / or that what is described is the only way to implement this element of this technology. As will be clear to a person skilled in the art, this is most likely not the case. In addition, it should be borne in mind that the network computer system 100 is in some specific manifestations a fairly simple embodiment of the present technology, and in such cases is presented here in order to facilitate understanding. As will be clear to a person skilled in the art, many embodiments of the present technology will have much greater complexity.

[51] Сетевая компьютерная система 100 включает в себя множество серверов 102. Серверы 102 являются обычными компьютерными серверами. Ниже будет дано описание одного компьютерного сервера 102. Как будет понятно специалистам в данной области техника, другие компьютерные серверы 102 могут иметь аналогичную структуру, и поэтому не будут описываться отдельно. В некоторых воплощениях настоящей технологии, все компьютерные серверы 102 будут иметь функциональность, описанную ниже применительно к серверу 102. В других воплощениях настоящей технологии, функциональность сервера 102, описанного ниже, может быть разделена между несколькими серверами. Кроме того, в некоторых воплощениях настоящей технологии, некоторые серверы будут иметь всю функциональность сервера 102, как она описана ниже, в то время как один или несколько других серверов могут иметь часть функциональности сервера 102.[51] The network computer system 100 includes a plurality of servers 102. The servers 102 are ordinary computer servers. A description will be given below of one computer server 102. As will be appreciated by those skilled in the art, other computer servers 102 may have a similar structure and therefore will not be described separately. In some embodiments of the present technology, all computer servers 102 will have the functionality described below with respect to the server 102. In other embodiments of the present technology, the functionality of the server 102 described below can be shared between several servers. In addition, in some embodiments of the present technology, some servers will have all the functionality of the server 102, as described below, while one or more other servers may have part of the functionality of the server 102.

[52] Сервер 102 может представлять собой обычный компьютерный сервер. В примере варианта осуществления настоящей технологии, сервер 102 представляет собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™.[52] Server 102 may be a conventional computer server. In an example embodiment of the present technology, server 102 is a Dell ™ PowerEdge ™ server that uses the Microsoft ™ Windows Server ™ operating system.

[53] Излишне говорить, что сервер 102 может представлять собой любое другое подходящее аппаратное и/или прикладное программное, и/или системное программное обеспечение или их комбинацию. В представленном варианте осуществления настоящей технологии, не ограничивающем ее объем, сервер 102 является одиночным сервером. В других вариантах осуществления настоящей технологии, не ограничивающих ее объем, функциональность сервера 102 может быть разделена, и может выполняться с помощью нескольких серверов.[53] Needless to say, the server 102 may be any other suitable hardware and / or application software and / or system software, or a combination thereof. In the present embodiment of the present technology, not limiting its scope, server 102 is a single server. In other non-limiting embodiments of the present technology, the functionality of the server 102 may be shared, and may be performed by several servers.

[54] В целом, варианты осуществления сервера 102 хорошо известны в данной области техники. Таким образом, достаточно отметить, что сервер 102 содержит, среди прочего, интерфейс сетевой связи (не изображен) для двусторонней связи по сети 112 передачи данных; и процессор (не изображен), соединенный с интерфейсом сетевой связи, который выполнен с возможностью выполнять различные процедуры, включая те, что описаны ниже. С этой целью процессор может сохранять или иметь доступ к машиночитаемым инструкциям, выполнение которых инициирует процессор, и выполнять различные описанные здесь процедуры.[54] In general, embodiments of the server 102 are well known in the art. Thus, it is sufficient to note that the server 102 comprises, inter alia, a network communication interface (not shown) for two-way communication over a data network 112; and a processor (not shown) connected to a network communication interface that is configured to perform various procedures, including those described below. To this end, the processor may store or have access to machine-readable instructions, the execution of which initiates the processor, and perform the various procedures described herein.

[55] К задачам сервера 102 относятся прием сообщений электронной почты, предназначенных пользователю 121, их хранение, передача их из ящика пользователю 121, осуществление с сообщениями электронной почты операций, в том числе операций по запросам пользователя 121. В качестве неограничивающего примера, к операциям, осуществляемым по запросу пользователя, могут относиться удаление одного, нескольких или всех сообщений электронной почты из определенной папки (например, из папки входящие, отправленные, черновики, нежелательная почта, либо из любой иной папки, созданной пользователем либо предоставляемой по умолчанию провайдером услуг пользователю 121). К таким операциям могут также относиться перемещение сообщений электронной почты из одной папки в другую, пометка всех или некоторых сообщений электронной почты как прочитанных, пометка всех или некоторых сообщений электронной почты как непрочитанных, пометка всех или некоторых сообщений электронной почты как нежелательных, присвоение одному, всем или нескольким сообщениям электронной почты определенной категории, создание новых папок, удаление папок, и многие другие.[55] The tasks of the server 102 include receiving e-mail messages intended for the user 121, storing them, transferring them from the mailbox to the user 121, performing operations with e-mail messages, including operations at the request of the user 121. As a non-limiting example, operations carried out at the request of the user may include the removal of one, several or all e-mail messages from a specific folder (for example, from the inbox, sent, drafts, spam, or from any Noah folder created by the user or provided by the default service provider 121 to the user). Such operations may also include moving email messages from one folder to another, marking all or some email messages as read, marking all or some email messages as unread, marking all or some email messages as undesirable, assigning it to one, all or multiple emails of a certain category, creating new folders, deleting folders, and many others.

[56] В альтернативных воплощениях настоящей технологии, в качестве неограничивающего примера, сетевая компьютерная система 100 может включать в себя вместо сервера 102 либо дополнительно к у серверу 102, сервер облачного хранилища данных, либо иной сервер цифровых объектов, каковыми могут являться отдельные файлы, либо группы файлов, в том числе упорядоченные группы файлов. В качестве неограничивающего примера, к операциям, осуществляемым по запросу пользователя, могут относиться удаление одного, нескольких или всех файлов, хранящихся в определенной папке облачного хранилища данных, перемещение файлов из одной папки в другую, переименование файлов, создание, удаление, переименование папок, перемещение папок, в том числе вкладывание одной папки в другую папку, и многие другие.[56] In alternative embodiments of the present technology, as a non-limiting example, the network computer system 100 may include, in addition to the server 102, or in addition to the server 102, a cloud storage server or another digital object server, which may be individual files, or file groups, including ordered file groups. As a non-limiting example, operations performed at the request of a user may include deleting one, several or all files stored in a specific folder of the cloud storage, moving files from one folder to another, renaming files, creating, deleting, renaming folders, moving folders, including nesting one folder in another folder, and many others.

[57] Сервер 102 соединен с сетью 112 передачи данных через линию связи (не пронумерована).[57] The server 102 is connected to a data network 112 via a communication line (not numbered).

[58] Сервер 102 включает в себя носитель информации 104, который может использоваться сервером 102. В принципе, данный носитель информации 104 может быть носителем абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д., а также их комбинации.[58] Server 102 includes a storage medium 104 that can be used by server 102. In principle, this storage medium 104 can be of any type and nature, including RAM, ROM, disks (CDs, DVDs, floppy disks, hard drives, etc.), USB flash drives, solid state drives, tape drives, etc., as well as combinations thereof.

[59] Носитель информации 104 сервера 102 предназначен также для хранения модуля 106 почтового сервиса.[59] The storage medium 104 of the server 102 is also intended to store the mail service module 106.

[60] Модуль 106 почтового сервиса может представлять собой программу или часть программы, выполняемую на соответствующем оборудовании и способную осуществлять хранение и/или обработку сообщений электронной почты. Оборудование для модуля 106 почтового сервиса может представлять собой один компьютер или одну компьютерную систему, однако ни одно, ни другое не является обязательным в отношении предлагаемой технологии.[60] The mail service module 106 may be a program or part of a program running on appropriate equipment and capable of storing and / or processing email messages. The equipment for the mail service module 106 may be a single computer or a single computer system, however, neither one nor the other is mandatory in relation to the proposed technology.

[61] В данном контексте, использование термина «модуль 106 почтового сервиса» не означает, что каждая задача (например, предусмотренная принятыми инструкциями или запросами) или какая-либо конкретная задача будет принята, выполнена или ее выполнение будет обеспечено тем же самым программным обеспечением и/или оборудованием; предполагается, что выполнение любой задачи или запроса либо обработка результатов задачи или запроса может осуществлять любое число компонентов программного обеспечения или устройств.[61] In this context, the use of the term "postal service module 106" does not mean that every task (for example, provided for by accepted instructions or requests) or any specific task will be accepted, completed or its implementation will be provided with the same software and / or equipment; it is assumed that the execution of any task or request or the processing of the results of a task or request can be carried out by any number of software components or devices.

[62] В данном воплощении настоящей технологии, модуль 106 почтового сервиса включает в себя почтовые ящики пользователей, в том числе ящик пользователя 121, сообщения электронной почты пользователя 121 и папки сообщений электронной почты в почтовом ящике пользователя 121, в том числе папки «входящие», «исходящие», «отправленные», «черновики», «нежелательная почта», «удаленные».[62] In this embodiment of the present technology, the mail service module 106 includes user mailboxes, including user box 121, user email messages 121, and email message folders in user mailbox 121, including inboxes , “Outgoing”, “sent”, “drafts”, “spam”, “deleted”.

[63] Почтовые ящики представляют собой часть дискового пространства, выделяемого на носителе информации 104 для хранения сообщений электронной почты пользователей, в том числе пользователя 121, где на указанной части дискового пространства ящик хранится как обычный каталог файловой системы. При этом сообщения электронной почты представляют собой файлы данных, находящиеся в данном каталоге файловой системы.[63] Mailboxes are part of the disk space allocated on the storage medium 104 for storing user e-mail messages, including user 121, where the box is stored on the indicated part of the disk space as a regular file system directory. In this case, e-mail messages are data files located in this directory of the file system.

[64] Модуль 106 почтового сервиса может включать в себя базы данных (не изображены), обеспечивающие хранение сообщений электронной почты.[64] The email service module 106 may include databases (not shown) for storing email messages.

[65] Модуль 106 почтового сервиса может также обеспечивать хранение метаданных сообщений электронной почты, в том числе идентификаторов сообщений электронной почты.[65] The email service module 106 may also provide storage of metadata for email messages, including email message identifiers.

[66] Модуль 106 почтового сервиса может включать в себя также системы управления базами данных.[66] The mail service module 106 may also include database management systems.

[67] В данном воплощении настоящей технологии, системы управления базами данных реализованы с использованием Апачи Зукипер™ (Apache ZooKeeper™), являющимся централизованным сервисом для поддержки информации о конфигурации, поддержки присвоения наименований, для обеспечения распределенной синхронизации, и для обеспечения групповых сервисов. Апачи Зукипер™ является программным обеспечением Апачи Софтвере Фаундейшн, предоставляющим программное обеспечение с открытым исходным кодом для обеспечения распределенных координации между серверами, а также обеспечивающее ведение регистра имен для крупных распределенных систем. Апачи Зукипер™ включает в себя набор утилит, которые могут использоваться для имплементации блокировок, барьеров, и прочих механизмов координации между серверами.[67] In this embodiment of the present technology, database management systems are implemented using Apache ZooKeeper ™, which is a centralized service for supporting configuration information, supporting naming, for providing distributed synchronization, and for providing group services. Apache Zukiper ™ is the Apache Software Foundation software, which provides open source software for distributed coordination between servers, as well as name register management for large distributed systems. Apache Zukiper ™ includes a set of utilities that can be used to implement locks, barriers, and other coordination mechanisms between servers.

[68] Особенностью Апачи Зукипер™ является то, что его архитектура предусматривает возможность резервного обеспечения выполнения задач. Если один из ведущих элементов системы (главный сервер 102) дает сбой, то роль главного сервера 102 может взять на себя другой сервер 102.[68] A feature of Apache Zukiper ™ is that its architecture provides the ability to back-up tasks. If one of the leading elements of the system (main server 102) fails, then the other server 102 can take on the role of the main server 102.

[69] В альтернативных воплощениях настоящей технологии, системы управления базами данных могут быть основаны на использовании любого другого подходящего программного обеспечения. Например, системы управления базами данных могут быть основаны на использовании Redis (REmote Dictionary Server), сетевого журналируемого хранилища данных типа «ключ - значение» с открытым исходным кодом. В других альтернативных воплощениях настоящей технологии, системы управления базами данных могут быть основаны на использовании RabbitMQ. RabbitMQ представляет собой платформу, реализующую систему обмена сообщениями между компонентами программной системы (Message Oriented Middleware) на основе стандарта AMQP (Advanced Message Queuing Protocol).[69] In alternative embodiments of the present technology, database management systems may be based on any other suitable software. For example, database management systems can be based on the use of Redis (REmote Dictionary Server), an open-source, key-value networked journaling data warehouse. In other alternative embodiments of the present technology, database management systems may be based on the use of RabbitMQ. RabbitMQ is a platform that implements a messaging system between components of a software system (Message Oriented Middleware) based on the AMQP (Advanced Message Queuing Protocol) standard.

[70] Модуль 106 почтового сервиса включает в себя также рабочие приложения 108. В данном воплощении настоящей технологии, синхронизацию и координацию работы рабочих приложений 108 обеспечивает Апачи Зукипер™.[70] The mail service module 106 also includes work applications 108. In this embodiment of the present technology, Apache Zukiper ™ provides synchronization and coordination of work of work applications 108.

[71] Рабочие приложения 108 могут обеспечивать получение, хранение и отправку сообщений электронной почты пользователя 121.[71] Operational applications 108 may provide for the receipt, storage and sending of email messages to user 121.

[72] Рабочие приложения 108 могут также обеспечивать получение, по сети передачи данных 112, одного или нескольких запросов пользователя 121 на выполнение задач, направляемых на сервер 102 с клиентского устройства 114.[72] Operational applications 108 can also provide, via a data network 112, one or more user requests 121 for tasks sent to server 102 from client device 114.

[73] Запросы пользователя 121 включают в себя собственно задачу, подлежащую выполнению (например, удаление сообщений электронной почты без возможности восстановления), и указание на цифровые объекты из первого множества цифровых объектов, связанные с данной задачей (например, пометка в качестве подлежащих удалению без возможности восстановления всех сообщений электронной почты, полученных с адреса электронной почты spam @ spam . com и находящихся в папке «удаленные»).[73] Requests of user 121 include the actual task to be performed (for example, deleting e-mail messages without the possibility of recovery), and an indication of digital objects from the first set of digital objects associated with this task (for example, marking as to be deleted without possibility of recovering all emails received from the email address spam @ spam. com and "deleted" in the folder).

[74] Рабочие приложения 108 могут также обеспечивать исполнение запросов пользователя 121. В случае получения нескольких запросов пользователя 121 на выполнение задач, рабочие приложения 108 могут осуществлять их исполнение последовательно либо параллельно.[74] Working applications 108 can also provide for the execution of user requests 121. In the case of multiple requests from user 121 for tasks, working applications 108 can execute them sequentially or in parallel.

[75] Рабочие приложения 108 могут также осуществлять определение количества цифровых объектов, в отношении которых поступил запрос на выполнение определенной задачи.[75] Working applications 108 may also determine the number of digital objects in respect of which a request has been made to perform a specific task.

[76] Рабочие приложения 108 могут также осуществлять разделение запроса пользователя 121 на множество подзапросов.[76] Working applications 108 may also split user request 121 into multiple subqueries.

[77] Порядок разделения запроса 202 на множество 2020 подзапросов будет проиллюстрирован ниже со ссылками на Фиг. 2 при описании способа 500. Структура запроса 202 и подзапросов 2022, 2024 и 2026 из множества 2020 подзапросов будет ниже проиллюстрирована со ссылками на Фиг. 3 при описании способа 500.[77] The procedure for dividing a query 202 into a plurality of 2020 subqueries will be illustrated below with reference to FIG. 2 when describing method 500. The structure of the query 202 and the subqueries 2022, 2024, and 2026 from the plurality of 2020 subqueries will be illustrated below with reference to FIG. 3 when describing method 500.

[78] Рабочие приложения 108 могут также обеспечивать расчет уникальных идентификаторов подзапросов.[78] Working applications 108 may also provide for the calculation of unique subquery identifiers.

[79] Рабочие приложения 108, разделив запрос на множество подзапросов и произведя расчет уникальных идентификаторов подзапросов, могут сохранять подзапросы из множества подзапросов вместе с уникальными идентификаторами соответствующих подзапросов в хранилище 110 подзапросов.[79] Working applications 108, by dividing a request into multiple subqueries and calculating unique subquery identifiers, can save subqueries from multiple subqueries together with unique identifiers of the corresponding subqueries in the subquery store 110.

[80] Носитель информации 104 сервера 102 предназначен также для хранения данных, сохраненных в хранилище 110 подзапросов. Хранилище 110 подзапросов, в частности, хранит подзапросы 2022, 2024 и 2026 из множества 2020 подзапросов.[80] The storage medium 104 of the server 102 is also intended to store data stored in the subquery storage 110. The subquery store 110, in particular, stores the subqueries 2022, 2024, and 2026 from the plurality of 2020 subqueries.

[81] В одном из воплощений данной технологии, для обеспечения хранения подзапросов в хранилище 110 подзапросов, используется Апачи Зукипер™. В других воплощениях настоящей технологии могут использоваться библиотеки RabbitMQ, ZeroMQ, либо любое другое подходящее программное обеспечение.[81] In one embodiment of this technology, Apache Zukiper ™ is used to provide storage of the subqueries in the 110 subquery storage. In other embodiments of the present technology, RabbitMQ, ZeroMQ, or any other suitable software may be used.

[82] На Фиг. 4 схематически представлена структура хранения подзапросов в хранилище 110 подзапросов с использованием Апачи Зукипер™, которая будет объяснена подробнее при описании этапа 508 способа 500.[82] In FIG. 4 schematically illustrates a structure for storing subqueries in a subquery store 110 using Apache Zukiper ™, which will be explained in more detail in the description of step 508 of method 500.

[83] При разделении одним из рабочих приложений 108 запроса 202 на множество 2020 подзапросов, рабочее приложение 108 формирует множество 2020 подзапросов и сохраняет подзапросы в вышеуказанное хранилище 110 подзапросов. Хранилище 110 подзапросов доступно для рабочих приложений 108, которые могут считывать информацию из хранилища 110 подзапросов.[83] When one of the working applications 108 splits the query 202 into a plurality of 2020 subqueries, the working application 108 generates a plurality of 2020 subqueries and stores the subqueries in the above subquery store 110. Subquery store 110 is available for production applications 108 that can read information from subquery store 110.

[84] Как было отмечено выше, сервер 102, изображенный на Фиг. 1, может быть реализован как один сервер 102 либо как несколько взаимосвязанных серверов 102. Рабочие приложения 108 могут быть распределены между этими серверами 102. Говоря о сервере 102 в целом, важно иметь в виду, что различные воплощения сервера 102 даны исключительно в иллюстрационных целях. Таким образом, специалисты в данной области техники смогут понять подробности других конкретных вариантов осуществления воплощения почтовых серверов, которые могут использоваться для реализации настоящей технологии. Таким образом, представленный здесь пример не ограничивает объем настоящей технологии.[84] As noted above, the server 102 shown in FIG. 1 can be implemented as a single server 102 or as several interconnected servers 102. Working applications 108 can be distributed between these servers 102. Speaking about the server 102 as a whole, it is important to keep in mind that the various embodiments of the server 102 are for illustrative purposes only. Thus, those skilled in the art will be able to understand the details of other specific embodiments of the implementation of mail servers that can be used to implement this technology. Thus, the example presented here does not limit the scope of the present technology.

[85] Сервер 102, изображенный на Фиг. 1, соединен с сетью 112 передачи данных через линию связи (не пронумерована). В некоторых вариантах осуществления настоящей технологии, не ограничивающих ее объем, сеть 112 передачи данных связи может представлять собой Интернет. В других вариантах осуществления настоящей технологии, сеть 112 передачи данных может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п.[85] The server 102 shown in FIG. 1 is connected to a data network 112 via a communication line (not numbered). In some non-limiting embodiments of the present technology, the communication data network 112 may be the Internet. In other embodiments of the present technology, the data network 112 may be implemented differently — as a global data network, a local data network, a private data network, or the like.

[86] Реализация линии связи не ограничена, и будет зависеть от того, какие устройства присоединены к сети 112 передачи данных. В качестве примера, но не ограничения, подключение сервера 102 к сети 112 передачи данных может быть осуществлено по проводной связи (соединение на основе сети Ethernet).[86] The implementation of the communication line is not limited, and will depend on which devices are connected to the data network 112. As an example, but not limitation, the connection of the server 102 to the data network 112 can be carried out via wired communication (Ethernet-based connection).

[87] Через сеть передачи данных 112, сервер 112 соединен с клиентским устройством 114.[87] Through the data network 112, the server 112 is connected to the client device 114.

[88] Клиентское устройство 114 обычно связано с пользователем 121. Пользователем 121 является лицо, чей аккаунт электронной почты размещен на сервере 102.[88] Client device 114 is typically associated with user 121. User 121 is a person whose email account is hosted on server 102.

[89] Следует отметить, что тот факт, что клиентское устройство 114 связано с пользователем 121, не подразумевает какого-либо конкретного режима работы.[89] It should be noted that the fact that client device 114 is associated with user 121 does not imply any particular mode of operation.

[90] Изображенное на Фиг. 1 клиентское устройство 114 реализовано в виде персонального компьютера Dell™ Precision Т1700 МТ CA033PT170011RUWS с процессором Intel® Xeon™, частота процессора: 3300 МГц, с видеокартой nVIDIA Quadro К2000, с установленной и действующей операционной системой Windows 7 Pro 64-bit. Однако, как будет понятно специалистам в данной сфере, варианты первого клиентского устройства 114 конкретно не ограничены. В качестве клиентского устройства 114 могут использоваться, например, персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.), устройства беспроводной связи (мобильные телефоны, смартфоны, планшеты и т.п.), и другое оборудование.[90] Depicted in FIG. 1 client device 114 is implemented as a Dell ™ Precision T1700 MT personal computer CA033PT170011RUWS with an Intel® Xeon ™ processor, processor frequency: 3300 MHz, with an nVIDIA Quadro K2000 graphics card, with installed and running Windows 7 Pro 64-bit operating system. However, as will be appreciated by those skilled in the art, the options for the first client device 114 are not particularly limited. As the client device 114, for example, personal computers (desktop computers, laptops, netbooks, etc.), wireless communication devices (mobile phones, smartphones, tablets, etc.), and other equipment can be used.

[91] Клиентское устройство 114 включает в себя носитель информации (не изображен), реализованный как жесткий диск объемом 500 Гб. Однако, как будет понятно специалистам в данной сфере, данный носитель информации может быть реализован как носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д., а также их комбинации.[91] Client device 114 includes a storage medium (not shown) implemented as a 500 GB hard disk. However, as will be understood by specialists in this field, this storage medium can be implemented as a medium of absolutely any type and nature, including RAM, ROM, disks (CDs, DVDs, diskettes, hard drives, etc.), USB flash drives, solid state drives, tape drives, etc., as well as combinations thereof.

[92] Носитель информации может сохранять файлы пользователя и программные инструкции. В частности, носитель информации может хранить программное обеспечение, реализующее функции браузера (не изображен). В общем случае, целью браузера является предоставление возможности пользователю 121 подключаться к у серверу 102, получать и принимать сообщения электронной почты с помощью веб-интерфейса, показывать получаемые и отправляемые сообщения электронной почты на дисплее (не пронумерован), направлять на сервер 102 запросы на выполнение задач. В клиентском устройстве 114 браузер реализован как браузер Яндекс™. Однако, как будет понятно специалистам в данной сфере, реализация браузера никак конкретно не ограничена. В качестве неограничивающих примеров, такими браузерами могут быть Google Chrome, Internet Explorer, и другие. Важно иметь в виду, что любое другое коммерчески доступное или собственное приложение может быть использовано для реализации вариантов осуществления настоящей технологии, не ограничивающих ее объем.[92] The storage medium may store user files and program instructions. In particular, the storage medium may store software that implements browser functions (not shown). In general, the goal of a browser is to enable user 121 to connect to server 102, receive and receive e-mail messages using a web interface, display received and sent e-mail messages on a display (not numbered), and send execution requests to server 102 tasks. In the client device 114, the browser is implemented as a Yandex ™ browser. However, as will be clear to experts in this field, the implementation of the browser is not specifically limited. By way of non-limiting examples, such browsers may be Google Chrome, Internet Explorer, and others. It is important to keep in mind that any other commercially available or proprietary application can be used to implement embodiments of the present technology that do not limit its scope.

[93] Клиентское устройство 114 включает в себя также дисплей (не пронумерован), являющийся монитором Монитор Dell™ Е2214Н 2214-7803, диагональ 21,5", с разрешением 1920×1080, позволяющий представлять видеоинформацию пользователю 121. Таким образом, пользователь 121 имеет возможность видеть на дисплее в интерфейсе браузера клиентского устройства 114 различные объекты, сообщения электронной почты, папки сообщений электронной почты, а также графические элементы интерфейса, позволяющие пользователю 121 выбирать определенные сообщения электронной почты и делать запросы на выполнение задач с такими сообщениями электронной почты.[93] Client device 114 also includes a display (not numbered), which is a monitor Dell ™ E2214Н 2214-7803 monitor, 21.5 "diagonal, with a resolution of 1920 × 1080, which allows video information to be presented to user 121. Thus, user 121 has the ability to see various objects, e-mail messages, folders of e-mail messages, as well as graphical interface elements on the display in the browser interface of the client device 114, allowing the user 121 to select certain e-mail messages and do Requests for tasks with such emails.

[94] В альтернативных воплощениях настоящей технологии, клиентское устройство 114, может быть реализовано таким образом, чтобы обеспечивать возможность совершать операции с другими цифровыми объектами, в том числе формировать запросы на выполнение задач с такими цифровыми объектами и направлять их на сервер 102.[94] In alternative embodiments of the present technology, the client device 114 may be implemented in such a way as to provide the ability to perform operations with other digital objects, including generating requests to perform tasks with such digital objects and send them to the server 102.

[95] Фиг. 5 является блок-диаграммой способа 500, выполняемого на множестве серверов 102, изображенном на Фиг. 1, и выполненного в соответствии с вариантами осуществления настоящей технологии, не ограничивающими ее объем. Способ 500 является способом выполнения очереди запросов в отношении цифровых объектов. В данном воплощении настоящей технологии, цифровые объекты являются сообщениями электронной почты. В других воплощениях настоящей технологии, цифровые объекты могут быть файлами любого типа.[95] FIG. 5 is a flowchart of a method 500 running on a plurality of servers 102 of FIG. 1, and made in accordance with embodiments of the present technology, not limiting its scope. The method 500 is a method of executing a request queue in relation to digital objects. In this embodiment of the present technology, digital objects are email messages. In other embodiments of the present technology, digital objects may be any type of file.

[96] В вариантах осуществления настоящей технологии способ 500 может выполняться на серверах 102, изображенных на Фиг. 1. Для этого серверы 102 включают в себя носители информации 104, хранящие машиночитаемые инструкции, при выполнении которых серверы 102 выполняют этапы способа 500. Однако, как это будет понятно специалистам в данной области техники, метод 500 может быть осуществлен на других серверах, либо на одном сервере 102. В нижеследующем описании ссылки на сервер 102, рабочие приложения 108, в том числе рабочее приложение 1082, на хранилище данных 110 подразумевает, что рабочие приложения 108, в том числе рабочее приложение 1082, хранилище данных 110 могут быть реализованы одновременно на одном или нескольких серверах 102. Соответственно, обращение к ним и выполнение шагов может осуществляется на соответствующем сервере 102, либо параллельно на нескольких советующих серверах 102.[96] In embodiments of the present technology, method 500 may be executed on servers 102 of FIG. 1. For this, the servers 102 include storage media 104 storing computer-readable instructions, during which the servers 102 perform the steps of method 500. However, as will be appreciated by those skilled in the art, method 500 can be implemented on other servers, or on a single server 102. In the following description, links to the server 102, the working applications 108, including the working application 1082, to the data warehouse 110 implies that the working applications 108, including the working application 1082, the data warehouse 110 can be implemented s simultaneously on one or more servers 102. Accordingly, access to them and the steps can be performed on the corresponding server 102, or in parallel on several advising servers 102.

[97] Этап 502 - получение с клиентского устройства 114 по сети 112 передачи данных первого запроса 202 на выполнение первой задачи[97] Step 502 - receiving from a client device 114 over a data network 112 a first request 202 for performing a first task

[98] На этапе 502, сервер 102 осуществляет получение с клиентского устройства 114 по сети 112 передачи данных первого запроса 202 пользователя 121 на выполнение первой задачи.[98] At step 502, the server 102 receives from the client device 114 via the data network 112 the first request 202 of the user 121 to complete the first task.

[99] Запросы пользователя 121 включают в себя собственно задачу, подлежащую выполнению, и указание на цифровые объекты из первого множества цифровых объектов, связанных с данной задачей.[99] User requests 121 include the actual task to be performed and an indication of digital objects from the first plurality of digital objects associated with the task.

[100] В данном воплощении настоящей технологии, запрос 202 пользователя 121 включает в себя задачу удалить без возможности восстановления сообщения электронной почты, и указывает на цифровые объекты, связанные с данной задачей: все сообщения электронной почты, полученных с адреса электронной почты spam @ spam . com и находящихся в папке «удаленные». Соответственно, запрос 202 пользователя 121 на выполнение задачи в отношении определенных сообщений электронной почты содержит идентификатор 300 задачи (удаление сообщений электронной почты без возможности восстановления), и идентификаторы 301-310 всех сообщений электронной почты, в отношении которых должна быть выполнена задача.[100] In this embodiment of the present technology, the request 202 of the user 121 includes a task to delete, without being able to retrieve an email message, and points to digital objects associated with this task: all email messages received from the spam @ spam email address . com and located in the "deleted" folder. Accordingly, a request 202 of a user 121 to perform a task with respect to certain e-mail messages contains a task identifier 300 (permanently deleted e-mail messages) and identifiers 301-310 of all e-mail messages for which the task is to be performed.

[101] Затем способ 500 переходит к этапу 504[101] Then, the method 500 proceeds to step 504

[102] Этап 504 - определение сервером 102 количества цифровых объектов в первом множестве цифровых объектов[102] Step 504, the server 102 determines the number of digital objects in the first plurality of digital objects

[103] На этапе 504, рабочее приложение 1082 сервера 102 осуществляет определение количества цифровых объектов в первом множестве цифровых объектов.[103] At step 504, the operational application 1082 of the server 102 determines the number of digital objects in the first plurality of digital objects.

[104] В данном воплощении настоящей технологии, пользователь 121 направил с клиентского устройства 114 по сети передачи данных на сервер 102 запрос на удаление без возможности восстановления всех сообщений электронной почты, полученных с адреса электронной почты spam@spam.com, и находящихся в папке «удаленные». Для этого пользователь 121 выделил в папке «удаленные» одно из сообщений, полученных с адреса spam @ spam . com, и выбрал опцию «удалить все сообщения данного пользователя из данной папки». В этом случае один или несколько рабочих приложений 108 может идентифицировать все сообщения электронной почты, соответствующие заданным критериям (отправитель - spam@spam.com, папка - «удаленные»), и определить их количество. Допустим, в качестве примера, что количество сообщений электронной почты, соответствующих данным критериям, оказалось равно десяти, то есть что в папке «удаленные» в момент осуществления соответствующей операции пользователем 121 оказалось десять сообщений электронной почты от отправителя spam@spam.com.[104] In this embodiment of the present technology, the user 121 sent a request from the client device 114 via the data network to the server 102 to delete without restoring all the e-mail messages received from the spam@spam.com email address and located in the “ deleted. " To do this, user 121 selected one of the messages received from the spam @ spam address in the "deleted" folder . com , and chose the option "delete all messages from this user from this folder." In this case, one or more working applications 108 can identify all e-mail messages that match the specified criteria (sender - spam@spam.com, folder - "deleted"), and determine their number. Suppose, as an example, that the number of e-mail messages matching these criteria turned out to be ten, that is, that in the “deleted” folder at the time of the corresponding operation, user 121 turned out to be ten e-mail messages from the sender spam@spam.com.

[105] Этап 506 - разделение первого запроса 202 на множество 2020 подзапросов[105] Step 506 - splitting the first query 202 into a plurality of 2020 subqueries

[106] На этапе 506, рабочее приложение 1082 сервера 102 осуществляет разделение первого запроса 202 пользователя 121 на множество 2020 подзапросов, а именно на подзапросы 2022, 2024 и 2026, причем каждый из подзапросов 2022, 2024 и 2026 относится к части цифровых объектов из первого множества цифровых объектов, связанных с первым запросом. Такое разделение запроса 220 на множество 2020 подзапросов осуществляется в случае, когда количество цифровых объектов, в отношении которых поступил запрос 220 пользователя 121 на выполнение задачи, превышает пороговое значение. В случаях, когда количество цифровых объектов, в отношении которых поступил запрос 220 пользователя 121 на выполнение задачи, не превышает порогового значения, способ 500 заканчивается.[106] At step 506, a working application 1082 of the server 102 splits the first request 202 of user 121 into a plurality of 2020 sub-queries, namely, sub-queries 2022, 2024, and 2026, each of the sub-queries 2022, 2024, and 2026 referring to a portion of digital objects from the first sets of digital objects associated with the first request. Such a separation of the request 220 into a plurality of 2020 subqueries is carried out in the case when the number of digital objects in respect of which the request 220 of the user 121 for the execution of the task exceeds a threshold value. In cases where the number of digital objects in respect of which a request was received 220 by user 121 to perform a task does not exceed a threshold value, method 500 ends.

[107] Пороговое значение может быть предварительно запрограммировано. Пороговое значение может быть установлено для каждого типа задачи отдельно. Например, для задачи по удалению сообщений электронной почты без возможности восстановления может быть установлено одно пороговое значение, и для копирования из одной папки в другую папку помеченных пользователем 121 сообщений электронной почты может быть установлено другое пороговое значение.[107] The threshold value may be preprogrammed. The threshold value can be set for each type of task separately. For example, for the task of deleting e-mail messages without the possibility of recovery, one threshold value can be set, and for copying from one folder to another folder 121 user-marked e-mail messages, another threshold value can be set.

[108] Порядок разделения запроса на множество подзапросов в упрощенном виде проиллюстрирован на следующем примере со ссылками на Фиг. 2.[108] The procedure for splitting a query into multiple subqueries in a simplified form is illustrated in the following example with reference to FIG. 2.

[109] Сервер 102 получает по сети передачи данных 112 с клиентского устройства 114 запрос 202 пользователя 121 на выполнение задачи по удалению без возможности восстановления всех сообщений электронной почты, полученных с адреса электронной почты spam @ spam . com. и находящихся в папке «удаленные». Допустим, в качестве примера, что рабочее приложение 1082, являющееся одним из рабочих приложений 108, определило, что количество сообщений электронной почты, соответствующих данным критериям, равно десяти, и идентифицировало данные сообщения электронной почты. Допустим, что для задачи по удалению сообщений электронной почты без возможности восстановления установлено пороговое значение, равное четырем сообщениям электронной почты. Исходя из этих данных и допущений, запрос на выполнение задачи удалению без возможности восстановления всех сообщений электронной почты, полученных с адреса электронной почты spam @ spam . com, и находящихся в папке «удаленные», будет разделен на множество 2020 подзапросов, включающее в себя подзапросы 2022, 2024 и 2026.[109] The server 102 receives, via the data transmission network 112 from the client device 114, a request 202 from the user 121 to perform the deletion task without being able to recover all email messages received from the spam @ spam email address . com . and located in the "deleted" folder. Suppose, by way of example, that the working application 1082, which is one of the working applications 108, determined that the number of email messages matching these criteria was ten, and identified the data of the email message. Assume that the task for deleting e-mail messages without the possibility of recovery is set to a threshold value of four e-mail messages. Based on this data and assumptions, a request to perform the deletion task without the ability to recover all e-mail messages received from the spam @ spam email address . com , and located in the “deleted” folder, will be divided into many 2020 subqueries, including subqueries 2022, 2024 and 2026.

[110] При разделении запроса на множество подзапросов, рабочее приложение 1082 формирует множество подзапросов таким образом, чтобы каждый из подзапросов включал бы в себя информацию о задаче, а также указание на цифровые объекты из соответствующей части цифровых объектов, в отношении которых запрос на выполнение задачи был сформирован.[110] When dividing a request into many subqueries, the working application 1082 generates many subqueries in such a way that each of the subqueries includes information about the task, as well as an indication of digital objects from the corresponding part of the digital objects in relation to which the request to complete the task was formed.

[111] Например, как это схематически представлено на Фиг. 3, запрос 202 пользователя 121 на выполнение задачи в отношении определенных сообщений электронной почты содержит идентификатор 300 задачи (удаление сообщений электронной почты без возможности восстановления), и идентификаторы 301-310 десяти сообщений электронной почты, в отношении которых должна быть выполнена задача. Рабочее приложение 1082, определив, что количество сообщений электронной почты, в отношении которых должна быть выполнена задача, превышает пороговое значение «4», разделяет запрос 202 на множество 2020 подзапросов, включающее в себя подзапросы 2022, 2024 и 2026. При этом каждый из подзапросов 2022, 2024 и 2026 содержит в себе идентификатор 300 задачи (удаление сообщений электронной почты без возможности восстановления), и идентификаторы сообщений электронной почты, в отношении которых должен быть выполнен соответствующий подзапрос. Так, подзапрос 2022 включает в себя, помимо идентификатора 300 задачи, идентификаторы 301, 302, 303, 304 четырех сообщений электронной почты, в отношении которых должен быть выполнен подзапрос 2022. Подзапрос 2024 включает в себя, помимо идентификатора 300 задачи, идентификаторы 305, 306, 307, 308 четырех сообщений электронной почты, в отношении которых должен быть выполнен подзапрос 2024. Подзапрос 2026 включает в себя, помимо идентификатора 300 задачи, идентификаторы 309 и 310 двух сообщений электронной почты, в отношении которых должен быть выполнен подзапрос 2026. Таким образом, любой из идентификаторов 301 - 310 десяти сообщений электронной почты, содержащихся в запросе 202, присутствует в одном из подзапросов 2022, 2024 или 2026, образованных в результате разделения запроса 202.[111] For example, as schematically represented in FIG. 3, a request 202 of a user 121 to perform a task with respect to certain email messages contains a task identifier 300 (permanently deleted e-mail messages), and identifiers 301-310 of ten email messages for which the task is to be performed. Working application 1082, having determined that the number of e-mail messages for which the task should be performed exceeds the threshold value of “4”, splits the request 202 into a plurality of 2020 subqueries, including subqueries 2022, 2024 and 2026. In addition, each of the subqueries 2022, 2024, and 2026 contain the identifier 300 of the task (delete e-mail messages without the possibility of recovery), and the identifiers of the e-mail messages for which the corresponding subquery must be performed. So, the subquery 2022 includes, in addition to the task identifier 300, the identifiers 301, 302, 303, 304 of the four email messages for which the subquery 2022 is to be executed. The subquery 2024 includes, in addition to the task identifier 300, the identifiers 305, 306 , 307, 308 of the four email messages for which the subquery 2024 is to be executed. The subquery 2026 includes, in addition to the task identifier 300, the identifiers 309 and 310 of the two email messages for which the subquery 2026 is to be executed. Thus thus, any of the identifiers 301 to 310 of ten email messages contained in the request 202 is present in one of the subqueries 2022, 2024, or 2026 generated by splitting the request 202.

[112] В данном воплощении настоящей технологии подзапросы 2022, 2024 и 2026 будут затем, после расчета уникальных идентификаторов подзапросов, сохранены рабочим приложением 1082 в хранилище 110 подзапросов.[112] In this embodiment of the present technology, the subqueries 2022, 2024, and 2026 will then, after calculating the unique identifiers of the subqueries, be stored by the working application 1082 in the subquery store 110.

[113] Затем, способ 500 переходит к этапу 508.[113] Then, the method 500 proceeds to step 508.

[114] Этап 508 - расчет уникальных идентификаторов подзапросов 2022,2024 и 2026[114] Step 508 — Calculation of Unique Subquery Identifiers 2022,2024 and 2026

[115] На этапе 508, рабочее приложение 1082 сервера 102 осуществляет расчет уникального идентификатора подзапроса, причем уникальный идентификатор подзапроса основывается по меньшей мере частично на содержимом соответствующего подзапроса.[115] At step 508, a working application 1082 of the server 102 calculates a unique subquery identifier, the unique subquery identifier being based at least in part on the contents of the corresponding subquery.

[116] В данном воплощении настоящей технологии, расчет уникального идентификатора подзапроса осуществляется с использованием алгоритма хеширования, с использованием в качестве входящих данных идентификатора 300 задачи и идентификаторов сообщений электронной почты, в отношении которых должен быть выполнен соответствующий подзапрос. Для расчета уникальных идентификаторов подзапроса создается битовый массив из m бит. Изначально, когда структура данных хранит пустое множество, все m бит обнулены. Пользователь должен определить k независимых хеш-функций h1, …, hk, отображающих каждый элемент в одну из m позиций битового массива достаточно равномерным образом. Для добавления элемента е необходимо записать единицы на каждую из позиций h1(e), …, hk(e) битового массива. Созданный таким образом уникальный идентификатор подзапроса может иметь следующий вид:[116] In this embodiment of the present technology, the calculation of the unique identifier of the subquery is carried out using a hashing algorithm using the task identifier 300 and the identifiers of the email messages for which the corresponding subquery must be performed as input. To calculate the unique identifiers of the subquery, a bit array of m bits is created. Initially, when the data structure stores an empty set, all m bits are reset to zero. The user must determine k independent hash functions h1, ..., hk that map each element to one of the m positions of the bit array in a fairly uniform way. To add the element e, it is necessary to write units at each of the positions h1 (e), ..., hk (e) of the bit array. The unique subquery identifier created in this way can look like this:

4f594a90_6370b0b7b9514f594a90_6370b0b7b951

где часть «4f594a90» уникального идентификатора подзапроса является номером подзапроса, и где часть «6370b0b7b951», отделенная от номера подзапроса нижним подчеркиванием, является элементом, используемым фильтра Блума.where the “4f594a90” part of the unique subquery identifier is the subquery number, and where the “6370b0b7b951” part, separated from the subquery number by an underscore, is the element used by the Bloom filter.

[117] Расчет уникальных идентификаторов подзапросов в дальнейшем позволит рабочим приложениям 108 применить фильтр Блума (англ.: Bloom filter) при проверке, содержат ли по меньшей мере два разных подзапроса идентификаторы одного и того же сообщения электронной почты. Такая ситуация (наличие двух и более двух подзапросов на выполнение разных задач в отношении одного и того же сообщения электронной почты) возможна, когда такие подзапросы были образованы в результате разделения разных запросов одного и того же пользователя, причем оба запроса, хотя бы частично, сделаны в отношении одного и того же сообщения электронной почты.[117] The calculation of the unique identifiers of the subqueries in the future will allow working applications 108 to apply the Bloom filter (English: Bloom filter) when checking whether at least two different subqueries contain the identifiers of the same email message. Such a situation (the presence of two or more two subqueries for performing different tasks in relation to the same e-mail message) is possible when such subqueries were formed as a result of the separation of different requests of the same user, and both requests, at least partially, were made in relation to the same email message.

[118] Затем, способ 500 переходит к этапу 510.[118] Then, the method 500 proceeds to step 510.

[119] Этап 510 - сохранение подзапросов 2022, 2024 и 2026 в хранилище 110 подзапросов совместно с соответствующими им идентификаторами подзапросов 2022,2024 и 2026[119] Step 510 — storing the subqueries 2022, 2024, and 2026 in the sub-query store 110 together with their corresponding subquery identifiers 2022,2024 and 2026

[120] На этапе 510, рабочее приложение 1082 сервера 102, разделив запрос 202 на множество 2020 подзапросов и произведя расчет уникальных идентификаторов подзапросов 2022, 2024 и 2026, сохраняет множество 2020 подзапросов, в данном воплощении настоящей технологии состоящее из подзапросов 2022, 2024 и 2026, вместе с уникальными идентификаторами подзапросов 2022, 2024 и 2026, в хранилище 110 подзапросов.[120] At step 510, the operational application 1082 of the server 102, dividing the query 202 into a plurality of 2020 subqueries and calculating the unique identifiers of the subqueries 2022, 2024, and 2026, saves a plurality of 2020 subqueries, in this embodiment of the present technology, consisting of subqueries 2022, 2024, and 2026 , together with the unique identifiers of the subqueries 2022, 2024, and 2026, in the repository 110 of the subqueries.

[121] В данном воплощении настоящей технологии, для обеспечения хранения подзапросов в хранилище 110 подзапросов, используется Апачи Зукипер™.[121] In this embodiment of the present technology, Apache Zukiper ™ is used to provide storage of the subqueries in the 110 subquery storage.

[122] На Фиг. 4 схематически представлена структура хранения подзапросов в хранилище 110 подзапросов с использованием Апачи Зукипер™. Для хранения данных используются z-узлы (z-nodes). На фиг. 4 изображены следующие z-узлы: 402, 404, 406, 408, 410, 4062, 4064, 4066. Особенностью z-узлов Апачи Зукипер™ является то, что с одним z-узлом в определенный момент времени возможно осуществление только одного процесса при многопоточной обработке данных. По этой причине, если одно из рабочих приложений 108 осуществляет операцию с определенным z-узлом, то другое рабочее приложение 108 не может осуществлять операцию с этим же самым z-узлом.[122] In FIG. 4 schematically illustrates the structure of the storage of subqueries in the repository 110 of subqueries using Apache Zukiper ™. To store data, z-nodes are used. In FIG. Figure 4 shows the following z-nodes: 402, 404, 406, 408, 410, 4062, 4064, 4066. A feature of the Apache Zukiper ™ z-nodes is that with one z-node at a given moment, it is possible to carry out only one process with multithreaded data processing. For this reason, if one of the working applications 108 performs an operation with a particular z-node, then the other working application 108 cannot carry out an operation with the same z-node.

[123] Z-узел 402 является корневым узлом.[123] Z-node 402 is the root node.

[124] Затем следуют z-узлы 404, 406, 408, … 410, каждый для отдельного пользователя, сделавшего запрос на выполнение по меньшей мере одного задания в отношении множества сообщений электронной почты. На Фиг. 4 изображены четыре z-узла для пользователей. Однако, как будет понятно специалисту в данной области техники, в действительности количество таких узлов будет значительно большим.[124] Then follow the z-nodes 404, 406, 408, ... 410, each for an individual user who has made a request to complete at least one job with respect to multiple email messages. In FIG. 4 shows four z-nodes for users. However, as will be understood by a person skilled in the art, in reality the number of such nodes will be significantly larger.

[125] Z-узел 406, изображенный на Фиг. 4, является z-узлом, созданным в отношении пользователя 121, поскольку пользователь 121 направил с клиентского устройства 114 по сети передачи данных на сервер 102 запрос на удаление без возможности восстановления множества сообщений электронной почты, полученных с адреса электронной почты spam@spam.com. и находящихся в папке «удаленные».[125] The Z-node 406 shown in FIG. 4 is a z-node created with respect to user 121, since user 121 sent a delete request from client device 114 via data network to server 102 without the possibility of recovering many email messages received from spam@spam.com. and located in the "deleted" folder.

[126] Затем, в отношении каждого из пользователей, каждый из которых сделал по меньшей мере один запрос на выполнение одного или нескольких заданий в отношении множества сообщений электронной почты, существуют z-узлы, каждый из которых хранит подзапрос, подлежащими обработке. На Фиг. 4 изображены не все такие z-узлы, а только z-узлы, каждый из которых хранит подзапрос, сформированный при разделении запроса пользователя 121. В данном случае, это z-узлы 4062, 4064 и 4066.[126] Then, for each of the users, each of whom has made at least one request to perform one or more tasks for a plurality of email messages, there are z-nodes, each of which stores a subquery to be processed. In FIG. 4, not all such z-nodes are shown, but only z-nodes, each of which stores a subquery formed when splitting user request 121. In this case, these are z-nodes 4062, 4064, and 4066.

[127] Z-узел 4062 хранит подзапрос 2022.[127] Z-node 4062 stores subquery 2022.

[128] Z-узел 4064 хранит подзапрос 2024.[128] Z-node 4064 stores a subquery 2024.

[129] Z-узел 4066 хранит подзапрос 2026.[129] Z-node 4066 stores a subquery 2026.

[130] В каждом таком z-узле, хранящем подзапрос, подлежащими обработке, имеется запись в формате JSON (от англ. JavaScript Object Notation), которая содержит в себе идентификатор задания и идентификаторы сообщений.[130] Each such z-node that stores the subquery to be processed has a JSON format entry (from the JavaScript Object Notation), which contains the job identifier and message identifiers.

[131] Соответственно, z-узел 4062, хранящий подзапрос 2022, содержит в себе запись 422 в формате JSON, включающую в себя идентификатор задания 300 и идентификаторы сообщений 301, 302, 303, и 304.[131] Accordingly, the z-node 4062, storing the subquery 2022, contains a JSON format 422 including a job identifier 300 and message identifiers 301, 302, 303, and 304.

[132] Запись 422 может, условно, иметь следующий вид:[132] Record 422 may, conditionally, have the following form:

Figure 00000001
Figure 00000001

[133] Z-узел 4064, хранящий подзапрос 2024, содержит в себе запись 424 в формате JSON, включающую в себя идентификатор задания 300 и идентификаторы сообщений 305, 306, 306, и 308.[133] Z-node 4064, storing subquery 2024, contains a JSON record 424, including job identifier 300 and message identifiers 305, 306, 306, and 308.

[134] Запись 424 может, условно, иметь следующий вид:[134] Record 424 may, conditionally, have the following form:

Figure 00000002
Figure 00000002

[135] Z-узел 4066, хранящий подзапрос 2026, содержит в себе запись 426 в формате JSON, включающую в себя идентификатор задания 300 и идентификаторы сообщений 309 и 310.[135] Z-node 4066, storing subquery 2026, contains a JSON record 426, including job identifier 300 and message identifiers 309 and 310.

[136] Запись 426 может, условно, иметь следующий вид:[136] Record 426 may, conditionally, have the following form:

Figure 00000003
Figure 00000003

[137] Дополнительно, в каждом z-узле, хранящем подзапрос, подлежащими обработке (то есть в z-узлах 4062, 4064, 4066), могут быть записаны уникальные идентификаторы подзапросов 2022, 2024 и 2026, рассчитанные на этапе 506.[137] Additionally, in each z-node storing the subquery to be processed (that is, in z-nodes 4062, 4064, 4066), unique subquery identifiers 2022, 2024, and 2026 calculated in step 506 can be recorded.

[138] Хранилище 110 подзапросов доступно для рабочих приложений 108, которые могут считывать информацию из хранилища 110 подзапросов.[138] Subquery store 110 is available for production applications 108 that can read information from subquery store 110.

[139] Как было отмечено выше, серверы 102, изображенные на Фиг. 1, могут быть реализованы как один сервер 102, либо как несколько взаимосвязанных серверов 102. Рабочие приложения 108 могут быть, соответственно, распределены между этими серверами, а хранилище данных может быть реализовано как множество хранилищ данных. Соответственно, подзапросы 2022, 2024 и 2026 могут быть сохранены в разные хранилища данных на разных серверах.[139] As noted above, the servers 102 depicted in FIG. 1, can be implemented as a single server 102, or as several interconnected servers 102. Working applications 108 can be respectively distributed between these servers, and the data store can be implemented as multiple data stores. Accordingly, subqueries 2022, 2024, and 2026 can be stored in different data stores on different servers.

[140] Затем, способ 500 переходит к этапу 512.[140] Then, the method 500 proceeds to step 512.

[141] Этап 512 - получение с клиентского устройства 114 по сети 112 передачи данных второго запроса 604 на выполнение второй задачи[141] Step 512 - receiving from the client device 114 over the data transmission network 112 a second request 604 for performing a second task

[142] На этапе 512, сервер 102 получает с клиентского устройства 114 по сети 112 передачи данных второй запрос 604 пользователя 121 на выполнение второй задачи. Структура второго запроса 604 схематически представлена на Фиг. 6.[142] At step 512, the server 102 receives, from the client device 114 via the data network 112, a second request 604 of the user 121 to perform the second task. The structure of the second request 604 is shown schematically in FIG. 6.

[143] В данном воплощении настоящей технологии, второй запрос 604 пользователя 121 включает в себя вторую задачу переместить сообщения электронной почты из папки «удаленные» в папку «входящие», и указывает на сообщения электронной почты, связанные с данной второй задачей: три сообщения электронной почты, выделенные пользователем 121 мышью в веб-интерфейсе почтового сервиса в браузере клиентского устройства 114. Соответственно, второй запрос 604 пользователя 121 на выполнение второй задачи в отношении определенных сообщений электронной почты содержит идентификатор 600 задачи (перемещение сообщений электронной почты из папки «удаленные» в папку «входящие»), и идентификаторы 307, 601 и 309 трех выделенных пользователем 121 сообщений электронной почты, в отношении которых должна быть выполнена задача.[143] In this embodiment of the present technology, the second request 604 of user 121 includes a second task to move email messages from the deleted folder to the inbox, and indicates email messages associated with this second task: three email messages e-mails allocated by the user 121 with the mouse in the web-based interface of the mail service in the browser of the client device 114. Accordingly, the second request 604 of the user 121 to perform the second task in relation to certain e-mail messages rzhit task identifier 600 (moving email messages from "remote" to folder "inbox" folder), and identifiers 307, 601 and 309 selected by the user three 121 e-mail messages, for which task should be performed.

[144] В данном воплощении настоящей технологии, до получения сервером 102 с клиентского устройства 114 по сети 112 передачи данных второго запроса 604 пользователя 121 на выполнение второй задачи, ни одно из рабочих приложений 108 сервера 102 еще не начало выполнять ни один из подзапросов из множества 2020 подзапросов. Однако в других воплощениях настоящей технологии, до получения сервером 102 с клиентского устройства 114 по сети 112 передачи данных второго запроса 604 пользователя 121 на выполнение второй задачи, одно или несколько рабочих приложений 108 сервера 102 начнут выполнять один или несколько подзапросов из множества 2020 подзапросов.[144] In this embodiment of the present technology, before the server 102 received from the client device 114 via the data transmission network 112 a second request 604 of the user 121 for the second task, none of the working applications 108 of the server 102 have yet begun to execute any of the subqueries from the set 2020 subqueries. However, in other embodiments of the present technology, before the server 102 receives from the client device 114 over the data network 112 the second request 604 of the user 121 for the second task, one or more working applications 108 of the server 102 will begin to execute one or more subqueries from the set of 2020 subqueries.

[145] Затем, способ 500 переходит к этапу 512.[145] Then, the method 500 proceeds to step 512.

[146] Этап 514 - определение по меньшей мере одного подзапроса из множества 2020 подзапросов, содержащего указания на тот по меньшей мере один цифровой объект, указание на который по меньшей мере один цифровой объект также содержится во втором запросе 604 на выполнение второй задачи[146] Step 514 - determining at least one subquery from a plurality of 2020 subqueries containing indications of that at least one digital object, the indication of which at least one digital object is also contained in the second request 604 for performing the second task

[147] На этапе 514, рабочие приложения 108 сервера 102 осуществляют определение по меньшей мере одного подзапроса из множества 2020 подзапросов, содержащего указания на тот по меньшей мере один цифровой объект, указание на который также содержится во втором запросе 604 на выполнение второй задачи.[147] At step 514, the operational applications 108 of the server 102 determine at least one subquery from the plurality of 2020 subqueries containing references to that at least one digital object, which is also indicated in the second request 604 for the second task.

[148] Определение по меньшей мере одного подзапроса из множества 2020 подзапросов, содержащего указания на тот по меньшей мере один цифровой объект, указание на который также содержится во втором запросе 604 на выполнение второй задачи, может быть выполнено различными способами. Говоря в общем, рабочие приложения 108 сервера 102 должны выявить, имеются ли в подзапросах из множества 2020 подзапросов такие подзапросы, которые содержат те же самые идентификаторы, что и второй запрос 604.[148] The determination of at least one subquery from a plurality of 2020 subqueries containing indications of that at least one digital object, the indication of which is also contained in the second request 604 for the second task, can be performed in various ways. Generally speaking, the operational applications 108 of the server 102 should determine if the subqueries from the plurality of 2020 subqueries have those subqueries that contain the same identifiers as the second query 604.

[149] Один из способов указанного определения может заключаться в полной проверке всех подзапросов 2022, 2024, 2026 на наличие в них идентификаторов сообщений электронной почты 307, 301 и 309, содержащихся во втором запросе 604 на выполнение второй задачи. Как это будет понятно специалистам в данной области техники, множество 2020 подзапросов обычно включает значительно большее количество подзапросов, чем это показано для простоты понимания на Фиг. 3. Подзапросы, входящие в множество 2020 подзапросов, могут содержать сотни, тысячи и десятки тысяч сообщений.[149] One of the methods for this determination can be to fully check all subqueries 2022, 2024, 2026 for the identifiers of email messages 307, 301, and 309 contained in the second request 604 for the second task. As will be appreciated by those skilled in the art, a plurality of 2020 subqueries typically include a significantly larger number of subqueries than is shown for ease of understanding in FIG. 3. The subqueries included in the many 2020 subqueries can contain hundreds, thousands, and tens of thousands of messages.

[150] В данном воплощении настоящей технологии, определение по меньшей мере одного подзапроса из множества 2020 подзапросов, содержащего указания на тот по меньшей мере один цифровой объект, указание на который также содержится во втором запросе 604 на выполнение второй задачи, осуществляется с использованием алгоритма вероятностной структуры данных. Более конкретно, в данном воплощении настоящей технологии, таком алгоритмом вероятностной структуры данных является фильтр Блума. [151] Фильтр Блума (англ.: Bloom filter) является вероятностной структурой данных, позволяющей компактно хранить множество элементов и проверять принадлежность заданного элемента к множеству. При этом существует возможность получить ложноположительное срабатывание (элемента в множестве нет, но структура данных сообщает, что он есть), но не ложноотрицательное.[150] In this embodiment of the present technology, the determination of at least one subquery from a plurality of 2020 subqueries containing references to that at least one digital object, which is also indicated in the second request 604 for the second task, is performed using the probabilistic algorithm data structures. More specifically, in this embodiment of the present technology, such a probabilistic data structure algorithm is a Bloom filter. [151] A Bloom filter is a probabilistic data structure that allows you to compactly store multiple elements and verify that a given element belongs to the set. At the same time, it is possible to obtain a false positive response (there is no element in the set, but the data structure reports that it is), but not false negative.

[152] Фильтр Блума представляет собой битовый массив из m бит. Изначально, когда структура данных хранит пустое множество, все m бит обнулены. Пользователь должен определить k независимых хеш-функций h1, …, hk, отображающих каждый элемент в одну из m позиций битового массива достаточно равномерным образом. [153] Для добавления элемента е необходимо записать единицы на каждую из позиций h1(е), …, hk(e) битового массива.[152] The Bloom filter is a bit array of m bits. Initially, when the data structure stores an empty set, all m bits are reset to zero. The user must determine k independent hash functions h1, ..., hk that map each element to one of the m positions of the bit array in a fairly uniform way. [153] To add the element e, it is necessary to write units at each of the positions h1 (e), ..., hk (e) of the bit array.

[154] Для проверки принадлежности элемента е к множеству хранимых элементов, необходимо проверить состояние битов h1(е), …, hk(e). Если хотя бы один из них равен нулю, элемент не может принадлежать множеству (иначе бы при его добавлении все эти биты были установлены). Если все они равны единице, то структура данных сообщает, что е принадлежит множеству. При этом может возникнуть две ситуации: либо элемент действительно принадлежит к множеству, либо все эти биты оказались установлены по случайности при добавлении других элементов, что и является источником ложных срабатываний в этой структуре данных.[154] To check whether an element e belongs to the set of stored elements, it is necessary to check the state of bits h1 (e), ..., hk (e). If at least one of them is equal to zero, the element cannot belong to the set (otherwise, if it were added, all these bits would be set). If they are all equal to one, then the data structure reports that e belongs to the set. In this case, two situations may arise: either the element really belongs to the set, or all these bits turned out to be set by chance when adding other elements, which is the source of false positives in this data structure.

[155] В данном воплощении настоящей технологии, уникальный идентификатор подзапроса, рассчитанный на этапе 506 с использованием алгоритма хеширования, с использованием в качестве входящих данных идентификатора 300 задачи и идентификаторов сообщений электронной почты, в отношении которых должен быть выполнен соответствующий подзапрос, обеспечивает возможность осуществить с помощью фильтра Блума отсев таких подзапросов из множества 2020 подзапросов, в которых идентификаторы 307, 601 и 309 сообщений электронной почты отсутствуют. Следует учитывать, что фильтр Блума позволяет отсеивать подзапросы, в которых идентификаторы 307, 601 и 309 сообщений электронной почты отсутствуют; однако, учитывая возможность ложноположительного срабатывания, среди не отсеянных подзапросов могут оказаться такие подзапросы, в которых идентификаторы 307, 601 и 309 сообщений электронной почты отсутствуют. Соответственно, рабочие приложения 108 сервера 102, после применения фильтра Блума, должны будут осуществить определение по меньшей мере одного подзапроса из множества 2020 подзапросов, содержащего указания на тот по меньшей мере один цифровой объект, указание на который также содержится во втором запросе 604 на выполнение второй задачи, среди таких подзапросов, которые были не отсеяны фильтром Блума. Однако, как это будет понятно специалистам в данной области техники, объем такой проверки будет значительно меньшим, чем если бы рабочие приложения 108 сервера 102 должны были бы проверять на наличие идентификаторов 307, 601 и 309 сообщений электронной почты все подзапросы во множестве 2020 подзапросов.[155] In this embodiment of the present technology, a unique subquery identifier calculated in step 506 using a hash algorithm using the task identifier 300 and the email message identifiers for which the corresponding subquery should be performed as input provides the ability to using the Bloom filter, eliminating such subqueries from the set of 2020 subqueries in which the identifiers 307, 601, and 309 of the email messages are missing. Keep in mind that the Bloom filter allows you to filter out subqueries in which the identifiers 307, 601, and 309 of email messages are missing; however, given the possibility of a false positive, among the non-screened subqueries there may be subqueries in which the identifiers 307, 601, and 309 of the email messages are missing. Accordingly, the working applications 108 of the server 102, after applying the Bloom filter, will have to determine at least one subquery from the set of 2020 subqueries containing references to that at least one digital object, an indication of which is also contained in the second request 604 to execute the second tasks, among those subqueries that were not eliminated by the Bloom filter. However, as will be appreciated by those skilled in the art, the scope of such a check will be significantly smaller than if the working applications 108 of the server 102 would have to check for all the subqueries in the set of 2020 subqueries for the identifiers 307, 601 and 309 of the email messages.

[156] В данном воплощении настоящей технологии, рабочие приложения 108 сервера 102 определили, что в двух подзапросах - подзапросе 2024 и в подзапросе 2026 - из множества 2020 подзапросов, содержатся указания на два сообщения электронной почты 307 и 309, указания на которые также содержатся во втором запросе 604 на выполнение второй задачи.[156] In this embodiment of the present technology, operational applications 108 of server 102 determined that two sub-queries — sub-query 2024 and sub-query 2026 — out of a plurality of 2020 sub-queries contain indications of two email messages 307 and 309, which are also referenced in the second request 604 to perform the second task.

[157] Следует отметить, что в других вариантах воплощения настоящей технологии, когда до получения сервером 102 с клиентского устройства 114 по сети 112 передачи данных второго запроса 604 пользователя 121 на выполнение второй задачи, одно или несколько рабочих приложений 108 сервера 102 начали выполнять один или несколько подзапросов из множества 2020 подзапросов, шаг 516 будет выполнен с несколькими особенностями, а именно: (1) при определении по меньшей мере одного подзапроса из множества 2020 подзапросов, содержащего указания на тот по меньшей мере один цифровой объект, указание на который также содержится во втором запросе 604 на выполнение второй задачи, не будут приниматься во внимание те подзапросы, которые уже были выполнены, и (2) при определении по меньшей мере одного подзапроса из множества 2020 подзапросов, содержащего указания на тот по меньшей мере один цифровой объект, указание на который также содержится во втором запросе 604 на выполнение второй задачи, не будут приниматься во внимание те подзапросы, выполнение которых уже начато рабочими приложениями 108, поскольку факт выполнения операции одним из приложений 108 в отношении соответствующего z-узла блокирует доступ к этому z-узлу для других процессов, как это было объяснено при описании Фиг. 4.[157] It should be noted that in other embodiments of the present technology, when one or more working applications 108 of the server 102 started to execute one or more, before the server 102 received from the client device 114 via the data network 112 the second request 604 of the user 121 to perform the second task several subqueries from the set of 2020 subqueries, step 516 will be performed with several features, namely: (1) when determining at least one subquery from the set of 2020 subqueries containing indications of at least one a digital object, the reference to which is also contained in the second request 604 for the second task, will not take into account those subqueries that have already been completed, and (2) when determining at least one subquery from the set of 2020 subqueries containing indications of that at least one digital object, the reference to which is also contained in the second request 604 for the second task, will not take into account those sub-requests that have already been started by working applications 108, since the fact of completion I operation one of the applications 108 in relation to the corresponding z-node blocks access to this z-node for other processes, as explained in the description of FIG. four.

[158] Затем, способ 500 переходит к этапу 516.[158] Then, the method 500 proceeds to step 516.

[159] Этап 516 - обращение к указанному по меньшей мере одному подзапросу из множества 2020 подзапросов, и удаление из этого подзапроса указания на тот по меньшей мере один цифровой объект, указание на который по меньшей мере один цифровой объект также содержится во втором запросе 604 на выполнение второй задачи[159] Step 516 - accessing said at least one subquery from a plurality of 2020 subqueries, and removing from this subquery indications of that at least one digital object, an indication of which at least one digital object is also contained in the second request 604 to second task

[160] На этапе 516, рабочие приложения 108 сервера 102 осуществляют обращение ко всем подзапросам из множества 2020, в которых имеются идентификаторы цифровых объектов, чьи идентификаторы также имеются во втором запросе.[160] At step 516, the operational applications 108 of the server 102 access all subqueries from the set 2020, in which there are identifiers of digital objects, whose identifiers are also in the second request.

[161] Как было показано выше, рабочие приложения 108 сервера 102 определили, что идентификаторы 307 и 309 присутствуют как во втором запросе 604, так и в подзапросах 2024 и 2026. Соответственно, рабочие приложения 108 обращаются к подзапросам 2024 и 2026, и удаляют из них соответственно идентификаторы 307 и 310.[161] As shown above, the working applications 108 of the server 102 determined that the identifiers 307 and 309 are present both in the second request 604 and in the subqueries 2024 and 2026. Accordingly, the working applications 108 access the subqueries 2024 and 2026 and are deleted from identifiers 307 and 310, respectively.

[162] Затем, способ 500 переходит к этапу 518.[162] Then, the method 500 proceeds to step 518.

[163] Этап 518 - выполнение подзапросов 2022, 2024 и 2026 в отношении цифровых объектов, указания на которые содержатся в подзапросах 2022, 2024 и 2026 после удаления из по меньшей мере одного подзапроса указанного по меньшей мере одного цифрового объекта, и выполнение второго запроса 604[163] Step 518 is the execution of subqueries 2022, 2024, and 2026 in relation to digital objects, the references to which are contained in subqueries 2022, 2024, and 2026 after deletion of the at least one digital object from at least one subquery, and the execution of the second request 604

[164] На этапе 518, рабочие приложения 108 сервера 102 осуществляют выполнение подзапросов 2022, 2024, 2026 в отношении цифровых объектов 301, 302, 303, 304, 305, 306, 308, 310, указания на которые содержатся в подзапросах 2022, 2024, 2026 после удаления из двух подзапросов 2024 и 2026 индикаторов 307 и 309 двух цифровых объектов, и выполнение второго запроса 604 в отношении всех объектов, обозначенных индикаторами 307, 601 и 310.[164] At step 518, the operational applications 108 of the server 102 execute subqueries 2022, 2024, 2026 with respect to digital objects 301, 302, 303, 304, 305, 306, 308, 310, the references to which are contained in subqueries 2022, 2024, 2026 after the removal of two digital objects indicators 307 and 309 from two subqueries 2024 and 2026, and the second request 604 is executed for all objects indicated by indicators 307, 601 and 310.

[165] В практическом плане это означает, что, в данном воплощении настоящей технологии, при исполнении рабочими приложениями 108 сервера 108 подкоманд из первого множества 2020 подкоманд после удаления из них идентификаторов 307 и 309, ни один из файлов, которые были выделены пользователем с целью перемещения из папки «удаленные» в папку «входящие», не будут удалены, а будут перемещены из папки «удаленные» в папку «входящие».[165] In practical terms, this means that, in this embodiment of the present technology, when the working applications 108 of the server 108 execute the subcommands 108 from the first set of 2020 subcommands after deleting the identifiers 307 and 309 from them, none of the files that were allocated by the user for the purpose Moves from the deleted folder to the inbox will not be deleted, but will be moved from the deleted folder to the inbox.

[166] В данном воплощении настоящей технологии, рабочие приложения 108 сервера 102 осуществляют выполнение подзапросов 2022, 2024, 2026 и второго запроса 604 в произвольном порядке. Это значит, что рабочие приложения 108 сервера 102 могут осуществлять (а) сначала выполнение подзапросов 2022, 2024, 2026, и затем второго запроса 604, либо, (б) наоборот, сначала выполнение второго запроса 604, и затем выполнение подзапросов 2022, 2024, 2026, либо (в) сначала некоторых подзапросов из множества 2020 подзапросов, затем второй запрос 604, и затем оставшиеся подзапросы из множества 2020 подзапросов, (г) выполнение второго запроса 604 параллельно с выполнением по меньшей мере одного подзапроса из множества 2020 подзапросов; в данном последнем случае, затем могут быть выполнены подзапросы, которые не были выполнены параллельно с выполнением второго запроса 604.[166] In this embodiment of the present technology, the operational applications 108 of the server 102 execute subqueries 2022, 2024, 2026 and the second request 604 in random order. This means that the working applications 108 of the server 102 can perform (a) first the execution of subqueries 2022, 2024, 2026, and then the second request 604, or, (b) vice versa, first the execution of the second request 604, and then the execution of subqueries 2022, 2024, 2026, or (c) first, some of the subqueries from the set of 2020 subqueries, then the second query 604, and then the remaining subqueries from the set of 2020 subqueries, (d) the execution of the second query 604 in parallel with the execution of at least one subquery from the set of 2020 subqueries; in this latter case, then subqueries can be executed that were not executed in parallel with the execution of the second query 604.

[167] В альтернативных воплощениях настоящей технологии,[167] In alternative embodiments of the present technology,

[168] Затем, способ 500 завершается.[168] Then, method 500 ends.

[169] В рамках настоящего описания следует понимать, что везде, где указано получение данных от любого клиентского устройства и/или от любого сервера, и/или от любого другого сервера, может использоваться получение электронного или иного сигнала от соответствующего клиентского устройства (сервера, сервера), а отображение на экране устройства может быть реализовано как подача сигнала экрану, в котором содержится определенная информация, которая в дальнейшем может быть интерпретирована определенными образами и по меньшей мере частично отображена на экране клиентского устройства. Подача и получение сигнала не везде указаны в рамках настоящего описания для упрощения изложения и облегчения понимания настоящего решения. Сигналы могут передаваться оптическими методами (по волоконно-оптической связи, например), электронными методами (по проводной или беспроводной связи), механическими методами (передача давления, температуры и/или других физических параметров посредством которых возможна передача сигнала).[169] In the framework of the present description, it should be understood that wherever it is indicated that data is received from any client device and / or from any server and / or from any other server, the receipt of electronic or other signal from the corresponding client device (server, server), and display on the device’s screen can be implemented as giving a signal to the screen, which contains certain information, which can be further interpreted by certain images and at least partially selected displayed on the screen of the client device. The supply and receipt of a signal are not always indicated in the framework of the present description to simplify the presentation and facilitate understanding of the present solution. Signals can be transmitted by optical methods (via fiber-optic communication, for example), electronic methods (by wire or wireless), mechanical methods (transmission of pressure, temperature and / or other physical parameters by which a signal can be transmitted).

Claims (56)

1. Исполняемый на сервере способ выполнения очереди запросов в отношении цифровых объектов, способ, включающий:1. Performed on the server method of executing a request queue in relation to digital objects, a method including: получение с клиентского устройства по сети передачи данных первого запроса на выполнение первой задачи, первый запрос на выполнение первой задачи включает в себяreceiving from the client device via the data network the first request to complete the first task, the first request to complete the first task includes первую задачу иfirst task and указание на цифровые объекты из первого множества цифровых объектов, связанных с первой задачей;an indication of digital objects from the first plurality of digital objects associated with the first task; разделение первого запроса на множество подзапросов, каждый из подзапросов относится к части цифровых объектов из первого множества цифровых объектов, связанных с первым запросом, каждый из подзапросов включает в себя:dividing the first request into a plurality of subqueries, each of the subqueries refers to a part of digital objects from the first set of digital objects associated with the first request, each of the subqueries includes: информацию о первой задаче иinformation on the first task and указание на цифровые объекты из соответствующей части цифровых объектов;an indication of digital objects from the corresponding part of digital objects; расчет уникального идентификатора подзапроса, причем уникальный идентификатор подзапроса основывается по меньшей мере частично на содержимом соответствующего подзапроса;calculating a unique subquery identifier, wherein the unique subquery identifier is based at least in part on the contents of the corresponding subquery; сохранение подзапросов в хранилище подзапросов совместно с соответствующими им идентификаторами подзапросов;saving subqueries to the subquery repository together with their corresponding subquery identifiers; получение с клиентского устройства по сети передачи данных второго запроса на выполнение второй задачи, второй запрос на выполнение второй задачи включает в себяreceiving from the client device via the data network the second request for the second task, the second request for the second task includes вторую задачу иsecond task and указание на по меньшей мере один цифровой объект, связанный со вторым запросом;an indication of at least one digital object associated with the second request; основываясь на уникальных идентификаторах подзапросов, хранящихся в хранилище подзапросов, определение по меньшей мере одного подзапроса из множества подзапросов, содержащего указания на тот по меньшей мере один цифровой объект, указание на который также содержится во втором запросе на выполнение второй задачи;based on the unique identifiers of the subqueries stored in the subquery repository, determining at least one subquery from a plurality of subqueries containing references to that at least one digital object, an indication of which is also contained in the second request for the second task; обращение к указанному по меньшей мере одному подзапросу из множества подзапросов и удаление из этого подзапроса указания на тот по меньшей мере один цифровой объект, указание на который также содержится во втором запросе на выполнение второй задачи;accessing said at least one subquery from a plurality of subqueries and removing from this subquery indications of that at least one digital object, an indication of which is also contained in the second request for performing the second task; выполнение подзапросов в отношении цифровых объектов, указания на которые содержатся в подзапросах после удаления из по меньшей мере одного подзапроса указанного по меньшей мере одного цифрового объекта.the execution of subqueries in relation to digital objects, the references to which are contained in subqueries after the deletion of at least one digital object from at least one subquery. 2. Способ по п. 1, дополнительно включающий в себя выполнение второго запроса.2. The method of claim 1, further comprising executing a second request. 3. Способ по п. 2, в котором выполнение второго запроса осуществляется параллельно с выполнением по меньшей мере одного подзапроса.3. The method of claim 2, wherein the second query is executed in parallel with the execution of at least one subquery. 4. Способ по п. 2, в котором выполнение второго запроса осуществляется после выполнения по меньшей мере одного подзапроса.4. The method according to claim 2, in which the execution of the second request is carried out after the execution of at least one subquery. 5. Способ по п. 1, в котором разделение первого запроса на множество подзапросов включает в себя определение сервером количества цифровых объектов в первом множестве цифровых объектов и в котором разделение первого запроса на множество подзапросов осуществляется в случае, когда количество цифровых объектов в первом множестве цифровых объектов превышает пороговое значение.5. The method according to claim 1, in which the division of the first request into a plurality of subqueries includes a server determining the number of digital objects in the first plurality of digital objects and in which the division of the first request into a plurality of subqueries is carried out in the case where the number of digital objects in the first plurality of digital objects exceeds the threshold value. 6. Способ по п. 1, в котором расчет уникального идентификатора подзапроса осуществляется с использованием алгоритма хеширования.6. The method according to claim 1, in which the calculation of the unique identifier of the subquery is carried out using a hashing algorithm. 7. Способ по п. 6, в котором определение по меньшей мере одного подзапроса из множества подзапросов, содержащего указания на тот по меньшей мере один цифровой объект, указание на который также содержится во втором запросе на выполнение второй задачи, осуществляется с использованием алгоритма вероятностной структуры данных.7. The method according to claim 6, in which the determination of at least one subquery from the set of subqueries containing indications of that at least one digital object, the indication of which is also contained in the second request for the second task, is carried out using the probabilistic structure algorithm data. 8. Способ по п. 7, в котором алгоритм вероятностной структуры данных является фильтром Блума.8. The method of claim 7, wherein the probabilistic data structure algorithm is a Bloom filter. 9. Способ по п. 1, в котором в ответ на получение сервером с клиентского устройства третьего запроса на выполнение третьей задачи сервер осуществляет блокировку исполнения третьего запроса на выполнение третьей задачи.9. The method according to claim 1, in which in response to the server receiving from the client device the third request for the third task, the server blocks the execution of the third request for the third task. 10. Способ по п. 9, в котором сервер после выполнения подзапросов в отношении цифровых объектов из первого множества цифровых объектов осуществляет разблокировку исполнения третьего запроса на выполнение третьей задачи.10. The method according to p. 9, in which the server after performing subqueries regarding digital objects from the first set of digital objects, unlocks the execution of the third request to perform the third task. 11. Способ по п. 2, в котором в ответ на получение сервером с клиентского устройства третьего запроса на выполнение третьей задачи сервер осуществляет блокировку исполнения третьего запроса на выполнение третьей задачи и в котором сервер после выполнения второго запроса в отношении цифровых объектов осуществляет разблокировку исполнения третьего запроса на выполнение третьей задачи.11. The method according to claim 2, in which in response to the server receiving from the client device the third request for the third task, the server blocks the execution of the third request for the third task and in which the server after the second request for digital objects unlocks the third request to perform the third task. 12. Способ по п. 1, в котором цифровые объекты являются сообщениями электронной почты.12. The method of claim 1, wherein the digital objects are email messages. 13. Способ по п. 1, дополнительно включающий приступание к последовательному исполнению сервером подзапросов до получения сервером с клиентского устройства по сети передачи данных второго запроса на выполнение второй задачи.13. The method according to p. 1, further comprising starting the sequential execution by the server of subqueries until the server receives from the client device via the data network a second request for performing the second task. 14. Способ по любому из пп. 1 - 13, в котором сервер является множеством серверов.14. The method according to any one of paragraphs. 1 to 13, in which the server is a plurality of servers. 15. Сервер, включающий в себя процессор, в котором конфигурация процессора настроена таким образом, чтобы сервер мог осуществлять:15. A server including a processor, in which the processor configuration is configured so that the server can perform: получение с клиентского устройства по сети передачи данных первого запроса на выполнение первой задачи, первый запрос на выполнение первой задачи, включает в себяreceiving from the client device via the data network the first request to complete the first task, the first request to complete the first task, includes первую задачу иfirst task and указание на цифровые объекты из первого множества цифровых объектов, связанных с первой задачей;an indication of digital objects from the first plurality of digital objects associated with the first task; разделение первого запроса на множество подзапросов, каждый из подзапросов относится к части цифровых объектов из первого множества цифровых объектов, связанных с первым запросом, каждый из подзапросов включает в себя:dividing the first request into a plurality of subqueries, each of the subqueries refers to a part of digital objects from the first set of digital objects associated with the first request, each of the subqueries includes: информацию о первой задаче иinformation on the first task and указание на цифровые объекты из соответствующей части цифровых объектов;an indication of digital objects from the corresponding part of digital objects; расчет уникального идентификатора подзапроса, причем уникальный идентификатор подзапроса основывается по меньшей мере частично на содержимом соответствующего подзапроса;calculating a unique subquery identifier, wherein the unique subquery identifier is based at least in part on the contents of the corresponding subquery; сохранение подзапросов в хранилище подзапросов совместно с соответствующими им идентификаторами подзапросов;saving subqueries to the subquery repository together with their corresponding subquery identifiers; получение с клиентского устройства по сети передачи данных второго запроса на выполнение второй задачи, второй запрос на выполнение второй задачи включает в себяreceiving from the client device via the data network the second request for the second task, the second request for the second task includes вторую задачу иsecond task and указание на по меньшей мере один цифровой объект, связанный со вторым запросом;an indication of at least one digital object associated with the second request; основываясь на уникальных идентификаторах подзапросов, хранящихся в хранилище подзапросов, определение по меньшей мере одного подзапроса из множества подзапросов, содержащего указания на тот по меньшей мере один цифровой объект, указание на который также содержится во втором запросе на выполнение второй задачи;based on the unique identifiers of the subqueries stored in the subquery repository, determining at least one subquery from a plurality of subqueries containing references to that at least one digital object, an indication of which is also contained in the second request for the second task; обращение к указанному по меньшей мере одному подзапросу из множества подзапросов и удаление из этого подзапроса указания на тот по меньшей мере один цифровой объект, указание на который также содержится во втором запросе на выполнение второй задачи;accessing said at least one subquery from a plurality of subqueries and removing from this subquery indications of that at least one digital object, an indication of which is also contained in the second request for performing the second task; выполнение подзапросов в отношении цифровых объектов, указания на которые содержатся в подзапросах после удаления из по меньшей мере одного подзапроса указанного по меньшей мере одного цифрового объекта.the execution of subqueries in relation to digital objects, the references to which are contained in subqueries after the deletion of at least one digital object from at least one subquery. 16. Сервер по п. 15, в котором конфигурация процессора настроена таким образом, чтобы сервер мог дополнительно осуществлять выполнение второго запроса.16. The server according to claim 15, in which the processor configuration is configured so that the server can additionally perform the second request. 17. Сервер по п. 16, в котором выполнение второго запроса осуществляется параллельно с выполнением по меньшей мере одного подзапроса.17. The server according to claim 16, in which the second request is executed in parallel with the execution of at least one subquery. 18. Сервер по п. 16, в котором выполнение второго запроса осуществляется после выполнения по меньшей мере одного подзапроса.18. The server according to p. 16, in which the execution of the second request is carried out after the execution of at least one subquery. 19. Сервер по п. 15, в котором разделение первого запроса на множество подзапросов включает в себя определение сервером количества цифровых объектов в первом множестве цифровых объектов и в котором разделение первого запроса на множество подзапросов осуществляется в случае, когда количество цифровых объектов в первом множестве цифровых объектов превышает пороговое значение.19. The server according to claim 15, in which the division of the first request into a plurality of subqueries includes a server determining the number of digital objects in the first plurality of digital objects and in which the division of the first request into a plurality of subqueries is carried out in the case where the number of digital objects in the first plurality of digital objects exceeds the threshold value. 20. Сервер по п. 15, в котором расчет уникального идентификатора подзапроса осуществляется с использованием алгоритма хеширования.20. The server according to claim 15, in which the calculation of the unique identifier of the subquery is carried out using a hashing algorithm. 21. Сервер по п. 20, в котором определение по меньшей мере одного подзапроса из множества подзапросов, содержащего указания на тот по меньшей мере один цифровой объект, указание на который также содержится во втором запросе на выполнение второй задачи, осуществляется с использованием алгоритма вероятностной структуры данных.21. The server according to claim 20, in which the determination of at least one subquery from the set of subqueries containing indications of that at least one digital object, the indication of which is also contained in the second request for the second task, is carried out using the probabilistic structure algorithm data. 22. Сервер по п. 21, в котором алгоритм вероятностной структуры данных является фильтром Блума.22. The server of claim 21, wherein the probabilistic data structure algorithm is a Bloom filter. 23. Сервер по п. 15, в котором конфигурация процессора настроена таким образом, чтобы сервер в ответ на получение сервером с клиентского устройства третьего запроса на выполнение третьей задачи мог дополнительно осуществлять блокировку исполнения третьего запроса на выполнение третьей задачи.23. The server according to claim 15, in which the configuration of the processor is configured so that the server in response to the server receiving from the client device the third request for the third task, can additionally block the execution of the third request for the third task. 24. Сервер по п. 23, в котором конфигурация процессора настроена таким образом, чтобы сервер после выполнения подзапросов в отношении цифровых объектов из первого множества цифровых объектов мог дополнительно осуществлять разблокировку исполнения третьего запроса на выполнение третьей задачи.24. The server according to claim 23, in which the processor configuration is configured so that the server after completing subqueries regarding digital objects from the first set of digital objects can additionally unlock the execution of the third request to perform the third task. 25. Сервер по п. 16, в котором конфигурация процессора настроена таким образом, чтобы сервер в ответ на получение сервером с клиентского устройства третьего запроса на выполнение третьей задачи мог дополнительно осуществлять блокировку исполнения третьего запроса на выполнение третьей задачи и после выполнения второго запроса в отношении цифровых объектов мог дополнительно осуществлять разблокировку исполнения третьего запроса на выполнение третьей задачи.25. The server according to claim 16, in which the processor configuration is configured so that the server in response to the server receiving from the client device the third request to perform the third task can additionally block the execution of the third request to perform the third task and after the second request is made with respect to digital objects could additionally unlock the execution of the third request to complete the third task. 26. Сервер по п. 15, в котором цифровые объекты являются сообщениями электронной почты.26. The server of claim 15, wherein the digital objects are email messages. 27. Сервер по п. 15, в котором конфигурация процессора настроена таким образом, чтобы сервер мог дополнительно осуществлять приступание к последовательному исполнению сервером подзапросов до получения сервером с клиентского устройства по сети передачи данных второго запроса на выполнение второй задачи.27. The server according to claim 15, in which the processor configuration is configured so that the server can additionally begin the sequential execution of the sub-requests by the server until the server receives from the client device via the data network a second request for the second task. 28. Сервер по любому из пп. 15-27, реализованный как множество серверов.28. The server according to any one of paragraphs. 15-27, implemented as multiple servers.
RU2015106007A 2015-02-24 2015-02-24 System and method of performing queue of requests for digital objects RU2609089C2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
RU2015106007A RU2609089C2 (en) 2015-02-24 2015-02-24 System and method of performing queue of requests for digital objects
PCT/IB2015/054607 WO2016135537A1 (en) 2015-02-24 2015-06-18 System for and method of executing the request queue related to digital objects

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2015106007A RU2609089C2 (en) 2015-02-24 2015-02-24 System and method of performing queue of requests for digital objects

Publications (2)

Publication Number Publication Date
RU2015106007A RU2015106007A (en) 2016-09-20
RU2609089C2 true RU2609089C2 (en) 2017-01-30

Family

ID=56787959

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2015106007A RU2609089C2 (en) 2015-02-24 2015-02-24 System and method of performing queue of requests for digital objects

Country Status (2)

Country Link
RU (1) RU2609089C2 (en)
WO (1) WO2016135537A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2822554C1 (en) * 2023-09-18 2024-07-09 Общество с ограниченной ответственностью "Облачные технологии" (ООО "Облачные технологии") Method and system for moving data in cloud environment

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230117461A1 (en) * 2021-10-15 2023-04-20 Oracle International Corporation Method and system to implement error handling with fine-grained sql hints

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7353227B2 (en) * 2004-07-23 2008-04-01 Sap Aktiengesellschaft Conflict resolution engine
RU2465634C2 (en) * 2008-02-29 2012-10-27 Евро Клиа Са/Нв Real-time instruction processing system
RU2469388C1 (en) * 2011-09-19 2012-12-10 Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" - Госкорпорация "Росатом" Method of handling data stored in parallel file system with hierarchical memory organisation
EP2757491A1 (en) * 2013-01-17 2014-07-23 Box, Inc. Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform
WO2014132246A1 (en) * 2013-02-28 2014-09-04 Safend Ltd. System and method for conflict-free cloud storage encryption

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5278984A (en) * 1990-12-19 1994-01-11 Bull Hn Information Systems Inc. Method for managing requests by specifying time intervals for transmitting a minimum number of messages for specific destinations and priority levels
GB2334116A (en) * 1998-02-04 1999-08-11 Ibm Scheduling and dispatching queued client requests within a server computer
US7702817B2 (en) * 2003-10-28 2010-04-20 Microsoft Corporation Wireless network access technologies for retrieving a virtual resource via a plurality of wireless network interfaces
DE602006017089D1 (en) * 2005-09-29 2010-11-04 Teamon Systems Inc E-MAIL SERVER FOR PROCESSING A THRESHOLD NUMBER OF E-MAIL JOBS FOR A GIVEN USER AND METHOD THEREOF
US7958200B2 (en) * 2007-08-14 2011-06-07 International Business Machines Corporation Methods, computer program products, and apparatuses for providing remote client access to exported file systems
US7991948B2 (en) * 2008-01-30 2011-08-02 International Business Machines Corporation Optimizing execution of I/O requests for a disk drive in a computing system
US9043401B2 (en) * 2009-10-08 2015-05-26 Ebay Inc. Systems and methods to process a request received at an application program interface
US20140181203A1 (en) * 2011-06-15 2014-06-26 Telefonaktiebolaget L M Ericsson (Publ) Methods and arrangement for dispatching requests
US8762362B1 (en) * 2011-10-21 2014-06-24 Applied Micro Circuits Corporation System and method for updating a data structure

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7353227B2 (en) * 2004-07-23 2008-04-01 Sap Aktiengesellschaft Conflict resolution engine
RU2465634C2 (en) * 2008-02-29 2012-10-27 Евро Клиа Са/Нв Real-time instruction processing system
RU2469388C1 (en) * 2011-09-19 2012-12-10 Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" - Госкорпорация "Росатом" Method of handling data stored in parallel file system with hierarchical memory organisation
EP2757491A1 (en) * 2013-01-17 2014-07-23 Box, Inc. Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform
WO2014132246A1 (en) * 2013-02-28 2014-09-04 Safend Ltd. System and method for conflict-free cloud storage encryption

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2822554C1 (en) * 2023-09-18 2024-07-09 Общество с ограниченной ответственностью "Облачные технологии" (ООО "Облачные технологии") Method and system for moving data in cloud environment

Also Published As

Publication number Publication date
RU2015106007A (en) 2016-09-20
WO2016135537A1 (en) 2016-09-01

Similar Documents

Publication Publication Date Title
US12079255B1 (en) Systems and methods for updating a status indication in a system providing dynamic indexer discovery
US11604782B2 (en) Systems and methods for scheduling concurrent summarization of indexed data
US9230244B2 (en) Recipient changes in email threads
US9396216B2 (en) Repository redundancy implementation of a system which incrementally updates clients with events that occurred via a cloud-enabled platform
US11221995B2 (en) Data replication from a cloud-based storage resource
RU2646334C2 (en) File management using placeholders
JP6381776B2 (en) Generating unregistered user accounts for sharing content items
US20160253339A1 (en) Data migration systems and methods including archive migration
US20120310882A1 (en) Key value data storage
EP3532949A1 (en) Change monitoring spanning graph queries
US10489378B2 (en) Detection and resolution of conflicts in data synchronization
US9813417B2 (en) Systems and methods for creating and displaying an electronic communication digest
US10467424B2 (en) File system content based security
KR20140038991A (en) Automatic synchronization of most recently used document lists
TW201712565A (en) Technologies for predictive file caching and synchronization
JP5395517B2 (en) Distributed data management system, data management apparatus, data management method, and program
RU2643429C2 (en) Management method of synchronization of files (options), electronic device (options) and computer-readable medium
US11080239B2 (en) Key value store using generation markers
US11210212B2 (en) Conflict resolution and garbage collection in distributed databases
US9286055B1 (en) System, method, and computer program for aggregating fragments of data objects from a plurality of devices
RU2609089C2 (en) System and method of performing queue of requests for digital objects
CN113157716B (en) Data processing method, device, equipment and medium
US20140114918A1 (en) Use of proxy objects for integration between a content management system and a case management system
JP5472885B2 (en) Program, stream data processing method, and stream data processing computer
US20140280347A1 (en) Managing Digital Files with Shared Locks