WO2017130390A1 - 計算機システム及び分散データ処理の監視方法 - Google Patents

計算機システム及び分散データ処理の監視方法 Download PDF

Info

Publication number
WO2017130390A1
WO2017130390A1 PCT/JP2016/052727 JP2016052727W WO2017130390A1 WO 2017130390 A1 WO2017130390 A1 WO 2017130390A1 JP 2016052727 W JP2016052727 W JP 2016052727W WO 2017130390 A1 WO2017130390 A1 WO 2017130390A1
Authority
WO
WIPO (PCT)
Prior art keywords
data processing
unit
monitoring
base
computer
Prior art date
Application number
PCT/JP2016/052727
Other languages
English (en)
French (fr)
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/JP2016/052727 priority Critical patent/WO2017130390A1/ja
Publication of WO2017130390A1 publication Critical patent/WO2017130390A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Definitions

  • the present invention relates to a monitoring system and method for data processing executed in a distributed computing system.
  • Patent Document 1 Computer and communication technology has been developed, and technology that distributes and executes processing among multiple computers has become widespread.
  • Patent Document 1 a manager collects transaction trace data from an agent.
  • Patent Document 2 is a technique for executing a job that can be divided into an arbitrary number of tasks, a progress monitoring unit that monitors the number of tasks of a job processed by a computer, a division processing unit that divides a task, and a result.
  • an infrastructure cloud management system
  • JP 2013-50950 A Japanese Patent No. 4308241 Special table 2014-515522 gazette
  • a method is known in which a distributed processing method is applied as in the above-described conventional example, for example, data processing is performed at each site without copying data.
  • processing, not data is distributed and executed at each site
  • the user who executes processing such as analysis and the administrator of the computer system need to monitor the execution status of the analysis program with a small amount of communication.
  • the use and utilization of data is expanding in organizations such as companies, it is necessary to cope with an increase in the number of data centers and calculation nodes at the base.
  • Patent Document 1 in order for the user and the administrator to constantly monitor the processing executed at the distributed bases, it is necessary to always obtain the latest data from each agent during the monitoring period. Also in Patent Document 2, the user and the administrator make an inquiry to the center console, and the center console acquires the progress of processing from each calculation node for each base. In the method described in Patent Document 3, the execution status of the process can be acquired by an inquiry to the infrastructure.
  • an object of the present invention is to suppress the amount of communication between the base and the central data center when monitoring the processing executed by moving between the distributed bases in the central data center.
  • the present invention has one or more bases including a first computer that has a processor and a memory to generate data, and performs data processing on the data generated at the base having a processor and a memory.
  • a processing package is generated and stored in a storage accessible by the first computer and the second computer, and the second computer sets the order of the bases for executing data processing by the data processing package
  • An execution plan is generated, and the second computer moves the data processing package to the first computer at the base set in the execution plan, and the first computer
  • the computer activates the data processing package from the storage, starts execution of the data processing in the data processing unit, stores the execution result of the data processing in the storage, and the first computer
  • the monitoring unit notifies the second computer of the predetermined state.
  • FIG. 1 is a block diagram illustrating an example of a computer system according to a first embodiment of this invention.
  • FIG. It is a sequence diagram which shows a 1st Example of this invention and shows an example of the data processing for every base performed with a computer system.
  • 1 is a block diagram illustrating an example of a physical computer according to a first embodiment of this invention.
  • FIG. It is a block diagram which shows a 1st Example of this invention and shows an example of the data center of a head office.
  • It is a block diagram which shows a 1st Example of this invention and shows an example of the data center of the base.
  • FIG. 1 is a block diagram showing an example of a computer system to which the present invention is applied.
  • the data center (hereinafter referred to as the head office) 10 of the head office and the data centers (hereinafter referred to as bases) 100-1 to 100-3 of one or more bases 1 to 3 configured by factories or the like are distributed.
  • 1 shows a computer system in which one or more installed physical computers 11 are connected via a network 600.
  • the entire base is indicated by a reference numeral 100 without “ ⁇ ” or lower, and the individual signs 100-100 to 100-3 with “ ⁇ ” or lower added are specified. adopt. The same applies to the reference numerals of other components.
  • VMs virtual computers
  • one or more virtual computers operate on one or more physical computers 11 by virtualization technology.
  • a plurality of physical computers 11 may be included in one base 100 (or head office 10).
  • a user VM 20 that analyzes data
  • a head office management VM 30 that manages data processing and VMs, and migration (migration) to each base 100
  • the data processing program 51 executes data processing for each base 100.
  • the head office local storage 90 in which the query execution VM 50 operates and stores data is included.
  • the query execution VM 50 functions as an execution environment for the data processing program 51 that can be moved between the bases 100.
  • the base 100-1 includes a base production management VM 110-1 that performs production management of a factory and the like to generate production information, a base management VM 120-1 that manages data processing and VMs, and a base that stores production information and programs A local storage 130-1 and a query execution VM 50 that moves from the head office 10 or another base 100 and executes the data processing program 51 are included.
  • the bases 100-2 and 100-3 have the same configuration as the base 100-1.
  • the base production management VM 110 operating at the base 100 manages product production information (for example, production history, inventory parts, processes, etc.) as data 131.
  • Data 131 managed by the site production management VM 110 is stored in the local storage 130 included in the site 100.
  • Each base 100 provides the data 131 as a database.
  • the data 131 is not limited to a database, and may be a file such as a log or an image.
  • each base 100 notifies the base information management unit 38 of the head office 10 of the catalog of the data 131 at a predetermined timing.
  • the site information management unit 38 manages the outline of the data 131 generated at each site 100 using a catalog.
  • the catalog includes information such as the identifier, period, and number of products produced at each site 100.
  • the catalog may be included in the base information 39.
  • the outline of the data 131 of each base 100 is not limited to the catalog, and it is only necessary to obtain what information the data 131 held at each base 100 includes. For example, the presence or absence of an item of data 131 to be searched in the analysis process may be included in the data summary. As a result, the head office management VM 30 can specify the bases 100-1 to 100-3 to be searched.
  • a part of the storage area of the local storage 90, 130 of the head office 10 and each base 100 constitutes a shared virtual storage 400 shared on the computer system.
  • the shared virtual storage 400 includes an image file (or snapshot) 410 of the query execution VM 50 that moves between the head office 10 and the base 100, a program of the data processing program 51 and the data processing monitoring unit 52, and an analysis performed at each base 100. Stores the results of processing.
  • data analysis processing is performed to visualize management and extract knowledge utilizing big data processing.
  • the query execution VM 50 is moved (circulated) to perform analysis processing for each site 100.
  • the result of the analysis processing for each base 100 is stored in the shared virtual storage 400 and analyzed by the analysis program 21 of the user VM 20 at the head office 10. Thereby, it is possible to analyze a large amount of data such as production information without moving from the base 100.
  • the data analysis program 21 of the user VM 20 defines data processing contents such as search and aggregation, and the defined data processing program 51 and the query execution VM 50 that is the execution environment of the data processing program are Move to base 100 and execute sequentially.
  • the analysis program 21 of the user VM 20 acquires the result of the analysis processing from the shared virtual storage 400 and performs predetermined analysis or aggregation. Then, the user VM 20 of the head office 10 outputs the analysis result or the total result to the input / output device.
  • FIG. 2 is a sequence diagram showing an example of data processing for each base 100 performed in the computer system.
  • the analysis process of the user VM 20 the number of products produced at each base 100 and the defect rate are analyzed.
  • the query execution VM 50 sequentially performs data processing at the bases 100-1 to 100-3, so that the user VM 20 can acquire the target data.
  • the head office 10 determines the processing contents by the analysis program 21, and generates the definition of the data processing program 51 (S81).
  • the definition of the data processing program 51 can include, for example, the date and type of data to be processed for each base 100 and the setting of a query for processing the data.
  • the user VM 20 activates the query execution VM 50 and sets the definition of the data processing program 51, and then sequentially moves the query execution VM 50 to the bases 100-1 to 100-3 to execute the data processing program 51.
  • the data processing program 51 issues one or more queries, and stores the execution results of the queries in the shared virtual storage 400 (S82 to S84).
  • each base 100 When the data processing of each base 100 is completed, it moves to the next base 100 and resumes data processing. Then, the query execution VM 50 stores the data processing result in the shared virtual storage 400.
  • the query execution VM 50 notifies the head office 10 of the completion of the data processing.
  • the user VM 20 acquires and aggregates the data processing results from the shared virtual storage 400, and outputs the analysis results to the input / output device (S85).
  • the query execution VM 50 transmits a notification to the head office 10 each time the base 100-1 moves, thereby suppressing an increase in the communication amount of the network 600, while the head office 10 Realize monitoring.
  • FIG. 2 an example in which one query execution VM 50 is moved between the three bases 100 and data processing is sequentially performed is illustrated. However, if the head office 10 can generate a plurality of query execution VMs 50, a plurality of query execution VMs 50 can be generated. The query execution VM 50 may be copied to each base 100 and data processing may be executed in parallel.
  • FIG. 3 is a block diagram showing an example of the physical computer 11.
  • the physical computer 11 is used at the head office 10 and the base 100.
  • the physical computer 11 is connected to a processor 60 that performs arithmetic processing, a memory 70 that stores programs and data, a nonvolatile memory 81 that stores data and programs, and a network 600 to communicate with other physical computers 11 and the like.
  • a network interface 84 that is connected, a storage interface 86 that is connected to the local storages 90 and 130 and reads / writes data 131, an I / O processor 83 that is connected to the input / output device 85, and a display 82 that is connected to the processor 60. including.
  • the processor 60 is composed of a heterogeneous multi-core processor, and includes a plurality of CPU cores 61-1 to 61-4 and a plurality of GPU cores 62-1 to 62-4.
  • the processor 60 is connected to a memory controller 63 connected to the memory 70 and the nonvolatile memory 81, a display controller 65 connected to the display 82, an I / O processor 83, a network interface 84, and a storage interface 86.
  • the input / output device 85 includes a keyboard and a mouse.
  • the hypervisor 71 is loaded and executed by the processor 60.
  • the hypervisor 71 provides one or more logical partitions.
  • the user VM 20 that executes the guest OS 72-1
  • the query execution VM 50 that executes the guest OS 72-2
  • the head office management that executes the guest OS 72-3. Allocate resources of the physical computer 11 to the VM 30.
  • adopts the hypervisor 71 was shown as software which implement
  • middleware such as a database management system and management software
  • an application such as a data processing program that issues a query to the database operate.
  • the local storages 90 and 130 connected to the storage interface 86 can include an SSD (Solid State Drive) that is a secondary storage device using a flash memory in addition to an HDD (Hard Disk Drive).
  • SSD Solid State Drive
  • HDD Hard Disk Drive
  • the storage areas of the local storage 90 and 130 of the head office 10 and each base 100 are shared with other physical computers 11 by a shared virtual storage management unit described later.
  • the storage area of the shared local storage can be accessed from each physical computer 11 as the shared virtual storage 400.
  • FIG. 4 is a block diagram showing an example of functional parts of the head office 10.
  • a user VM 20 and a head office management VM 30 are operating on the physical computer 11, and a query execution VM 50 is generated as necessary.
  • the user VM 20 is a virtual computer used by a data analyst who analyzes data at each base.
  • the user VM 20 generates a query execution VM 50 in accordance with a data analyst's command, and causes each site 100 to execute data processing.
  • an analysis program 21 In the user VM 20, an analysis program 21, a data processing master program 22, and an analysis monitoring unit 23 operate.
  • the analysis program 21 is software capable of designing and executing analysis processing, and includes a GUI that facilitates design.
  • Pentaho or the like can be adopted as the analysis program 21.
  • the analysis program 21 of the first embodiment instructs the data processing master program 22 to execute the analysis process so that the data analyst can perform the analysis without considering the location of the data.
  • the data processing master program 22 makes an inquiry to the head office management VM 30 to generate an analysis processing execution plan 53, starts the data processing program 51 necessary for the analysis, and commands to move the query execution VM 50 to the base 100 that executes the analysis processing. I do.
  • the analysis monitoring unit 23 provides analysis processing monitoring information to the analysis program 21 of the user VM 20 and the head office management VM 30 in cooperation with the monitoring unit of each base 100 and the data processing monitoring unit 52 of the query execution VM 50.
  • the query execution VM 50 is generated by the hypervisor 71 in accordance with a command from the user VM 20, and moves to another base 100 based on the command from the user VM 20.
  • the query execution VM 50 includes a data processing program 51 that executes data processing at each site 100, a data processing monitoring unit 52 that monitors the query execution VM 50 and the data processing program 51, and a data processing program 51 generated by the data processing master program 22.
  • the execution plan 53 is included.
  • Actual data processing in the analysis is executed by the data processing program 51 of the query execution VM 50 moved to each base 100.
  • the data processing monitoring unit 52 monitors the execution of the data processing program 51 and the movement of the query execution VM 50.
  • the operation manager of the computer system uses the head office management VM 30 to monitor the operation status of the computer system.
  • the head office management VM 30 generates a base information management unit 38 that manages the operating status (base information 39) for each base 100, a head office monitoring unit 33 that manages the operating status of the head office 10, and an execution plan 53 of the query execution VM 50.
  • the management display unit 36 includes a GUI that receives an operation from the input / output device 85.
  • the site information management unit 38 manages functions that can be executed at each site 100.
  • the head office execution plan generation unit 31 determines which base 100 holds the data to be processed, and generates a migration plan for the query execution VM 50.
  • the head office I / O control unit 35 controls I / O access to the shared virtual storage 400 and access to the network 600.
  • the head office I / O control unit 35 includes a function of collecting the bandwidth of the network 600.
  • the shared virtual storage management unit 34 combines the storage areas of the local storages 90 and 130 at the head office 10 and the base 100 to generate the shared virtual storage 400.
  • the head office program placement unit 32 Based on the command from the data processing master program 22, the head office program placement unit 32 considers the execution plan 53 and the operation status (bandwidth, etc.) of the I / O device, and sets the base 100 that actually executes the data processing program 51.
  • the destination of the query execution VM 50 is determined. Then, the head office program arrangement unit 32 notifies the movement of the query execution VM 50 to the base program arrangement unit 122 of the destination base 100 and moves the execution environment of the data processing program 51.
  • the head office monitoring unit 33 manages basic information related to the movement of the query execution VM 50 (data processing program 51) and provides monitoring information to the GUI of the management display unit 36 used by the operation manager.
  • Analysis monitoring unit 23 of head office 10, data processing monitoring unit 52, site information management unit 38, head office execution plan generation unit 31, head office program placement unit 32, head office monitoring unit 33, and head office I / O control unit 35 and each functional unit of the shared virtual storage management unit 34 to be shared are loaded into the memory 70 as a program and executed by the processor 60.
  • the processor 60 operates as a functional unit that provides a predetermined function by processing according to a program of each functional unit.
  • the processor 60 functions as the analysis monitoring unit 23 by performing processing according to the analysis monitoring program. The same applies to other programs.
  • the processor 60 also operates as a function unit that provides each function of a plurality of processes executed by each program.
  • a computer and a computer system are an apparatus and a system including these functional units.
  • Information such as programs and tables for realizing each function of the analysis monitoring unit 23 and the head office monitoring unit 33 is stored in a local storage 90, a nonvolatile memory 81, a hard disk drive, a storage device such as an SSD, an IC card, an SD card, It can be stored in a computer-readable non-transitory data storage medium such as a DVD.
  • FIG. 9 is a diagram showing an example of the base information 39.
  • the base information 39 includes a name 391 for storing the location names of the head office 10 and the base 100, an IP address 392 for storing the IP addresses of the base management VM 120 and the head office management VM 30, a base program placement section 122, and a head office program placement section 32.
  • the port number 393 for storing the port number to be used, the port number 394 for storing the port number used by the site execution plan generation unit 121 and the head office execution plan generation unit 31, and the site monitoring unit 123 and the head office monitoring unit 33 are used.
  • the base information 39 a character string and an IP address for a data analyst and an operation manager to access the base management VM 120 of each base 100 and the head office management VM 30 of the head office 10 by name from a program or command are managed.
  • the base information 39 also stores information on port numbers for connecting to programs related to management of distributed bases 100 and program arrangement.
  • the base information 39 also stores the names of the bases 100 that are close to the respective bases 100. In the first embodiment, the name of the base 100 is stored as information on the nearby base 100, but data indicating the distance to each base 100 may be used.
  • the base information 39 may include a time difference between the head office 10 and each base 100 and may include information on operation suspension due to a holiday of each base 100 or the like.
  • FIG. 5 is a block diagram showing an example of functional parts of the base 100-1.
  • the bases 100-2 and 100-3 have the same configuration as that of the base 100-1, and thus a duplicate description is omitted.
  • the base 100-1 performs data processing on the production management VM 110 that performs production management of a factory or the like to generate production information, the base management VM 120-1 that manages the base 100-1, and the production information of the base 100-1.
  • the query execution VM 50 is generated in the base 100-1 when the data processing program 51 is executed.
  • Each VM is generated in the physical computers 11-1 to 11-n connected to the local storage 130-1.
  • the production management VM 110-1 includes a production management program 111-1 that generates production information such as products manufactured at the factory as data 131 and stores the data in the local storage 130-1.
  • the site management VM 120-1 includes a site execution plan generation unit 121-1, a site program placement unit 122-1, a site monitoring unit 123-1, a site I / O control unit 125-1, and a shared virtual storage management unit. 124-1 are included.
  • the site execution plan generation unit 121-1 generates an execution plan 53 of the data processing program 51 executed by the query execution VM 50 at the site 100-1.
  • the execution plan 53 can include, for example, the range and type of data to be processed among the data (production information) 131 stored in the local storage 130-1.
  • the site program placement unit 122-1 receives the query execution VM 50 moved from the head office 10 or another site 100, and moves it to the site 100-1.
  • the base I / O control unit 125 controls access to the shared virtual storage 400 and the network 600 shared between the head office 10 and the base 100.
  • the shared virtual storage management unit 124-1 generates and manages the shared virtual storage 400 that shares the storage area of the local storage 130-1 with the physical computer 11 of the other base 100 via the network 600.
  • the site monitoring unit 123-1 exchanges information with the site program placement unit 122-1, the head office monitoring unit 33 of the head office 10 and the query execution VM 50, manages the movement state of the data processing program 51, and the data processing program 51. Monitor the operating status of. Further, the site monitoring unit 123-1 manages the operating state of the production management program 111-1.
  • the functional parts of the base 100-1 can be configured by a program as in the head office 10.
  • FIG. 6 is a block diagram illustrating an example of the head office monitoring unit 33.
  • the head office monitoring unit 33 operating in the head office management VM 30 of the head office 10 includes an event reception unit 331, an event notification unit 332, functional units of an ID management unit 333 and a periodic collection unit 334, a monitoring setting table 301, and site monitoring.
  • a table 302, an execution query table 303, and a head office monitoring log 304 are included.
  • Each functional unit is configured by a program.
  • the event reception unit 331 receives various notifications (events) reaching the head office monitoring unit 33.
  • the event notification unit 332 changes the state of the head office monitoring unit 33 according to the contents of the arrived event or calls another function unit to execute event processing.
  • the ID management unit 333 manages a unique global ID (identifier) in the computer system in order to monitor the data processing program 51 that is distributed and executed on the computer system.
  • the ID management unit 333 issues a new ID to the activated data processing program 51 and registers it in the table as a monitoring target, and an execution end unit that removes the data processing program 51 that has been executed from the monitoring target.
  • 3302 and a relationship setting unit 3303 for setting a relationship between the data processing program 51 executed at each site 100.
  • FIG. 10 is a diagram illustrating an example of the monitoring setting table 301.
  • the monitoring setting table 301 stores an ID managed by the head office monitoring unit 33 and information related to the setting of the head office management VM 30.
  • the monitoring setting table 301 includes fields for a Next_ID 3010, a query count monitor 3011 for each site, a long-running query monitor 3012, an execution time monitor 3013 for each site, a user timeout monitor 3014, and an event notification destination 3015. Including.
  • Next_ID 3010 stores an ID assigned to a new query execution VM 50 (execution of the data processing program 51) in the next registration request.
  • the other fields mainly store information set by the data analyst (or operation manager) on the monitoring setting screen 290 of FIG.
  • the query number monitoring 3011 for each base stores whether or not the number of queries issued by the data processing program 51 for each base 100 is monitored. If “YES”, monitoring is performed, and if “NO”, monitoring is not performed.
  • the long-running query monitoring 3012 stores whether to monitor whether the query execution time reaches a predetermined upper limit.
  • the execution time monitor 3013 for each base stores the upper limit of the execution time.
  • the periodic collection unit 334 described later monitors the execution time of the data processing program 51 for each base 100 unless the upper limit of the execution time is zero.
  • the user timeout monitoring 3014 is “YES”, the execution time of the data processing program 51 is monitored with a timeout time set in advance by the user (data analyst).
  • the head office monitoring unit 33 registers which program is notified of information when a monitoring event is detected from each base 100.
  • FIG. 10 shows that the management display unit 36 of the head office management VM 30 is designated.
  • FIG. 11 is a diagram illustrating an example of the site monitoring table 302.
  • the site monitoring table 302 stores information for aggregating the number of queries executed at each site 100.
  • the base monitoring table 302 has one entry for a base 3020 that stores the identifier of the base 100, a base name 3021 that stores the name of the base 100, and the number of queries 3022 that stores the number of queries executed at the base 100. Included.
  • FIG. 12 is a diagram illustrating an example of the execution query table 303.
  • the execution query table 303 holds the state of each data processing program 51 (query execution VM 50) being executed on the computer system.
  • the execution query table 303 includes an ID 3031, a parent ID 3032, a current base 3033, a query start time 3034, a base start time 3035, a user timeout setting 3036, and a notified log ID 3037 in one entry.
  • the ID 3031 stores an ID assigned to the data processing program 51 of the query execution VM 50 by which the head office management VM 30 operates the data processing program 51.
  • the parent ID 3032 stores the ID of the parent higher-order query in order to maintain the relationship between the queries.
  • the current base 3033 stores the name or identifier of the base 100 currently executing the data processing program 51.
  • the query start time 3034 indicates the time when the generated query execution VM 50 is registered in the head office monitoring unit 33.
  • the base start time 3035 stores the time when the query execution VM 50 moves to the latest base 100 and starts executing the data processing program 51.
  • the user timeout setting 3036 stores whether or not the data analyst who executed the query execution VM 50 has specified a timeout. When a timeout is designated, a preset timeout time is stored in a field not shown.
  • the notified log ID 3037 stores the log ID of the monitoring event of the data processing program 51. The log ID of the monitoring event is assigned by the data processing monitoring unit 52. By the notified log ID 3037, it is possible to acquire up to which log the head office management VM 30 has been notified.
  • FIG. 13 is a diagram showing an example of the head office monitoring log 304.
  • the head office monitoring log 304 is a log indicating the operating status of the data processing program 51 recorded by the head office monitoring unit 33.
  • the head office monitoring log 304 includes a log ID 3041, a time 3042, an ID 3043, and an event 3044 in one entry.
  • the log ID 3041 stores information for uniquely identifying each event log.
  • the log ID 3041 is information generated by the head office monitoring unit 33.
  • Time 3042 is the date and time when the event log is stored in the head office monitoring log 304.
  • ID 3043 stores the ID of the data processing program 51 in which the event has occurred.
  • the event 3043 stores the contents of the event.
  • the head office monitoring log 304 is illustrated in the form of a table, but may be held in the form of a text file, an XML file, a CSV file, or the like.
  • FIG. 7 is a block diagram showing an example of the site monitoring unit 123-1.
  • the site monitoring unit 123-1 is executed by the site management VM 120-1 of the site 100-1.
  • the site monitoring unit 123-1 includes information of the movement accepting unit 126, the function unit of the status collection unit 127 and the ID management unit 128, the site monitoring table 115, the site execution query table 116, and the site monitoring log 117.
  • the movement receiving unit 126 receives a query execution VM 50 (data processing program 51) that moves from the head office 10 or the base 100.
  • the ID management unit 128 manages a local ID in the base 100.
  • the status collection unit 127 collects the status (number etc.) of queries issued by the data processing program 51 executed at the base 100 and notifies the status.
  • FIG. 14 is a diagram illustrating an example of the site monitoring table 115.
  • the site monitoring table 115 includes a Next_Local ID 1151 that stores a local ID in the site 100 that is assigned to a new query execution (execution of the data processing program 51) in the next registration request.
  • the local ID of NEXT_Local ID 1151 is set in a system different from the ID assigned by the head office monitoring unit 33 and the local ID of other bases 100.
  • FIG. 15 is a diagram illustrating an example of the site execution query table 116.
  • the site execution query table 116 stores information related to the query of the data processing program 51 being executed in the site 100.
  • the site execution query table 116 includes a record number 1161, a global 1162 that stores a global ID, a local 1163 that stores a local ID, and a PID 1164 that stores a process ID.
  • the global 1162 stores the ID of the data processing program 51 (query execution VM 50) uniquely determined in the computer system set by the head office monitoring unit 33.
  • the local 1163 stores the ID of the local data processing program 51 set by the site monitoring unit 123 using the site monitoring table 115.
  • the PID 1164 stores a process ID for identifying the VM in which the data processing program 51 is executed.
  • FIG. 8 is a block diagram illustrating an example of the query execution VM 50.
  • the query execution VM 50 includes a virtual CPU 56 that is a virtual device provided by the hypervisor 71 (or host OS) that manages the VM, a virtual memory 55, a virtual storage 1300, and a virtual network interface 57. Note that the query execution VM 50 can access the shared virtual storage 400 via the virtual network interface 57.
  • the query execution VM 50 operates as a computer by loading the guest OS 54 into the virtual memory 55 at startup and controlling the virtual device by the guest OS 54.
  • the virtual storage 1300 stores data unique to the query execution VM 50.
  • the data specific to the query execution VM 50 includes a file constituting the guest OS 54, a data processing program 51, and a program and file of the data processing monitoring unit 52. Note that these unique data can be extracted from the image file 410 of the query execution VM 50 shown in FIG.
  • data 131 processed by the data processing program 51 is stored.
  • the data 131 is stored in the local storage 130 as shown in FIG. 5, but can be accessed from the shared virtual storage 400 by the shared virtual storage management unit 124.
  • the data 131 can be accessed not only by the query execution VM 50 but also by other VMs, and can be shared and used by a plurality of VMs.
  • the virtual storage 1300 is physically composed of one or a plurality of files, and is stored in a storage area such as a file system or raw device managed by the physical computer 11.
  • the virtual storage 1300 may include a shared storage area that can be referred to from all the bases 100 together with the shared virtual storage 400.
  • a data processing program 51 and a data processing monitoring unit 52 for monitoring data processing are operating as applications on the guest OS 54. Although only two applications are shown, other applications can also be executed.
  • FIG. 16 is a diagram illustrating an example of the analysis execution screen 270.
  • the analysis execution screen 270 is provided by the GUI of the analysis program 21 of the user VM 20 and is output to the display 82.
  • icons 271 and 272 of procedures executed in the analysis are shown.
  • FIG. 16 in order to search for data 131 of a predetermined product, a process for searching for a predetermined product in all the bases 100 and a process for totaling the search results and displaying them on the display 82 are defined.
  • the monitoring contents when executing the analysis processing are illustrated.
  • the execution monitoring (281), it is set whether or not the head office management VM 30 monitors the analysis process instructed by the data analyst.
  • “(monitor)” information relating to the movement of the data processing program 51 is output as a running log. If the analysis is not monitored, the monitoring information is not displayed on the analysis execution screen 270 during the execution of the data processing program 51.
  • sequential monitoring and timeout settings can be selected.
  • sequential monitoring information is displayed on the analysis execution screen 270 each time the data processing program 51 moves through the base 100.
  • the sequential monitoring is a convenient function for verification at the time of development of the data processing program 51 or the like.
  • the movement information of the data processing program 51 is not displayed on the analysis execution screen 270.
  • the timeout setting (283), when the defined analysis is executed, if the processing is not completed within the specified time, the head office monitoring unit 33 aborts the analysis processing and displays an error on the display 82.
  • an execution button 284 for starting the analysis process and a cancel button 285 for interrupting the execution during the analysis process are displayed.
  • FIG. 17 is a sequence diagram showing an example of analysis start processing performed in the computer system of the present invention. This process is started by operating the execution button 284 on the analysis execution screen 270 provided by the analysis program 21 of the user VM 20.
  • the analysis program 21 of the user VM 20 receives the operation of the execution button 284 and starts the analysis process (S1).
  • the analysis program 21 activates the data processing master program 22 of the user VM 20 (S2).
  • the data processing master program 22 is software serving as a starting point for processing data by moving the program to each base 100 instead of the analysis program 21.
  • the analysis program 21 notifies the data processing master program 22 of a query created in advance by the data analyst after the data processing master program 22 is activated.
  • the data processing master program 22 activates the analysis monitoring unit 23 (S3, S4).
  • the analysis monitoring unit 23 establishes a communication path and connects to the data processing master program 22 when the activation is completed (S5, S6).
  • the analysis monitoring unit 23 is connected to the data processing master program 22 and shares information for displaying data on the analysis execution screen 270 of the analysis program 21.
  • the analysis monitoring unit 23 is connected to the analysis program 21 (S7, S8).
  • the data processing master program 22 establishes communication with the head office execution plan generation unit 31 operating on the head office management VM 30, and generates the execution plan 53 for executing the query defined by the data analyst.
  • the execution plan generation unit 31 is requested (S9).
  • the head office execution plan generation unit 31 acquires a query as input, acquires a catalog of data 131 generated by the base production management VM of each base 100, acquires base information 39 managed by the base information management section 38, , Which base 100 executes each part of the query is calculated.
  • the head office execution plan generation unit 31 extracts, for example, a search part of a query and acquires an item to be searched. Then, the head office execution plan generation unit 31 refers to the catalog of each base 100 and selects the base 100 including the item to be searched as a base to be searched. As a result, by excluding the bases 100 that do not include the search target item in the data 131, when a large amount of data 131 is held for each base 100, analysis is performed by avoiding unnecessary search processing. Processing speed can be increased.
  • the head office execution plan generation unit 31 calculates the order of the bases 100-1 to 100-3 that execute the query.
  • the headquarters execution plan generation unit 31 refers to the base information 39 to execute the analysis process from the base 100 that is currently out of service during business hours or on holidays. Next, the order of each base 100 is set.
  • the head office execution plan generation unit 31 starts analysis processing from the base 100 outside business hours at the base 100 outside the country, and sets the order of the other bases 100 in round robin or the like. decide.
  • the load on the physical computer 11 or the network on the base 100 can be prevented from becoming excessive, and the processing speed can be improved. it can.
  • the head office execution plan generation unit 31 determines the base 100 to be executed for each part of the query, determines the order of the bases 100 to be executed, and generates the execution plan 53 (S10).
  • the head office execution plan generation unit 31 responds to the data processing master program 22 with the generated execution plan 53.
  • FIG. 18 is a sequence diagram illustrating an example of a startup process of the query execution VM 50 performed in the computer system.
  • the process of FIG. 18 is executed following the process of FIG.
  • the data processing master program 22 that has received the execution plan 53 generates a query execution VM 50 and starts it (S21, S22).
  • the data processing master program 22 notifies the hypervisor 71 to secure a logical partition for the query execution VM 50 and activates the query execution VM 50 using the image file 410 of the shared virtual storage 400.
  • the data processing master program 22 When the query execution VM 50 is activated, the data processing master program 22 installs software necessary for analysis processing and monitoring in the query execution VM 50 based on the computer system settings and query definitions defined in advance (S23, S24). ). Specifically, these are programs of the data processing program 51 and the data processing monitoring unit 52, which are read from the shared virtual storage 400 (or the local storage 90) and installed in the query execution VM 50. Further, the data processing master program 22 copies the generated execution plan 53 to the query execution VM 50.
  • the query execution VM 50 activates the data processing monitoring unit 52 and starts processing the monitoring event generated on the query execution VM 50 and the monitoring event notified to the query execution VM 50 (S25, S26).
  • the data processing master program 22 requests the head office program placement unit 32 operating on the head office management VM 30 to move the query execution VM 50 that executes the data processing program 51 (S27).
  • the data processing master program 22 notifies the head office program placement unit 32 of the execution plan 53 and requests the migration destination of the query execution VM 50.
  • the data processing master program 22 stops the query execution VM 50 that is ready for operation (S31). Then, the data processing master program 22 generates an image file (or snapshot) 410 of the query execution VM 50 and stores it in the shared virtual storage 400. That is, after the data processing monitoring unit 52 is activated and before the data processing program 51 is activated, the query execution VM 50 is stopped and the image file 410 of the query execution VM 50 is generated.
  • the data processing program 51 can be started after the data processing monitoring unit 52 is operated by restarting the image file 410 at the base 100. Further, since the setting of the data processing monitoring unit 52 has already been completed, it is not necessary to set the notification destination or the like every time the query execution VM 50 is restarted from the image file 410 at the site 100. Thereby, the communication amount between the head office 10 and the base 100 can be reduced.
  • the head office program placement unit 32 of the head office management VM 30 receives information on the query execution VM 50 to be moved from the head office 10 and information on the execution plan 53 and the like. Then, the head office program placement unit 32 determines the base 100 to which the data processing program 51 of the query execution VM 50 is moved from the execution plan 53 and the base information 39 managed by the base information management unit 38 (S28).
  • the head office program placement unit 32 registers the global ID of the data processing program 51 of the query execution VM 50 to be moved.
  • a request is made to the head office monitoring unit 33 of the management VM 30 (S29).
  • the head office monitoring unit 33 receives an ID registration request at the event reception unit 331, and uses the ID management unit 333 to identify a unique ID within the computer system for the data processing program 51 of the query execution VM 50 to be moved. Is assigned (S30). The head office monitoring unit 33 notifies the head office program placement unit 32 of the global ID assigned to the data processing program 51 of the query execution VM 50. The head office monitoring unit 33 adds the global ID assigned to the data processing program 51 of the query execution VM 50 to be moved and “registration” as the event content to the head office monitoring log 304.
  • FIG. 19 is a sequence diagram illustrating an example of a query execution VM migration process performed in the computer system. The process of FIG. 19 is executed following the process of FIG.
  • the head office program placement unit 32 receives the migration request of the query execution VM 50 and completes the ID registration and the destination determination, the head office program placement unit 32 executes the query to the site program placement unit 122-1 operating at the destination base 100-1.
  • a VM 50 move command is issued (S41).
  • the movement command includes a global ID assigned to the data processing program 51 of the query execution VM 50.
  • the base program placement section 122-1 Upon receipt of the query execution VM 50 move command from the base program placement unit 122 of the other base 100 or the head office monitoring unit 33 of the head office 10, the base program placement section 122-1 receives the query execution VM 50 that is the migration target from the shared virtual storage 400. Information (image file 410, etc.) is read. Further, the base program placement unit 122-1 secures computer resources such as the processor 60, the memory 70, and the local storage 130-1 necessary for executing the query execution VM 50 at the base 100 (S42).
  • the base program placement unit 122-1 resumes the query execution VM 50 to be moved when the computer resources are secured (S43, S44). That is, the site program placement unit 122-1 notifies the hypervisor 71 to secure a logical partition for the query execution VM 50, and starts the query execution VM 50 using the image file 410 of the shared virtual storage 400.
  • the image file 410 is transferred from the head office 10 (or the base 100) before the transfer to the base. Execution may be resumed by copying or moving to 100. Further, the base program placement unit 122 and the query execution VM 50 may change the storage device accessed as the shared virtual storage 400 to the local storage 130-1 of the base 100 when the VM is restarted.
  • the site program placement unit 122-1 requests the site monitoring unit 123-1 to accept the movement of the query execution VM 50 after instructing the restart of the query execution VM 50 (S45).
  • the site monitoring unit 123-1 receives the request for movement acceptance of the query execution VM 50 from the site program placement unit 122-1, the movement reception unit 126 and the ID management unit 128 illustrated in FIG. ID assignment is performed, and the completion of acceptance is notified to the site program placement unit 122-1 (S46).
  • the site program placement unit 122-1 Upon receiving the movement acceptance completion notification from the site monitoring unit 123-1, the site program placement unit 122-1 notifies the data processing monitoring unit 52 operating on the resumed query execution VM 50 of the movement completion (S48). . The base program placement unit 122-1 also notifies the head office program placement unit 32 that issued the move command of the query execution VM 50 of the completion of the move (S49).
  • the head office program placement unit 32 notifies the head office monitoring unit 33 of the ID of the query execution VM 50 that has been moved.
  • the head office program placement unit 32 of the head office management VM 30 notifies the data processing master program 22 that requested the movement of the query execution VM 50 of the result of the movement (S50, S51). With the above processing, the query execution VM 50 can move from the head office 10 to the base 100-1 based on the execution plan 53.
  • FIG. 20 is a sequence diagram illustrating an example of analysis processing performed in the computer system. The process of FIG. 20 is executed following the process of FIG.
  • the data processing monitoring unit 52 When the data processing monitoring unit 52 receives the notification of movement completion from the base program placement unit 122-1 shown in FIG. 19, the data processing monitoring unit 52 activates the data processing program 51 and starts data processing by the query (S61).
  • the data processing program 51 issues a query defined by the analysis program 21, and starts a predefined process for the data 131 at each site 100 (S62).
  • the data processing program 51 When the data processing by the query is started, the data processing program 51 notifies the data processing monitoring unit 52 that the movement of the data processing program 51 (or the start of data processing) has been completed. Upon receiving the movement completion notification from the data processing program 51, the data processing monitoring unit 52 notifies the analysis monitoring unit 23 of the user VM 20 in the head office 10 that the movement of the data processing program 51 has been completed. The identifier (or name) of the current base that started the operation is notified (S63).
  • the analysis monitoring unit 23 receives a movement completion notification (S64), and notifies the analysis program 21 of the progress of the analysis process. (S65).
  • the contents of the notification can include the name of the base 100 and the time when the movement completion notification is received from the data processing program 51.
  • the analysis program 21 outputs the progress status of the analysis process to the display 82 (S66).
  • the analysis progress screen displayed by the analysis program 21 is displayed on the GUI of the analysis program 21 used by the data analyst.
  • the data processing monitoring unit 52 voluntarily notifies the analysis monitoring unit 23 of the head office 10 of the state of the data processing program 51 and the name of the base 100 when the data processing program 51 enters a predetermined state. As a result, the analysis monitoring unit 23 of the head office 10 can perform monitoring without tracking the data processing program 51, and the load on the network 600 can be reduced.
  • the predetermined state of the data processing program 51 that the data processing monitoring unit 52 notifies the analysis monitoring unit 23 of the head office 10 includes, for example, the start of data processing (movement completion), the end of data processing, the execution plan 53, and the like. Can be included.
  • the analysis monitoring unit 23 notifies the head office monitoring unit 33 of the movement event (S67).
  • the movement event includes the ID of the query execution VM 50 that executes the data processing program 51 and the time when the notification of movement completion is received.
  • the head office monitoring unit 33 adds the completion of movement to the base 100-1 to the head office monitoring log 304 as the ID of the query execution VM 50 and the content of the event.
  • the monitoring information of the data processing program 51 is collected by the periodic collection section 334 of the head office monitoring section 33 (S69). . This process is repeatedly executed at a predetermined cycle as will be described later.
  • the monitoring information includes the number of long-running queries, the execution time of the data processing program 51 for each site, a user setting timeout, and the like.
  • the management display unit 36 acquires the received monitoring information and outputs the monitoring information to the display 82 (S70, S71).
  • the monitoring information displayed by the management display unit 36 is displayed on the GUI of the management display unit 36 used by the operation manager.
  • the data processing program 51 stores the result of the analysis processing in the shared virtual storage 400, and when the data processing monitoring unit 52 completes the data processing, Is notified of the movement to the base 100.
  • the data processing monitoring unit 52 notifies the analysis monitoring unit 23 of the head office 10 of the completion of data processing and the movement to the next base 100 in the same manner as in step S63 and subsequent steps.
  • the analysis monitoring unit 23 generates an event in which the data processing program 51 moves to the next base 100 and notifies the head office monitoring unit 33 of the event. Upon receiving the event, the head office monitoring unit 33 adds the movement from the base 100-1 to the head office monitoring log 304 as the ID of the query execution VM 50 and the content of the event.
  • the query execution VM 50 that has completed the analysis process requests the base program placement unit 122-1 to move to the next base 100 according to the execution plan 53. Then, similarly to FIGS. 18 and 19, the query execution VM 50 is moved to the next base 100 and restarted.
  • the base program placement unit 122-1 of the base 100-1 stops the query execution VM 50 and then the next base described in the execution plan 53 Move to 100.
  • the analysis process is completed for a series of query execution VMs 50. Thereafter, the analysis processing result of each base 100 stored in the shared virtual storage 400 is processed by the analysis program 21 of the user VM 20 in the head office 10.
  • the data processing program 51 and the data processing monitoring unit 52 that monitors the data processing program 51 can be paired and moved to each base 100 to sequentially execute data processing.
  • the data processing monitoring unit 52 voluntarily notifies the analysis monitoring unit 23 of the head office 10 of the operation status of the data processing program 51 at a predetermined timing (completion of movement, start of movement to the next base, etc.).
  • the analysis monitoring unit 23 of the head office 10 can monitor the state and location of the data processing program 51. As a result, the analysis monitoring unit 23 of the head office 10 does not need to make an inquiry to the base 100, so that the load on the network 600 can be reduced.
  • the analysis monitoring unit 23 of the head office 10 distributes and outputs the notification received from the data processing monitoring unit 52 to the GUI of the analysis program 21 used by the data analyst and the GUI of the management display unit 36 used by the operation manager. can do.
  • the query execution VM 50 is moved by the data processing master program 22 once starting the query execution VM 50 and installing the software necessary for the analysis processing, and then stopping it to generate the image file 410 of the query execution VM 50.
  • the query execution VM 50 can be moved between the head office 10 and the base 100 and between the bases 100 by reading the image file 410 and restarting the query execution VM 50.
  • FIG. 21 is a diagram illustrating an example of the analysis execution screen 270 (first management screen) when monitoring is performed.
  • the data analyst sets “execution monitoring” 281 to “execute” on the analysis execution screen 270 shown in FIG. 16, the monitoring result of the data processing program 51 of the query execution VM 50 executed at each site 100 is displayed on the display 82. Is output.
  • the analysis program 21 displays the monitoring area 273 at the bottom of the analysis execution screen 270 as a GUI when the analysis process is started. In addition, the analysis program 21 displays the currently executed process among the icons at the top of the analysis execution screen 270. In the example shown in the figure, the query of the data processing program 51 is shown in a state where the search processing of the data 131 is executed at each base 100.
  • the location and status of the data processing program 51 of the query execution VM 50 to be monitored are displayed.
  • the information displayed in the monitoring area 273 corresponds to the analysis status output shown in step S66 of FIG. 20 and is based on the notification from the data processing monitoring unit 52 that monitors the data processing program 51.
  • the data processing program 51 to be monitored starts the analysis process at the base 1 (100-1) at 10:01:00 and ends the analysis process at the base 1 at 10:01:30. And 10:02:00, it moves to the base 2 and indicates that the analysis process is started.
  • the data processing monitoring unit 52 notifies the head office management VM 30 of the same information, the GUI of the analysis program 21 provided to the data analyst and the GUI of the management display unit 36 used by the operation manager for monitoring are used. It is also possible to display similar information.
  • FIG. 22 is a diagram showing an example of the monitoring setting screen 290 set by the head office management VM 30.
  • the monitoring setting screen 290 is reflected on the GUI of the display management unit 36 and output to the display 82 so that the operation manager can select the monitoring content.
  • This monitoring content includes items for which the data analyst has set “execution monitoring” 281 to “perform” on the analysis execution screen 270 shown in FIG.
  • the monitoring setting screen 290 displays a check box for selecting either “Yes” or “No” for the items 291 to 296.
  • the item 291 sets whether to monitor a query being executed.
  • the item 292 sets whether to monitor the number of queries being executed for each site 100.
  • the item 293 sets whether to monitor a query executed over a predetermined time.
  • An item 294 sets whether to monitor a query whose execution time exceeds the set value.
  • An item 295 sets whether to monitor a query whose execution time at one base 100 exceeds a set value.
  • An item 296 sets whether to monitor a timeout set by the data analyst.
  • the data processing monitoring unit 52 monitors the state of the data processing program 51 at the destination base 100, and notifies the analysis monitoring unit 23 of the user VM 20 of the head office 10 when the set condition is satisfied.
  • the analysis monitoring unit 23 transfers the notification to the head office monitoring unit 33 and outputs it to the GUI of the management display unit 36 used by the operation manager.
  • FIG. 23 is a diagram illustrating an example of a GUI (second management screen) of the management display unit 36 used by the operation manager.
  • the illustrated example is a query monitoring screen 360 as a GUI that the management display unit 36 outputs to the display 82.
  • the query monitoring screen 360 shows a display example when query monitoring is set on the monitoring setting screen 290 of FIG. 22 and analysis processing is executed.
  • the number of queries being executed (362) and the number of queries executed over the set time (363) are displayed.
  • the display area at the bottom of the figure displays the number of queries (364) being executed for each base 100, a field 365 for setting the ID of the data processing program 51, and the status of the data processing program 51 with the set ID.
  • a region 366 to be displayed is displayed.
  • the information in the area 366 relating to the specific data processing program 51 can display information similar to the information displayed on the analysis execution screen 270 used by the data analyst.
  • FIG. 24 and 25 are flowcharts illustrating an example of processing performed by the head office monitoring unit 33 of the head office management VM 30.
  • This flowchart shows an example in which the event reception unit 331 and the ID management unit 333 of the head office monitoring unit 33 process an event related to ID management.
  • FIG. 24 shows the first half of the flowchart.
  • FIG. 25 shows the latter half of the flowchart. This process is executed when the head office monitoring unit 33 receives a notification (event).
  • the event reception unit 331 of the head office monitoring unit 33 determines the type of event (S111). If the event type is not an ID management event, the event reception unit 331 executes the processing shown in FIG. If the event type is ID management, the event reception unit 331 executes processing corresponding to the ID management event type (S112).
  • the event reception unit 331 calls the ID management unit 333 and executes the processes of steps S113 to S115 (S112).
  • the ID management unit 333 acquires a new ID using the Next_ID 3010 of the monitoring setting table 301 in FIG. 10 (S113).
  • the ID management unit 333 acquires the current time (S114), and registers the acquired new ID and time in the execution query table 303 (S115).
  • the head office monitoring unit 33 also registers whether or not the current base 100 and the user timeout are set for the query to be registered at the same time.
  • the head office monitoring unit 33 records the registration in the execution query table 303 as a registration event in the head office monitoring log 304 and ends the process (S126).
  • the event reception unit 331 executes the processing of steps S117 to S119 (S116).
  • the head office monitoring unit 33 searches the execution query table 303 from the ID information assigned to the data processing program 51 included in the movement notification as shown in steps S67 and S68 of FIG. Search is performed (S117).
  • the head office monitoring unit 33 updates the current base 3033 to the destination base with the corresponding entry in the execution query table 303 (S118).
  • the head office monitoring unit 33 acquires the current time and updates the query start time 3034 of the corresponding entry in the execution query table 303 (S119).
  • the head office monitoring unit 33 records the registration in the execution query table 303 as a registration event in the head office monitoring log 304 and ends the process (S126).
  • the event reception unit 331 executes the processes of steps S120, S121, and S126 (S120).
  • the head office monitoring unit 33 searches the execution query table 303 in the same manner as the above movement event, searches for an entry with the corresponding ID, and deletes the entry from the execution query table 303 (S121).
  • the event reception unit 331 searches for an entry in which the ID to be ended is set as the parent ID of the execution query table 303, and deletes information on the ID to end from the parent ID column if it exists.
  • the head office monitoring unit 33 records in the head office monitoring log 304 that the corresponding ID has been deleted from the execution query table 303 and ends (S126).
  • the event reception unit 331 executes steps S124 to S126 if the event type is a relationship setting (S123).
  • the head office monitoring unit 33 receives an ID to be set and an ID to be a parent as input.
  • the head office monitoring unit 33 searches the execution query table 303 for an entry having an ID to be set (S124).
  • the head office monitoring unit 33 sets the ID specified by the input as the parent ID of the corresponding entry and updates the execution query table 303 (S125).
  • the head office monitoring unit 33 records the registration in the execution query table 303 as a registration event in the head office monitoring log 304 and ends the process (S126).
  • FIG. 25 shows event reception processing other than ID management of the head office monitoring unit 33. These events are mainly used to generate a query monitoring screen of the management display unit shown in FIG.
  • the event reception unit 331 executes steps S128 and S129 (S127).
  • the head office monitoring unit 33 updates the corresponding item in the monitoring setting table 301 with the input information (S128).
  • the head office monitoring unit 33 records the update of the monitoring setting table 301 as an update event in the head office monitoring log 304 and ends the process (S129).
  • the event reception unit 331 executes steps S131 to S134 if the event type is information collection of a specific base (S130).
  • the head office monitoring unit 33 first makes an inquiry to the site information management unit 38 to obtain information to be connected to the site monitoring unit 123 of the site 100 designated by the input (S131). Next, the head office monitoring unit 33 connects to the site monitoring unit 123 of the corresponding site 100 and requests monitoring information of the data processing program 51.
  • the monitoring information includes the number of queries acquired by the data processing monitoring unit 52 and the execution time of the queries (S132).
  • the site monitoring unit 123 acquires monitoring information from the data processing monitoring unit 52 and responds to the head office monitoring unit 33 (S132).
  • the head office monitoring unit 33 receives the monitoring information from the site monitoring unit 123, outputs the result, and completes the processing (S134).
  • the event reception unit 331 executes steps S136 to S138 (S135).
  • the head office monitoring unit 33 acquires the number of entries in the execution query table 303 or the number of queries 3022 in the site monitoring table 302, and calculates and outputs the number of queries being executed (S136). When outputting as an event for each base 100, the head office monitoring unit 33 outputs the contents of the base monitoring table 302 for each base 100 (S137, S138).
  • the event reception unit 331 executes steps S140 to S143 if the event type is monitoring a long-term query (S139).
  • the head office monitoring unit 33 calculates the execution time from the base start time 3035 of the execution query table 303 to the current time, and calculates the number of data processing programs 51 exceeding the set threshold as the number of queries that have been executed for a long time.
  • the result is output (S140). The method for calculating the execution time will be described with reference to FIG.
  • the event reception unit 331 executes steps S142 to S43 if the event type is the detailed display of the specific query (S141).
  • the head office monitoring unit 33 searches the execution query table 303 for a corresponding ID entry.
  • the headquarters monitoring unit 33 searches the headquarters monitoring log 304 for an event of the corresponding ID after the notified log ID 3037 of the search result entry (S142). Further, the head office monitoring unit 33 updates the notified log ID 3037 of the execution query table 303 to the last log ID output above, and ends the process (S143).
  • FIG. 26 is a flowchart illustrating an example of processing performed by the periodic collection unit 334. This process is a process performed in step S69 of FIG.
  • the periodic collection unit 334 acquires the current time (S150).
  • the periodic collection unit 334 of the head office monitoring unit 33 refers to the long-running query monitoring 3012 in the monitoring setting table 301 and determines whether or not the long-running query is a monitoring target (S151). If the value of the long-running query monitor 3012 is greater than 0, the periodic collection unit 334 determines that the long-running query monitor 3012 is a monitoring target and proceeds to step S152. If not, the periodic collection unit 334 proceeds to step S155.
  • the periodic collection unit 334 calculates the difference between the query start time 3034 and the acquired current time for each data processing program 51 registered in the execution query table 303 (S152). ). The periodic collection unit 334 determines whether there is a data processing program 51 (PGM in the figure) whose calculated difference is greater than the monitoring time (the value of the long-running query monitoring 3012) (S153).
  • the periodic collection unit 334 proceeds to step S154 if there is a data processing program 51 in which the calculated difference is greater than the monitoring time, and proceeds to step S155 otherwise.
  • the periodic collection unit 334 issues an event notification request to the event notification unit 332 of the head office management VM 30, and notifies the management display unit 36 of the presence of the long-running query.
  • the periodic collection unit 334 determines whether the value of the execution time monitoring 3013 for each site in the monitoring setting table 301 is greater than zero. If the value of the execution time monitor 3013 for each base is not 0, the periodic collection unit 334 determines that the execution time for each base is to be monitored, and proceeds to step S156. On the other hand, if the value of the execution time monitor 3013 for each site is 0, the periodic collection unit 334 proceeds to step S159.
  • step S156 the periodic collection unit 334 calculates the difference between the base start time 3035 and the current time for each data processing program 51 being executed registered in the execution query table 303.
  • the periodic collection unit 334 determines whether there is a data processing program 51 that is greater than the time set in the execution time monitoring 3013 for each site in the monitoring setting table 301 in the calculated difference (execution time). (S157).
  • the periodic collection unit 334 issues an event notification request to the event notification unit 332 of the head office monitoring unit 33 when the data processing program 51 having an execution time exceeding the value of the execution time monitoring 3013 for each base exists, and the execution time The management display unit 36 is notified of the existence of the data processing program 51 that exceeds the set value (S158). On the other hand, if the periodic collection unit 334 does not monitor the execution time for each site, the process proceeds to step S159.
  • the periodic collection unit 334 refers to the user timeout monitoring 3014 in the monitoring setting table 301 and determines whether or not the timeout set by the data analyst is a monitoring target (S159). If the user time-out monitoring 3014 is “YES”, the periodic collection unit 334 determines that the monitoring target is to be monitored, and proceeds to step S160. On the other hand, if the user time-out monitoring 3014 is “NO”, the periodic collection unit 334 determines that the user is not a monitoring target and proceeds to step S163.
  • the periodic collection unit 334 When the timeout is a monitoring target, the periodic collection unit 334 times out the time obtained by adding the timeout setting time by the user to the query start time 3034 for each data processing program 51 registered in the execution query table 303. The time is calculated (S160). The periodic collection unit 334 compares the calculated timeout time with the current time to determine whether there is a data processing program 51 whose current time exceeds the timeout time (S161).
  • the periodic collection unit 334 issues an event notification request to the event notification unit 332 to indicate the presence of the corresponding data processing program 51 in the management display unit 36. (S162).
  • the periodic collection unit 334 proceeds to step S163 and pauses for a preset time.
  • the periodic collection unit 334 returns to step S150 and repeats the above processing after a predetermined pause time has elapsed.
  • FIG. 27 is a flowchart illustrating an example of processing performed by the event notification unit 332 of the head office monitoring unit 33.
  • the event notification unit 332 of the head office monitoring unit 33 starts this processing when receiving the event notification request shown in steps S154, S158, and S162 of FIG. 26 (S170).
  • the event notification unit 332 acquires a target for notifying the requested event from the event notification destination 3015 of the monitoring setting table 301 (S171). In this embodiment, an example in which the management display unit 36 is set as the event notification destination 3015 is shown. The event notification unit 332 transmits the requested event information to the acquired event notification destination.
  • the event notification request issued by the periodic collection unit 334 or the like is transmitted to the management display unit 36 of the event notification destination 3015.
  • FIG. 28 is a flowchart illustrating an example of processing performed in the site monitoring unit 123. This process is a process performed in step S46 of FIG.
  • the site monitoring unit 123 determines whether or not the received request is a request for moving the query execution VM 50 (S180). If the received request is to accept the movement of the query execution VM 50, the site monitoring unit 123 executes the process of the movement accepting unit 126 shown in steps S181 to S187. If the received request is not an acceptance of movement, the site monitoring unit 123 proceeds to step S188 and executes information collection processing (state collection unit 127).
  • step S181 the site monitoring unit 123 determines whether the movement is accepted from another site 100 or another site 100 (S181). In the case of movement from another base to the base 100, the base monitoring unit 123 refers to the Next_Local ID 1151 of the base monitoring table 115 and assigns the local ID of the base 100 to the data processing program 51 of the query execution VM 50 (S182). ).
  • the site monitoring unit 123 registers the information on the global ID 1162, the local ID 1163, and the process ID 1164 of the data processing program 51 to be moved in the site execution query table 116 (S183).
  • the site monitoring unit 123 adds the contents registered in the site execution query table 116 to the site monitoring log 117 (S184).
  • the site monitoring unit 123 notifies the reception completion to the site program placement unit 122 that has requested the movement (S185).
  • the base monitoring unit 123 deletes the ID entry of the requested data processing program 51 from the base execution query table 116 of the base 100.
  • the deleted record is added to the site monitoring log 117 (S186, S187).
  • the site monitoring unit 123 also executes processing when the headquarters monitoring unit 33 requests acquisition of monitoring information as shown in FIG. In this case, the registration information of the data processing program 51, the base monitoring log 117, etc. are output based on the received request.
  • the physical computer 11 (second computer) of the head office 10 includes the data processing program 51 that executes data processing and the data processing monitoring unit 52 that monitors the data processing program 51.
  • a data processing package (query execution VM 50) set as a pair is generated and stored in the shared virtual storage 400.
  • the physical computer 11 of the head office 10 generates an execution plan 53 in which the order of the bases 100 that execute data processing is set by the query execution VM 50 as a data processing package.
  • the physical computer 11 of the head office 10 moves the data processing package to the physical computer 11 of the base 100 set in the execution plan 53.
  • the physical computer 11 at the base 100 starts a data processing package from the shared virtual storage 400 and starts executing data processing by the data processing program 51.
  • the physical computer 11 at the base 100 notifies the analysis monitoring unit 23 of the head office 10 of the predetermined state by the data processing monitoring unit 52 when the data processing program 51 becomes a predetermined state.
  • data processing start movement completion
  • data processing end execution plan 53 Etc.
  • the data processing monitoring unit 52 voluntarily notifies the analysis monitoring unit 23 of the head office 10 of the operating state and location of the data processing program 51 at a predetermined timing (completion of movement, start of movement to the next base, etc.).
  • the analysis monitoring unit 23 of the head office 10 can monitor the state and location of the data processing program 51. As a result, the analysis monitoring unit 23 of the head office 10 does not need to make an inquiry to the base 100, so that the load on the network 600 can be reduced.
  • the example is shown in which the head office execution plan generation unit 31 determines the order of the bases 100 that execute the analysis processing based on the time difference, the hibernation state, and the like, but is not limited thereto.
  • the base I / O control unit 125 of each base 100 measures I / O performance information (transfer speed and frequency (IOPS)) and notifies the base information management unit 38 in advance, and the head office execution plan generation unit 31 may start the analysis process from a base with a low load by referring to the I / O performance information.
  • I / O performance information transfer speed and frequency (IOPS)
  • the data processing program 51 and the data processing package of the data processing monitoring unit 52 are used as a virtual machine (VM) and the bases 100-1 to 100-3 are visited.
  • the second embodiment shows an example in which a data processing package is configured by a container technology that is lighter than a virtual machine.
  • FIG. 29 is a block diagram showing an example of a computer system according to the second embodiment.
  • the data processing program 51 runs on a query execution container 500 whose calculation environment such as a file system and process ID is independent from each VM.
  • a container execution VM 50c for executing a data analysis container (query execution container 500) operates.
  • the container execution VM 50c moves onto the container execution VM 50c of each base 100, just like the query execution VM 50 shown in the first embodiment has moved to each base 100.
  • FIG. 29 there is a container execution VM 50c for executing the query execution container 500.
  • the query execution container 500 is operated by the base management VM 120, or a virtual machine is used for each computer. It may be executed on a host OS providing a computer execution environment.
  • the processing content of the container execution VM 50c is defined in the container definition file.
  • a container definition file repository 570 that manages container definition files is stored in the shared virtual storage 400 that can be referred to from the head office 10 and each base 100. Files required for the container execution environment are managed as container images.
  • the container image is stored as a container image repository 580 in the shared virtual storage 400 that can be referred to from the head office 10 and the base 100.
  • FIG. 29 shows an example in which the container definition file repository 570 and the container image repository 580 are stored in the shared virtual storage 400.
  • FIG. 30 and 31 are block diagrams showing the configuration of a computer system that uses container technology.
  • FIG. 30 is a block diagram illustrating a configuration of the head office 10.
  • FIG. 31 is a block diagram showing the configuration of the base 100.
  • the difference from the first embodiment will be described in the head office 10.
  • a container management unit 530 is added, and the query execution container 500 operates instead of the query execution VM 50.
  • the contents of the query execution container 500 are the same as those of the query execution VM 50, and are a data processing program 51, a data processing monitoring unit 52, and an execution plan 53.
  • a container management unit 510 and a container cluster management unit are added.
  • a container execution VM 50c that operates the query execution container 500 operates.
  • the container execution VM 50c includes a container management unit 540.
  • a container management unit 550 and a container cluster management unit 560 are added to the site management VM 120.
  • the container execution VM 50c operates in each base 100 in order to operate the query execution container 500 that executes the data processing program 51.
  • the container management units 510, 530, 540, and 550 of the head office 10 and the base 100 execute creation, start, stop, or deletion of the query execution container 500.
  • a specific example of the container management units 510, 530, 540, and 550 is Docker.
  • the container cluster management units 520 and 560 of the head office 10 and the base 100 cooperate with the container management units 510, 530, 540, and 550 to distribute the query execution containers 500 to a plurality of physical computers 11 and operate them.
  • the container cluster management units 520 and 560 also provide a mechanism for communicating with a plurality of query execution containers 500 arranged in different physical computers 11.
  • Apache Mesos, Kubernetes and the like can be adopted.
  • FIG. 32 is a sequence diagram showing an example of a startup process of the query execution container 500 performed in the computer system.
  • the process of FIG. 32 corresponds to the process of FIG. 18 of the first embodiment, and is performed after the generation process of the execution plan 53 shown in FIG. 17 of the first embodiment.
  • This process is a process for generating the query execution container 500 in the head office 10.
  • the data processing master program 22 sets a container definition file when generating and starting the query execution container 500 that executes the data processing program 51 (S201).
  • the data processing master program 22 reads from the container definition file repository 570 a data processing program 51 that accesses the data 131 to be analyzed and a container definition file (template) of a container image that can be executed by the data processing monitoring unit 52.
  • the data processing master program 22 copies the execution plan 53 generated in FIG. 17 to the query execution container 500 for the read container definition file, and the IP necessary for the data processing monitoring unit 52 to communicate with the analysis monitoring unit 23. Add the address and port number settings to the container definition file.
  • the data processing master program 22 registers the added container definition file in the container definition file repository 570.
  • the data processing master program 22 notifies the container management unit 530 of the user VM 20 to request activation of the query execution container 500 (S202).
  • the container management unit 530 receives the activation request (S203), causes the user VM 20 to generate and activate the query execution container 500 (S204). At this time, the container management unit 530 receives the execution plan 53 from the data processing master program 22 and copies it to the query execution container 500.
  • the data processing monitoring unit 52 is activated (S205, S206). By operating the data processing monitoring unit 52, processing of a monitoring event that occurs in the query execution container 500 and a monitoring event that is notified to the query execution container 500 is started.
  • the data processing master program 22 requests the container management unit 530 to stop the query execution container 500 (S207), and the container management unit 530 is activated.
  • the query execution container 500 is stopped (S208, S209).
  • the data processing master program 22 acquires a snapshot (or image file) of the query execution container 500 (S210) and stores it in the container image repository 580 of the shared virtual storage 400 (S211). As a result, the query execution container 500 can be restarted from the snapshot of the container image repository 580 at each site 100.
  • the data processing master program 22 requests the head office program placement unit 32 operating on the head office management VM 30 to move the query execution container 500 that executes the data processing program 51 (S212).
  • the data processing master program 22 notifies the headquarters program placement unit 32 of the execution plan 53 and instructs the movement destination of the query execution container 500.
  • the head office program placement unit 32 of the head office management VM 30 receives information on the query execution container 500 to be moved from the head office 10 and information on the execution plan 53 and the like. Then, the head office program placement unit 32 determines the base 100 to which the query execution container 500 is moved from the execution plan 53 and the base information 39 managed by the base information management unit 38 (S213).
  • the head office program placement unit 32 registers the ID of the data processing program 51 of the query execution container 500 to be moved.
  • the head office monitoring unit 33 of the management VM 30 is requested (S214).
  • the head office monitoring unit 33 receives an ID registration request at the event reception unit 331, and uses the ID management unit 333 to uniquely identify the data processing program 51 of the query execution container 500 to be moved within the computer system.
  • An ID is assigned (S215).
  • the head office monitoring unit 33 notifies the head office program placement unit 32 of the ID assigned to the data processing program 51 of the query execution container 500.
  • the head office monitoring unit 33 adds the global ID assigned to the data processing program 51 of the query execution container 500 to be moved and “registration” as event contents to the head office monitoring log 304.
  • FIG. 33 is a sequence diagram showing an example of the migration process of the query execution container 500 performed in the computer system.
  • the process of FIG. 33 corresponds to the process of FIG. 19 of the first embodiment, and is performed after the generation process of the execution plan 53 shown in FIG. 18 of the first embodiment.
  • This process is a process of moving the query execution container 500 generated at the head office 10 to the base 100-1.
  • the head office program placement unit 32 issues a move command for the data processing program 51 to the destination site 100-1 and notifies the site program placement unit 122-1 of the site 100-1 (S220).
  • the site program placement unit 122-1 receives the ID of the data processing program 51, the information of the container definition file, and the information of the snapshot image of the query execution container 500 as a movement command.
  • the site program placement unit 122-1 restarts the container execution VM 50c, and requests the container management unit 540 operating on the container execution VM 50c of the site 100-1 to restore.
  • the container management unit 540 reads the designated container definition file from the container definition file repository 570.
  • the container management unit 540 reads the designated container image from the container image repository 580, secures calculation resources such as CPU and memory on the container execution VM 50c, and starts the query execution container 500 on the container execution VM 50c. Resume.
  • communication performed from within the query execution container 500 and communication to the query execution container 500 are performed by the container cluster management units 520 and 560 and the container management unit 510, which are operated in the management VMs 30 and 120 of the head office 10 and the base 100-1.
  • the user VM 20 and the container management units 530 and 540 operating in the container execution VM 50c share the setting information of the network 600, thereby enabling connection. Since the processing after resuming the container execution VM 50c is the same as that in FIG. 20, description thereof is omitted.
  • the data processing program 51 and the data processing monitoring unit 52 that monitors the data processing program 51 are paired.
  • Data processing can be executed sequentially by moving to the base 100.
  • the data processing monitoring unit 52 voluntarily notifies the analysis monitoring unit 23 of the head office 10 of the operation status of the data processing program 51 at a predetermined timing (completion of movement, start of movement to the next base, etc.).
  • the analysis monitoring unit 23 of the head office 10 can monitor the state and location of the data processing program 51. As a result, the analysis monitoring unit 23 of the head office 10 does not need to make an inquiry to the base 100, so that the load on the network 600 can be reduced.
  • the analysis monitoring unit 23 of the head office 10 distributes and outputs the notification received from the data processing monitoring unit 52 to the GUI of the analysis program 21 used by the data analyst and the GUI of the management display unit 36 used by the operation manager. can do.
  • each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • each of the above-described configurations, functions, and the like may be realized by software by the processor interpreting and executing a program that realizes each function.
  • Information such as programs, tables, and files that realize each function can be stored in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.
  • control lines and information lines indicate what is considered necessary for the explanation, and not all the control lines and information lines on the product are necessarily shown. Actually, it may be considered that almost all the components are connected to each other.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

