WO2023080804A1 - Method for parallel execution of a join operation when processing highly active structured big data - Google Patents

Method for parallel execution of a join operation when processing highly active structured big data Download PDF

Info

Publication number
WO2023080804A1
WO2023080804A1 PCT/RU2021/000480 RU2021000480W WO2023080804A1 WO 2023080804 A1 WO2023080804 A1 WO 2023080804A1 RU 2021000480 W RU2021000480 W RU 2021000480W WO 2023080804 A1 WO2023080804 A1 WO 2023080804A1
Authority
WO
WIPO (PCT)
Prior art keywords
tables
rows
operand
join operation
processing
Prior art date
Application number
PCT/RU2021/000480
Other languages
French (fr)
Russian (ru)
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 PCT/RU2021/000480 priority Critical patent/WO2023080804A1/en
Publication of WO2023080804A1 publication Critical patent/WO2023080804A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution

Definitions

  • highly active data includes data whose use activity coefficient is equal to or tends to one, and is characterized by the ratio of their total amount to the amount of data involved in performing operations on them.
  • Industries that use such data include the public sector, healthcare, manufacturing, financial services, energy and natural resource extraction, communications and multimedia, tourism and transport aimed at financial transformation, asset optimization, interaction with consumers (customers) (https://azure.microsoft.com/ru-ru/solutionsZ#solutions-by-industry, https://www.sas.com/nj_ru/software/
  • the number of elements of the union is estimated, 20 at least in part from the number of rows and statistics of the identified union indexes.
  • the disadvantage of this method is the low speed of the JOIN operation when processing large structured highly active data, which is due to the presence of almost all possible values of 25 keys determined by the selection condition in both tables-operands of the JOIN operation.
  • SUBSTITUTE SHEET (RULE 26) structured highly active data, which is due to an increase in the distribution time of tables when using hash indexes.
  • the technical result of the invention is to reduce the execution time of the JOIN operation when processing large structured highly active data.
  • the technical result is achieved by the fact that in a known method, including obtaining both operand tables and the conditions for selecting rows in the operation, distributing the rows of operand tables in the form of fragment tables between a plurality of processing modules, followed by parallel execution of the JOIN operation in the processing modules and simultaneous merging of the results , the distribution of rows of fragment tables between a plurality of processing modules is preceded by the formation of a summary table of metadata based on the calculation of the frequency of occurrence of rows with
  • each value of the key of the JOIN operation in the operand tables and the subsequent distribution of rows from both operand tables into fragment tables is carried out on the basis of the metadata summary table, and each pair of fragment tables in one processing module contains only those rows whose key values are mutually - one-to-one correspondence with each other.
  • P, Q are operand tables of the JOIN operation indP
  • indQ are metadata tables for operand tables P and Q, respectively
  • indPQ - metadata summary table 123 PN i - auxiliary variable used to access the line from the metadata table 123
  • nLow is an auxiliary variable used to refer to a row from the metadata table 123
  • pRM - auxiliary variable corresponding to the sequence number of the processing module 110i...110z from the range 1...z;
  • Key(j) the operation of getting the value of the key of the row with the number j; kHi, kLow - auxiliary variables used for the current key value; indPQ.Rowcount - operation to determine the number of rows in the IndPQ metadata table;
  • SUBSTITUTE SHEET (RULE 26) The method of parallel execution of the JOIN operation when processing large structured high-activity data is carried out using the system shown in FIG. 1 .
  • System 100 includes: client system 135, data network 125, and data handling system 150.
  • the client system 135 is an electronic device having hardware and software data manipulation capabilities using an SQL-based DBMS, such as a database server, a desktop computer, a mobile computer, a tablet, a mobile phone, and so on.
  • SQL-based DBMS such as a database server, a desktop computer, a mobile computer, a tablet, a mobile phone, and so on.
  • the implementation of SQL-based data manipulation in electronic devices is known in the art and is not discussed in detail here.
  • system 100 may include more than one client system 135.
  • the data network 125 can be represented as a global, local, private data network. In the network 125, communication occurs over various types of data lines, such as wireless or wired lines.
  • the data manipulation system 150 consists of a host processor 120, which is a software and hardware complex, the hardware of which includes at least one multi-core processor, for example, an Intel Core I7 CPU, an Intel Xeon, a device for interacting with a global, local private network data transmission and high-speed local area network, and the software of which includes an operating system that provides multi-threaded execution of applications, a DBMS with a procedural data manipulation language, for example, Transact-SQL, PL/SQL, PL/pgSQL.
  • the design and operation of the host processor 120 is known in the art and is not discussed in detail here.
  • Host processor 120 is in communication with processing modules 105i... 105z . through a high speed local area network 130, such as Infiniband. Modules
  • processors 105i...105z are software and hardware systems that have an architecture similar to the host processor 120, but may differ from it in computing performance and the lack of means of interaction with global, local private data networks.
  • Each of the processing modules 105i... 105z is associated with a storage device 110i...110z, which is at least one storage device such as a solid state drive. Methods for transferring data between elements of the data manipulation system 150 are known in the art and are not discussed in detail in the present description.
  • the software of the host processor 120 includes an optimizer program 122 that implements the claimed method.
  • FIG. Figure 2 shows how to execute the JOIN operation in parallel when processing large, structured, highly active data.
  • operand tables 136 and 137 and row selection conditions for global, local, private data networks 125 are received from the client system 135 to the host processor 120, which executes the code of the optimizer program 122.
  • the method of transmitting operand tables and conditions row selection over global, local private data networks is known from the technical field and is not considered in detail in the present description.
  • the indPQ metadata summary table is formed based on the calculation of the frequency of occurrence of rows with each value of the JOIN operation key in the operand tables.
  • step 203 rows are distributed from the operand tables P and Q to fragment tables 111i... 112z to each processing unit 105i...105z based on the metadata summary table indPQ.
  • step 204 a JOIN operation is performed on the fragment tables 111i...112 z in each processing unit 105i...105 z while concurrently merging the results.
  • Step 202 is implemented using the workflow shown in FIG. 3.
  • Step 203 is implemented using the workflow shown in FIG. 4.
  • optimizer 122 counts the number of rows in the operand table P (136) corresponding to the given key value for each value of the JOIN operation key included in the selection condition, entering the key value and the frequency of occurrence of rows in the index table indP. This stage can be performed, for example, using a SQL query:
  • the optimizer 122 for each JOIN operation key value included in the selection condition counts the number of rows in the operand table Q (137) corresponding to this key value, entering the key value and the frequency of occurrence of rows in the index table indQ.
  • This stage can be performed, for example, using a SQL query:
  • step 303 the optimizer 122 performs an intersection operation on the indP and indQ index tables, resulting in a metadata summary table indPQ 123.
  • the metadata summary table contains N rows by the number of key values involved in the JOIN operation. At the same time, for large structured highly active data, the number N is greater than the number of processing modules 105i...105z.
  • step 304 the optimizer 122 sorts the summary metadata table indPQ 123 in descending order of the magnitude values of the products of the number of rows of the operand tables.
  • Steps 303 and 304 can be performed, for example, using a SQL query:
  • the two auxiliary variables nHi and nLow are assigned values corresponding to the numbers of the first and last rows in the metadata table IndPQ 123, the auxiliary variable RRP is assigned the value one.
  • a check is made for the completion of the allocation operation of pairs of fragment tables 111i...112 z , consisting in checking the condition nH nLow. If this condition is met, then proceed to step 403, otherwise, the allocation execution is completed.
  • rows with numbers nHi and nLow are selected from the summary metadata table IndPQ, and auxiliary variables kH! and kLow are assigned the values of the keys corresponding to the given rows.
  • step 404 the readiness of the processing module with the number of RX to receive data from the host processor 122 is checked.
  • rows are copied from the operand tables P (136) and Q (137), the key values of which correspond to the values kHi and kLow in the fragment tables 111 p rm and 112 p rm on the data drive 110 pr rm of the processing module 105 pr rm via high speed LAN 130.
  • nHi is incremented by one and the value of nLow is decremented by one.
  • the operand tables P and Q are collections of equivalence classes that contain at least one row and are considered as factor sets of equivalences RK and QK generated by the key K.
  • the predicate mp is defined on the sets of instances of the key K in the tables operands P and Q (136 and 137) and implements the selection condition.
  • Ki, ..., K p represent a set of key values K.
  • the JOIN operation is defined as the union of the equivalence classes of the new operand tables x Q K _) obtained as a result of performing the group operation F(P Ki x Q Ki ') on the Cartesian product of the corresponding equivalence classes of the operand tables .
  • the result table of the parallel execution of the JOIN operation when processing large structured highly active data contains only those equivalence classes that belong to the intersection of index tables indP • indQ.
  • SUBSTITUTE SHEET (RULE 26) performing this operation is the indPQ 123 metadata summary table containing the composite key K and the M field, the value of which is indP.MxindQ.M and relative to which the indPQ 123 metadata summary table is sorted in descending order.
  • the use of the metadata summary table indPQ 123 makes it possible to distribute the operand tables P and Q (136 and 137) between independent processing modules 105i ... 105z in the form of pairs of fragment tables 1111 and 112i 111 z and 112 z stored on drives 110i ... 110z.
  • the equivalence classes whose records contain the same key values K are located in one and only one pair of fragment tables 1111 and 1121 , ... , 111 z and 112 Z .
  • the reduction in the execution time of the JOIN operation when processing large structured highly active data in the claimed invention follows from the fact that the summary metadata table IndPQ 123 is the result of the operation indP • IndQ and a pair of fragment tables 111 i and 112 .... 111 z and 112 z are not contain rows that are not used in the JOIN operation.
  • the method described in the prototype uses a fragment table, which is a complete operand table containing rows that are not used when performing the JOIN operation, which increases the execution time of the JOIN operation when processing large structured highly active data, compared with by the claimed method.
  • FIG.1. A generalized block diagram of a system that implements a method for parallel execution of the JOIN operation when processing large structured highly active data
  • FIG. 3 Method for executing the JOIN operation in parallel when processing large structured high activity data
  • FIG. 3 - Algorithm for the formation of a summary table of metadata based on the calculation of the frequency of using the keys of the JOIN operation in the operand tables
  • u Fig.4. - Algorithm for distributing rows from both operand tables into fragment tables to each processing module based on the metadata summary table
  • the client system 135 may be a desktop computer with installed SQL-based DBMS software, such as PostgreSQL, connected via the global Internet (125) via TCP/IP to the host processor 120 of the data manipulation system, which may be a 20 general purpose server , equipped with a multi-core processor, an operating system that provides multi-threaded execution of applications, such as Windows 7, a DBMS with a procedural data manipulation language, such as Transact-SQL.
  • the software includes 25 optimizer 122, which is a software system written in a high-level language.
  • the host processor is connected by a high-speed local area network, preferably Infiniband, to several processing modules 105i...105z having a similar architecture, each of which includes at least one storage device 110i...110 z , preferably a solid state drive.
  • FIG. 5 shows the dependence of the execution time of the JOIN operation on two tables containing from 4000000 to 25000000 rows in a system that included two processing modules and four processing modules that had the same parameters. Also for comparison, figure 5 shows the dependence of the execution time of the JOIN operation on the number of rows, provided that it is performed exclusively by the computing means of the system 135.

Abstract

The invention relates to a method for the parallel execution of a JOIN operation when processing highly active structured big data. In the claimed method, once both operand tables and the conditions for selecting rows in the operation have been received, the rows of the operand tables are distributed among a plurality of processing modules in the form of table fragments, followed by parallel execution in the processing modules of a JOIN operation on said operand table fragments, with the results being simultaneously joined, wherein the distribution of the rows of the fragment tables among a plurality of processing modules is preceded by the generation of a metadata pivot table on the basis of a calculation of the frequency of occurrence of rows with each value of a JOIN operation key in the operand tables, and the subsequent distribution of the rows from each operand table into fragment tables is carried out on the basis of the metadata pivot table, wherein each pair of fragment tables in a processing module contains only those rows having a one-to-one correspondence between their key values.

Description

Способ параллельного выполнения операции JOIN при обработке больших структурированных высокоактивных данных A way to execute the JOIN operation in parallel when processing large structured highly active data
Область техники Technical field
Изобретение относится к области способов обработки данных вThe invention relates to the field of data processing methods in
5 части получения информационных выборок по запросу пользователя и может быть использовано в оборудовании обработки данных. 5 parts of obtaining information samples at the request of the user and can be used in data processing equipment.
Постоянное увеличение объема данных и многообразие форматов их представления потребность их применения в различных сферах деятельности общества обуславливают необходимость в ю совершенствовании способов их обработки. Одним из направлений повышения скорости обработки больших структурированных высокоактивных данных является совершенствование способов выполнения запросов (htps://www.oracle.com/ru/emerging- technologies/), в том числе и при выполнении операции JOIN посредством параллельного ее выполнения над фрагментами таблиц из запроса пользователя с последующим объединением результатов (htps://www.teradata.com, htps://www.ibm.com/it-infrastructure/power/ accelerated-computing). Согласно ( Carlson, R., Steen, В., Tillman, А. М., & Lofgren, G. LCI data modelling and a database design. The InternationalThe constant increase in the amount of data and the variety of formats for their presentation, the need for their application in various areas of society, necessitates the improvement of methods for their processing. One of the ways to increase the speed of processing large structured highly active data is to improve the ways of executing queries (https://www.oracle.com/ru/emerging-technologies/), including when performing the JOIN operation by means of its parallel execution over fragments of tables from user query and then combining the results (https://www.teradata.com, htps://www.ibm.com/it-infrastructure/power/accelerated-computing). According to (Carlson, R., Steen, B., Tillman, A. M., & Lofgren, G. LCI data modeling and a database design. The International
20 Journal of Life Cycle Assessment, 3(2), PP. 106-113.), к высокоактивным данным относятся данные, коэффициент активности использования которых равен или стремится к единице, и характеризуется отношением их общего количества к количеству данных, задействованных при выполнении операций над ними. К числу отраслей, в которых используются такие данные, относятся государственный сектор, здравоохранение, производство, финансовые услуги, энергетика и добыча природных ресурсов, связь и мультимедиа, туризм и транспорт, направленные на финансовую трансформацию, оптимизацию активов, взаимодействие с зо потребителями (клиентами) (https://azure.microsoft.com/ru- ru/solutionsZ#solutions-by-industry, https://www.sas.com/nj_ru/software/ 20 Journal of Life Cycle Assessment, 3(2), PP. 106-113.), highly active data includes data whose use activity coefficient is equal to or tends to one, and is characterized by the ratio of their total amount to the amount of data involved in performing operations on them. Industries that use such data include the public sector, healthcare, manufacturing, financial services, energy and natural resource extraction, communications and multimedia, tourism and transport aimed at financial transformation, asset optimization, interaction with consumers (customers) (https://azure.microsoft.com/ru-ru/solutionsZ#solutions-by-industry, https://www.sas.com/nj_ru/software/
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) how-to-buy/request-price-quote.html, https://www.oracle.com/ru/emerging- technologies/ ). SUBSTITUTE SHEET (RULE 26) how-to-buy/request-price-quote.html, https://www.oracle.com/en/emerging- technologies/ ).
Уровень техники State of the art
Известен способ, описанный в изобретении «Cardinality and Selectivity 5 Estimation Using Asingle Table JOIN Index» (МПК: G06F 17/30, патент на изобретение US 8914354 B2, дата публикации 16.12.2014), включающий в себя запрос к базе данных, который содержит один или несколько предикатов запроса и ссылается на одну или несколько таблиц базы данных. В запросе ю идентифицирован один или несколько индексов соединения для соответствующих таблиц базы данных по запросу базы данных. Индексы соединения содержат предикаты индекса соединения и включают один или несколько столбцов соединения в списке выбора. Количество строк, выбранное предикатами запроса, 15 рассчитывается, по крайней мере, частично с использованием количества строк или статистики одного или нескольких индексов соединения. Селективность предиката базовой таблицы рассчитывается, по меньшей мере, частично из рассчитанного количества строк. Количество элементов объединения оценивается, 20 по меньшей мере, частично из числа строк и статистики идентифицированного индексов объединения. Недостатком данного способа является низкая скорость выполнения операции JOIN при обработке больших структурированных высокоактивных данных, что обусловлено наличием практически всех возможных значений 25 ключей, определяемых условием отбора, в обоих таблицах- операндах операции JOIN. The known method is described in the invention "Cardinality and Selectivity 5 Estimation Using Asingle Table JOIN Index" (IPC: G06F 17/30, patent for invention US 8914354 B2, publication date 12/16/2014), which includes a database query that contains one or more query predicates and refers to one or more database tables. The query identified one or more join indexes for the corresponding database tables on the database query. Join indexes contain join index predicates and include one or more join columns in the select list. The number of rows selected by the query predicates, 15, is calculated at least in part using the number of rows or statistics from one or more join indexes. The base table predicate selectivity is calculated at least in part from the calculated number of rows. The number of elements of the union is estimated, 20 at least in part from the number of rows and statistics of the identified union indexes. The disadvantage of this method is the low speed of the JOIN operation when processing large structured highly active data, which is due to the presence of almost all possible values of 25 keys determined by the selection condition in both tables-operands of the JOIN operation.
Известен способ, описанный в изобретении «JOIN Operation Partitioining» (МПК: G06F 7/00, G06F 17/30, патент на изобретение US9665624B2, дата публикации 18.12.2014), заключающийся в 30 распределении таблиц на основе вычисления хеш-индексов ключей таблиц. Недостатком данного способа является низкая скорость выполнения операции JOIN при обработке больших There is a method described in the invention "JOIN Operation Partitioining" (IPC: G06F 7/00, G06F 17/30, patent for invention US9665624B2, publication date 12/18/2014), which consists in distributing tables based on the calculation of hash indexes of table keys. The disadvantage of this method is the low speed of the JOIN operation when processing large
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) структурированных высокоактивных данных, что обусловлено увеличением времени распределения таблиц при использовании хеш-индексов. SUBSTITUTE SHEET (RULE 26) structured highly active data, which is due to an increase in the distribution time of tables when using hash indexes.
Наиболее близким по технической сущности к заявляемому изобретению является способ, описанный в изобретении «System, Method, and Computer-readable Medium for Duplication Optimization for Parallel JOIN Operations on Similarly Large Skewed Tables» (МПК: G06F 17/30, патент на изобретение US 8099409 B2, дата публикации 17.01.2012), заключающийся в получении обеих таблиц-операндов и условия отбора строк в операции, распределении строк таблиц- операндов в форме таблиц-фрагментов между множеством модулей обработки с последующим параллельным выполнением операции JOIN в модулях обработки и одновременным объединением результатов. Недостатком данного способа является низкая скорость выполнения операции JOIN при обработке больших структурированных высокоактивных данных, что обусловлено использованием таблицы-фрагмента, которая представляет собой полную таблицу-операнд, содержащую, в том числе не используемые при выполнении операции JOIN строки. The closest in technical essence to the claimed invention is the method described in the invention "System, Method, and Computer-readable Medium for Duplication Optimization for Parallel JOIN Operations on similarly Large Skewed Tables" (IPC: G06F 17/30, patent for invention US 8099409 B2, publication date 01/17/2012), which consists in obtaining both operand tables and the conditions for selecting rows in the operation, distributing rows of operand tables in the form of fragment tables between multiple processing modules, followed by parallel execution of the JOIN operation in processing modules and simultaneous merging of the results . The disadvantage of this method is the low speed of the JOIN operation when processing large structured highly active data, which is due to the use of a fragment table, which is a complete operand table containing rows not used during the JOIN operation.
Раскрытие изобретения Disclosure of invention
Технический результат изобретения состоит в снижении времени выполнения операции JOIN при обработке больших структурированных высокоактивных данных. The technical result of the invention is to reduce the execution time of the JOIN operation when processing large structured highly active data.
Технический результат достигается тем, что в известном способе, включающем получение обеих таблиц-операндов и условия отбора строк в операции, распределение строк таблиц-операндов в форме таблиц-фрагментов между множеством модулей обработки с последующим параллельным выполнением операции JOIN в модулях обработки и одновременным объединением результатов, распределению строк таблиц-фрагментов между множеством модулей обработки предшествует формирование сводной таблицы метаданных на основе вычисления частоты вхождения строк с The technical result is achieved by the fact that in a known method, including obtaining both operand tables and the conditions for selecting rows in the operation, distributing the rows of operand tables in the form of fragment tables between a plurality of processing modules, followed by parallel execution of the JOIN operation in the processing modules and simultaneous merging of the results , the distribution of rows of fragment tables between a plurality of processing modules is preceded by the formation of a summary table of metadata based on the calculation of the frequency of occurrence of rows with
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) каждым значением ключа операции JOIN в таблицах-операндах и последующее распределение строк из обеих таблиц-операндов в таблицы-фрагменты осуществляется на основе сводной таблицы метаданных, причем каждая пара таблиц-фрагментов в одном модуле обработки содержит только те строки, значения ключей которых находятся во взаимно-однозначном соответствии друг другу. SUBSTITUTE SHEET (RULE 26) each value of the key of the JOIN operation in the operand tables and the subsequent distribution of rows from both operand tables into fragment tables is carried out on the basis of the metadata summary table, and each pair of fragment tables in one processing module contains only those rows whose key values are mutually - one-to-one correspondence with each other.
Сущность изобретения поясняется чертежами, на которых введены следующие обозначения: The essence of the invention is illustrated by drawings, which introduced the following designations:
Р, Q — таблицы-операнды операции JOIN indP, indQ — таблицы метаданных для таблиц-операндов Р и Q соответственно; indPQ - сводная таблица метаданных 123; пН i - вспомогательная переменная, используемая для обращения к строке из таблицы метаданных 123; nLow - вспомогательная переменная, используемая для обращения к строке из таблицы метаданных 123; пРМ - вспомогательная переменная, соответствующая порядковому номеру модуля обработки 110i...110z из диапазона 1...z; P, Q are operand tables of the JOIN operation indP, indQ are metadata tables for operand tables P and Q, respectively; indPQ - metadata summary table 123; PN i - auxiliary variable used to access the line from the metadata table 123; nLow is an auxiliary variable used to refer to a row from the metadata table 123; pRM - auxiliary variable corresponding to the sequence number of the processing module 110i...110z from the range 1...z;
Key(j) - операция получения значения ключа строки с номером j; kHi, kLow — вспомогательные переменные, используемые для текущего значения ключа; indPQ.Rowcount- операция определения количества строк в таблице метаданных IndPQ; Key(j) - the operation of getting the value of the key of the row with the number j; kHi, kLow - auxiliary variables used for the current key value; indPQ.Rowcount - operation to determine the number of rows in the IndPQ metadata table;
«-- операция присваивания переменной значения произвольного"-- the operation of assigning a value to a variable of an arbitrary
, в том числе табличного , including tabular
(пРМ +1) MOD z - операция увеличения на единицу целого числа по модулю z indP л indQ(indP.K, indP.MxindQ.M) - результат выполнения операции пересечения таблиц indP и indQ с вычислением произведения частот indP.Mx indQ.M использования ключей К операции JOIN в таблицах- операндах. (pRM +1) MOD z - the operation of increasing by one an integer modulo z indP l indQ(indP.K, indP.MxindQ.M) - the result of the operation of the intersection of the tables indP and indQ with the calculation of the product of frequencies indP.Mx indQ.M use of keys To the JOIN operation in operand tables.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) Способ параллельного выполнения операции JOIN при обработке больших структурированных высокоактивных данных осуществляется с помощью системы, изображенной на фиг. 1 . SUBSTITUTE SHEET (RULE 26) The method of parallel execution of the JOIN operation when processing large structured high-activity data is carried out using the system shown in FIG. 1 .
Система 100 включает в себя: систему клиента 135, сеть передачи данных 125 и систему манипулирования данными 150. System 100 includes: client system 135, data network 125, and data handling system 150.
Система клиента 135 представляет собой электронное устройство, располагающее аппаратными и программными возможностями манипулирования данными с использованием СУБД на основе SQL, например, сервер баз данных, настольный компьютер, мобильный компьютер, планшет, мобильный телефон и так далее. Реализация манипулирования данными на основе SQL в электронных устройствах известно из области техники и в настоящем описании подробно не рассматривается. The client system 135 is an electronic device having hardware and software data manipulation capabilities using an SQL-based DBMS, such as a database server, a desktop computer, a mobile computer, a tablet, a mobile phone, and so on. The implementation of SQL-based data manipulation in electronic devices is known in the art and is not discussed in detail here.
Несмотря на то, что в описании упоминается одна система клиента, система 100 может включать более одной системы клиента 135. Although the description refers to a single client system, system 100 may include more than one client system 135.
Сеть 125 для передачи данных может быть представлена в виде глобальной, локальной, частной сети передачи данных. В сети 125 обмен данными возникает по линиям передачи данных разного типа, например, по беспроводным или проводным линиям. The data network 125 can be represented as a global, local, private data network. In the network 125, communication occurs over various types of data lines, such as wireless or wired lines.
Система манипулирования данными 150 состоит из хост-процессора 120, представляющего собой программно-аппаратный комплекс, в состав аппаратных средств которого входит, как минимум, один многоядерные процессор, например, CPU Intel Core I7, Intel Xeon, устройства взаимодействия с глобальной, локальной частной сетями передачи данных и высокоскоростной локальной вычислительной сетью, а в состав программных средств которого входят операционная система, обеспечивающая многопоточное выполнение приложений, СУБД с процедурным языком манипулирования данными, например, Transact-SQL, PL/SQL, PL/pgSQL. Устройство и принцип работы хост-процессора 120 известен из области техники и в настоящем описании подробно не рассматривается. Хост- процессор 120 связан с модулями обработки 105i...105z. посредством высокоскоростной локальной сети 130, например, Infiniband. Модули The data manipulation system 150 consists of a host processor 120, which is a software and hardware complex, the hardware of which includes at least one multi-core processor, for example, an Intel Core I7 CPU, an Intel Xeon, a device for interacting with a global, local private network data transmission and high-speed local area network, and the software of which includes an operating system that provides multi-threaded execution of applications, a DBMS with a procedural data manipulation language, for example, Transact-SQL, PL/SQL, PL/pgSQL. The design and operation of the host processor 120 is known in the art and is not discussed in detail here. Host processor 120 is in communication with processing modules 105i... 105z . through a high speed local area network 130, such as Infiniband. Modules
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) обработки 105i...105z представляют собой программно-аппаратные комплексы, которые имеют архитектуру аналогичную хост-процессору 120, но могут отличиться от него вычислительной производительностью и отсутствием средств взаимодействия с глобальной, локальной частной сетями передачи данных. Каждый из модулей обработки 105i...105z связан с накопителем данных 110i...110z, представляющим собой не менее одного устройства для хранения данных, например твердотельного накопителя. Способы передачи данных между элементами системы манипулирования данными 150 известны из области техники и в настоящем описании подробно не рассматриваются. В состав программного обеспечения хост-процессора 120 включена программа-оптимизатор 122, реализующая заявленный способ. SUBSTITUTE SHEET (RULE 26) processors 105i...105z are software and hardware systems that have an architecture similar to the host processor 120, but may differ from it in computing performance and the lack of means of interaction with global, local private data networks. Each of the processing modules 105i... 105z is associated with a storage device 110i...110z, which is at least one storage device such as a solid state drive. Methods for transferring data between elements of the data manipulation system 150 are known in the art and are not discussed in detail in the present description. The software of the host processor 120 includes an optimizer program 122 that implements the claimed method.
На фиг. 2 представлен способ параллельного выполнения операции JOIN при обработке больших структурированных высокоактивных данных. In FIG. Figure 2 shows how to execute the JOIN operation in parallel when processing large, structured, highly active data.
На этапе 201 осуществляется получение таблиц-операндов 136 и 137 и условий отбора строк по глобальной, локальной, частной сетям передачи данных 125 от системы клиента 135 в хост-процессор 120, который выполняет код программы-оптимизатора 122. Способ передачи таблиц-операндов и условия отбора строк по глобальной, локальной частной сетям передачи данных известен из области техники и в настоящем описании подробно не рассматривается. At step 201, operand tables 136 and 137 and row selection conditions for global, local, private data networks 125 are received from the client system 135 to the host processor 120, which executes the code of the optimizer program 122. The method of transmitting operand tables and conditions row selection over global, local private data networks is known from the technical field and is not considered in detail in the present description.
На этапе 202 при выполнении кода программы-оптимизатора 122 осуществляется формирование сводной таблицы метаданных indPQ на основе вычисления частоты вхождения строк с каждым значением ключа операции JOIN в таблицах-операндах. At step 202, when the code of the optimizer program 122 is executed, the indPQ metadata summary table is formed based on the calculation of the frequency of occurrence of rows with each value of the JOIN operation key in the operand tables.
На этапе 203 производится распределение строк из таблиц- операндов Р и Q в таблицы-фрагменты 111i...112z в каждый модуль обработки 105i...105z на основе сводной таблицы метаданных indPQ. На этапе 204 выполняется операция JOIN над таблицами- фрагментами 111i...112z в каждом модуле обработки 105i...105z с одновременным объединением результатов. Способ выполнения In step 203, rows are distributed from the operand tables P and Q to fragment tables 111i... 112z to each processing unit 105i...105z based on the metadata summary table indPQ. At step 204, a JOIN operation is performed on the fragment tables 111i...112 z in each processing unit 105i...105 z while concurrently merging the results. Execution method
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) операции JOIN в модулях обработки известен из области техники и в настоящем описании подробно не рассматривается. SUBSTITUTE SHEET (RULE 26) the JOIN operation in processing modules is known in the art and is not discussed in detail in the present description.
Этап 202 реализуется с помощью последовательности действий, представленных на фиг 3. Этап 203 реализуется с помощью последовательности действий, представленных на фиг. 4. Step 202 is implemented using the workflow shown in FIG. 3. Step 203 is implemented using the workflow shown in FIG. 4.
На этапе 301 оптимизатором 122 для каждого значения ключа операции JOIN, входящего в условие отбора, производится подсчет количества строк в таблице-операнде Р (136), соответствующих данному значению ключа, с занесением значения ключа и частоты вхождения строк в индексную таблицу indP. Данный этап может быть выполнен, например, с помощью SQL-запроса: At step 301, optimizer 122 counts the number of rows in the operand table P (136) corresponding to the given key value for each value of the JOIN operation key included in the selection condition, entering the key value and the frequency of occurrence of rows in the index table indP. This stage can be performed, for example, using a SQL query:
INSERT INTO indP (К, М) SELECT P.K, SUM(1) AS М FROM Р ORDER BY P.K GROUP BY P.K; INSERT INTO indP(K, M) SELECT P.K, SUM(1) AS M FROM P ORDER BY P.K GROUP BY P.K;
На этапе 302 оптимизатором 122 для каждого значения ключа операции JOIN, входящего в условие отбора, производится подсчет количества строк в таблице-операнде Q (137), соответствующих данному значению ключа, с занесением значения ключа и частоты вхождения строк в индексную таблицу indQ. Данный этап может быть выполнен, например, с помощью SQL-запроса: At step 302, the optimizer 122 for each JOIN operation key value included in the selection condition counts the number of rows in the operand table Q (137) corresponding to this key value, entering the key value and the frequency of occurrence of rows in the index table indQ. This stage can be performed, for example, using a SQL query:
INSERT INTO indQ (К, М) SELECT Q.K, SUM(1) AS M FROM Q ORDER BY Q.K GROUP BY Q.K; INSERT INTO indQ (K, M) SELECT Q.K, SUM(1) AS M FROM Q ORDER BY Q.K GROUP BY Q.K;
На этапе 303 оптимизатором 122 выполняется операция пересечения индексных таблиц indP и indQ, в результате выполнения которой получается сводная таблица метаданных indPQ 123. Сводная таблица метаданных содержит N строк по количеству значений ключа, участвующих в операции JOIN. При этом для больших структурированных высокоактивных данных число N больше числа модулей обработки 105i...105z. In step 303, the optimizer 122 performs an intersection operation on the indP and indQ index tables, resulting in a metadata summary table indPQ 123. The metadata summary table contains N rows by the number of key values involved in the JOIN operation. At the same time, for large structured highly active data, the number N is greater than the number of processing modules 105i...105z.
На этапе 304 оптимизатором 122 сводная таблица метаданных indPQ 123 упорядочивается по убыванию значений величины произведений количеств строк таблиц-операндов. In step 304, the optimizer 122 sorts the summary metadata table indPQ 123 in descending order of the magnitude values of the products of the number of rows of the operand tables.
Этапы 303 и 304 могут быть выполнены, например, с использованием SQL-запроса: Steps 303 and 304 can be performed, for example, using a SQL query:
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) INSERT INTO IndPQ (К, M) SELECT indP.K, indP.MxindQ.M AS M FROM indP, IndQ WHERE indP.K=indQ.M ORDER BY M DESC Выполняется распределение строк таблиц-операндов 136 и 137 между парами таблиц-фрагментов 111i и 112i, ... , 111z и 112z, которое в рамках этапа 203 реализуется алгоритмом распределения строк из обеих таблиц-операндов в таблицы-фрагменты в каждый модуль обработки на основе сводной таблицы метаданных, представленным на фиг. 4. SUBSTITUTE SHEET (RULE 26) INSERT INTO IndPQ (K, M) SELECT indP.K, indP.MxindQ.M AS M FROM indP, IndQ WHERE indP.K=indQ.M ORDER BY M DESC Allocation of operand table rows 136 and 137 between fragment table pairs 111i and 112i , . 4.
На этапе 401 двум вспомогательным переменным nHi и nLow производится присвоение значений, соответствующих номерам первой и последней строк в таблице метаданных IndPQ 123, вспомогательной переменной пРМ присваивается значение единица. На этапе 402 производится проверка завершенности операции распределения пар таблиц-фрагментов 111i...112z, состоящая в проверке условия nH nLow. Если данное условие выполняется, то осуществляется переход к этапу 403, в противном случае выполнение распределения завершается. At step 401, the two auxiliary variables nHi and nLow are assigned values corresponding to the numbers of the first and last rows in the metadata table IndPQ 123, the auxiliary variable RRP is assigned the value one. At step 402, a check is made for the completion of the allocation operation of pairs of fragment tables 111i...112 z , consisting in checking the condition nH nLow. If this condition is met, then proceed to step 403, otherwise, the allocation execution is completed.
На этапе 403 из сводной таблицы метаданных IndPQ выбираются строки с номерами nHi и nLow, и вспомогательным переменным кН! и kLow присваиваются значения ключей, соответствующих данным строкам. At step 403, rows with numbers nHi and nLow are selected from the summary metadata table IndPQ, and auxiliary variables kH! and kLow are assigned the values of the keys corresponding to the given rows.
На этапе 404 производится проверка готовности модуля обработки с номером пРМ к получению данных от хост-процессора 122. Если модуль обработки с порядковым номером пРМ готов к приему данных, то производится переход к этапу 405, в противном случае - к этапу 407. At step 404, the readiness of the processing module with the number of RX to receive data from the host processor 122 is checked.
На этапе 405 из таблиц-операндов Р (136) и Q (137) производится копирование строк, значения ключей которых соответствуют значениям kHi и kLow в таблицы-фрагменты 111прм и 112прм на накопителе данных 110прм модуля обработки 105прм посредством высокоскоростной локальной сети 130. At step 405, rows are copied from the operand tables P (136) and Q (137), the key values of which correspond to the values kHi and kLow in the fragment tables 111 p rm and 112 p rm on the data drive 110 pr rm of the processing module 105 pr rm via high speed LAN 130.
На этапе 406 производится увеличение значения nHi на единицу и уменьшение значения nLow на единицу. At step 406, the value of nHi is incremented by one and the value of nLow is decremented by one.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) На этапе 407 производится присвоение вспомогательной переменной пРМ значения, увеличенного на единицу по модулю z, после чего производится возвращение к этапу 402. SUBSTITUTE SHEET (RULE 26) At step 407, the auxiliary variable rl is assigned a value increased by one modulo z, after which it returns to step 402.
Технический результат изобретения обеспечивается использованием в заявляемом способе следующих теоретических предпосылок. Для параллельного выполнения операции обработки больших структурированных высокоактивных данных выбрана следующая разновидность операции JOIN: The technical result of the invention is ensured by the use of the following theoretical prerequisites in the proposed method. The following type of JOIN operation has been chosen for the parallel execution of the operation of processing large structured highly active data:
Р INNER JOIN Q ON л(Р.К, Q.K); P INNER JOIN Q ON l(R.K, Q.K);
Таблицы-операнды P и Q (136 и 137) представляют собой совокупности классов эквивалентности, которые содержат не менее одной строки, и рассматриваются как фактор-множества эквивалентности РК и QK, порожденные ключом К. Предикат тт определен на множествах экземпляров ключа К в таблицах- операндах Р и Q (136 и 137) и реализует условие отбора. Ki, ..., Кп представляют собой множество значений ключа К. При этом операция JOIN определена как объединение классов эквивалентности новой таблиц-операндов
Figure imgf000011_0001
х QK_), полученных в результате выполнения групповой операции F(PKi x QKi') на декартовом произведении соответствующих классов эквивалентности таблиц-операндов .
The operand tables P and Q (136 and 137) are collections of equivalence classes that contain at least one row and are considered as factor sets of equivalences RK and QK generated by the key K. The predicate mp is defined on the sets of instances of the key K in the tables operands P and Q (136 and 137) and implements the selection condition. Ki, ..., K p represent a set of key values K. In this case, the JOIN operation is defined as the union of the equivalence classes of the new operand tables
Figure imgf000011_0001
x Q K _) obtained as a result of performing the group operation F(P Ki x Q Ki ') on the Cartesian product of the corresponding equivalence classes of the operand tables .
Для параллельной реализации операции JOIN используются метаданные, определяющие распределение строк таблицы по классам эквивалентности. При этом таблицам Р и Q (136 и 137) ставятся в соответствие индексные таблицы со схемами indP(K, М) и indQ(K, М), которые представляют собой множества строк indP={<Ki, Mi> <Kn, Мп>} и indQ={<Ki, Mi>, ..., <Kn, Mm>}, где Kj - значение ключа К, Mj - количество записей в j-м классе эквивалентности, строки которого содержат Kj, М - целочисленное поле. For the parallel implementation of the JOIN operation, metadata is used that determines the distribution of table rows by equivalence classes. At the same time, tables P and Q (136 and 137) are associated with index tables with schemas indP(K, M) and indQ(K, M), which are sets of rows indP={<Ki, Mi><K n , Mn >} and indQ={<Ki, Mi>, ..., <K n , M m >}, where Kj is the value of the key K, Mj is the number of records in the j-th equivalence class, the lines of which contain Kj, M - integer field.
Таблица-результат параллельного выполнения операции JOIN при обработке больших структурированных высокоактивных данных содержит только те классы эквивалентности, которые принадлежат пересечению индексных таблиц indP • indQ. Результатом The result table of the parallel execution of the JOIN operation when processing large structured highly active data contains only those equivalence classes that belong to the intersection of index tables indP • indQ. result
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) выполнения этой операции является сводная таблица метаданных indPQ 123, содержащая составной ключ К и поле М, значение которого равно indP.MxindQ.M и относительно которого сводная таблица метаданных indPQ 123 упорядочена по убыванию. SUBSTITUTE SHEET (RULE 26) performing this operation is the indPQ 123 metadata summary table containing the composite key K and the M field, the value of which is indP.MxindQ.M and relative to which the indPQ 123 metadata summary table is sorted in descending order.
Использование сводной таблицы метаданных indPQ 123 позволяет распределить таблицы-операнды Р и Q (136 и 137) между независимыми модулями обработки 105i ...105z в форме пар таблиц- фрагментов 1111 и 112i 111z и 112z, сохраняемых на накопителях 110i...110z. При этом классы эквивалентности, записи которых содержат одинаковые значения ключа К, расположены в одной и только одной паре таблиц-фрагментов 1111 и 1121 , ... , 111 z и 112Z.The use of the metadata summary table indPQ 123 makes it possible to distribute the operand tables P and Q (136 and 137) between independent processing modules 105i ... 105z in the form of pairs of fragment tables 1111 and 112i 111 z and 112 z stored on drives 110i ... 110z. In this case, the equivalence classes whose records contain the same key values K are located in one and only one pair of fragment tables 1111 and 1121 , ... , 111 z and 112 Z .
В результате выполнения операции Рпрм INNER JOIN Опрм получается таблица, содержащая
Figure imgf000012_0001
строк, где РПРМ и Опрм - таблицы-
As a result of the execution of the operation P p prm INNER JOIN O p prm, a table is obtained containing
Figure imgf000012_0001
lines, where RPRM and O p rm - tables -
/=1 фрагменты 111прм и 112прм соответственно в модуле обработки с порядковым номером пРМ. При этом очевидно, что чем меньше значение разности между наибольшим Rmax и наименьшим Rmn количеством обрабатываемых строк, тем ниже общее время выполнения операции JOIN при обработке больших структурированных высокоактивных данных, содержащихся в таблицах-операндах Р и Q (136 и 137). /=1 fragments 111 prm and 112 prm respectively in the processing module with the serial number of the prm. At the same time, it is obvious that the smaller the difference between the largest Rmax and the smallest Rmn number of processed rows, the lower the total execution time of the JOIN operation when processing large structured highly active data contained in operand tables P and Q (136 and 137).
Снижение времени выполнения операции JOIN при обработке больших структурированных высокоактивных данных в заявленном изобретении следует из того, что сводная таблица метаданных IndPQ 123, есть результат операции indP • IndQ и пары таблиц-фрагментов 111 i и 112 .... 111z и 112z не содержат строк, которые не используются при выполнении операции JOIN. В способе, описанном в прототипе, используется таблица-фрагмент, которая представляет собой полную таблицу-операнд, содержащую, в том числе и не используемые при выполнении операции JOIN строки, что увеличивает время выполнения операции JOIN при обработке больших структурированных высокоактивных данных, по сравнению с заявляемым способом. The reduction in the execution time of the JOIN operation when processing large structured highly active data in the claimed invention follows from the fact that the summary metadata table IndPQ 123 is the result of the operation indP • IndQ and a pair of fragment tables 111 i and 112 .... 111 z and 112 z are not contain rows that are not used in the JOIN operation. The method described in the prototype uses a fragment table, which is a complete operand table containing rows that are not used when performing the JOIN operation, which increases the execution time of the JOIN operation when processing large structured highly active data, compared with by the claimed method.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) Перечень чертежей SUBSTITUTE SHEET (RULE 26) List of drawings
Фиг.1. - Обобщенная структурная схема системы, реализующей способ параллельного выполнения операции JOIN при обработке больших структурированных высокоактивных данных Fig.1. - A generalized block diagram of a system that implements a method for parallel execution of the JOIN operation when processing large structured highly active data
5 Фиг. 2. - Способ параллельного выполнения операции JOIN при обработке больших структурированных высокоактивных данных Фиг. 3. - Алгоритм формирования сводной таблицы метаданных на основе вычисления частоты использования ключей операции JOIN в таблицах-операндах ю Фиг.4. - Алгоритм распределения строк из обеих таблиц-операндов в таблицы-фрагменты в каждый модуль обработки на основе сводной таблицы метаданных 5 Fig. 2. Method for executing the JOIN operation in parallel when processing large structured high activity data FIG. 3. - Algorithm for the formation of a summary table of metadata based on the calculation of the frequency of using the keys of the JOIN operation in the operand tables u Fig.4. - Algorithm for distributing rows from both operand tables into fragment tables to each processing module based on the metadata summary table
Фиг.5. - Результаты эксперимента Fig.5. - Experiment results
Варианты реализации Implementation Options
15 Система клиента 135 может представлять собой настольный компьютер с установленным программным обеспечением СУБД на основе SQL, например PostgreSQL, связанную через глобальную сеть Интернет (125) по протоколу TCP/IP с хост-процессором 120 системы манипулирования данными который может представлять собой 20 сервер общего назначения, оснащенным многоядерным процессором, операционной системой, обеспечивающей многопоточное выполнение приложений, например Windows 7, СУБД с процедурным языком манипулирования данными, например, Transact-SQL. В состав программного обеспечения входит 25 оптимизатор 122, представляющий собой программную систему, написанную на языке высокого уровня. Хост-процессор соединен высокоскоростной локальной сетью, предпочтительно Infiniband с несколькими имеющими аналогичную архитектуру модулями обработки 105i...105z, каждый из которых имеет в своем составе как 30 минимум один накопитель данных 110i...110z, предпочтительно твердотельный. 15 The client system 135 may be a desktop computer with installed SQL-based DBMS software, such as PostgreSQL, connected via the global Internet (125) via TCP/IP to the host processor 120 of the data manipulation system, which may be a 20 general purpose server , equipped with a multi-core processor, an operating system that provides multi-threaded execution of applications, such as Windows 7, a DBMS with a procedural data manipulation language, such as Transact-SQL. The software includes 25 optimizer 122, which is a software system written in a high-level language. The host processor is connected by a high-speed local area network, preferably Infiniband, to several processing modules 105i...105z having a similar architecture, each of which includes at least one storage device 110i...110 z , preferably a solid state drive.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) Достижение заявленного технического эффекта подтверждается сравнением времени выполнения операции JOIN над двумя таблицами 136 и 137 расположенными в системе пользователя. SUBSTITUTE SHEET (RULE 26) The achievement of the claimed technical effect is confirmed by comparing the execution time of the JOIN operation on two tables 136 and 137 located in the user's system.
На фиг. 5 представлена зависимость времени выполнения операции JOIN над двумя таблицами, содержащими от 4000000 до 25000000 строк в системе, включавшей в себя два модуля обработки и четыре модуля обработки, имевших одинаковые параметры. Так же для сравнения на фиг.5 представлена зависимость времени выполнения операции JOIN от числа строк при условии выполнения ее исключительно вычислительными средствами системы 135. In FIG. 5 shows the dependence of the execution time of the JOIN operation on two tables containing from 4000000 to 25000000 rows in a system that included two processing modules and four processing modules that had the same parameters. Also for comparison, figure 5 shows the dependence of the execution time of the JOIN operation on the number of rows, provided that it is performed exclusively by the computing means of the system 135.
Приведенные результаты демонстрируют, что скорость выполнения операции JOIN возрастает с ростом количества модулей обработки. The above results demonstrate that the speed of the JOIN operation increases with the increase in the number of processing modules.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) SUBSTITUTE SHEET (RULE 26)

