WO2014068950A1 - データ処理システム、データ処理方法およびプログラム - Google Patents
データ処理システム、データ処理方法およびプログラム Download PDFInfo
- Publication number
- WO2014068950A1 WO2014068950A1 PCT/JP2013/006380 JP2013006380W WO2014068950A1 WO 2014068950 A1 WO2014068950 A1 WO 2014068950A1 JP 2013006380 W JP2013006380 W JP 2013006380W WO 2014068950 A1 WO2014068950 A1 WO 2014068950A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- task
- processing
- parallel
- unit
- sequential
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Definitions
- the present invention relates to a data processing system, a data processing method, and a program in distributed processing.
- Patent Document 1 discloses a technique for executing parallel processing by devising hash join.
- the technique disclosed in Patent Document 1 divides a hash join into a plurality of tasks based on the appearance frequency of the join key of the table, and assigns the plurality of tasks to a plurality of computers.
- the technique disclosed in Patent Document 1 further divides a task with a large processing amount into a plurality of subtasks.
- the technique disclosed in Patent Document 1 assigns a task and a subtask to each computer so that the processing amount of each computer becomes equal.
- Patent Document 1 only optimizes the processing time of parallel processing.
- the technique disclosed in Patent Document 1 is applied to data processing including both parallel processing and sequential processing, there is a problem that the processing time of the entire data processing is not necessarily optimized.
- An object of the present invention is to provide a data processing system that optimizes the overall processing time of data processing including parallel processing and sequential processing.
- data processing including parallel processing that can be executed in parallel by a plurality of computers and sequential processing that is post-processing of the parallel processing and executed by one computer, Accepts a plurality of tasks to be executed for a record set that is a set of a plurality of records, and before sequential processing that is expected to take more time than other sequential processing among sequential processing included in the task
- a task set that divides the parallel processing into a plurality of subtasks by subdividing the record set that is the processing target of the parallel processing, and tasks other than tasks including the parallel processing are executed Assigning the plurality of subtasks to the plurality of computers so that the plurality of subtasks are executed before being performed. It is over data processing system.
- data processing including parallel processing that can be executed in parallel by a plurality of computers and sequential processing that is post-processing of the parallel processing and executed by one computer, Accepts a plurality of tasks to be executed for a record set that is a set of a plurality of records, and before sequential processing that is expected to take more time than other sequential processing among sequential processing included in the task
- parallel processing which is a process, by dividing the record set that is the processing target of the parallel processing, a division step that divides the parallel processing into a plurality of subtasks, and tasks other than the task including the parallel processing are executed. Assigning the plurality of subtasks to the plurality of computers so that the plurality of subtasks are executed before It is over data processing method.
- a computer includes data including parallel processing that can be executed in parallel by a plurality of computers and sequential processing that is post-processing of the parallel processing and executed by one computer.
- a sequential task that receives a plurality of tasks for executing a process on a record set that is a set of a plurality of records, and is expected to take more time than other sequential processes among the sequential processes included in the task.
- For parallel processing which is preprocessing of processing, a procedure for dividing the parallel processing into a plurality of subtasks by subdividing a record set to be processed by the parallel processing, and tasks other than tasks including the parallel processing
- the object of the present invention is also achieved by a computer-readable storage medium storing the above program.
- Data processing targeted by the present invention includes parallel processing and sequential processing.
- Parallel processing is processing that a plurality of computers can execute in parallel.
- Sequential processing is executed as post-processing of parallel processing.
- the processing time decreases as the number of computers increases.
- the sequential processing is processing executed by one computer. Even if the number of computers increases, the processing time of sequential processing is not shortened. For this reason, when a plurality of computers execute data processing including both parallel processing and sequential processing, the processing time of the sequential processing tends to become a bottleneck of the processing time of the entire data processing.
- a “table” is data that is subject to data processing.
- the table includes a plurality of record sets.
- a “record set” is a set of a plurality of records, and is a unit in which sequential processing is executed by one computer.
- a “job” is data processing for a table.
- a “task” is data processing for a record set. A job is divided into a plurality of tasks by subdividing the processing target from a table into a record set.
- Tasks can be divided into parallel processable tasks and sequential processing tasks.
- a task capable of parallel processing is processing for executing parallel processing on a record set.
- a “sequential processing task” is a process of executing sequential processing, which is post-processing of parallel processing, on a record set.
- a task that can be processed in parallel can be divided into a plurality of “subtasks” by subdividing a processing target from a record set into a set of finer records. That is, one task can be divided into a plurality of subtasks and one sequential processing task.
- the subtask and the sequential processing task correspond means that the subtask and the sequential processing task are divided from the same task.
- “Large task” means a task having a large number of records included in the record set to be executed. The task processing time is generally determined by the number of records included in the record set to be processed. A large task is a task with a long processing time.
- FIG. 1 is a hardware configuration diagram of a data processing system 1000 according to the first embodiment.
- the data processing system 1000 includes, for example, a CPU (Central Processing Unit) 1, a RAM (Random Access Memory) 2, a hard disk drive 3, a communication interface 4, an input device 5, an output device 6, and the like.
- a CPU Central Processing Unit
- RAM Random Access Memory
- the functions of the data processing system 1000 are realized, for example, by the CPU 1 reading a program into the RAM 2 and executing it. Transmission / reception of information by the data processing system 1000 is realized by an application program controlling the communication interface 4 using a function provided by an OS (Operating System), for example.
- the input device 5 is, for example, a keyboard or a mouse.
- the output device 6 is a display, for example. The input device 5 and the output device 6 may be integrated as a touch panel, for example.
- the present invention which will be described by taking this embodiment and each embodiment described later as an example, is also configured by a non-volatile storage medium 8 such as a compact disk in which such a program is stored.
- the program stored in the storage medium 8 is read by the drive device 7, for example.
- the data processing system 1000 may be configured by connecting two or more physically separated devices so that they can communicate with each other in a wired or wireless manner.
- FIG. 2 is a block diagram of the data processing system 1000 according to the first embodiment. As shown in FIG. 2, the data processing system 1000 includes a task dividing unit 10 and an assigning unit 20.
- the task division unit 10 accepts execution requests for a plurality of tasks. Then, the task division unit 10 calculates the processing time of the sequential processing task included in the task for each of the plurality of received tasks. For example, the task division unit 10 calculates the task processing time based on the number of records included in the record set that is the task processing target.
- the task dividing unit 10 divides a parallel processable task, which is a preprocessing of a sequential processing task larger than other sequential processing tasks, into a plurality of subtasks.
- the assignment unit 20 assigns a plurality of subtasks to a plurality of computers so that a plurality of subtasks are executed before a task other than the task including the divided parallel processable tasks is executed.
- FIG. 3 is a diagram for explaining the concept of tasks processed by the data processing system 1000.
- three rectangles are shown.
- the three rectangles represent task A, task B and task C), respectively. That is, FIG. 3 shows three tasks, task A, task B, and task C.
- Each task includes a task that can be processed in parallel (portion filled with a horizontal line) and a sequential processing task (white portion).
- the length of the rectangle (task) shown in FIG. 3 represents the processing time of the task when the task is executed by a single computer. It can be considered that the processing time is roughly proportional to the size of the record set processed by the task.
- the sequential processing task of task A is larger than the sequential processing task of task B and task C.
- FIG. 4 is a diagram illustrating a state in which the parallel processable task of task A shown in FIG. 3 is divided into subtasks.
- the task dividing unit 10 divides the task A that can be processed in parallel into a plurality of subtasks (portions filled with a grid). Specifically, the task division unit 10 divides a parallel processable task into subtasks corresponding to the number of computers that execute the job. For example, when the job is executed by three computers, the task dividing unit 10 divides the task A that can be processed in parallel into three subtasks.
- FIG. 5 is a diagram for explaining how the task shown in FIG. 4 is assigned to three computers.
- the assigning unit 20 assigns the subtask of task A, the sequential processing task of task A, task B, and task C to three computers.
- the assigning unit 20 assigns the subtask of the task A so that it is executed before the task B or the task C is executed.
- the computer 1 executes the subtask of task A and then executes the sequential processing task of task A.
- the computer 2 executes the subtask of the task A, transmits the execution result to the computer 1, and then executes the task B.
- the computer 3 executes the subtask of the task A, transmits the execution result to the computer 1, and then executes the task C.
- FIG. 6 is a flowchart for explaining the operation of the data processing system 1000.
- the task division unit 10 accepts an execution request for a plurality of tasks (A100).
- the task division unit 10 calculates the processing time of the sequential processing task included in each task based on the number of records included in the record set that is the processing target of each task that has received the execution request (A110).
- the task division unit 10 divides a task including a large sequential process task into a parallel processable task and a sequential process task, and further divides the parallel processable task into a plurality of subtasks (A120).
- the assigning unit 20 assigns the task, the subtask, and the sequential processing task to the plurality of computers so that the plurality of subtasks are executed before the task other than the task including the large sequential processing task is executed (A130).
- the data processing system 1000 includes a parallel process that can be executed in parallel by a plurality of computers, and a sequential process that is a post-process of the parallel process and executed by one computer.
- a data processing system, a data processing method, and a program for optimizing the processing time of the entire data processing including the above can be provided.
- the reason is that the data processing system 1000 schedules job execution so that a large sequential processing task that tends to be a bottleneck of the entire data processing is executed as soon as possible. As a result, a large sequential processing task is executed in superposition with other tasks, so that the processing time of the entire data processing is optimized.
- FIG. 7 is a block diagram of a data processing system 1000 according to the second embodiment. As shown in FIG. 7, the data processing system 1000 according to the second embodiment further includes a job receiving unit 30 and a job dividing unit 40 in addition to the data processing system 1000 according to the first embodiment.
- the job receiving unit 30 receives a job execution request.
- the job dividing unit 40 divides a job into a plurality of tasks by subdividing a table to be processed by the job into a plurality of record sets.
- the task dividing unit 10 receives a plurality of tasks from the job dividing unit 40 and operates in the same manner as in the first embodiment.
- FIG. 8 is a flowchart for explaining the operation of the data processing system 1000.
- the job receiving unit 30 receives a job execution request (B100).
- the job dividing unit 40 divides the job that has received the execution request into a plurality of tasks (B110). Thereafter, the processing of A110 to A130 is executed in the same manner as in the first embodiment.
- the data processing system 1000 includes a parallel process that can be executed in parallel by a plurality of computers, and a sequential process that is a post-process of the parallel process and executed by one computer.
- the operation of the task dividing unit 10 is different from the operation of the task dividing unit 10 according to the first or second embodiment.
- the task division unit 10 divides a parallel processable task included in the task.
- the task dividing unit 10 does not divide a parallel processable task included in a task for a task smaller than the largest sequential processing task.
- FIG. 10 and FIG. 11 are diagrams for explaining the operation of the task dividing unit 10 in the third embodiment.
- FIG. 9 shows three tasks (task A, task B, and task C).
- the largest sequential processing task is the sequential processing task of task A.
- the task division unit 10 compares the processing times of tasks A to C with the processing time of the sequential processing task of task A.
- Task A and task B are larger than the task A sequential processing task. Therefore, the task division unit 10 divides the task A that can be processed in parallel into N subtasks, and divides the task B that can be processed in parallel into N subtasks.
- task C is shorter than the processing time of the sequential processing task of task A. Therefore, the task dividing unit 10 does not divide the task C that can be processed in parallel.
- FIG. 10 is a diagram for explaining a situation in which the parallel processable task of task A and the parallel processable task of task B shown in FIG. 9 are divided into subtasks.
- the task A that can be processed in parallel is divided into N subtasks
- the task B that can be processed in parallel is also divided into N subtasks.
- the subtask divided from the tasks that can be processed in parallel by task A will be referred to as “task A subtask”.
- a subtask that is divided from the tasks that can be processed in parallel by task B is referred to as “subtask of task B”.
- FIG. 11 is a diagram illustrating a state in which the task illustrated in FIG. 10 is assigned to N computers.
- the assignment unit 21 assigns the subtask of task A, the sequential processing task of task A, the subtask of task B, the sequential processing task of task B, and task C to a plurality of computers 1 to N.
- the reason why the task dividing unit 10 does not divide the task C is as follows. As shown in FIG. 11, the bottleneck of the processing time of the entire job is the processing time of the sequential processing task of task A. No matter how much the number of computers increases, the processing time of the task A sequential processing task is not shortened. Therefore, even if the task dividing unit 10 parallelizes task C, which has a shorter processing time than the sequential processing task of task A, the processing time of the entire job is not shortened.
- the task division unit 10 in the third embodiment does not divide a parallel processable task included in a task for a task smaller than the largest sequential processing task. Since the data processing system 1000 according to the third embodiment has such a configuration, unnecessary parallelization can be suppressed and overhead caused by unnecessary parallelization can be prevented.
- task dividing unit 10 determines the number of tasks B that can be processed in parallel. May be less than the number of tasks A that can be processed in parallel.
- the allocation unit 20 schedules the subtask of task B not to be allocated to the computer that processes the sequential processing task of task A.
- the total processing time of one subtask of task A and the sequential processing task of task A is the total processing time of one subtask of task A, one subtask of task B, and the sequential processing task of task B If it becomes longer than that, the task dividing unit 10 reduces the number of tasks B that can be processed in parallel for task B to be smaller than the number of tasks that can be processed in parallel for task A.
- the allocating unit 20 assigns the sequential processing task of task A to The subtask of task B is not assigned to the computer to be processed (computer 1).
- the execution of the sequential processing task of task A which is a bottleneck of the processing time of the entire job, can be further advanced, and the execution time of the entire job can be further shortened.
- the operations of the task dividing unit 10 and the assigning unit 20 are different from those in the first, second, and third embodiments.
- the task division unit 10 divides the task A that can be processed in parallel into a plurality of subtasks
- the task division unit 10 divides the tasks so that the number of records processed by each subtask is different.
- the assignment unit 20 assigns a subtask that processes more records than other subtasks to a computer to which a sequential processing task that is a post-processing of a parallel processable task is assigned.
- the assignment unit 20 may not assign subtasks to other computers.
- FIGS. 12 to 14 are diagrams for explaining the operations of the task dividing unit 10 and the assigning unit 20 in the fourth embodiment. As shown in FIGS. 12 to 14, this example deals with a case where a job that can be divided into five tasks is processed by four computers.
- FIG. 12 shows five tasks (tasks A to E). As shown in FIG. 12, the sequential processing task of task A is larger than the sequential processing tasks of task B to task E.
- the task dividing unit 10 divides the task A that can be processed in parallel into a plurality of subtasks.
- the task dividing unit 10 divides the task A parallel processable task shown in FIG. 12 so that the number of records processed by the subtasks is different, and the allocating unit 20 determines that the task A sequential processing task is It is a figure which shows a mode that the subtask which processes more records than the other subtask was allocated to the computer (computer 1) to be allocated.
- the task A that can be processed in parallel is divided into three subtasks, and the three subtasks are assigned to the computer 1, the computer 2, and the computer 3, respectively.
- the subtask assigned to the computer 1 is twice the size of the subtask assigned to the computer 2 and the computer 3.
- the assignment unit 20 selects a computer to which no subtask is assigned from among computers other than the computer (computer 1) to which a sequential processing task that is a post-processing of a parallel processable task is assigned. In the example shown in FIG. 13, no subtask is assigned to the computer 4. Therefore, the computer 4 does not need to transfer the execution result of the subtask to the computer 1.
- the assignment unit 20 preferably selects a computer having a high data transfer cost to a computer (computer 1) that executes sequential processing as a computer to which no subtask is assigned.
- FIG. 14 is a diagram for explaining the effect of the present embodiment.
- the tasks capable of parallel processing of task A shown in FIG. 12 are divided so that the number of records processed by the subtasks is equal to each other.
- the task capable of parallel processing of task A is divided into four subtasks, and the four subtasks are assigned to the computers 1 to 4, respectively.
- the subtask of task A, the sequential processing task of task A, and tasks B to E are assigned to four computers (computers 1 to 4).
- the computers 2, 3, and 4 execute the subtask of task A, the execution results of the subtask must be transferred to the computer 1.
- the data communication cost of the computer 4 increases as compared with the case where the task schedule is performed as shown in FIG.
- the task dividing unit 10 divides a parallel processable task so that the number of records processed by the subtasks is different.
- the assignment unit 20 according to the fourth embodiment assigns a subtask that processes more records than other subtasks to a computer to which a sequential processing task that is a post-processing of a parallel processable task is assigned.
- the assignment unit 20 selects a computer to which no subtask is assigned from among computers other than the computer to which the sequential processing task, which is the post-processing of a parallel processable task, is assigned.
- the data processing system 1000 according to the fourth embodiment can reduce the data transfer cost of a computer to which no subtask is assigned.
- the operations of the task dividing unit 10 and the assigning unit 20 are different from those in the first, second, third, and fourth embodiments.
- the data processing system 1000 according to the present embodiment handles a sequential processing task that processes records included in a record set in a predetermined order.
- the task division unit 10 accepts information for determining the processing order of records when accepting a task execution instruction.
- the task division unit 10 calculates the processing execution time of the sequential processing task included in the task based on the number of records included in the record set that is the task processing target.
- the task dividing unit 10 divides a parallel processable task, which is a preprocess of a sequential processing task larger than other sequential processing tasks, into a plurality of subtasks.
- the task division unit 10 subdivides the record set into a set of finer records according to the record processing order.
- the task dividing unit 10 divides the record set into four sets including 50 records.
- the task division unit 10 sets a record set processed by the first subtask from the first record to the 50th record.
- the task division unit 10 sets the records from the 51st sequentially processed record to the 100th sequentially processed record as a set of records processed by the second subtask.
- the task division unit 10 sets the records from the 101st sequential processing to the 150th sequential processing as a set of records processed by the third subtask.
- the task division unit 10 sets the records from the 151st sequentially processed record to the 200th sequentially processed record as a set of records processed by the fourth subtask.
- the assigning unit 20 assigns a subtask that includes a first record to be processed by the sequential processing task to a computer to which a sequential processing task that is a post-processing of a parallel processable task is assigned.
- FIG. 15 is a diagram illustrating a state in which the assignment unit 20 assigns a subtask including a first record to be processed by the sequential processing task to a computer (computer 1) to which the sequential processing task is assigned.
- FIG. 16 is a diagram for explaining the effect of the fifth embodiment. 15 and 16, the subtask assigned to the computer 1 is “a subtask including the first record to be processed as a processing target (denoted as ⁇ in FIGS. 15 to 18)”. In FIG. 15, the subtask assigned to the computers 2, 3, and 4 is “a subtask that does not include the first record to be processed (described as ⁇ in FIGS. 15 to 18)”.
- FIG. 16 shows a state in which a delay occurs in the execution of the subtask by the computer 2 when scheduled as shown in FIG.
- the delay of the computer 2 has no influence on the processing time of the entire job. This is because, when the computer 1 completes the execution of the subtask including the first record as the processing target, the computer 1 can start executing the sequential processing task.
- the computer 2 completes the execution of the subtask assigned to the computer 2 while the computer 1 executes the sequential processing task, and transmits the execution result to the computer 1. In this case, the delay in execution of the subtask by the computer 2 does not affect the processing time of the entire job.
- FIG. 17 and 18 are diagrams for explaining the effects according to the fifth embodiment. 17 and 18, “subtask including the first processed record as a processing target” is described as ⁇ in the figure, and “subtask not including the first processed record as a processing target” as ⁇ in the figure. It is described.
- FIG. 17 is a diagram illustrating a state in which the assignment unit 20 does not assign the subtask including the first record to be processed to the processing target (computer 1) to which the sequential processing task is assigned. As shown in FIG. 17, the subtask including the record to be processed first as the processing target is assigned to the computer 2.
- FIG. 18 shows a state in which a delay occurs in the execution of the subtask by the computer 2 when scheduled as shown in FIG. As shown in FIG. 18, the delay of the computer 2 delays the processing time of the entire job. This is because the computer 1 cannot start executing the sequential processing task unless the execution of the subtask by the computer 2 is completed.
- the assignment unit 20 assigns a subtask including, as a processing target, the first record to be processed by the sequential processing task to a computer to which a sequential processing task that is a post-processing of a parallel processable task is assigned. . Since the data processing system 1000 according to the fifth embodiment has such a configuration, even when a delay occurs due to re-execution of a task due to an error or a system failure, the data processing system 1000 affects the start time of the sequential processing task. Can be prevented.
- the job receiving unit 30 may receive input of information that determines the processing order of records instead of the task dividing unit 10.
- the data processing apparatus 1000 performs data processing including join (JOIN) processing and scan processing, which is post-processing of the join processing, on the table.
- join join
- scan processing which is post-processing of the join processing
- FIG. 19 is a diagram illustrating an example of a table, a record set, and a record in the data processing apparatus 1000 according to the sixth embodiment.
- FIG. 19 is merely an example for making the explanation easy to understand, and is not for limited interpretation of the table, the record set, and the record.
- the record includes a record identifier (ID), a branch name, a customer ID, and a transaction time.
- ID a record identifier
- branch name a branch name
- customer ID a transaction time
- transaction time a transaction time of a transaction.
- the attributes of the record include “attributes that determine units in which sequential processing is performed”.
- the value of “attribute that determines the unit in which sequential processing is executed” determines which record set the record belongs to. For example, when the attribute “branch name” is “an attribute that determines a unit in which sequential processing is executed”, a set of records having the same branch name value is a record set.
- a transaction table shown in FIG. 19 and a master table are combined using a branch name as a key.
- the sequential processing concerning this embodiment scans a record in order of transaction time in the record set which has the same branch name with respect to the record after a coupling
- FIG. 20 is an example of statistical information about the table shown in FIG. 19 (hereinafter referred to as statistical information).
- an example of statistical information is a histogram indicating the number of records for each value of an attribute (in the example illustrated in FIG. 20, a branch name) that determines a unit in which sequential processing is performed.
- the statistical information shown in FIG. 20 is merely an example for making the explanation easy to understand, and does not interpret the statistical information in a limited manner.
- the statistical information may include, for example, information such as a total amount of records and a deviation in the number of records for each attribute value that determines a unit in which sequential processing is executed.
- the record may include an attribute that determines the order in which the sequential processing is executed.
- the transaction time is an attribute that determines the order in which the sequential processing is executed
- the sequential processing may be executed in the order of early transaction time in the record set.
- the statistical information described above may include information such as a distribution for each attribute value that determines the order in which sequential processing is performed.
- FIG. 21 is a block diagram of a data processing system 1000 according to the sixth embodiment. 21 that are substantially the same as those shown in FIGS. 2 and 7 are denoted by the same reference numerals.
- the data processing system 1000 according to the sixth embodiment includes a task dividing unit 10, a record information collecting unit 110, an assigning unit 20, a job receiving unit 30, a job dividing unit 40, and a data storage unit 300. including.
- the job receiving unit 30 receives a job execution request.
- the job execution request includes information for specifying the contents of data processing and information for specifying a table to be processed.
- the information specifying the content of the data processing includes, for example, a parameter indicating how much of the job processing time can be executed in parallel.
- the job reception unit 30 outputs to the record information collection unit 110 information specifying a table to be processed, which is included in the job execution request.
- the record information collection unit 110 acquires statistical information from the data storage unit 300 based on information specifying a table to be processed.
- the record information collection unit 110 may read the table stored in the data storage unit 300 and calculate statistical information. Alternatively, the record information collection unit 110 may acquire statistical information that the data storage unit 300 stores in advance together with the table.
- the record information collection unit 110 outputs statistical information to the job division unit 40.
- the job dividing unit 40 divides the job received by the job receiving unit 30 into a plurality of tasks based on the statistical information. For example, a case will be described in which the job receiving unit 30 receives a job whose processing target is the table shown in FIG.
- the table shown in FIG. 19 includes 600 records.
- the job dividing unit 40 creates a table including 600 records, one record set including 200 records (Tokyo branch), and 100 records. Records sets including 2 records sets (Sapporo branch, Sendai branch), 2 record sets including 50 records (Yokohama branch, Osaka branch), and 4 record sets including 25 records (Kyoto branch, (Kobe branch, Hiroshima branch, Fukuoka branch).
- the task dividing unit 10 receives an execution request for a plurality of divided tasks. Then, the task dividing unit 10 calculates the processing time of the task and the sequential processing task included in the task based on the information specifying the content of the data processing and the statistical information. For example, the task dividing unit 10 calculates the task processing time by using the number of records included in the record set to be processed by the task and the information specifying the data processing content received by the job receiving unit 30 as input. To do. The task dividing unit 10 divides the task into a plurality of subtasks and one sequential processing task.
- the assigning unit 20 assigns a plurality of subtasks to a plurality of computers so that the subtask is executed before the corresponding sequential processing task or other task is executed.
- the data processing system 1000 optimizes the processing time of a job for executing data processing including a join process and a scan process that is a post process of the join process on the table.
- Data processing system, data processing method and program can be provided.
- the data processing apparatus 1000 according to the seventh embodiment is different from the sixth embodiment in the operations of the job dividing unit 41, the task dividing unit 11, and the assigning unit 21.
- the data processing apparatus 1000 according to the seventh embodiment divides and assigns tasks while considering deadlines.
- FIG. 22 is a block diagram of a data processing system 1000 according to the seventh embodiment. 22 that are substantially the same as those shown in FIG. 21 are denoted by the same reference numerals.
- the job dividing unit 41 calculates a deadline.
- the deadline is, for example, a time obtained by averaging job processing times by the number of computers.
- the task dividing unit 11 divides the task when the processing time of the task exceeds the deadline.
- the allocation unit 21 adjusts the position of the deadline as will be described later.
- FIG. 23 is a diagram showing a state in which four tasks (tasks A to D) are assigned to four computers.
- a dotted line shown in FIG. 23 indicates a time (average processing time) obtained by averaging the processing times of all tasks (A to D) by the number of computers (four). If the job is ideally scheduled, execution of the job is completed within this average processing time. Therefore, the job dividing unit 40A sets this average processing time as a deadline.
- the task division unit 10A calculates the processing time of the largest task A.
- the processing time of task A exceeds the deadline. As shown in FIG. 23, the processing time of task A becomes a bottleneck of the processing time of the entire job as it is. Therefore, the task dividing unit 10A divides the task A.
- the assigning unit 20 assigns the subtask of task A to the computers 1 to 4.
- FIG. 24 is a diagram showing the state of tasks assigned in this way.
- the processing time of the task A exceeds the deadline.
- the allocating unit 20 changes the position of the deadline from the average processing time of all tasks (old deadline) to the completion time (new deadline) of the sequential processing subtask of task A.
- FIG. 25 is a flowchart for explaining the operation of the data processing system 1000.
- the job receiving unit 30 receives a job execution request (C100).
- the record information collection unit 110 obtains statistical information that is the processing target of the job from the data storage unit 300 based on the information that identifies the table that is the processing target included in the job execution request received by the job reception unit 30 (C110).
- the job dividing unit 10 calculates the job processing time based on the information specifying the data processing content included in the job execution request, the acquired statistical information, and the like.
- the job dividing unit 10 calculates the deadline by averaging the job processing time by the number of computers (C120).
- the job dividing unit 40 divides the job into a plurality of tasks based on the statistical information.
- the task dividing unit 10 stores the divided tasks in the unscheduled task queue in descending order (C130). Then, the task dividing unit 10 repeats the following processing until the unscheduled task queue becomes empty (C140).
- the task division unit 10 extracts a task from the unscheduled task queue and calculates its processing time (C150). The task division unit 10 determines whether or not the calculated processing time exceeds the deadline. (C160). When the processing time exceeds the deadline, the task dividing unit 10 divides the task (C170). If the processing time does not exceed the deadline, the data processing system 1000 proceeds to the process of C180.
- the assigning unit 20 assigns tasks, subtasks, and sequential processing tasks to computers so that the subtasks are executed before other tasks and sequential processing tasks (C180).
- the allocation unit 20 determines whether the processing time of the sequential processing task exceeds the deadline as a result of the scheduling (C190). When the processing time of the sequential processing task exceeds the deadline, the allocation unit 20 sets the time for completing the sequential processing task as a new deadline (C200).
- the data processing apparatus 1000 according to the seventh embodiment divides and assigns tasks while considering deadlines. With this configuration, the data processing system 1000 according to the seventh embodiment can suppress unnecessary parallelism and prevent overhead due to unnecessary parallelization.
- the task execution unit 200 executes a task based on the result output by the assignment unit 20.
- FIG. 26 is a block diagram of a data processing system 1000 according to the eighth embodiment. Of the components shown in FIG. 26, those substantially the same as those shown in FIG. 21 are denoted by the same reference numerals. As shown in FIG. 26, the data processing system 1000 according to the eighth embodiment includes a task division unit 10, a record information collection unit 110, an allocation unit 20, a job reception unit 30, a job division unit 40, and task execution units 200A to 200A. 200N and the data storage unit 300 are included. The task execution units 200A to 200N may be abbreviated as the task execution unit 200.
- the assignment unit 20 outputs the result of assigning the task, subtask, and sequential processing task to the task execution unit 200 as schedule data.
- the task execution unit 200 executes the assigned task.
- FIG. 27 is a block diagram showing a configuration of the task execution unit 200 shown in FIG. As illustrated in FIG. 27, the task execution unit 200 includes a schedule data acquisition unit 210, a task processing unit 220, a progress sharing unit 230, and an output unit 240.
- the schedule data acquisition unit 210 acquires schedule data output by the allocation unit 20.
- the schedule data acquisition unit 210 may input the schedule data from the allocation unit 20 or may read the schedule data output to a place that can be referred to by the allocation unit 20.
- the task processing unit 220 executes the assigned task.
- the progress sharing unit 230 shares the progress of the assigned task (for example, not executed, being executed, or executed) with the other task executing unit 200.
- the progress sharing unit 230 may share the progress by communicating with another task execution unit 200, or share the progress by writing the task progress to the schedule data and reading the task progress from the schedule data. You may do it.
- the output unit 240 outputs data that is the processing result of the assigned task.
- FIG. 28 is a diagram illustrating an example of schedule data output by the assignment unit 20.
- the example shown in FIG. 28 is merely an example for making the explanation easy to understand, and is not for limited interpretation of the schedule data.
- tasks, subtasks, and sequential processing tasks assigned to the task execution unit 200 may be collectively abbreviated as “tasks”.
- the schedule data shown in FIG. 28 corresponds to the task assignment state shown in FIG. As illustrated in FIG. 28, the schedule data includes, for example, a task ID, an assignment destination ID, a processing target record, a priority, a task type, and an aggregation destination task ID.
- the task ID is an identifier that identifies a task from other tasks.
- the assignment destination ID is information for identifying the task execution unit 200 that processes the task.
- the process target record is information indicating a record that is a task process target.
- the priority is information indicating the order in which tasks are processed when a plurality of tasks are assigned to the task execution unit 200. In the example shown in FIG. 28, the priority indicates that the smaller the value, the higher the priority.
- the task type is information indicating whether the task is an undivided task (Normal), a subtask (Parallelized), or a sequential processing task (Sequential).
- the aggregation destination task ID is the task ID of the sequential processing task corresponding to the subtask.
- the processing target record is, for example, an attribute (branch name) value or range that determines a unit in which sequential processing is executed, an attribute (transaction time) value or range that determines the order in which sequential processing is executed, or its It may be specified in combination.
- the processing target record of the subtask may be determined by hash-distributing records that are processing targets of the task corresponding to the subtask by the number of task execution units 200. For example, a record that is a processing target of a subtask may be distributed to each task execution unit 200 in a dictionary order of hash values.
- FIG. 30 is a flowchart for explaining the operation of the task execution unit 200. As shown in FIG. 30, the task execution unit 200 repeats the following processing until there is no task assigned by the assignment unit 20 (D100).
- the task execution unit 200 extracts one task having a high priority from among the assigned tasks. Then, the task execution unit 200 determines whether the extracted task is a sequential processing task (Sequential) (D110). If the extracted task is a sequential processing task (Sequential), the process proceeds to D150. If the extracted task is not a sequential processing task (Normal or Parallelized), the task execution unit 200 acquires the processing target record of the extracted task from the data storage unit 300, and executes the task (D120).
- the task execution unit 200 determines whether the extracted task is a subtask (Parallelized) (D130). If the extracted task is a subtask (Parallelized), after the subtask is executed, the completion of processing is notified to the sequential processing task corresponding to the aggregation destination task ID (D140). If the extracted task is not a subtask (Parallelized) (Normal), the process returns to D100, and the task with the next highest priority is extracted.
- D130 determines whether the extracted task is a subtask (Parallelized) (D130). If the extracted task is a subtask (Parallelized), after the subtask is executed, the completion of processing is notified to the sequential processing task corresponding to the aggregation destination task ID (D140). If the extracted task is not a subtask (Parallelized) (Normal), the process returns to D100, and the task with the next highest priority is extracted.
- the task execution unit 200 When the task execution unit 200 extracts a sequential processing task (Sequential) in the processing of D110, the task execution unit 200 waits until the execution of the subtask corresponding to the sequential processing task is completed (D150), and the sequential processing task Is executed until it can be executed (D160). The task execution unit 200 determines whether or not the execution of the sequential processing task has been completed (D170). If the task execution unit 200 completes the execution of the sequential processing task, the process proceeds to D100. If the execution of the sequential processing task has not been completed, the task execution unit 200 waits for the execution of the corresponding subtask (D150).
- D150 sequential processing task
- the task execution unit 200 executes a task based on the result output by the assignment unit 20.
- FIG. 31 is a diagram illustrating an example of schedule data when task progress is shared. As illustrated in FIG. 31, the schedule data includes, for each task ID, for example, progress items that hold three states of non-execution, execution, and execution completion.
- the task processing unit 220 executes the unexecuted task when the assigned task has been executed and the task assigned to the other task execution unit 200 has not been executed. Run the task instead. For example, in the example shown in FIG. 32, when the task execution unit 200A completes the execution of the task corresponding to the task ID “F”, there is no other assigned task. Therefore, the task execution unit 200A may execute the task corresponding to the task ID “G” from the task execution unit 200B instead.
- the data processing system 1000 has such a configuration, so that even if the processing time of a task increases or decreases due to a system failure or a task estimation error during execution, the data processing system 1000 dynamically Task execution can be leveled. Furthermore, if the allocation unit 20 schedules a task with a long processing time to be preferentially executed, the task is redistributed with fine tasks among the task processing units 220, so that the task execution is more easily leveled.
- FIG. 33 is a block diagram of a data processing system 1000 according to the ninth embodiment. Note that, among the components shown in FIG. 33, those substantially the same as those shown in FIG.
- the data processing system 1000 includes a scheduling unit 100, task execution units 400A to N, and data storage units 500A to N.
- task execution units 400A to 400N may be abbreviated as task execution unit 400.
- data storage units 500A to 500N may be abbreviated as the data storage unit 500.
- the schedule unit 100 includes a task division unit 10, an allocation unit 20, a job reception unit 30, a job division unit 40, and a record information collection unit 110.
- FIG. 34 is a block diagram showing a configuration of the task execution unit 400 shown in FIG.
- the task execution unit 400 according to the ninth embodiment includes a schedule data acquisition unit 410, a record acquisition unit 420, a shuffle key assignment unit 430, a record transmission unit 440, a record reception unit 450, a task processing unit. 460 and an output unit 470.
- the schedule data acquisition unit 410 acquires the schedule data output by the schedule unit 100.
- the record acquisition unit 420 acquires a record stored in the data storage unit 500 in the vicinity of the task execution unit 400 regardless of the schedule data.
- the shuffle key assignment unit 430 assigns a shuffle key based on the schedule data to the record acquired by the record acquisition unit 420.
- the record transmission unit 440 transmits the record to the record reception unit 450 of the other task processing unit 400 based on the shuffle key assigned to the record.
- the record receiving unit 450 receives the record to which the shuffle key is assigned from the other task processing unit 400.
- the task processing unit 460 executes a task on the record based on the shuffle key assigned to the record.
- the output unit 470 outputs the processing result.
- FIG. 35 is a diagram illustrating an example of the shuffle key.
- the example shown in FIG. 35 is merely an example for making the explanation easy to understand, and is not intended to interpret the shuffle key in a limited manner.
- the shuffle key shown in FIG. 35 corresponds to the schedule data shown in FIG.
- each task execution unit 400 executes tasks in the dictionary order of the shuffle keys assigned to the distributed records. Therefore, the shuffle key assigning unit 430 configures the shuffle keys as follows so that each task execution unit 400 executes each task in the scheduled order.
- the shuffle key assigning unit 430 assigns a tag indicating the task type to the beginning of the record. At this time, the tags are determined so that the records for the subtasks are arranged in the dictionary order before the records for the other tasks. In the example shown in FIG. 35, “0” is assigned to a record for a subtask, and “1” is assigned to an undivided task. By doing this, the subtask is executed earlier.
- the shuffle key assigning unit 430 assigns a tag representing the execution priority to the record.
- the priority is expressed such that the smaller the priority number, the higher the priority. This information may be given only when the task processing time is long. This is because a task with a short processing time tends to have a large number and its order does not affect much.
- the shuffle key assigning unit 430 assigns a tag representing the task identifier to the record.
- the task identifiers of the subtasks are numbered as “A-1”, “A-2”, “A-3”... “AN”.
- a rule may be set in advance that the task execution unit 400 to which the subtask “A-1” is assigned is also responsible for the corresponding sequential processing task.
- the record transmission unit 440 may determine the task execution unit 400 to which the record is transmitted by referring to the value of the attribute (branch name) that determines the unit in which the sequential processing is executed.
- the record transmission unit 440 may determine the task execution unit 400 to which the record is transmitted, using information such as statistical information of the record.
- the task processing unit 450 may process the records for each task identifier in the order of the shuffle key dictionary.
- the task execution unit 400 in charge of the sequential processing task determines whether or not the execution of the corresponding subtask has been completed. For example, there is a method in which the task execution unit 400 checks whether an intermediate file having a task identifier as a name is generated. As another method, for example, there is a method of introducing a master server that manages the progress status of a task into the data processing system 1000. The task execution unit 400 in charge of the sequential processing task recognizes the progress status of the subtask executed by the other task execution unit 400, for example, by the method as described above, and appropriately acquires intermediate data necessary for the calculation, A sequential processing task may be executed.
- the processing time of the entire data processing including parallel processing and sequential processing that operates on the distributed parallel execution platform is optimized.
- a data processing system, a data processing method, and a program can be provided.
- the table described in the mode for carrying out the invention corresponds to the data set described in the claims.
- the task execution unit 200 or the task execution unit 400 described in the mode for carrying out the invention corresponds to the computer described in the claims.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
次に、本発明の実施の形態について図面を参照して詳細に説明する。
図1は、第1の実施形態にかかるデータ処理システム1000のハードウェア構成図である。図1に示すように、データ処理システム1000は、例えばCPU(Central Processing Unit)1、RAM(Random Access Memory)2、ハードディスクドライブ3、通信インタフェース4、入力装置5、出力装置6等を含む。
図7は、第2の実施形態にかかるデータ処理システム1000のブロック図である。図7に示すように、第2の実施形態にかかるデータ処理システム1000は、第1の実施形態にかかるデータ処理システム1000に加えてさらに、ジョブ受付部30とジョブ分割部40とを含む。
第3の実施形態にかかるデータ処理システム1000では、タスク分割部10の動作が、第1または第2の実施形態にかかるタスク分割部10の動作と異なる。タスク分割部10は、最も大きい逐次処理タスクよりも大きいタスクについては、タスクに含まれる並列処理可能タスクを分割する。タスク分割部10は、最も大きい逐次処理タスクよりも小さいタスクについては、タスクに含まれる並列処理可能タスクを分割しない。
タスク分割部10がタスクCを分割しない理由は、以下の通りである。図11に示すように、ジョブ全体の処理時間のボトルネックは、タスクAの逐次処理タスクの処理時間である。計算機の数がいくら増えようと、タスクAの逐次処理タスクの処理時間は、短縮されることはない。よって、タスク分割部10が、仮に、タスクAの逐次処理タスクよりも処理時間が短いタスクCを並列化したとしても、ジョブ全体の処理時間は短くならない。
第4の実施形態にかかるデータ処理システム1000では、タスク分割部10と割り当て部20の動作が、第1、第2および第3の実施形態とは異なる。タスク分割部10は、タスクAの並列処理可能タスクを複数のサブタスクに分割する際、各サブタスクの処理するレコードの数が異なるように分割する。割り当て部20は、並列処理可能タスクの後処理である逐次処理タスクが割り当てられる計算機に、他のサブタスクよりも多くのレコードを処理するサブタスクを割り当てる。割り当て部20は、それ以外の計算機には、サブタスクを割り当てない場合がある。
第5の実施形態にかかるデータ処理システム1000では、タスク分割部10および割り当て部20の動作が、第1、第2、第3および第4の実施形態とは異なる。本実施形態にかかるデータ処理システム1000は、レコードセットに含まれるレコードを所定の順序で処理する逐次処理タスクを扱う。
第6の実施形態にかかるデータ処理装置1000は、結合(JOIN)処理と、結合処理の後処理である走査処理と、を含むデータ処理を、テーブルに対して実行する。
第7の実施形態にかかるデータ処理装置1000は、ジョブ分割部41と、タスク分割部11と、割り当て部21の動作が、第6の実施形態と異なる。第7の実施形態にかかるデータ処理装置1000は、デッドラインを考慮しながら、タスクの分割と割り当てを行う。
[動作の説明]図25は、データ処理システム1000の動作を説明するフローチャートである。図25に示すように、ジョブ受付部30は、ジョブの実行要求を受け付ける(C100)。レコード情報収集部110は、ジョブ受付部30が受け付けたジョブの実行要求に含まれる処理対象であるテーブルを特定する情報に基づいて、データ格納部300から、ジョブの処理対象である統計情報を取得する(C110)。
第8の実施形態にかかるデータ処理装置1000では、割り当て部20が出力した結果に基づいて、タスク実行部200がタスクを実行する。
なお、タスク処理部220は、割り当てられたタスクを実行する際、他のタスク処理部200と、タスクの進捗状況を共有しても良い。図31は、タスクの進捗状況が共有される場合のスケジュールデータの一例を示す図である。図31に示されるように、スケジュールデータは、タスクID毎に、例えば、未実行、実行中、実行完了の三状態を保持する進捗の項目を含む。
第9の実施形態にかかるデータ処理システム1000は、分散並列実行基盤の上で実行される。図33は、第9の実施形態にかかるデータ処理システム1000のブロック図である。なお、図33に示された各構成のうち、図21に示された構成と実質的に同一のものには同一の符号が付されている。
2 RAM
3 HDD
4 通信インタフェース
5 入力装置
6 出力装置
10 タスク分割部
20 割り当て部
21 割り当て部
30 ジョブ受付部
31 ジョブ受付部
40 ジョブ分割部
41 ジョブ分割部
100 スケジュール部
110 レコード情報収集部
200A~N タスク実行部
210 スケジュールデータ取得部
220 タスク処理部
230 進捗共有部
240 出力部
300 データ格納部
400A~N タスク実行部
410 スケジュールデータ取得部
420 レコード取得部
430 シャッフルキー付与部
440 レコード送信部
450 レコード受信部
460 タスク処理部
470 出力部
500A~N データ格納部
1000 データ処理システム
Claims (9)
- 複数の計算機が並列して実行可能な並列処理と前記並列処理の後処理であって1つの計算機により実行される逐次処理とを含むデータ処理を、複数のレコードの集合であるレコードセットに対して実行する複数のタスクを受け付け、前記タスクに含まれる逐次処理のうち、他の逐次処理と比較して処理に時間がかかると見込まれる逐次処理の前処理である並列処理について、前記並列処理の処理対象であるレコードセットを細分化することにより、前記並列処理を複数のサブタスクに分割するタスク分割手段と、
前記並列処理を含むタスク以外のタスクが実行される前に、前記複数のサブタスクが実行されるように、前記複数のサブタスクを、前記複数の計算機に割り当てる割り当て手段と、
を有するデータ処理システム。 - 複数のレコードの集合であるデータセットに対して前記データ処理を実行するジョブを受け付けるジョブ受付手段と
前記ジョブの処理対象であるデータセットを複数のレコードセットへと細分化することにより、前記ジョブを複数のタスクへと分割するジョブ分割手段と、
を更に含み、
前記タスク分割手段は、前記分割された複数のタスクを受け付ける
請求項1に記載のデータ処理システム。 - 前記タスク分割手段は、タスクの処理時間が、最も長い逐次処理の処理時間より短い場合、前記タスクに含まれる並列処理を分割しない
請求項1または2に記載データ処理システム。 - 前記タスク分割手段は、サブタスクの処理するレコードの数が異なるように前記並列処理を分割し、前記割り当て手段は、前記並列処理の後処理である逐次処理が割り当てられる計算機に、他のサブタスクよりも多くのレコードを処理するサブタスクを割り当てる
請求項1から3のいずれか1項に記載のデータ処理システムであって、データ処理システム。 - 前記割り当て手段は、前記並列処理の後処理である逐次処理が割り当てられる計算機に、前記逐次処理が処理する最初のレコードを処理対象に含むサブタスクを割り当てる
請求項1から4のいずれか1項に記載のデータ処理システム。 - 前記割り当て手段は、前記タスク、前記サブタスクおよび前記サブタスクの後処理である逐次処理のそれぞれに、割当先の計算機と優先順位とを対応付けたスケジュールデータを、前記複数の計算機から参照可能な形態で出力し、
前記計算機は、
前記スケジュールデータを取得するスケジュールデータ取得手段と、
割り当てられたタスクを、前記スケジュールデータに含まれる優先順位の高い順に実行するタスク処理手段と、
を備え、
前記タスク処理手段は、前記割り当てられたタスクが実行済みであって、他の計算機に割り当てられたタスクが未実行である場合に、前記未実行のタスクを実行する
請求項1から5のいずれか1項に記載のデータ処理システム。 - 前記割り当て手段は、前記タスク、前記サブタスクおよび前記サブタスクの後処理である逐次処理のそれぞれに、割当先の計算機と処理対象であるレコードとを対応付けたスケジュールデータを、前記複数の計算機から参照可能な形態で出力し、
前記計算機は、
レコードを取得するレコード取得手段と、
前記スケジュールデータを取得するスケジュールデータ取得手段と、
前記取得したスケジュールデータに基づいて、前記取得したレコードを、前記レコードを処理対象とする処理の割当先である計算機に対して送信するレコード送信手段と、
を備える
請求項1から5のいずれか1項に記載のデータ処理システム。 - 複数の計算機が並列して実行可能な並列処理と前記並列処理の後処理であって1つの計算機により実行される逐次処理とを含むデータ処理を、複数のレコードの集合であるレコードセットに対して実行する複数のタスクを受け付け、前記タスクに含まれる逐次処理のうち、他の逐次処理と比較して処理に時間がかかると見込まれる逐次処理の前処理である並列処理について、前記並列処理の処理対象であるレコードセットを細分化することにより、前記並列処理を複数のサブタスクに分割する分割ステップと、
前記並列処理を含むタスク以外のタスクが実行される前に、前記複数のサブタスクが実行されるように、前記複数のサブタスクを、前記複数の計算機に割り当てる割り当てステップと、
を含むデータ処理方法。 - コンピュータに、
複数の計算機が並列して実行可能な並列処理と前記並列処理の後処理であって1つの計算機により実行される逐次処理とを含むデータ処理を、複数のレコードの集合であるレコードセットに対して実行する複数のタスクを受け付け、前記タスクに含まれる逐次処理のうち、他の逐次処理と比較して処理に時間がかかると見込まれる逐次処理の前処理である並列処理について、前記並列処理の処理対象であるレコードセットを細分化することにより、前記並列処理を複数のサブタスクに分割する手順と、
前記並列処理を含むタスク以外のタスクが実行される前に、前記複数のサブタスクが実行されるように、前記複数のサブタスクを、前記複数の計算機に割り当てる手順と、
を実行させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014544306A JP6183374B2 (ja) | 2012-10-31 | 2013-10-29 | データ処理システム、データ処理方法およびプログラム |
US14/438,745 US9430285B2 (en) | 2012-10-31 | 2013-10-29 | Dividing and parallel processing record sets using a plurality of sub-tasks executing across different computers |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012-239782 | 2012-10-31 | ||
JP2012239782 | 2012-10-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014068950A1 true WO2014068950A1 (ja) | 2014-05-08 |
Family
ID=50626899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2013/006380 WO2014068950A1 (ja) | 2012-10-31 | 2013-10-29 | データ処理システム、データ処理方法およびプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US9430285B2 (ja) |
JP (1) | JP6183374B2 (ja) |
WO (1) | WO2014068950A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108549583A (zh) * | 2018-04-17 | 2018-09-18 | 成都致云科技有限公司 | 大数据处理方法、装置、服务器及可读存储介质 |
CN104991821B (zh) * | 2015-06-29 | 2019-12-06 | 北京奇虎科技有限公司 | 批量处理监控任务的方法及装置 |
JP2020095441A (ja) * | 2018-12-12 | 2020-06-18 | 日立オートモティブシステムズ株式会社 | 演算制御装置 |
CN112415862A (zh) * | 2020-11-20 | 2021-02-26 | 长江存储科技有限责任公司 | 一种数据处理系统及方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9690626B2 (en) | 2014-06-27 | 2017-06-27 | Vmware, Inc. | Processing workloads in single-threaded environments |
US20160164696A1 (en) * | 2014-12-08 | 2016-06-09 | Ebay Inc. | Modular internet of things |
US10296380B1 (en) * | 2016-09-19 | 2019-05-21 | Amazon Technologies, Inc. | Distributed computing with adaptive parallelization |
US10534645B2 (en) * | 2016-11-23 | 2020-01-14 | Wipro Limited | Method and system for executing processes in a virtual storage area network |
US10387207B2 (en) * | 2016-12-06 | 2019-08-20 | International Business Machines Corporation | Data processing |
CN108255820B (zh) * | 2016-12-28 | 2022-03-04 | 阿里巴巴集团控股有限公司 | 分布式系统中数据入库的方法、装置以及电子设备 |
CN108255586B (zh) * | 2016-12-29 | 2022-04-22 | 北京国双科技有限公司 | 功能服务的排序方法及装置 |
CN110569118A (zh) * | 2019-08-29 | 2019-12-13 | 贝壳技术有限公司 | 任务调度方法、装置、电子设备及存储介质 |
CN113064661A (zh) * | 2019-12-31 | 2021-07-02 | 深圳云天励飞技术有限公司 | 批量任务的内存处理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009080583A (ja) * | 2007-09-25 | 2009-04-16 | Toshiba Corp | 情報処理装置、並列処理最適化方法およびプログラム |
JP2011180725A (ja) * | 2010-02-26 | 2011-09-15 | Nec Corp | ハイブリッド並列処理システム、方法、及びプログラム |
WO2012023175A1 (ja) * | 2010-08-17 | 2012-02-23 | 富士通株式会社 | 並列処理制御プログラム、情報処理装置、および並列処理制御方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5121494A (en) | 1989-10-05 | 1992-06-09 | Ibm Corporation | Joining two database relations on a common field in a parallel relational database field |
US6691101B2 (en) * | 2001-06-21 | 2004-02-10 | Sybase, Inc. | Database system providing optimization of group by operator over a union all |
JP2003256193A (ja) * | 2002-02-28 | 2003-09-10 | Nec Corp | 並列ソート装置及び並列ソート方法並びにプログラム |
US7644050B2 (en) * | 2004-12-02 | 2010-01-05 | International Business Machines Corporation | Method and apparatus for annotation-based behavior extensions |
US8402469B2 (en) * | 2008-04-08 | 2013-03-19 | Infosys Limited | Allocating resources for parallel execution of query plans |
US8185901B2 (en) * | 2008-04-24 | 2012-05-22 | International Business Machines Corporation | Parsing an application to find serial and parallel data segments to minimize migration overhead between serial and parallel compute nodes |
US7797445B2 (en) * | 2008-06-26 | 2010-09-14 | International Business Machines Corporation | Dynamic network link selection for transmitting a message between compute nodes of a parallel computer |
US8489633B2 (en) * | 2009-03-06 | 2013-07-16 | Hewlett-Packard Development Company, L.P. | Correlated query process (CQP) and peer-to-peer (P2P) execution |
JP5408442B2 (ja) * | 2010-01-21 | 2014-02-05 | 株式会社日立製作所 | 並列分散処理方法、及び、計算機システム |
JP2011197803A (ja) * | 2010-03-17 | 2011-10-06 | Ricoh Co Ltd | プログラム実行制御方法 |
US9495427B2 (en) * | 2010-06-04 | 2016-11-15 | Yale University | Processing of data using a database system in communication with a data processing framework |
US8260826B2 (en) * | 2010-09-23 | 2012-09-04 | Hewlett-Packard Development Company, L.P. | Data processing system and method |
US8260803B2 (en) * | 2010-09-23 | 2012-09-04 | Hewlett-Packard Development Company, L.P. | System and method for data stream processing |
KR101710910B1 (ko) * | 2010-09-27 | 2017-03-13 | 삼성전자 주식회사 | 프로세싱 유닛의 동적 자원 할당을 위한 방법 및 장치 |
KR20120072252A (ko) * | 2010-12-23 | 2012-07-03 | 한국전자통신연구원 | 분산 데이터 스트림 처리 시스템에서 연속 처리 태스크를 병렬 처리하기 위한 장치 및 그 방법 |
US9239864B2 (en) * | 2012-04-17 | 2016-01-19 | Cisco Technology, Inc. | Distributing and processing streams over one or more networks |
US9235446B2 (en) * | 2012-06-22 | 2016-01-12 | Microsoft Technology Licensing, Llc | Parallel computing execution plan optimization |
US10198248B2 (en) * | 2012-07-11 | 2019-02-05 | Intel Corporation | Parallel processing of a single data buffer |
-
2013
- 2013-10-29 JP JP2014544306A patent/JP6183374B2/ja active Active
- 2013-10-29 US US14/438,745 patent/US9430285B2/en active Active
- 2013-10-29 WO PCT/JP2013/006380 patent/WO2014068950A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009080583A (ja) * | 2007-09-25 | 2009-04-16 | Toshiba Corp | 情報処理装置、並列処理最適化方法およびプログラム |
JP2011180725A (ja) * | 2010-02-26 | 2011-09-15 | Nec Corp | ハイブリッド並列処理システム、方法、及びプログラム |
WO2012023175A1 (ja) * | 2010-08-17 | 2012-02-23 | 富士通株式会社 | 並列処理制御プログラム、情報処理装置、および並列処理制御方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104991821B (zh) * | 2015-06-29 | 2019-12-06 | 北京奇虎科技有限公司 | 批量处理监控任务的方法及装置 |
CN108549583A (zh) * | 2018-04-17 | 2018-09-18 | 成都致云科技有限公司 | 大数据处理方法、装置、服务器及可读存储介质 |
CN108549583B (zh) * | 2018-04-17 | 2021-05-07 | 致云科技有限公司 | 大数据处理方法、装置、服务器及可读存储介质 |
JP2020095441A (ja) * | 2018-12-12 | 2020-06-18 | 日立オートモティブシステムズ株式会社 | 演算制御装置 |
WO2020121840A1 (ja) * | 2018-12-12 | 2020-06-18 | 日立オートモティブシステムズ株式会社 | 演算制御装置 |
JP7385989B2 (ja) | 2018-12-12 | 2023-11-24 | 日立Astemo株式会社 | 演算制御装置 |
CN112415862A (zh) * | 2020-11-20 | 2021-02-26 | 长江存储科技有限责任公司 | 一种数据处理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2014068950A1 (ja) | 2016-09-08 |
US20150254105A1 (en) | 2015-09-10 |
US9430285B2 (en) | 2016-08-30 |
JP6183374B2 (ja) | 2017-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6183374B2 (ja) | データ処理システム、データ処理方法およびプログラム | |
Kress et al. | A worker constrained flexible job shop scheduling problem with sequence-dependent setup times | |
Warneke et al. | Exploiting dynamic resource allocation for efficient parallel data processing in the cloud | |
US8924978B2 (en) | Sequential cooperation between map and reduce phases to improve data locality | |
Liu et al. | Task scheduling with precedence and placement constraints for resource utilization improvement in multi-user MEC environment | |
US8990820B2 (en) | Runtime task with inherited dependencies for batch processing | |
US9218210B2 (en) | Distributed processing system | |
KR20140080434A (ko) | 맵리듀스 프레임워크에서 데이터 프로세싱의 최적화를 위한 디바이스 및 방법 | |
KR101471749B1 (ko) | 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법 | |
KR20130114497A (ko) | 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치 | |
US9104491B2 (en) | Batch scheduler management of speculative and non-speculative tasks based on conditions of tasks and compute resources | |
US11074103B2 (en) | Scheduling method and scheduling device | |
Yun et al. | An integrated approach to workflow mapping and task scheduling for delay minimization in distributed environments | |
US20170371713A1 (en) | Intelligent resource management system | |
Kundu et al. | HIOS: Hierarchical Inter-Operator Scheduler for Real-Time Inference of DAG-Structured Deep Learning Models on Multiple GPUs | |
Awada et al. | Air-to-air collaborative learning: A multi-task orchestration in federated aerial computing | |
Choi et al. | VM auto-scaling methods for high throughput computing on hybrid infrastructure | |
Filippini et al. | Hierarchical Scheduling in on-demand GPU-as-a-Service Systems | |
US11550625B2 (en) | Utilizing machine learning to concurrently optimize computing resources and licenses in a high-performance computing environment | |
Ferikoglou | Resource aware GPU scheduling in Kubernetes infrastructure | |
KR101448861B1 (ko) | 동기적 메시지 기반 대량 병렬처리 시스템 | |
CN113220436A (zh) | 一种分布式环境下的通用批量作业执行方法及装置 | |
JP6753521B2 (ja) | 計算資源管理装置、計算資源管理方法、及びプログラム | |
Zhang et al. | Cost-efficient and latency-aware workflow scheduling policy for container-based systems | |
Lezzi et al. | COMPSs in the VENUS-C Platform: enabling e-Science applications on 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: 13851911 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2014544306 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14438745 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 13851911 Country of ref document: EP Kind code of ref document: A1 |