データを生成する第1の計算機を含む1以上の拠点と、拠点で生成されたデータに対してデータ処理を実行する第2の計算機を含む管理拠点とを有し、第2の計算機がデータ処理を実行するデータ処理部と監視部をペアとしたデータ処理パッケージを生成してストレージに格納し、第2の計算機がデータ処理パッケージでデータ処理を実行する拠点の順序を設定した実行プランを生成して、当該実行プランに設定された拠点の第1の計算機にデータ処理パッケージを移動させ、第1の計算機がストレージからデータ処理パッケージを起動してデータ処理部でデータ処理の実行を開始し、データ処理部が所定の状態となったときに監視部が第2の計算機へ所定の状態を通知する。

Description

計算機システム及び分散データ処理の監視方法
 本発明は、分散コンピューティングシステムで実行するデータ処理の監視システム及び方法に関する。
 計算機と通信の技術が発達し、処理を複数の計算機に分散して実行する技術が普及している。分散した処理の実行を監視するために、特許文献1では、マネージャがエージェントからトランザクションのトレースデータを収集する。特許文献2では、任意のタスク数に分割可能なジョブを実行するための技術であり、コンピュータで処理したジョブのタスク数を監視する進捗監視部と、タスクを分割する分割処理部と、結果をマージするマージ処理部を呼び出すプラグインを含むことで、移動及び分割するジョブを監視する。特許文献3では、インフラストラクチャー(クラウド管理システム)がアプリケーション及びクラウド間の接続の双方を監視する。