Claims

Формула изобретения Claim
1. Способ параллельного выполнения операции JOIN при обработке больших структурированных высокоактивных данных, заключающийся в том, что в компьютерно-реализуемой системе манипулирования данными, использующей язык SQL, после получения хост-процессором обеих таблиц-операндов и условий отбора строк в операции производится распределение строк таблиц-операндов между множеством модулей обработки в форме таблиц-фрагментов с последующим параллельным выполнением операции SQL JOIN в модулях обработки над этими фрагментами таблиц-операндов с одновременным объединением результатов, отличающийся тем, что распределению строк таблиц- фрагментов между множеством модулей обработки предшествует осуществляемое хост-процессором формирование для каждой таблицы- операнда индексной таблицы, в которой каждая строка содержит значение ключа операции SQL JOIN и значение количества строк в данной таблице-операнде, соответствующее этому ключу, выполнение операции пересечения сформированных индексных таблиц с вычислением произведения частот использования ключей операции SQL JOIN в таблицах-операндах, упорядочивание полученной сводной таблицы метаданных по убыванию значений величины произведения частот использования ключей, отбор строк таблиц-операндов в таблицы- фрагменты осуществляется по значениям ключей, соответствующих строкам сводной таблицы метаданных, таким образом, что каждая пара таблиц-фрагментов в одном модуле обработки содержит только те строки таблиц-операндов, которые имеют одинаковое значение ключа. 1. A method of parallel execution of the JOIN operation when processing large structured highly active data, which consists in the fact that in a computer-implemented data manipulation system using the SQL language, after the host processor receives both operand tables and row selection conditions in the operation, table rows are distributed - operands between a plurality of processing modules in the form of fragment tables, followed by parallel execution of the SQL JOIN operation in the processing modules on these fragments of operand tables with simultaneous merging of results, characterized in that the distribution of rows of fragment tables between a plurality of processing modules is preceded by the host processor formation of an index table for each table-operand, in which each row contains the value of the key of the SQL JOIN operation and the value of the number of rows in this table-operand corresponding to this key, the operation of crossing the formed index tables with the calculation of the product of the frequencies of using the keys of the SQL JOIN operation in tables -operands, ordering the resulting summary table of metadata in descending order of the value of the product of the frequencies of use of keys, selection of rows of tables-operands into tables-fragments is carried out according to the values of the keys corresponding to the rows of the summary table of metadata, so that each pair of tables-fragments in one processing module contains only those rows of operand tables that have the same key value.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) SUBSTITUTE SHEET (RULE 26)
PCT/RU2021/000480 2021-11-02 2021-11-02 Method for parallel execution of a join operation when processing highly active structured big data WO2023080804A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/RU2021/000480 WO2023080804A1 (en) 2021-11-02 2021-11-02 Method for parallel execution of a join operation when processing highly active structured big data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2021/000480 WO2023080804A1 (en) 2021-11-02 2021-11-02 Method for parallel execution of a join operation when processing highly active structured big data