特開2013-50950号公報 特許第4308241号公報 特表2014-515522号公報
 地理的に分散した拠点のデータセンタで生成されたデータを分析する場合、大規模な計算資源を持つ中央のデータセンタにデータをコピーして、分析可能なデータ形式に変換してデータウェアハウスなどに格納し、中央のデータセンタの計算機でデータを処理する方法が広く普及している。この方法では、処理の対象とならないデータもデータセンタにコピーするためネットワーク帯域や通信コストがかかるだけでなく、拠点と中央のデータセンタの両方でデータ管理が必要となり運用コストが増大する、という問題があった。
 上記従来例のように分散処理の手法を適用し、たとえば、データのコピーを行わず、データの処理を各拠点で実行する手法が知られている。しかし、データではなく処理を拠点毎に分散して実行させる手法では、分析などの処理を実行する利用者と計算機システムの管理者が、分析プログラムの実行状況を少ない通信量で監視する必要ある。この際、企業等の組織においては、データの利用及び活用は拡大しているため、拠点のデータセンタや計算ノードの増加に対応する必要がある。
 上記特許文献1では、分散した拠点で実行される処理を利用者と管理者が常に監視するためには、監視期間中に各エージェントから常に最新データを取得する必要がある。特許文献2についても、利用者と管理者は、センターコンソールに問い合わせを行い、センターコンソールが拠点毎の各計算ノードから処理の進捗状況を取得することになる。特許文献3に記載の方法では、インフラストラクチャへの問い合わせにより、処理の実行状況を取得することができる。
 これらの従来例では、拠点(計算ノード)を移動しながら実行される処理を、中央のデータセンタで監視すると、計算ノードの数やプログラム数が増えると通信量が増大するという問題があった。
 そこで本発明は、分散した拠点間を移動して実行される処理を、中央のデータセンタで監視する際に、拠点と中央のデータセンタ間の通信量を抑制することを目的とする。
 本発明は、プロセッサとメモリを有してデータを生成する第1の計算機を含む拠点を1以上有し、プロセッサとメモリを有して前記拠点で生成されたデータに対してデータ処理を実行する第2の計算機を含む管理拠点とを有する計算機システムであって、前記第2の計算機は、前記データ処理を実行するデータ処理部と、当該データ処理部を監視する監視部をペアとして設定したデータ処理パッケージを生成して、前記第1の計算機及び第2の計算機でアクセス可能なストレージに格納し、前記第2の計算機は、前記データ処理パッケージでデータ処理を実行する前記拠点の順序を設定した実行プランを生成し、前記第2の計算機は、前記実行プランに設定された拠点の前記第1の計算機に前記データ処理パッケージを移動させ、前記第1の計算機は、前記ストレージから前記データ処理パッケージを起動して前記データ処理部で前記データ処理の実行を開始して、前記データ処理の実行結果を前記ストレージに格納し、前記第1の計算機は、前記データ処理部が所定の状態となったときに前記監視部で前記第2の計算機へ前記所定の状態を通知する。
 本発明によれば、拠点間を動的に移動して分散して実行されるデータ処理部の監視を、少ない通信量で実現することができる。
本発明の第1の実施例を示し、計算機システムの一例を示すブロック図である。 本発明の第1の実施例を示し、計算機システムで行われる拠点毎のデータ処理の一例を示すシーケンス図である。 本発明の第1の実施例を示し、物理計算機の一例を示すブロック図である。 本発明の第1の実施例を示し、本社のデータセンタの一例を示すブロック図である。 本発明の第1の実施例を示し、拠点1のデータセンタの一例を示すブロック図である。 本発明の第1の実施例を示し、本社監視部の一例を示すブロック図である。 本発明の第1の実施例を示し、拠点監視部の一例を示すブロック図である。 本発明の第1の実施例を示し、クエリ実行VMの一例を示すブロック図である。 本発明の第1の実施例を示し、拠点情報の一例を示す図である。 本発明の第1の実施例を示し、監視設定テーブルの一例を示す図である。 本発明の第1の実施例を示し、拠点監視テーブルの一例を示す図である。 本発明の第1の実施例を示し、本社の実行クエリテーブルの一例を示す図である。 本発明の第1の実施例を示し、本社監視ログの一例を示す図である。 本発明の第1の実施例を示し、拠点監視テーブルの一例を示す図である。 本発明の第1の実施例を示し、拠点の実行クエリテーブルの一例を示す図である。 本発明の第1の実施例を示し、分析実行画面の一例を示す図である。 本発明の第1の実施例を示し、計算機システムで行われる分析開始処理の一例を示すシーケンス図である。 本発明の第1の実施例を示し、計算機システムで行われるクエリ実行VMの起動処理の一例を示すシーケンス図である。 本発明の第1の実施例を示し、計算機システムで行われるクエリ実行VMの移動処理の一例を示すシーケンス図である。 本発明の第1の実施例を示し、計算機システムで行われる分析処理の一例を示すシーケンス図である。 本発明の第1の実施例を示し、監視を行う場合の分析実行画面の一例を示す図である。 本発明の第1の実施例を示し、監視設定画面の一例を示す図である。 本発明の第1の実施例を示し、運用管理者が使用する管理表示部GUIの一例を示す図である。 本発明の第1の実施例を示し、本社監視部で行われる処理の一例を示すフローチャートの前半部である。 本発明の第1の実施例を示し、本社監視部で行われる処理の一例を示すフローチャートの後半部である。 本発明の第1の実施例を示し、周期的収集部で行われる処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、イベント通知部で行われる処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、拠点監視部で行われる処理の一例を示すフローチャートである。 本発明の第2の実施例を示し、計算機システムの一例を示すブロック図である。 本発明の第2の実施例を示し、計算機システムの一例を示すブロック図である。 本発明の第2の実施例を示し、拠点の一例を示すブロック図である。 本発明の第2の実施例を示し、計算機システムで行われる分析開始処理の一例を示すシーケンス図である。 本発明の第2の実施例を示し、計算機システムで行われるコンテナ実行VMの移動処理の一例を示すシーケンス図である。 本発明の第3の実施例を示し、計算機システムで行われる拠点毎のデータ処理の一例を示すシーケンス図である。
 以下、本発明の一実施形態について添付図面を用いて説明する。
 図1は、本発明を適用する計算機システムの一例を示すブロック図である。図示の例では、本社のデータセンタ(以下、本社)10と、工場などで構成される1以上の拠点1~3のデータセンタ(以下、拠点)100-1~100-3に、分散して設置された1以上の物理計算機11がネットワーク600を介して接続された計算機システムを示している。なお、以下の説明では、拠点全体を示すときは「-」以下のない符号100で示し、個々の拠点を特定する際には、「-」以下を付加した符号100-1~100-3を採用する。なお、他の構成要素の符号についても同様である。
 各拠点100-1~100-3では、仮想化技術により、1以上の仮想計算機(Virtual Machine、以下VMとする)が1以上の物理計算機11上で稼働する。なお、以下では1つの拠点100に1以上の物理計算機11が含まれる例を示すが、1つの拠点100(または本社10)に複数の物理計算機11が含まれてもよい。
 本社10には、データの分析を行うユーザVM20と、データ処理やVMを管理する本社管理VM30と、各拠点100へ移動(マイグレーション)してデータ処理プログラム51で拠点100毎にデータ処理を実行するクエリ実行VM50が稼働し、データを格納する本社ローカルストレージ90が含まれる。なお、クエリ実行VM50は拠点100間で移動可能なデータ処理プログラム51の実行環境として機能する。
 拠点100-1には、工場などの生産管理を行って生産情報を生成する拠点生産管理VM110-1と、データ処理やVMを管理する拠点管理VM120-1と、生産情報やプログラムを格納する拠点ローカルストレージ130-1と、本社10または他の拠点100から移動してデータ処理プログラム51を実行するクエリ実行VM50が含まれる。拠点100-2、100-3も、拠点100-1と同様の構成である。
 拠点100-1~100-3では、工場の生産管理と生産管理のデータ処理が行われる。拠点100で稼働する拠点生産管理VM110は、製品の生産情報(例えば、生産履歴、在庫部品、工程など)をデータ131として管理する。拠点生産管理VM110が管理するデータ131は、拠点100に含まれるローカルストレージ130に格納される。各拠点100は、データ131をデータベースとして提供する。なお、データ131は、データベースに限定されるものではなく、ログや画像などのファイルでもよい。
 また、各拠点100は、所定のタイミングでデータ131のカタログを本社10の拠点情報管理部38に通知する。拠点情報管理部38は、各拠点100で生成されたデータ131の概要をカタログによって管理する。カタログは、各拠点100で生産された製品の識別子や期間や数などの情報を含む。なお、カタログは拠点情報39に含めるようにしてもよい。
 なお、各拠点100のデータ131の概要はカタログに限定されるものではなく、各拠点100で保有されるデータ131がどのような情報を含んでいるかを取得できればよい。例えば、分析処理で検索対象となるデータ131の項目の有無が、データの概要に含まれていればよい。これにより、本社管理VM30は、検索を実施すべき拠点100-1~100-3を特定することができる。
 本社10及び各拠点100のローカルストレージ90、130の記憶領域の一部は、計算機システム上で共有される共有仮想ストレージ400を構成する。共有仮想ストレージ400には、本社10及び拠点100間を移動するクエリ実行VM50のイメージファイル(またはスナップショット)410や、データ処理プログラム51やデータ処理監視部52のプログラムや各拠点100で実施した分析処理の結果などが格納される。
 本社10では、経営の見える化、ビッグデータ処理を活用した知見を抽出するためのデータ分析処理が行われる。本発明では、データ(生産情報)を各拠点100に置いたまま、クエリ実行VM50を移動(巡回)させて拠点100毎に分析処理を行う。そして、各拠点100毎の分析処理の結果を共有仮想ストレージ400に格納して、本社10のユーザVM20の分析プログラム21で分析する。これにより、生産情報などの大量のデータを拠点100から移動することなく分析することが可能となる。
 分析を実現する手法としては、ユーザVM20のデータ分析プログラム21で、検索、集計などのデータ処理内容を定義し、定義したデータ処理プログラム51と、データ処理プログラムの実行環境であるクエリ実行VM50を各拠点100に移動させて順次実行させる。
 そして、分析対象の拠点100について分析処理が完了すると、ユーザVM20の分析プログラム21が共有仮想ストレージ400から分析処理の結果を取得して所定の分析または集計を行う。そして、本社10のユーザVM20は、分析結果または集計結果を入出力装置に出力する。
 図2は、計算機システムで行われる拠点100毎のデータ処理の一例を示すシーケンス図である。ユーザVM20の分析処理の一例として、各拠点100で生産された製品の数と不良率を分析する。
 この場合、クエリ実行VM50が拠点100-1~100-3で順次データ処理を実施することで、ユーザVM20は目的のデータを取得することができる。まず、本社10では分析プログラム21で処理内容を決定して、データ処理プログラム51の定義を生成する(S81)。データ処理プログラム51の定義は、例えば、拠点100毎の処理対象データの日時や種類と、データを処理するクエリの設定などを含むことができる。
 そして、ユーザVM20は、クエリ実行VM50を起動してデータ処理プログラム51の定義を設定してから、クエリ実行VM50を拠点100-1~100-3に順次移動させてデータ処理プログラム51を実行する。各拠点100では、データ処理プログラム51が1以上のクエリを発行し、クエリの実行結果を共有仮想ストレージ400へ格納する(S82~S84)。
 各拠点100のデータ処理が完了すると次の拠点100へ移動してデータ処理を再開する。そして、クエリ実行VM50は、データ処理の結果を共有仮想ストレージ400に格納する。
 クエリ実行VM50は、最後の拠点100-3でデータ処理が完了すると、本社10にデータ処理の完了を通知する。本社10ではユーザVM20が、共有仮想ストレージ400からデータ処理結果を取得して集計し、分析結果を入出力装置に出力する(S85)。
 クエリ実行VM50は、後述するように、拠点100-1を移動する度に本社10に通知を送信することで、ネットワーク600の通信量が増大するのを抑制しながら、本社10でクエリ実行VM50の監視を実現する。
 なお、図2では、ひとつのクエリ実行VM50を3つの拠点100間で移動させて、順次データ処理を実行する例を示したが、本社10が複数のクエリ実行VM50を生成可能であれば、複数のクエリ実行VM50を各拠点100に複製して、並列的にデータ処理を実行させてもよい。
 図3は、物理計算機11の一例を示すブロック図である。物理計算機11は、本社10及び拠点100で使用される。
 物理計算機11は、演算処理を行うプロセッサ60と、プログラムやデータを保持するメモリ70と、データやプログラムを格納する不揮発性メモリ81と、ネットワーク600に接続されて他の物理計算機11等と通信を行うネットワークインタフェース84と、ローカルストレージ90、130に接続されてデータ131等の読み書きを行うストレージインタフェース86と、入出力装置85に接続されたI/Oプロセッサ83と、プロセッサ60に接続されたディスプレイ82を含む。
 プロセッサ60は、ヘテロジニアスのマルチコアプロセッサで構成され、複数のCPUコア61-1~61-4と、複数のGPUコア62-1~62-4を含む。また、プロセッサ60は、メモリ70及び不揮発性メモリ81に接続されるメモリコントローラ63と、ディスプレイ82に接続されるディスプレイコントローラ65と、I/Oプロセッサ83、ネットワークインタフェース84及びストレージインタフェース86に接続されるI/Oコントローラ64とを含む。入出力装置85としては、キーボードやマウスを含む。
 メモリ70には、ハイパーバイザ71がロードされてプロセッサ60によって実行される。ハイパーバイザ71は1以上の論理区画を提供し、図示の例では、ゲストOS72-1を実行するユーザVM20と、ゲストOS72-2を実行するクエリ実行VM50と、ゲストOS72-3を実行する本社管理VM30に物理計算機11のリソースを割り当てる。なお、仮想的な計算機を実現するソフトウェアとしてハイパーバイザ71を採用する例を示したが、同様の機能を有するホストOSを用いることができる。
 ゲストOS72上では、後述するように、データベース管理システムや管理ソフトウェアといったミドルウェアや、データベースにクエリを発行するデータ処理プログラムなどのアプリケーションが稼働する。
 ストレージインタフェース86に接続されるローカルストレージ90、130は、HDD(Hard Disk Drive)に加え、フラッシュメモリを使用した二次記憶装置であるSSD(Solid State Drive)を含むことができる。また、本社10及び各拠点100のローカルストレージ90、130の記憶領域は、後述の共有仮想ストレージ管理部によって他の物理計算機11に共有される。共有されたローカルストレージの記憶領域は、共有仮想ストレージ400として各物理計算機11からアクセスすることができる。
 図4は、本社10の機能部位の一例を示すブロック図である。本社10では、物理計算機11上でユーザVM20と本社管理VM30が稼働しており、必要に応じてクエリ実行VM50が生成される。
 ユーザVM20は、各拠点のデータを分析するデータ分析者が利用する仮想計算機である。ユーザVM20は、データ分析者の指令に応じてクエリ実行VM50を生成し、各拠点100でデータ処理を実行させる。
 ユーザVM20では、分析プログラム21とデータ処理マスタプログラム22及び分析監視部23が稼働する。分析プログラム21は、分析処理の設計と実行が可能なソフトウェアであり、設計を容易にするGUIを含む。分析プログラム21は、例えば、Pentahoなどを採用することができる。
 本実施例1の分析プログラム21は、データ分析者がデータの所在を考慮しなくても分析が実施できるようにデータ処理マスタプログラム22へ分析処理の実行を指令する。データ処理マスタプログラム22は、本社管理VM30に問い合わせて分析処理の実行プラン53を生成し、分析に必要なデータ処理プログラム51の起動と、分析処理を実行する拠点100へのクエリ実行VM50の移動指令を行う。
 分析監視部23は、各拠点100の監視部及びクエリ実行VM50のデータ処理監視部52と連携して、ユーザVM20の分析プログラム21と本社管理VM30に対して分析処理の監視情報を提供する。
 クエリ実行VM50は、ユーザVM20の指令に応じてハイパーバイザ71が生成し、ユーザVM20の指令に基づいて他の拠点100へ移動する。クエリ実行VM50は、各拠点100でデータ処理を実行するデータ処理プログラム51と、クエリ実行VM50及びデータ処理プログラム51を監視するデータ処理監視部52と、データ処理マスタプログラム22が生成したデータ処理プログラム51の実行プラン53を含む。
 分析における実際のデータ処理は、各拠点100へ移動したクエリ実行VM50のデータ処理プログラム51が実行する。データ処理監視部52は、データ処理プログラム51の実行及びクエリ実行VM50の移動に関する監視を行う。
 計算機システムの運用管理者は、本社管理VM30を利用して計算機システムの稼働状況を監視する。本社管理VM30は、拠点100ごとの稼働状況(拠点情報39)を管理する拠点情報管理部38と、本社10の稼働状況を管理する本社監視部33と、クエリ実行VM50の実行プラン53を生成する本社実行プラン生成部31と、クエリ実行VM50を配置してデータ処理プログラム51を実行する拠点100を決定する本社プログラム配置部32と、ネットワーク600や共有仮想ストレージ400へのアクセスを制御する本社I/O制御部35と、ローカルストレージ90の記憶領域を他の拠点100の物理計算機11と共有して共有仮想ストレージ400を生成する共有仮想ストレージ管理部34と、監視情報などをディスプレイ82へ出力する管理表示部36と、を含む。なお、管理表示部36は、入出力装置85からの操作を受け付けるGUIを含む。
 拠点情報管理部38は、各拠点100で実行可能な機能等を管理する。本社実行プラン生成部31は、分析プログラム21の実行の際に、処理対象のデータがどの拠点100に保持されているかを判定して、クエリ実行VM50の移動プランを生成する。
 本社I/O制御部35は、共有仮想ストレージ400へのI/Oアクセスやネットワーク600へのアクセスを制御する。また、本社I/O制御部35は、ネットワーク600の帯域を収集する機能を含む。
 共有仮想ストレージ管理部34は、本社10と拠点100でのローカルストレージ90、130の記憶領域を結合して共有仮想ストレージ400を生成する。本社プログラム配置部32は、データ処理マスタプログラム22からの指令に基づいて、実行プラン53やI/Oデバイスの稼働状況(帯域など)を加味し、実際にデータ処理プログラム51を実行する拠点100をクエリ実行VM50の移動先として決定する。そして、本社プログラム配置部32は、移動先の拠点100の拠点プログラム配置部122にクエリ実行VM50の移動を通知して、データ処理プログラム51の実行環境を移動する。
 本社監視部33は、後述するように、クエリ実行VM50(データ処理プログラム51)の移動に関する基本情報を管理し、運用管理者が使用する管理表示部36のGUIへの監視情報の提供を行う。
 本社10の分析監視部23と、データ処理監視部52と、拠点情報管理部38と、本社実行プラン生成部31と、本社プログラム配置部32と、本社監視部33と、本社I/O制御部35と、共有する共有仮想ストレージ管理部34の各機能部はプログラムとしてメモリ70にロードされ、プロセッサ60によって実行される。
 プロセッサ60は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、プロセッサ60は、分析監視プログラムに従って処理することで分析監視部23として機能する。他のプログラムについても同様である。さらに、プロセッサ60は、各プログラムで実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
 分析監視部23や本社監視部33などの各機能を実現するプログラム、テーブル等の情報は、ローカルストレージ90や不揮発性メモリ81、ハードディスクドライブ、SSD等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
 図9は、拠点情報39の一例を示す図である。拠点情報39には、拠点情報管理部38が管理する拠点100-1~100-3及び本社10の情報が格納される。拠点情報39は、本社10や拠点100の地名などを格納する名前391と、拠点管理VM120及び本社管理VM30のIPアドレスを格納するIPアドレス392と、拠点プログラム配置部122及び本社プログラム配置部32が使用するポート番号を格納するポート番号393と、拠点実行プラン生成部121及び本社実行プラン生成部31が使用するポート番号を格納するポート番号394と、拠点監視部123及び本社監視部33が使用するポート番号を格納するポート番号395と、拠点I/O制御部125及び本社I/O制御部35が使用するポート番号を格納するポート番号396と、共有仮想ストレージ管理部124、34が使用するポート番号を格納するポート番号397と、近接する拠点100または本社10の名称を格納する近隣拠点398と、をひとつのエントリに含む。
 拠点情報39には、データ分析者や運用管理者がプログラムやコマンドから名前で各拠点100の拠点管理VM120や本社10の本社管理VM30にアクセスするための文字列やIPアドレスが管理されている。また、拠点情報39には、分散した拠点100の管理及びプログラムの配置に関するプログラムに接続するためのポート番号の情報も格納されている。さらに、拠点情報39には、それぞれの拠点100から近い拠点100の名称も格納されている。本実施例1では、近隣の拠点100の情報として拠点100の名前が格納されているが、各拠点100との距離を示すデータを用いてもよい。
 また、国外の拠点100を含む場合には、拠点情報39には、本社10と各拠点100との時差を加え、また、各拠点100の休日などによる稼動休止の情報を含むようにしてもよい。
 図5は、拠点100-1の機能部位の一例を示すブロック図である。なお、拠点100-2、100-3は、拠点100-1と同様の構成であるので重複した説明は省略する。
 拠点100-1は、工場などの生産管理を行って生産情報を生成する生産管理VM110と、拠点100-1を管理する拠点管理VM120-1と、当該拠点100-1の生産情報についてデータ処理を実行するクエリ実行VM50とを含む。なお、クエリ実行VM50は、データ処理プログラム51の実行時に当該拠点100-1に生成される。また、各VMはローカルストレージ130-1に接続された物理計算機11-1~11-nに生成される。
 生産管理VM110-1は、工場で製造した製品などの生産情報をデータ131として生成して、ローカルストレージ130-1に格納する生産管理プログラム111-1を含む。
 拠点管理VM120-1は、拠点実行プラン生成部121-1と、拠点プログラム配置部122-1と、拠点監視部123-1と、拠点I/O制御部125-1と、共有仮想ストレージ管理部124-1を含む。
 拠点実行プラン生成部121-1は、当該拠点100-1においてクエリ実行VM50で実行されるデータ処理プログラム51の実行プラン53を生成する。実行プラン53は、例えば、ローカルストレージ130-1に格納されているデータ(生産情報)131のうち処理対象のデータの範囲や種類などを含むことができる。
 拠点プログラム配置部122-1は、本社10や他の拠点100から移動してきたクエリ実行VM50を受け付けて、当該拠点100-1に移動させる。拠点I/O制御部125は、本社10と拠点100間で共有する共有仮想ストレージ400やネットワーク600へのアクセスを制御する。
 共有仮想ストレージ管理部124-1は、ローカルストレージ130-1の記憶領域をネットワーク600を介して他の拠点100の物理計算機11と共有する共有仮想ストレージ400を生成及び管理する。
 拠点監視部123-1は、拠点プログラム配置部122-1と本社10の本社監視部33及びクエリ実行VM50と情報の授受を行って、データ処理プログラム51の移動状態の管理と、データ処理プログラム51の稼動状態の監視を行う。また、拠点監視部123-1は、生産管理プログラム111-1の稼動状態を管理する。なお、拠点100-1の上記機能部位は、本社10と同様にプログラムで構成することができる。
 図6は、本社監視部33の一例を示すブロック図である。本社10の本社管理VM30で稼動する本社監視部33は、イベント受付部331と、イベント通知部332と、ID管理部333及び周期的収集部334の機能部と、監視設定テーブル301と、拠点監視テーブル302と、実行クエリテーブル303及び本社監視ログ304を含む。各機能部はプログラムで構成される。
 イベント受付部331は、本社監視部33に到達する各種通知(イベント)を受け付ける。イベント通知部332は、到着したイベントの内容に応じて、本社監視部33の状態を変更したり、他の機能部を呼出してイベントの処理を実行する。
 ID管理部333は、計算機システム上で分散して実行するデータ処理プログラム51を監視するために、計算機システムで一意のグローバルなID(識別子)を管理する。ID管理部333は、起動したデータ処理プログラム51に対して新規にIDを発行し、監視対象としてテーブルに登録する登録部3301と、実行が完了したデータ処理プログラム51を監視対象から外す実行終了部3302と、各拠点100で実行されるデータ処理プログラム51間の関係を設定する関係設定部3303を含む。
 図10は、監視設定テーブル301の一例を示す図である。監視設定テーブル301には、本社監視部33が管理するID及び本社管理VM30の設定に関する情報が格納される。監視設定テーブル301は、Next_ID3010と、拠点毎のクエリ数監視3011と、長時間実行クエリの監視3012と、拠点毎の実行時間監視3013と、ユーザタイムアウトの監視3014と、イベント通知先3015のフィールドを含む。
 Next_ID3010は、次回の登録依頼で新規のクエリ実行VM50(データ処理プログラム51の実行)に割当てるIDを格納する。その他のフィールドは、主に図22の監視設定画面290でデータ分析者(または運用管理者)が設定した情報を格納する。
 拠点毎のクエリ数監視3011は、拠点100ごとにデータ処理プログラム51が発行しているクエリの数の監視を実施するか否かを格納する。「YES」であれば監視が行われ、「NO」であれば監視は実行されない。長時間実行クエリの監視3012は、クエリの実行時間が所定の上限に達するのを監視するか否かを格納する。
 拠点毎の実行時間監視3013は、実行時間の上限を格納する。後述する周期的収集部334は、実行時間の上限が0でなければ拠点100ごとのデータ処理プログラム51の実行時間を監視する。
 ユーザタイムアウトの監視3014が「YES」であれば、ユーザ(データ分析者)によって予め設定されたタイムアウト時間でデータ処理プログラム51の実行時間が監視される。イベント通知先3015には、本社監視部33が、各拠点100から監視イベントを検出した際に、いずれのプログラムに情報を通知するかを登録する。図10では、本社管理VM30の管理表示部36が指定されている様子を示している。
 図11は、拠点監視テーブル302の一例を示す図である。拠点監視テーブル302は、各拠点100で実行されているクエリの数を集計するための情報が格納されている。
 拠点監視テーブル302は、拠点100の識別子を格納する拠点3020と、拠点100の名称を格納する拠点名3021と、当該拠点100で実行されているクエリの数を格納するクエリ数3022をひとつのエントリに含む。
 図12は、実行クエリテーブル303の一例を示す図である。実行クエリテーブル303は、計算機システム上で実行されているデータ処理プログラム51(クエリ実行VM50)ごとの状態を保持する。実行クエリテーブル303は、ID3031と、親ID3032と、現在の拠点3033と、クエリ開始時刻3034と、拠点開始時刻3035と、ユーザタイムアウト設定3036と、通知済みログID3037とをひとつのエントリに含む。
 ID3031は、本社管理VM30が当該データ処理プログラム51を稼動させるクエリ実行VM50のデータ処理プログラム51に割り当てたIDが格納される。親ID3032は、データ処理プログラム51のクエリが複数のクエリに分割して処理される場合には、クエリ間の関係を保持するため、親となる上位のクエリのIDが格納される。現在の拠点3033は、現在データ処理プログラム51を実行している拠点100の名称または識別子が格納される。
 クエリ開始時刻3034は、生成されたクエリ実行VM50が本社監視部33に登録された時刻を示している。また拠点開始時刻3035は、クエリ実行VM50が最新の拠点100に移動してデータ処理プログラム51の実行を開始した時刻が格納される。ユーザタイムアウト設定3036は、クエリ実行VM50を実行したデータ分析者が、タイムアウトを指定しているか否かが格納される。タイムアウトが指定された場合は、予め設定したタイムアウト時間が図示しないフィールドに格納される。通知済みログID3037には、当該データ処理プログラム51の監視イベントのログのIDが格納される。監視イベントのログのIDは、データ処理監視部52が付与する。通知済みログID3037によって、どのログまで本社管理VM30へ通知したかを取得することができる。
 図13は、本社監視ログ304の一例を示す図である。本社監視ログ304は、本社監視部33が記録するデータ処理プログラム51の稼働状況を示すログである。本社監視ログ304は、ログID3041と、時刻3042と、ID3043と、イベント3044とをひとつのエントリに含む。
 ログID3041は、各イベントのログを一意に識別する情報を格納する。ログID3041は、本社監視部33が生成する情報である。時刻3042は、本社監視ログ304にイベントのログが格納された日時である。ID3043には、イベントが発生したデータ処理プログラム51のIDが格納される。イベント3043には、イベントの内容が格納される。本社監視ログ304は、テーブルの形式で図示されているが、テキストファイルや、XMLファイル、あるいはCSVファイルなどの形式で保持されてもよい。
 図7は、拠点監視部123-1の一例を示すブロック図である。拠点監視部123-1は、拠点100-1の拠点管理VM120-1で実行される。拠点監視部123-1は、移動受付部126と、状態収集部127とID管理部128の機能部と、拠点監視テーブル115と、拠点実行クエリテーブル116及び拠点監視ログ117の情報を含む。
 移動受付部126は、本社10または拠点100から移動してくるクエリ実行VM50(データ処理プログラム51)を受け付ける。ID管理部128は、拠点100内のローカルなIDを管理する。状態収集部127は、拠点100で実行されているデータ処理プログラム51が発行したクエリの状態(数など)の収集と、状態の通知を行う。
 図14は、拠点監視テーブル115の一例を示す図である。拠点監視テーブル115は、次回の登録依頼で新規のクエリ実行(データ処理プログラム51の実行)に割当てる拠点100内のローカルなIDを格納するNext_LocalID1151を含む。
 NEXT_LocalID1151のローカルなIDは、本社監視部33で割当てるIDや、他の拠点100のローカルIDとは異なる体系で設定される。
 図15は、拠点実行クエリテーブル116の一例を示す図である。拠点実行クエリテーブル116には、拠点100内で実行されているデータ処理プログラム51のクエリに関する情報が格納される。
 拠点実行クエリテーブル116は、レコード番号1161と、グローバルなIDを格納するグローバル1162と、ローカルなIDを格納するローカル1163と、プロセスのIDを格納するPID1164とをひとつのエントリに含む。
 グローバル1162には、本社監視部33が設定した計算機システム内で一意に定まるデータ処理プログラム51(クエリ実行VM50)のIDが格納される。ローカル1163には、拠点監視部123が拠点監視テーブル115を用いて設定したローカルなデータ処理プログラム51のIDが格納される。PID1164には、データ処理プログラム51が実行されているVMを識別するためのプロセスIDが格納される。
 図8は、クエリ実行VM50の一例を示すブロック図である。クエリ実行VM50は、VMを管理するハイパーバイザ71(またはホストOS)が提供する仮想的なデバイスである仮想CPU56と、仮想メモリ55と、仮想ストレージ1300と、仮想ネットワークインタフェース57とを含む。なお、クエリ実行VM50は、仮想ネットワークインタフェース57を介して共有仮想ストレージ400にアクセスすることができる。
 クエリ実行VM50は、起動時にゲストOS54を仮想メモリ55にロードして、ゲストOS54が仮想的なデバイスを制御することで、計算機として稼動する。
 仮想ストレージ1300には、クエリ実行VM50に固有のデータが格納されている。クエリ実行VM50固有のデータには、ゲストOS54を構成するファイル、データ処理プログラム51や、データ処理監視部52のプログラム及びファイルである。なお、これらの固有のデータは、図1に示したクエリ実行VM50のイメージファイル410から抽出することができる。
 共有仮想ストレージ400には、データ処理プログラム51が処理するデータ131が格納される。なお、データ131は、図5で示したようにローカルストレージ130に格納されるが、共有仮想ストレージ管理部124によって、共有仮想ストレージ400からアクセスできる。データ131は、クエリ実行VM50だけでなく、他のVMからもアクセスでき、複数のVMが共有して使用することができる。
 仮想ストレージ1300は、物理的には、1つまたは複数のファイルで構成され、物理計算機11が管理するファイルシステムやローデバイスなどの記憶領域に格納される。本実施例1では、仮想ストレージ1300は、共有仮想ストレージ400と共に、全ての拠点100から参照可能な共有の記憶領域を含んでもよい。
 図8では、データ処理プログラム51と、データ処理を監視するためのデータ処理監視部52がゲストOS54上のアプリケーションとして稼動している。図示しているアプリケーションは2つのみだが、他のアプリケーションも実行することができる。
 図16は、分析実行画面270の一例を示す図である。分析実行画面270は、ユーザVM20の分析プログラム21のGUIが提供し、ディスプレイ82へ出力する。分析実行画面270の上部には分析で実行する手続きのアイコン271、272が示されている。
 図16では、所定の製品のデータ131を検索するために、すべての拠点100で所定の製品を検索する処理と、検索した結果を集計してディスプレイ82へ表示する処理が定義されている。図16の分析実行画面270の中央より下側は、分析処理を実行する際の監視内容が図示されている。実行の監視(281)では、データ分析者が指示する分析処理に対して本社管理VM30が監視を行うかどうかを設定する。「(監視)する」を選択するとデータ処理プログラム51の移動に関する情報が実行中のログとして出力される。分析の監視を「しない」場合は、データ処理プログラム51の実行中に監視情報は分析実行画面270へ表示されない。
 データ処理プログラム51を監視する場合、逐次監視とタイムアウトの設定を選択することができる。逐次監視(282)をする場合、データ処理プログラム51が拠点100を移動するたびに、情報が分析実行画面270に表示される。逐次監視は、データ処理プログラム51の開発時等の検証に便利な機能である。逐次監視について「しない」を選択した場合、データ処理プログラム51の移動情報は分析実行画面270に表示されない。タイムアウト設定(283)は、定義した分析を実行する際に、指定した時間内に処理が完了しない場合は、本社監視部33が分析処理を打ち切って、ディスプレイ82にエラーを表示する。分析実行画面270の最下部には、分析処理を開始するための実行ボタン284と、分析処理中に実行を中断するキャンセルボタン285が表示される。
 図17は、本発明の計算機システムで行われる分析開始処理の一例を示すシーケンス図である。この処理は、ユーザVM20の分析プログラム21が提供する分析実行画面270で実行ボタン284を操作することで開始する。
 ユーザVM20の分析プログラム21は、実行ボタン284の操作を受け付けて分析処理を開始する(S1)。分析プログラム21は、ユーザVM20のデータ処理マスタプログラム22を起動する(S2)。データ処理マスタプログラム22は、分析プログラム21の代わりに、各拠点100にプログラムを移動してデータを処理する起点となるソフトウェアである。分析プログラム21は、データ処理マスタプログラム22の起動後に、データ分析者が予め作成しておいたクエリをデータ処理マスタプログラム22へ通知する。
 データ処理マスタプログラム22は、分析監視部23を起動させる(S3、S4)。分析監視部23は、起動が完了するとデータ処理マスタプログラム22に通信路を確立し接続する(S5、S6)。分析監視部23は、データ処理マスタプログラム22と接続して、分析プログラム21の分析実行画面270にデータを表示するための情報を共有する。分析監視部23は、分析プログラム21と接続する(S7、S8)。
 次にデータ処理マスタプログラム22は、本社管理VM30上で稼動している本社実行プラン生成部31と通信を確立し、データ分析者が定義したクエリを実行するための実行プラン53の生成を、本社実行プラン生成部31に要求する(S9)。
 本社実行プラン生成部31は、入力としてクエリを取得し、各拠点100の拠点生産管理VMで生成されたデータ131のカタログを取得し、拠点情報管理部38が管理する拠点情報39を取得して、クエリの各部分をどの拠点100で実行するかを算出する。
 本社実行プラン生成部31は、例えば、クエリの検索部分を抽出し、検索対象の項目を取得する。そして、本社実行プラン生成部31は、各拠点100のカタログを参照して、検索対象の項目を含む拠点100を検索対象の拠点として選択する。これにより、データ131に検索対象の項目を含まない拠点100を除外することで、拠点100毎に大量のデータ131を保持ししている場合では、不要な検索処理の実行を回避することで分析処理の高速化を図ることができる。
 そして、本社実行プラン生成部31は、クエリを実行する拠点100-1~100-3の順序を計算する。クエリを実行する拠点100の順序は、例えば、本社実行プラン生成部31は、拠点情報39を参照して営業時間外や休日などで現在稼動を休止している拠点100から分析処理を実行するように、各拠点100の順序を設定する。
 本社実行プラン生成部31は、例えば、現在本社10が営業時間中であれば、国外の拠点100で営業時間外の拠点100から分析処理を開始し、その他の拠点100の順序をラウンドロビン等で決定する。営業時間外等で休止中の拠点100を優先して分析処理を実行させることにより、拠点100の物理計算機11の負荷やネットワークの負荷が過大になるのを防いで、処理速度を向上させることができる。
 本社実行プラン生成部31は、クエリの部分毎に実行する拠点100を決定し、実行する拠点100の順序を決定して実行プラン53として生成する(S10)。本社実行プラン生成部31は、生成された実行プラン53をデータ処理マスタプログラム22へ応答する。
 図18は、計算機システムで行われるクエリ実行VM50の起動処理の一例を示すシーケンス図である。図18の処理は、上記図17の処理に続いて実行される。実行プラン53を受信したデータ処理マスタプログラム22は、クエリ実行VM50を生成し、起動する(S21、S22)。データ処理マスタプログラム22は、ハイパーバイザ71に通知してクエリ実行VM50用の論理区画を確保させ、共有仮想ストレージ400のイメージファイル410を用いてクエリ実行VM50を起動させる。
 クエリ実行VM50が起動すると、データ処理マスタプログラム22は、予め定義された計算機システムの設定や、クエリの定義に基づき、分析処理及び監視に必要となるソフトウェアをクエリ実行VM50にインストールする(S23、S24)。具体的には、データ処理プログラム51及びデータ処理監視部52のプログラムであり、共有仮想ストレージ400(またはローカルストレージ90)から読み込んでクエリ実行VM50にインストールする。また、データ処理マスタプログラム22は、生成された実行プラン53をクエリ実行VM50にコピーする。
 クエリ実行VM50は、ソフトウェアのインストールが終了すると、データ処理監視部52を起動して、クエリ実行VM50上で発生する監視イベントと、クエリ実行VM50に通知される監視イベントの処理を開始する(S25、S26)。
 次に、データ処理マスタプログラム22は、本社管理VM30上で稼動する本社プログラム配置部32に、データ処理プログラム51を実行するクエリ実行VM50の移動を要求する(S27)。データ処理マスタプログラム22は、実行プラン53を本社プログラム配置部32に通知して、クエリ実行VM50の移動先を要求する。
 また、データ処理マスタプログラム22は、稼動の準備が整ったクエリ実行VM50を停止させる(S31)。そして、データ処理マスタプログラム22は、クエリ実行VM50のイメージファイル(またはスナップショット)410を生成して共有仮想ストレージ400に格納する。すなわち、データ処理監視部52を起動させた後、かつ、データ処理プログラム51を起動する前の状態でクエリ実行VM50を停止させ、クエリ実行VM50のイメージファイル410を生成する。
 このイメージファイル410を拠点100で再開することで、データ処理監視部52を稼動させてからデータ処理プログラム51を開始することができる。また、データ処理監視部52の設定は既に完了しているので、拠点100でイメージファイル410からクエリ実行VM50を再開する度に、通知先など設定を行う必要はない。これにより、本社10と拠点100間の通信量を削減できる。
 本社管理VM30の本社プログラム配置部32は、本社10から移動させるクエリ実行VM50の情報と、実行プラン53等の情報を受け取る。そして、本社プログラム配置部32は、実行プラン53と、拠点情報管理部38が管理する拠点情報39から、クエリ実行VM50のデータ処理プログラム51を移動する拠点100を決定する(S28)。
 分析処理の開始後にクエリ実行VM50を本社10から拠点100に移動させる場合(最初の移動)、本社プログラム配置部32は、移動するクエリ実行VM50のデータ処理プログラム51のグローバルなIDの登録を、本社管理VM30の本社監視部33に依頼する(S29)。
 本社監視部33は、イベント受付部331にてIDの登録要求を受け付け、ID管理部333を用いて、移動の対象となるクエリ実行VM50のデータ処理プログラム51に対して計算機システム内で一意のIDを割り当てる(S30)。本社監視部33は、クエリ実行VM50のデータ処理プログラム51に割り当てたグローバルなIDを本社プログラム配置部32に通知する。本社監視部33は、移動対象のクエリ実行VM50のデータ処理プログラム51に割り当てたグローバルなIDと、イベントの内容として”登録”を本社監視ログ304に追加する。
 図19は、計算機システムで行われるクエリ実行VMの移動処理の一例を示すシーケンス図である。図19の処理は、上記図18の処理に続いて実行される。本社プログラム配置部32は、クエリ実行VM50の移動要求を受け付けて、ID登録と移動先の決定が完了すると、移動先の拠点100-1で稼動する拠点プログラム配置部122-1に対してクエリ実行VM50の移動命令を発行する(S41)。移動命令には、クエリ実行VM50のデータ処理プログラム51に付与されたグローバルなIDが含まれる。
 拠点プログラム配置部122-1は、他拠点100の拠点プログラム配置部122や本社10の本社監視部33からクエリ実行VM50の移動命令を受信すると、共有仮想ストレージ400から移動対象となったクエリ実行VM50の情報(イメージファイル410等)を読み込む。さらに拠点プログラム配置部122-1は、当該クエリ実行VM50を当該拠点100で実行するために必要なプロセッサ60と、メモリ70及びローカルストレージ130-1など計算機資源を確保する(S42)。
 拠点プログラム配置部122-1は、計算機資源の確保が完了すると、移動対象のクエリ実行VM50を再開する(S43、S44)。すなわち、拠点プログラム配置部122-1は、ハイパーバイザ71に通知してクエリ実行VM50用の論理区画を確保させ、共有仮想ストレージ400のイメージファイル410を用いてクエリ実行VM50を起動させる。
 なお、計算機システムに共有仮想ストレージ400が用意されていない場合、または、共有仮想ストレージ400の容量が不足していた場合には、イメージファイル410を移動前の本社10(または拠点100)から当該拠点100へコピーまたは移動して実行を再開してもよい。また、拠点プログラム配置部122及びクエリ実行VM50は、VMの再開にあたり、共有仮想ストレージ400としてアクセスするストレージ装置を当該拠点100のローカルストレージ130-1に変更してもよい。
 拠点プログラム配置部122-1は、クエリ実行VM50の再開を指示した後に、拠点監視部123-1にクエリ実行VM50の移動の受付を要求する(S45)。
 拠点監視部123-1は、拠点プログラム配置部122-1からクエリ実行VM50の移動受付の要求を受信すると、図17に示した移動受付部126、ID管理部128により、当該クエリ実行VM50に関してローカルIDの割当てを行い、拠点プログラム配置部122-1に受付の完了を通知する(S46)。
 拠点プログラム配置部122-1は、拠点監視部123-1から移動受付の完了通知を受信すると、再開したクエリ実行VM50上で稼動しているデータ処理監視部52に移動完了を通知する(S48)。拠点プログラム配置部122-1は、また、クエリ実行VM50の移動命令を発行した本社プログラム配置部32に移動完了を通知する(S49)。
 本社プログラム配置部32は本社監視部33に移動が完了したクエリ実行VM50のIDを通知する。本社管理VM30の本社プログラム配置部32は、クエリ実行VM50の移動を要求したデータ処理マスタプログラム22に移動の結果を通知する(S50、S51)。上記処理によって、クエリ実行VM50は、実行プラン53に基づいて本社10から拠点100-1へ移動することができる。
 図20は、計算機システムで行われる分析処理の一例を示すシーケンス図である。図20の処理は、上記図19の処理に続いて実行される。
 データ処理監視部52は、図19に示した拠点プログラム配置部122-1から移動完了の通知を受信すると、データ処理プログラム51を起動させ、クエリによるデータ処理を開始させる(S61)。データ処理プログラム51は、分析プログラム21によって定義されたクエリを発行して、各拠点100のデータ131に対して予め定義された処理を開始する(S62)。
 データ処理プログラム51は、クエリによるデータ処理が開始されるとデータ処理監視部52に当該データ処理プログラム51の移動(またはデータ処理の開始)が完了したことを通知する。データ処理監視部52は、データ処理プログラム51からの移動完了通知を受信すると、本社10のユーザVM20の分析監視部23に、データ処理プログラム51の移動が完了したことを通知し、また、データ処理を開始した現在の拠点の識別子(または名称)を通知する(S63)。
 分析監視部23は、拠点100-1のクエリ実行VM50でデータ処理プログラム51が分析処理を開始したことによって移動の完了通知を受信すると(S64)、分析プログラム21に分析処理の進捗状況を通知する(S65)。通知の内容は、拠点100の名称と、データ処理プログラム51から移動完了の通知を受信した時刻を含むことができる。分析プログラム21は、分析処理の進捗状況をディスプレイ82へ出力する(S66)。分析プログラム21が表示する分析処理の進捗状況の画面は、データ分析者が利用する分析プログラム21のGUIで表示される。
 データ処理監視部52は、データ処理プログラム51が所定の状態になると、データ処理プログラム51の状態と拠点100の名称を、本社10の分析監視部23に自発的に通知する。これにより、本社10の分析監視部23は、データ処理プログラム51を追跡することなく、監視を行うことが可能となって、ネットワーク600の負荷を低減できる。
 なお、データ処理監視部52が本社10の分析監視部23へ通知を行うデータ処理プログラム51の所定の状態としては、例えば、データ処理の開始(移動完了)、データ処理の終了、実行プラン53などを含むことができる。
 次に、分析監視部23は、本社監視部33に対して、移動イベントを通知する(S67)。移動イベントは、データ処理プログラム51を実行するクエリ実行VM50のIDと、移動完了の通知を受信した時刻を含む。本社監視部33は、移動イベントを受信すると(S68)、クエリ実行VM50のIDとイベントの内容として拠点100-1への移動完了を本社監視ログ304に追加する。
 本社管理VM30で運用管理者が管理表示部36のGUIで分析の実行状況を監視している場合、本社監視部33の周期的収集部334によりデータ処理プログラム51の監視情報を収集する(S69)。この処理は、後述するように所定の周期で繰り返して実行される。監視情報には、長時間実行クエリの数や、拠点毎のデータ処理プログラム51の実行時間やユーザ設定のタイムアウト等が含まれる。管理表示部36は受信した監視情報を取得してディスプレイ82に監視情報を出力する(S70、S71)。管理表示部36が表示する監視情報は、運用管理者が利用する管理表示部36のGUIで表示される。
 なお、図示はしないが、データ処理プログラム51は、クエリの処理(データ処理)が完了すると、分析処理の結果を共有仮想ストレージ400へ格納し、データ処理監視部52へデータ処理の完了と、次の拠点100への移動を通知する。データ処理監視部52は、ステップS63以降と同様に本社10の分析監視部23へデータ処理の完了と、次の拠点100への移動を通知する。
 分析監視部23は、データ処理プログラム51が次の拠点100へ移動するイベントを生成し、本社監視部33へ通知する。本社監視部33は、イベントを受信すると、クエリ実行VM50のIDとイベントの内容として拠点100-1からの移動を本社監視ログ304に追加する。
 分析処理が完了したクエリ実行VM50は、拠点プログラム配置部122-1に実行プラン53に従って次の拠点100への移動を要求する。そして、図18、図19と同様にして、次の拠点100へクエリ実行VM50を移動させて再開させる。
 すなわち、図18、図19の本社プログラム配置部32に代わって、拠点100-1の拠点プログラム配置部122-1が、クエリ実行VM50を停止させてから、実行プラン53に記載された次の拠点100へ移動させる。
 クエリ実行VM50が実行プラン53の最後の拠点100で分析処理を完了すると、一連のクエリ実行VM50に分析処理は完了する。この後、本社10のユーザVM20の分析プログラム21によって、共有仮想ストレージ400に格納された各拠点100の分析処理結果が処理される。
 以上の処理によって、データ処理プログラム51と当該データ処理プログラム51を監視するデータ処理監視部52をペアとして、各拠点100に移動させて順次データ処理を実行することができる。そして、データ処理監視部52は、所定のタイミング(移動の完了、次の拠点への移動開始など)でデータ処理プログラム51の稼働状態を本社10の分析監視部23へ自発的に通知することで、本社10の分析監視部23はデータ処理プログラム51の状態と所在を監視することができる。これにより、本社10の分析監視部23は拠点100に対して問合せを行う必要がないので、ネットワーク600の負荷を低減することが可能となる。
 また、本社10の分析監視部23は、データ処理監視部52から受信した通知をデータ分析者が利用する分析プログラム21のGUIと、運用管理者が利用する管理表示部36のGUIに振り分けて出力することができる。
 また、クエリ実行VM50の移動は、データ処理マスタプログラム22がクエリ実行VM50を一旦起動させて、分析処理に必要なソフトウェアをインストールした後に、停止させ、クエリ実行VM50のイメージファイル410を生成する。そして、移動先の拠点100では、イメージファイル410を読み込んでクエリ実行VM50を再開させることで、クエリ実行VM50を本社10と拠点100間及び拠点100間で移動させることが可能となる。
 図21は、監視を行う場合の分析実行画面270(第1の管理画面)の一例を示す図である。データ分析者が図16に示した分析実行画面270で「実行の監視」281を「する」に設定した場合に各拠点100で実行されるクエリ実行VM50のデータ処理プログラム51の監視結果がディスプレイ82へ出力される。
 分析プログラム21は、分析処理を開始するとGUIとしての分析実行画面270の下部に監視領域273を表示する。また、分析プログラム21は、分析実行画面270の上部のアイコンのうち現在実行中の処理を表示する。図示の例では、データ処理プログラム51のクエリを各拠点100でデータ131の検索処理を実行している状態を示す。
 監視領域273には、監視対象のクエリ実行VM50のデータ処理プログラム51の所在と状態が表示される。監視領域273に表示される情報は、図20のステップS66に示す分析状況出力に対応し、データ処理プログラム51を監視するデータ処理監視部52からの通知に基づくものである。
 図示の監視領域273には、10:01:00に監視対象のデータ処理プログラム51が拠点1(100-1)で分析処理を開始し、10:01:30に拠点1での分析処理を終了し、10:02:00に拠点2へ移動して分析処理を開始したことを示す。
 なお、データ処理監視部52は、本社管理VM30に対しても同様の情報を通知するため、データ分析者に提供する分析プログラム21のGUIと、運用管理者が監視に用いる管理表示部36のGUIにも同様の情報を表示することが可能である。
 図22は、本社管理VM30で設定する監視設定画面290の一例を示す図である。監視設定画面290は、運用管理者へ監視内容を選択させるために表示管理部36のGUIに反映され、ディスプレイ82へ出力されるものである。この監視内容は、データ分析者が図16に示した分析実行画面270で「実行の監視」281を「する」に設定した項目も含まれる。
 監視設定画面290は項目291~296について、「する(Yes)」または「しない(No)」の何れかを選択するチェックボックスが表示される。項目291は、実行中のクエリを監視するか否かを設定する。項目292は、拠点100毎に実行中のクエリの数を監視するか否かを設定する。項目293は、所定時間を超えて実行されるクエリを監視するか否かを設定する。項目294は、実行時間が設定値を超えるクエリを監視するか否かを設定する。項目295は、ひとつの拠点100での実行時間が設定値を超えるクエリを監視するか否かを設定する。項目296は、データ分析者が設定したタイムアウトを監視するか否かを設定する。
 上記の監視設定によって、データ処理監視部52は、移動先の拠点100でデータ処理プログラム51の状態を監視し、設定された条件を満たすと本社10のユーザVM20の分析監視部23へ通知する。分析監視部23はデータ処理監視部52から通知を受け付けると、本社監視部33に通知を転送し、運用管理者が利用する管理表示部36のGUIに出力する。
 図23は、運用管理者が使用する管理表示部36のGUI(第2の管理画面)の一例を示す図である。図示の例は、管理表示部36がディスプレイ82に出力するGUIとしてのクエリ監視画面360である。クエリ監視画面360は、図22の監視設定画面290でクエリの監視を設定し、分析処理を実行した場合の表示例を示している。
 図中上部の表示領域には、実行中のクエリ数(362)と、設定した時間を超えて実行されたクエリの数(363)が表示される。図中下部の表示領域には、拠点100毎に実行中のクエリの数(364)と、データ処理プログラム51のIDを設定するフィールド365と、設定されたIDのデータ処理プログラム51の状況を表示する領域366が表示される。
 特定のデータ処理プログラム51に関する領域366の情報は、データ分析者が利用する分析実行画面270に表示される情報と同様の情報を表示することができる。
 図24、図25は、本社管理VM30の本社監視部33で行われる処理の一例を示すフローチャートである。このフローチャートは、本社監視部33のイベント受付部331とID管理部333がID管理に関連するイベントを処理する例を示している。図24は、フローチャートの前半部を示す。図25は、フローチャートの後半部を示す。この処理は本社監視部33が通知(イベント)を受け付けたときに実行される。
 本社監視部33のイベント受付部331は、イベントを受け付けるとイベントの種類を判定する(S111)。イベント受付部331は、イベントの種類がID管理のイベントでなければ、図25に示す処理を実行する。イベント受付部331は、イベントの種類がID管理であれば、ID管理のイベントの種類に対応した処理を実行する(S112)。
 イベント受付部331は、イベントの種類が登録であれば、ID管理部333を呼び出してステップS113~S115の処理を実行する(S112)。ID管理部333は、図10の監視設定テーブル301のNext_ID3010を用いて新規のIDを取得する(S113)。また、ID管理部333は、現在時刻を取得して(S114)、取得した新規のIDと時刻を実行クエリテーブル303に登録する(S115)。本社監視部33はまた、同時に登録するクエリに関して現在の拠点100とユーザタイムアウトの設定の有無についても登録する。本社監視部33は、実行クエリテーブル303に登録したことを登録のイベントとして本社監視ログ304に記録して終了する(S126)。
 イベント受付部331は、イベントの種類が移動であれば、ステップS117~S119の処理を実行する(S116)。本社監視部33は、図20のステップS67、S68で示したように移動の通知に含まれているデータ処理プログラム51に割り当てたIDの情報から、実行クエリテーブル303を検索して該当するエントリを検索する(S117)。
 本社監視部33は、実行クエリテーブル303の該当するエントリで現在の拠点3033を移動先の拠点に更新する(S118)。また、本社監視部33は、現在時刻を取得して実行クエリテーブル303の該当するエントリのクエリ開始時刻3034を更新する(S119)。本社監視部33は、実行クエリテーブル303に登録したことを登録のイベントとして本社監視ログ304に記録して処理を終了する(S126)。
 イベント受付部331は、イベントの種類が終了であれば、ステップS120、S121、S126の処理を実行する(S120)。本社監視部33は、上記移動のイベントと同様に実行クエリテーブル303を検索し、該当するIDのエントリを検索し、実行クエリテーブル303から削除する(S121)。また、イベント受付部331は、実行クエリテーブル303の親IDとして、終了する当該IDが設定されたエントリを検索し、存在していれば、親IDのカラムから終了するIDの情報を削除する。
 本社監視部33は、終了イベントを受け付けた結果、実行クエリテーブル303から該当IDを削除したことを本社監視ログ304に記録して終了する(S126)。
 イベント受付部331は、イベントの種類が関係の設定であれば、ステップS124~S126を実行する(S123)。
 本社監視部33は、入力として設定の対象となるIDと親となるIDを受け付ける。本社監視部33は、実行クエリテーブル303から設定対象となるIDを持つエントリを検索する(S124)。本社監視部33は、該当するエントリの親IDとして、入力で指定されたIDを設定して実行クエリテーブル303を更新する(S125)。本社監視部33は、実行クエリテーブル303に登録したことを登録のイベントとして本社監視ログ304に記録して処理を終了する(S126)。
 図25は、本社監視部33のID管理以外のイベント受付の処理を示している。これらのイベントは主に、図23に示した管理表示部のクエリ監視画面を生成するために使用される。
 イベント受付部331は、イベントの種類が設定変更であれば、ステップS128、S129を実行する(S127)。本社監視部33は、監視設定テーブル301で該当する項目を入力された情報に更新する(S128)。本社監視部33は、監視設定テーブル301を更新したことを更新のイベントとして本社監視ログ304に記録して処理を終了する(S129)。
 イベント受付部331は、イベントの種類が特定の拠点の情報収集であれば、ステップS131~S134を実行する(S130)。
 本社監視部33はまず、拠点情報管理部38に問い合わせて、入力で指定された拠点100の拠点監視部123に接続する情報を入手する(S131)。次に本社監視部33は、該当する拠点100の拠点監視部123に接続して、データ処理プログラム51の監視情報を要求する。監視情報は、データ処理監視部52が取得したクエリの数やクエリの実行時間を含む(S132)。拠点監視部123は、データ処理監視部52から監視情報を取得して本社監視部33へ応答する(S132)。本社監視部33は、拠点監視部123から監視情報を受信し、結果を出力して処理を完了する(S134)。
 イベント受付部331は、イベントの種類が実行クエリ数の問い合わせであれば、ステップS136~S138を実行する(S135)。
 本社監視部33は、実行クエリテーブル303のエントリの数または拠点監視テーブル302のクエリ数3022を取得して、実行中のクエリ数として算出して出力する(S136)。イベントとして拠点100ごとに出力する場合には、本社監視部33は、拠点監視テーブル302の内容を拠点100ごとに出力する(S137,S138)。
 イベント受付部331は、イベントの種類が長時間クエリの監視であれば、ステップS140~S143を実行する(S139)。
 本社監視部33は、実行クエリテーブル303の拠点開始時刻3035から現在までの実行時間を算出し、設定された閾値を超えたデータ処理プログラム51の数を長時間実行しているクエリ数として計算して、結果を出力する(S140)。実行時間の計算方法は、図26で説明する。
 イベント受付部331は、イベントの種類が特定クエリの詳細表示であれば、ステップS142~S43を実行する(S141)。
 イベントが特定クエリの詳細表示の場合は、入力としてIDが含まれている。本社監視部33は、実行クエリテーブル303から該当するIDのエントリを検索する。本社監視部33は、検索結果のエントリの通知済みログID3037以降で、該当するIDのイベントを本社監視ログ304から検索して出力する(S142)。さらに、本社監視部33は、実行クエリテーブル303の通知済みログID3037を、上記出力した最後のログIDに更新して処理を終了する(S143)。
 図26は、周期的収集部334で行われる処理の一例を示すフローチャートである。この処理は、上記図20のステップS69で行われる処理である。
 周期的収集部334は、現在の時刻を取得する(S150)。本社監視部33の周期的収集部334は、監視設定テーブル301の長時間実行クエリ監視3012を参照し、長時間実行クエリが監視対象となっているか否かを判定(S151)する。周期的収集部334は、長時間実行クエリ監視3012の値が0より大であれば、監視対象であると判定してステップS152へ進み、監視対象でない場合にはステップS155へ進む。
 監視対象となっている場合、周期的収集部334は、実行クエリテーブル303に登録されている各データ処理プログラム51について、クエリ開始時刻3034と、上記取得した現在の時刻の差を算出する(S152)。周期的収集部334は、算出した差が監視時間(長時間実行クエリ監視3012の値)よりも大きいデータ処理プログラム51(図中PGM)が存在するか否かを判定する(S153)。
 周期的収集部334は、算出した差が監視時間よりも大きいデータ処理プログラム51が存在する場合にはステップS154へ進み、そうでない場合にはステップS155へ進む。ステップS154で周期的収集部334は、本社管理VM30のイベント通知部332にイベント通知要求を発行し、長時間実行クエリの存在を管理表示部36へ通知する。
 次に、周期的収集部334は、監視設定テーブル301の拠点ごとの実行時間監視3013の値が0より大であるかを判定する。周期的収集部334は、拠点ごとの実行時間監視3013の値が0でなければ拠点ごとの実行時間を監視すると判定してステップS156へ進む。一方、周期的収集部334は、拠点ごとの実行時間監視3013の値が0の場合にはステップS159に進む。
 ステップS156では、周期的収集部334が、実行クエリテーブル303に登録されている実行中の各データ処理プログラム51について、拠点開始時刻3035と現在時刻の差をそれぞれ算出する。周期的収集部334は、算出した差(実行時間)の中で、監視設定テーブル301の拠点ごとの実行時間監視3013に設定されている時間より大きいデータ処理プログラム51があるか否かを判定する(S157)。
 周期的収集部334は、拠点ごとの実行時間監視3013の値を超える実行時間のデータ処理プログラム51が存在する場合は、本社監視部33のイベント通知部332にイベント通知要求を発行し、実行時間が設定値を超えるデータ処理プログラム51の存在を管理表示部36に通知する(S158)。一方、周期的収集部334は、拠点ごとの実行時間を監視していない場合は、ステップS159に進む。
 周期的収集部334は、監視設定テーブル301のユーザタイムアウト監視3014を参照し、データ分析者が設定したタイムアウトが監視対象となっているか否かを判定する(S159)。周期的収集部334は、ユーザのタイムアウト監視3014が「YES」であれば監視対象であると判定してステップS160へ進む。一方、周期的収集部334は、ユーザのタイムアウト監視3014が「NO」であれば監視対象ではないと判定してステップS163へ進む。
 タイムアウトが監視対象となっている場合、周期的収集部334は、実行クエリテーブル303に登録されている各データ処理プログラム51について、クエリ開始時刻3034にユーザによるタイムアウト設定の時間を加算した時刻をタイムアウト時刻として計算する(S160)。周期的収集部334は、計算したタイムアウト時刻と現在時刻を比較して、現在時刻がタイムアウト時刻を越えているデータ処理プログラム51が存在するか否かを判定する(S161)。
 周期的収集部334は、現在時刻がタイムアウト時刻を越えているデータ処理プログラム51が存在する場合、イベント通知部332にイベント通知要求を発行して該当するデータ処理プログラム51の存在を管理表示部36へ通知する(S162)。
 最後に、周期的収集部334は、ステップS163へ進んで予め設定された時間だけ休止する。周期的収集部334は、所定の休止時間を経過した後に、ステップS150に戻って上記処理を繰り返す。
 図27は、本社監視部33のイベント通知部332で行われる処理の一例を示すフローチャートである。本社監視部33のイベント通知部332は、図26のステップS154、S158、S162に示したイベント通知要求を受け付けたときに本処理を開始する(S170)。
 イベント通知部332は、監視設定テーブル301のイベント通知先3015から要求のあったイベントを通知する対象を取得する(S171)。本実施例では、イベント通知先3015として管理表示部36が設定された例を示す。イベント通知部332は、取得したイベント通知先へ、要求のあったイベントの情報を送信する。
 上記処理によって、周期的収集部334等が発行したイベント通知要求が、イベント通知先3015の管理表示部36に送信される。
 図28は、拠点監視部123で行われる処理の一例を示すフローチャートである。この処理は、図19のステップS46で行われる処理である。
 拠点監視部123は、受け付けた要求がクエリ実行VM50の移動受付の要求であるか否かを判定する(S180)。拠点監視部123は、受け付けた要求がクエリ実行VM50の移動の受付である場合は、ステップS181~S187に示す移動受付部126の処理を実行する。拠点監視部123は、受け付けた要求が移動の受付でない場合は、ステップS188へ進んで情報収集処理(状態収集部127)を実行する。
 ステップS181で拠点監視部123は、移動の受付が他の拠点100からの移動であるか、別の拠点100への移動であるかを判定する(S181)。他の拠点から当該拠点100への移動である場合は、拠点監視部123は、拠点監視テーブル115のNext_LocalID1151を参照して、拠点100のローカルIDをクエリ実行VM50のデータ処理プログラム51に割り当てる(S182)。
 拠点監視部123は、拠点実行クエリテーブル116に移動対象のデータ処理プログラム51のグローバルID1162と、ローカルID1163と、プロセスID1164の情報を登録する(S183)。拠点監視部123は、拠点監視ログ117に拠点実行クエリテーブル116に登録した内容を追加する(S184)。最後に、拠点監視部123は、移動を要求した拠点プログラム配置部122に受付完了を通知する(S185)。
 一方、拠点監視部123は、移動の要求が他の拠点100への移動であった場合、拠点100の拠点実行クエリテーブル116から、要求があったデータ処理プログラム51のIDのエントリを削除して、削除した記録を拠点監視ログ117に追加する(S186、S187)残す。
 拠点監視部123は、図25に示したように本社監視部33が監視情報の取得を要求した際にも処理を実行する。この場合、データ処理プログラム51の登録情報や拠点監視ログ117などを受け付けた要求に基づいて出力する。
 以上のように、本実施例1では、本社10の物理計算機11(第2の計算機)は、データ処理を実行するデータ処理プログラム51と、当該データ処理プログラム51を監視するデータ処理監視部52をペアとして設定したデータ処理パッケージ(クエリ実行VM50)を生成して、共有仮想ストレージ400に格納する。そして、本社10の物理計算機11は、データ処理パッケージとしてのクエリ実行VM50でデータ処理を実行する拠点100の順序を設定した実行プラン53を生成する。本社10の物理計算機11は、実行プラン53に設定された拠点100の物理計算機11にデータ処理パッケージを移動させる。この移動は、拠点100の物理計算機11が、共有仮想ストレージ400からデータ処理パッケージを起動してデータ処理プログラム51でデータ処理の実行を開始する。そして、拠点100の物理計算機11は、データ処理プログラム51が所定の状態となったときにデータ処理監視部52で本社10の分析監視部23へ所定の状態を通知する。
 ここで、データ処理監視部52が本社10の分析監視部23へ通知を行うデータ処理プログラム51の所定の状態としては、例えば、データ処理の開始(移動完了)、データ処理の終了、実行プラン53などを含むことができる。
 データ処理監視部52は、所定のタイミング(移動の完了、次の拠点への移動開始など)でデータ処理プログラム51の稼働状態と所在を本社10の分析監視部23へ自発的に通知することで、本社10の分析監視部23はデータ処理プログラム51の状態と所在を監視することができる。これにより、本社10の分析監視部23は拠点100に対して問合せを行う必要がないので、ネットワーク600の負荷を低減することが可能となる。
 なお、図示はしないが、本社10相当の拠点100は複数あってもよく、各拠点100でも物理計算機11の利用者がおり、拠点100内または分散した拠点100間の計算資源を用いて分析処理を実行してもよい。
 なお、上記実施例1では、本社実行プラン生成部31が、時差や休止状態等に基づいて分析処理を実行する拠点100の順序を決定する例を示したが、これに限定されるものではない。例えば、各拠点100の拠点I/O制御部125が、それぞれI/O性能情報(転送速度や頻度(IOPS))を測定して拠点情報管理部38へ通知しておき、本社実行プラン生成部31が、I/O性能情報を参照して負荷の低い拠点から分析処理を開始させるようにしてもよい。
 上記実施例1では、データ処理プログラム51とデータ処理監視部52のデータ処理パッケージを仮想計算機(VM)として拠点100-1~100-3を巡回させる例を示した。これに対し、実施例2では仮想計算機よりも軽量なコンテナ技術でデータ処理パッケージを構成する例を示す。
 図29は、第2の実施例を示し、計算機システムの一例を示すブロック図である。図29では、図1とは異なり、データ処理プログラム51は、ファイルシステムやプロセスIDなど計算の環境が各VMから独立したクエリ実行コンテナ500上で稼動する。
 各拠点100では、データ分析用のコンテナ(クエリ実行コンテナ500)を実行するコンテナ実行VM50cが稼動する。コンテナ実行VM50cは、実施例1に示したクエリ実行VM50が各拠点100に移動したように、各拠点100のコンテナ実行VM50c上に移動する。
 なお、図29では、クエリ実行コンテナ500を実行するコンテナ実行VM50cが存在しているが、セキュリティや資源保護に関して支障がなければ、クエリ実行コンテナ500を拠点管理VM120で稼動させたり、各計算機で仮想計算機の実行環境を提供しているホストOS上で実行させたりしてもよい。
 コンテナ実行VM50cの処理内容は、コンテナ定義ファイルで規定される。コンテナ定義ファイルを管理するコンテナ定義ファイルリポジトリ570が本社10及び各拠点100から参照可能な共有仮想ストレージ400に格納される。コンテナの実行環境に必要となるファイルは、コンテナイメージとして管理される。コンテナのイメージは、本社10及び拠点100から参照可能な共有仮想ストレージ400に、コンテナイメージリポジトリ580として格納される。
 図29では、コンテナ定義ファイルリポジトリ570とコンテナイメージリポジトリ580を共有仮想ストレージ400に格納した例を示す。
 図30、図31は、コンテナ技術を利用する計算機システムの構成を示すブロック図である。図30は、本社10の構成を示すブロック図である。図31は、拠点100の構成を示すブロック図である。
 まず、本社10において、前記実施例1との差異を説明する。図30において、ユーザVM20では、コンテナ管理部530が追加され、クエリ実行VM50に代わって、クエリ実行コンテナ500が稼動する。なお、クエリ実行コンテナ500の内容は、クエリ実行VM50と同様であり、データ処理プログラム51と、データ処理監視部52及び実行プラン53である。本社管理VM30では、コンテナ管理部510とコンテナクラスタ管理部が追加される。
 次に、拠点100において、前記実施例1との差異を説明する。図31において、クエリ実行VM50に代わって、クエリ実行コンテナ500を稼動させるコンテナ実行VM50cが稼動する。コンテナ実行VM50cはコンテナ管理部540を含む。拠点管理VM120には、コンテナ管理部550と、コンテナクラスタ管理部560が追加される。
 図29でも説明した通り、実施例1の図5とは異なり、各拠点100には、データ処理プログラム51を実行するクエリ実行コンテナ500を稼動させるために、コンテナ実行VM50cが稼動する。
 本社10及び拠点100のコンテナ管理部510、530、540、550は、クエリ実行コンテナ500の作成、開始、停止または削除を実行する。コンテナ管理部510、530、540、550の具体例としては、Dockerが挙げられる。
 本社10及び拠点100のコンテナクラスタ管理部520、560は、コンテナ管理部510、530、540、550と協調して、複数の物理計算機11にクエリ実行コンテナ500を分散して配置して、稼動させるためのソフトウェアである。コンテナクラスタ管理部520、560は、異なる物理計算機11に配置された複数のクエリ実行コンテナ500で通信を行うための仕組みも提供する。コンテナクラスタ管理部520、560の具体例としては、Apache Mesos、Kubernetes等を採用することができる。
 次に、データ処理プログラム51がクエリ実行コンテナ500で稼動する処理の一例について説明する。
 図32は、計算機システムで行われるクエリ実行コンテナ500の起動処理の一例を示すシーケンス図である。図32の処理は、前記実施例1の図18の処理に対応し、前記実施例1の図17に示した実行プラン53の生成処理の後に行われる。この処理は、本社10でクエリ実行コンテナ500を生成する処理である。
 データ処理マスタプログラム22は、データ処理プログラム51を実行するクエリ実行コンテナ500を生成、起動するにあたり、コンテナ定義ファイルを設定する(S201)。データ処理マスタプログラム22は、分析の対象となるデータ131にアクセスするデータ処理プログラム51と、データ処理監視部52が実行できるコンテナイメージのコンテナ定義ファイル(テンプレート)をコンテナ定義ファイルリポジトリ570から読み出す。データ処理マスタプログラム22は、読み込んだコンテナ定義ファイルに対し、図17で生成した実行プラン53をクエリ実行コンテナ500にコピーし、データ処理監視部52が分析監視部23と通信するために必要なIPアドレス、ポート番号の設定をコンテナ定義ファイルに追加する。データ処理マスタプログラム22は、追加したコンテナ定義ファイルをコンテナ定義ファイルリポジトリ570に登録する。
 データ処理マスタプログラム22は、ユーザVM20のコンテナ管理部530に通知してクエリ実行コンテナ500の起動を要求する(S202)。コンテナ管理部530は、起動の要求を受け付けて(S203)、ユーザVM20にクエリ実行コンテナ500を生成して起動させる(S204)。このとき、コンテナ管理部530は、データ処理マスタプログラム22から実行プラン53を受け付けて、クエリ実行コンテナ500にコピーしておく。
 クエリ実行コンテナ500では、データ処理監視部52を起動させる(S205、S206)。データ処理監視部52を稼動させることで、クエリ実行コンテナ500で発生する監視イベントと、クエリ実行コンテナ500に通知される監視イベントの処理を開始する。
 クエリ実行コンテナ500のデータ処理監視部52が起動すると、データ処理マスタプログラム22は、コンテナ管理部530に対して、クエリ実行コンテナ500の停止を要求し(S207)、コンテナ管理部530は、起動したクエリ実行コンテナ500を停止させる(S208、S209)。
 次に、データ処理マスタプログラム22は、クエリ実行コンテナ500のスナップショット(またはイメージファイル)を取得して(S210)、共有仮想ストレージ400のコンテナイメージリポジトリ580に格納する(S211)。これにより、各拠点100において、コンテナイメージリポジトリ580のスナップショットからクエリ実行コンテナ500を再開することが可能となる。
 次に、データ処理マスタプログラム22は、本社管理VM30上で稼動する本社プログラム配置部32に、データ処理プログラム51を実行するクエリ実行コンテナ500の移動を要求する(S212)。データ処理マスタプログラム22は、実行プラン53を本社プログラム配置部32に通知して、クエリ実行コンテナ500の移動先を指令する。
 本社管理VM30の本社プログラム配置部32は、本社10から移動させるクエリ実行コンテナ500の情報と、実行プラン53等の情報を受け取る。そして、本社プログラム配置部32は、実行プラン53と、拠点情報管理部38が管理する拠点情報39から、クエリ実行コンテナ500を移動する拠点100を決定する(S213)。
 分析処理の開始後にクエリ実行コンテナ500を本社10から拠点100に移動させる場合(最初の移動)、本社プログラム配置部32は、移動するクエリ実行コンテナ500のデータ処理プログラム51のIDの登録を、本社管理VM30の本社監視部33に依頼する(S214)。
 本社監視部33は、イベント受付部331にてIDの登録要求を受け取り、ID管理部333を用いて、移動の対象となるクエリ実行コンテナ500のデータ処理プログラム51に対して計算機システム内で一意のIDを割り当てる(S215)。本社監視部33は、クエリ実行コンテナ500のデータ処理プログラム51に割り当てたIDを本社プログラム配置部32に通知する。本社監視部33は、移動対象のクエリ実行コンテナ500のデータ処理プログラム51に割り当てたグローバルなIDと、イベントの内容として”登録”を本社監視ログ304に追加する。
 図33は、計算機システムで行われるクエリ実行コンテナ500の移動処理の一例を示すシーケンス図である。図33の処理は、前記実施例1の図19の処理に対応し、前記実施例1の図18に示した実行プラン53の生成処理の後に行われる。この処理は、本社10で生成したクエリ実行コンテナ500を拠点100-1へ移動する処理である。
 本社プログラム配置部32は、移動先の拠点100-1に対してデータ処理プログラム51の移動命令を発行して拠点100-1の拠点プログラム配置部122-1に通知する(S220)。
 拠点プログラム配置部122-1は、移動命令として、データ処理プログラム51のIDと、コンテナ定義ファイルの情報、クエリ実行コンテナ500のスナップショットイメージの情報を受け取る。
 拠点プログラム配置部122-1は、コンテナ実行VM50cを再開させて、拠点100-1のコンテナ実行VM50c上で稼動するコンテナ管理部540に復元を依頼する。依頼を受けたコンテナ管理部540は、指定されたコンテナ定義ファイルをコンテナ定義ファイルリポジトリ570から読み出す。コンテナ管理部540は、コンテナイメージリポジトリ580より、指定されたコンテナイメージを読み出して、コンテナ実行VM50c上のCPU、メモリなどの計算資源を確保し、コンテナ実行VM50c上でクエリ実行コンテナ500を起動して再開する。
 なお、クエリ実行コンテナ500の内部から行う通信と、クエリ実行コンテナ500への通信は、本社10及び拠点100-1の管理VM30、120で稼動するコンテナクラスタ管理部520、560とコンテナ管理部510、550に加え、ユーザVM20と、コンテナ実行VM50cで稼動するコンテナ管理部530、540が、ネットワーク600の設定情報を共有することにより、接続が可能となっている。コンテナ実行VM50c再開後の処理は、図20と同様であるため、記載を割愛する。
 以上のように、実施例2のようにコンテナの技術を適用する場合でも前記実施例1と同様に、データ処理プログラム51と当該データ処理プログラム51を監視するデータ処理監視部52をペアとして、各拠点100に移動させて順次データ処理を実行することができる。そして、データ処理監視部52は、所定のタイミング(移動の完了、次の拠点への移動開始など)でデータ処理プログラム51の稼働状態を本社10の分析監視部23へ自発的に通知することで、本社10の分析監視部23はデータ処理プログラム51の状態と所在を監視することができる。これにより、本社10の分析監視部23は拠点100に対して問合せを行う必要がないので、ネットワーク600の負荷を低減することが可能となる。
 また、本社10の分析監視部23は、データ処理監視部52から受信した通知をデータ分析者が利用する分析プログラム21のGUIと、運用管理者が利用する管理表示部36のGUIに振り分けて出力することができる。
 実施例1では、ひとつのクエリ実行VM50を、各拠点100-1~100-3へ順次移動してデータ処理プログラム51を稼動させる例を示したが、図34に示す本実施例3のように、各拠点100-1~100-3にそれぞれクエリ実行VM50を複製して、並列的に処理を実行させることも可能である。
 <まとめ>
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
 また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
 また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。