Publications (1)

Publication Number Publication Date
WO2023080804A1 true WO2023080804A1 (en) 2023-05-11

Family

ID=86241474

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/RU2021/000480 WO2023080804A1 (en) 2021-11-02 2021-11-02 Method for parallel execution of a join operation when processing highly active structured big data

Country Status (1)

Country Link
WO (1) WO2023080804A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6957210B1 (en) * 2001-12-31 2005-10-18 Ncr Corporation Optimizing an exclusion join operation using a bitmap index structure
US8099409B2 (en) * 2008-09-03 2012-01-17 Teradata Us, Inc. System, method, and computer-readable medium for duplication optimization for parallel join operations on similarly large skewed tables
US8914354B2 (en) * 2009-07-28 2014-12-16 Teradata Us, Inc. Cardinality and selectivity estimation using a single table join index
US9665624B2 (en) * 2013-01-30 2017-05-30 International Business Machines Corporation Join operation partitioning
US10380112B2 (en) * 2017-07-31 2019-08-13 International Business Machines Corporation Joining two data tables on a join attribute
RU2755568C1 (en) * 2020-07-26 2021-09-17 Смоленская общественная организация содействия науке и образованию «Региональный союз ученых» Method for parallel execution of the join operation while processing large structured highly active data

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6957210B1 (en) * 2001-12-31 2005-10-18 Ncr Corporation Optimizing an exclusion join operation using a bitmap index structure
US8099409B2 (en) * 2008-09-03 2012-01-17 Teradata Us, Inc. System, method, and computer-readable medium for duplication optimization for parallel join operations on similarly large skewed tables
US8914354B2 (en) * 2009-07-28 2014-12-16 Teradata Us, Inc. Cardinality and selectivity estimation using a single table join index
US9665624B2 (en) * 2013-01-30 2017-05-30 International Business Machines Corporation Join operation partitioning
US10380112B2 (en) * 2017-07-31 2019-08-13 International Business Machines Corporation Joining two data tables on a join attribute
RU2755568C1 (en) * 2020-07-26 2021-09-17 Смоленская общественная организация содействия науке и образованию «Региональный союз ученых» Method for parallel execution of the join operation while processing large structured highly active data