Claims (12)

  1.  プロセッサとメモリを有してデータを生成する第1の計算機を含む拠点を1以上有し、
     プロセッサとメモリを有して前記拠点で生成されたデータに対してデータ処理を実行する第2の計算機を含む管理拠点とを有する計算機システムであって、
     前記第2の計算機は、前記データ処理を実行するデータ処理部と、当該データ処理部を監視する監視部をペアとして設定したデータ処理パッケージを生成して、前記第1の計算機及び第2の計算機でアクセス可能なストレージに格納し、
     前記第2の計算機は、前記データ処理パッケージでデータ処理を実行する前記拠点の順序を設定した実行プランを生成し、
     前記第2の計算機は、前記実行プランに設定された拠点の前記第1の計算機に前記データ処理パッケージを移動させ、
     前記第1の計算機は、前記ストレージから前記データ処理パッケージを起動して前記データ処理部で前記データ処理の実行を開始して、前記データ処理の実行結果を前記ストレージに格納し、
     前記第1の計算機は、前記データ処理部が所定の状態となったときに前記監視部で前記第2の計算機へ前記所定の状態を通知することを特徴とする計算機システム。
  2.  請求項1に記載の計算機システムであって、
     前記監視部は、前記所定の状態として前記データ処理部が処理を開始したときに、データ処理の開始と拠点の所在を前記第2の計算機へ通知することを特徴とする計算機システム。
  3.  請求項1に記載の計算機システムであって、
     前記第2の計算機は、前記監視部からの通知を受信して、前記データ処理部が所定の状態となったことを第1の管理画面と第2の管理画面に振り分けて出力する分析監視部を、さらに有することを特徴とする計算機システム。
  4.  請求項1に記載の計算機システムであって、
     前記第2の計算機で前記監視部を起動した状態で前記データ処理パッケージを前記ストレージに格納することを特徴とする計算機システム。
  5.  請求項1に記載の計算機システムであって、
     前記データ処理パッケージは、前記データ処理部と前記監視部を実行する仮想計算機を含むことを特徴とする計算機システム。
  6.  請求項1に記載の計算機システムであって、
     前記データ処理パッケージは、前記データ処理部と前記監視部を実行するコンテナを含むことを特徴とする計算機システム。
  7.  プロセッサとメモリを有してデータを生成する第1の計算機を含む1以上の拠点と、プロセッサとメモリを有して前記拠点で生成されたデータに対してデータ処理を実行する第2の計算機を含む管理拠点とを有して、前記第2の計算機が前記データ処理を監視する分散データ処理の監視方法であって、
     前記第2の計算機が、前記データ処理を実行するデータ処理部と、当該データ処理部を監視する監視部をペアとして設定したデータ処理パッケージを生成して、前記第1の計算機及び第2の計算機でアクセス可能なストレージに格納する第1のステップと、
     前記第2の計算機が、前記データ処理パッケージでデータ処理を実行する前記拠点の順序を設定した実行プランを生成する第2のステップと、
     前記第2の計算機が、前記実行プランに設定された拠点の前記第1の計算機に前記データ処理パッケージを移動させる第3のステップと、
     前記第1の計算機が、前記ストレージから前記データ処理パッケージを起動して前記データ処理部で前記データ処理の実行を開始して、前記データ処理の実行結果を前記ストレージに格納する第4のステップと、
     前記第1の計算機は、前記データ処理部が所定の状態となったときに前記監視部で前記第2の計算機へ前記所定の状態を通知する第5のステップと、
    を含むことを特徴とする分散データ処理の監視方法。
  8.  請求項7に記載の分散データ処理の監視方法であって、
     前記第5のステップは、
     前記所定の状態として前記データ処理部が処理を開始したときに、前記監視部がデータ処理の開始と拠点の所在を前記第2の計算機へ通知することを特徴とする分散データ処理の監視方法。
  9.  請求項7に記載の分散データ処理の監視方法であって、
     前記第2の計算機が、前記監視部からの通知を受信して、前記データ処理部が所定の状態となったことを第1の管理画面と第2の管理画面に振り分けて出力する第6のステップをさらに含むことを特徴とする分散データ処理の監視方法。
  10.  請求項7に記載の分散データ処理の監視方法であって、
     前記第1のステップは、前記第2の計算機で前記監視部を起動した状態で前記データ処理パッケージを前記ストレージに格納することを特徴とする分散データ処理の監視方法。
  11.  請求項7に記載の分散データ処理の監視方法であって、
     前記データ処理パッケージは、前記データ処理部と前記監視部を実行する仮想計算機を含むことを特徴とする分散データ処理の監視方法。
  12.  請求項7に記載の分散データ処理の監視方法であって、
     前記データ処理パッケージは、前記データ処理部と前記監視部を実行するコンテナを含むことを特徴とする分散データ処理の監視方法。
PCT/JP2016/052727 2016-01-29 2016-01-29 計算機システム及び分散データ処理の監視方法 WO2017130390A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/052727 WO2017130390A1 (ja) 2016-01-29 2016-01-29 計算機システム及び分散データ処理の監視方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/052727 WO2017130390A1 (ja) 2016-01-29 2016-01-29 計算機システム及び分散データ処理の監視方法

Publications (1)

Publication Number Publication Date
WO2017130390A1 true WO2017130390A1 (ja) 2017-08-03

Family

ID=59397666

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/052727 WO2017130390A1 (ja) 2016-01-29 2016-01-29 計算機システム及び分散データ処理の監視方法

Country Status (1)

Country Link
WO (1) WO2017130390A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009075877A (ja) * 2007-09-20 2009-04-09 Toshiba Corp 情報処理システム、および監視方法
JP2011159249A (ja) * 2010-02-04 2011-08-18 Nec Corp コンピュータシステム、仮想マシン管理方法、及び仮想マシン管理プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009075877A (ja) * 2007-09-20 2009-04-09 Toshiba Corp 情報処理システム、および監視方法
JP2011159249A (ja) * 2010-02-04 2011-08-18 Nec Corp コンピュータシステム、仮想マシン管理方法、及び仮想マシン管理プログラム