Similar Documents

Publication Publication Date Title
Tao et al. Minimal mapreduce algorithms
US8126870B2 (en) System and methodology for parallel query optimization using semantic-based partitioning
US6775682B1 (en) Evaluation of rollups with distinct aggregates by using sequence of sorts and partitioning by measures
US7730055B2 (en) Efficient hash based full-outer join
EP1738290B1 (en) Partial query caching
US7035843B1 (en) Evaluation of database hierarchical cubes by nesting rollup operators associated with multiple groupings
US20030088579A1 (en) Collecting statistics in a database system
US8150836B2 (en) System, method, and computer-readable medium for reducing row redistribution costs for parallel join operations
Dokeroglu et al. Robust heuristic algorithms for exploiting the common tasks of relational cloud database queries
US20190228014A1 (en) Control method for performing multi-table join operation and corresponding apparatus
Zhang et al. Multi-query optimization for complex event processing in SAP ESP
EP3513333B1 (en) Managing transactions requesting non-existent index keys in database systems
Madan et al. k-DDD measure and mapreduce based anonymity model for secured privacy-preserving big data publishing
CN106844445B (en) Resource description framework RDF graph partitioning method based on semantics
Lepikhov et al. Query processing in a DBMS for cluster systems
RU2755568C1 (en) Method for parallel execution of the join operation while processing large structured highly active data
EP3224745A1 (en) Relation aware aggregation (raa) on normalized datasets
Fuaad et al. A survey on distributed database fragmentation allocation and replication algorithms
WO2023080804A1 (en) Method for parallel execution of a join operation when processing highly active structured big data
Rajith et al. JARS: join-aware distributed RDF storage
Kechar et al. Bringing common subexpression problem from the dark to light: Towards large-scale workload optimizations
Taniar et al. Performance analysis of “Groupby-After-Join” query processing in parallel database systems
Osborn et al. Multiple-Site Distributed Spatial Query Optimization Using Spatial Semijoins.
Abubaker et al. True load balancing for matricized tensor times khatri-Rao product
Shi et al. HEDC++: an extended histogram estimator for data in the cloud

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21963437

Country of ref document: EP

Kind code of ref document: A1