Similar Documents

Publication Publication Date Title
US11593149B2 (en) Unified resource management for containers and virtual machines
US20230208914A1 (en) Live Migration Of Clusters In Containerized Environments
JP6246358B2 (ja) 大規模データストリームの取得、記憶、及び消費のための管理型サービス
JP6357243B2 (ja) データストリーム取り込み及び永続性ポリシ
EP3069495B1 (en) Client-configurable security options for data streams
EP3069228B1 (en) Partition-based data stream processing framework
US10754696B1 (en) Scale out capacity load-balancing for backup appliances
CN110417613B (zh) 基于Jmeter的分布式性能测试方法、装置、设备及存储介质
US20180189367A1 (en) Data stream ingestion and persistence techniques
US8972405B1 (en) Storage resource management information modeling in a cloud processing environment
US8473692B2 (en) Operating system image management
US20150134796A1 (en) Dynamic partitioning techniques for data streams
US10528262B1 (en) Replication-based federation of scalable data across multiple sites
JP6421470B2 (ja) 仮想マシンマイグレーションプログラム、仮想マシンマイグレーションシステムおよび仮想マシンマイグレーション方法
US10970181B2 (en) Creating distributed storage during partitions
JP2020038421A (ja) ボリューム配置管理装置、ボリューム配置管理方法、及びボリューム配置管理プログラム
WO2017130390A1 (ja) 計算機システム及び分散データ処理の監視方法
US11637898B2 (en) Volume placement based on resource use and scoring functions
ALEXANDER A Survey on Job and Task Scheduling in Big Data

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: 16887976

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16887976

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP