WO2020158968A1 - Method for extending task node in hybrid p2p cluster system - Google Patents

Method for extending task node in hybrid p2p cluster system Download PDF

Info

Publication number
WO2020158968A1
WO2020158968A1 PCT/KR2019/001245 KR2019001245W WO2020158968A1 WO 2020158968 A1 WO2020158968 A1 WO 2020158968A1 KR 2019001245 W KR2019001245 W KR 2019001245W WO 2020158968 A1 WO2020158968 A1 WO 2020158968A1
Authority
WO
WIPO (PCT)
Prior art keywords
work
node
data
work node
nodes
Prior art date
Application number
PCT/KR2019/001245
Other languages
French (fr)
Korean (ko)
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 ㈜리얼타임테크
Publication of WO2020158968A1 publication Critical patent/WO2020158968A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • G06F15/17343Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture
    • 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]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Definitions

  • the present invention performs a task of adding a new task node while maintaining the service to a client as much as possible in a hybrid P2P-type distributed cluster system, and considers the data load state of the existing task node and distributes the load between task nodes including the new task node. It relates to a technique to perform automatically.
  • a cluster system means collectively processing a single task through a single set of networked computings. If the supercomputer connects multiple CPUs internally and each CPU is designed to access a common virtual memory, the biggest difference is that the cluster system implements each connection through a network.
  • the cluster system can be configured using a general server, it has the advantage of being less expensive to build than a supercomputer.
  • the system can be built according to the needs of users, and it has the advantage of easily improving performance by increasing the number of connected servers, but on the other hand, it is difficult to maintain compared to a single system, and the performance of the system greatly affects network performance. It has the disadvantage of receiving it.
  • Such a cluster system is a method of extending a system by connecting homogeneous or heterogeneous nodes with a network, and individual systems in a cluster are called servers or nodes.
  • the load balancing cluster system is composed of a load distributor that serves to allocate requests from clients to other nodes in the cluster, and a node that provides services for requests.
  • the load divider selects an appropriate node based on a specific algorithm and processes the request. In other words, a plurality of nodes do not divide and process a single task, but a node selected by a distribution algorithm processes all assigned tasks. Therefore, unlike a parallel system, all rush requests are evenly allocated to multiple nodes so that the load is distributed.
  • the master-slave distributed cluster management system is composed of a master node that manages the cluster system and a slave node that handles work processing.
  • the P2P distributed cluster management system all work nodes perform work processing operations at an equal level. Do it.
  • a master node is applied to a slave node in a distributed environment by passing a master node through a master node, which causes a decrease in processing performance, and when the master node fails, the entire cluster must be restarted. There is a problem.
  • the load balancing cluster system to which the conventional P2P method is applied has a problem in that additional work is required to select a master node among work nodes when performing a task for cluster management.
  • a hybrid P2P cluster system is composed of a coordinator node and a plurality of work nodes, and the coordinator node performs only a role of managing work nodes and performs work through collaboration of only work nodes.
  • the hybrid P2P system cluster system combines the advantages of the master-slave system and the P2P system, and the client connects to the work node received from the coordinator server to perform the work request, and the specific work node connected to the client is applied from the client.
  • the data of the same table is distributed and stored in multiple other work nodes.
  • the data in the table is distributed and stored in another work node according to a predetermined rule, and a work node is added due to a certain period of time exceeding the storage capacity or data being unevenly stored in the work node. The situation to be done occurs.
  • the present invention was created in view of the above-described circumstances, and the present invention is a hybrid P2P-type cluster system capable of adding new work nodes while maintaining service to a client in a hybrid P2P-type distributed cluster system.
  • the technical purpose is to provide a method for extending a node.
  • the present invention is a hybrid P2P cluster that automatically performs a load balancing operation between work nodes including a new work node in consideration of the data load state of an existing work node, and then normally operates the cluster system including the new work node.
  • Another technical purpose is to provide a method for extending a work node in a system.
  • a hybrid P2P cluster system that configures a cluster with a plurality of work nodes and a coordinator server that manages the work nodes to simultaneously process the work requested by the client in a distributed environment.
  • a new connection request from the client is rejected, and an ongoing service is provided to the client connected to the existing work node without interruption.
  • the first step of updating the metadata by reflecting the new work node access information and the coordinator server remotely copies the metadata updated in the first step to the new work node, and drives the new work node, as well as the new work.
  • the coordinator server determines that all other ongoing services except the search service are completed for the client currently connected from all existing work nodes, all work nodes including the new work node.
  • the coordinator server changes the status information of the new work node to an operation state for all work nodes including the new work node, operates all work nodes including the new work node as a cluster, and restarts the service for the client.
  • a method for extending a work node in a hybrid P2P system cluster system characterized in that it is configured to include.
  • the existing work nodes reject the service for requesting to add/update/delete newly requested data from the currently connected client, and provide the service without interruption to the newly requested data retrieval request.
  • a hybrid P2P cluster comprising a step of transmitting completion service completion information indicating that the data is being added/updated/deleted for the data being processed is ready to perform a distributed operation to the coordinator server.
  • the existing work nodes are configured to create a copy corresponding to a preset number and store them in different work nodes, and in the first step, the coordinator server has a number of new work nodes than the preset number of copies (K).
  • the step of managing only the access information of the work node until the number of "1" is a multiple of a large number (K+1), and adding the new work node information corresponding to the multiple of (K+1) is completed from the client.
  • a method for extending a work node in a hybrid P2P cluster system comprising rejecting a new connection request and requesting to provide a service for a client currently connected to an existing work node without interruption. do.
  • the third step is a step of collecting data loading status information including the table unit size of the existing work nodes, the total memory size and the current memory usage by the coordinator server, and based on the data loading status information for each existing work node.
  • Determining data partitioning information including a work target to be partitioned to move data, a data capacity of the partitioning decision data, and a storage target worknode to store the partitioning decision data, based on the determined data partitioning information
  • a method of extending a work node in a hybrid P2P system cluster system characterized in that it comprises a step of moving.
  • a method for extending a work node in a hybrid P2P cluster system characterized in that the new work node duplicates data stored in the mobile and stores it in another new work node.
  • the step of determining the data partitioning information is calculated by dividing the total data capacity stored in all existing work nodes by the coordinator server by the sum of the number of existing work nodes and new work nodes, and calculating an average data capacity.
  • a method of extending a work node in a hybrid P2P cluster system is provided, characterized in that an error of a value or more is allowed and existing work nodes exceeding this are set as a work node to be divided.
  • the data capacity and the storage target work node are determined by dividing the key value range of the partitioned determined table into the total number of work nodes to be stored. A method of extending a working node is provided.
  • the data capacity and the storage target work node are determined by dividing and setting the key value list corresponding to the number of work targets to be stored in consideration of the number of data corresponding to the key values of the partitioned table.
  • a method for extending a work node in a hybrid P2P cluster system characterized in that.
  • determining a data capacity and a storage target work node by dividing the range of the hash value calculated by applying the key value of the partitioned table to the hash function by the number of work nodes to be stored.
  • the coordinator server generates data division log information including the number of new operation nodes, the operation node number to be divided, and the operation node number to be stored in response to the load balancing operation, and manages the metadata as work nodes.
  • the work node Synchronize with, and the work node checks the data partitioning log information of the search query table corresponding to the key value for the data search query including the specific key value from the client, and if the search target data is the data before the partition, the hash value If a search target work node number corresponding to the remaining value divided by the number of existing work nodes prior to adding a new work node is acquired, and the obtained search target work node number is a target node number to be divided, the target of storing the data split log information
  • a data search query is propagated to a work node corresponding to a work node number to provide a service corresponding to a client request.
  • the data stored in the existing work node is distributed to other work nodes to prevent overload generated in a specific work node, so that the cluster can be operated more efficiently.
  • FIG. 1 is a diagram illustrating a schematic configuration of a hybrid P2P system cluster system to which the present invention is applied.
  • FIG. 2 is a view for explaining the configuration of the coordinator server 100 and the work node 200 shown in FIG.
  • FIG. 3 is a flowchart illustrating a method for extending a work node in a hybrid P2P cluster system according to a first embodiment of the present invention.
  • 4A to 4C are views schematically showing the operation of FIG. 3 and showing a process in which the original 1 table stored in the work node 1 is dividedly stored in the new work node 1.
  • FIG. 5 is a view for explaining in more detail the load balancing operation (ST500) of FIG.
  • 6A to 6C are diagrams for explaining a method (ST520) for determining segmentation information in FIG. 5;
  • FIG. 7 is a diagram illustrating data split log information managed as metadata for the load balancing operation ST500 of FIG. 3.
  • FIG. 8 is a diagram for explaining a query operation for a specific key value of a hash-based partition table using partition log information shown in FIG. 7.
  • FIG. 1 is a diagram illustrating a schematic configuration of a hybrid P2P system cluster system to which the present invention is applied.
  • a hybrid P2P system cluster system to which the present invention is applied is configured to cluster a cluster with a coordinator server 100 and a plurality of work nodes 200 to simultaneously process tasks requested by a client 300 in a distributed environment. Make up.
  • the coordinator server 100 may be configured by adding a replica server.
  • client 300 may be composed of a plurality of clients 300.
  • the coordinator server 100 manages the work nodes 200 and manages the work nodes 200 by synchronizing metadata of each work node 200 through a cluster operation process.
  • the work node 200 distributes and processes the work requested by the client 300 using metadata stored in the local system.
  • the hybrid P2P type cluster system performs a connection request from the client 300 to the coordinator server 100, and the coordinator server 100 uses the information of a plurality of work nodes 200 to connect to the work node 200. Is determined and provided to the client 300.
  • the client 300 connects to the work node 200 received from the coordinator server 100 to perform a work request, and the specific work node 200 connected to the client 300 is of the same table applied from the client 300 Data is distributed and managed in a number of other work nodes 200.
  • a phenomenon in which data is intensively stored in an arbitrary work node 200 may occur, and in the present invention, a new work node may be newly added to operate a cluster.
  • FIG. 2 is a view for explaining the configuration of the coordinator server 100 and the work node 200 shown in FIG. 1.
  • the coordinator server 100 includes a cluster manager 110, a setting information storage unit 120, and a DBMS engine 130, and the DBMS engine 130 includes a metadata table 131. .
  • the cluster manager 110 drives the DBMS engine 130 of the local system and obtains connection information of the work nodes 200 using the cluster setting information, and copies the cluster setting information to the work nodes 200, Remotely drive the work nodes (200).
  • the cluster manager 110 starts the cluster agent 210 of the work node 200, and the DBMS engine 300 of the local system is driven simultaneously with the operation of the cluster agent 210, so that the work node 200 is It becomes an operation state capable of providing a service.
  • the DBMS engine 220 of the work node processes the work in a P2P manner with the DBMS engine 220 of the other work node 200.
  • the cluster manager 110 transmits the cluster configuration file to the work node 200, and when the cluster configuration is changed, the cluster configuration file is modified to automatically distribute to all the work nodes 200 when the cluster is stopped and restarted. Then, the cluster manager 110 performs a connection or disconnection function with the work node 200 at the request of the client 300, and synchronizes and shares metadata with the work node 200.
  • the cluster manager 110 grasps data distribution information of the work nodes 200 and, if necessary, performs an expansion task for the new work node 200 and performs a load balancing task using the expanded new work node. .
  • the configuration information storage unit 120 stores coordinator server connection information, connection information of work nodes, and cluster configuration information including the number of copies.
  • the DBMS engine 130 manages metadata for processing a user request operation in a peer-to-peer manner using only information from a local system including status information of a work node.
  • the work node 200 includes the cluster agent 210 and the DBMS engine 220.
  • the cluster agent 210 drives the DBMS engine 220 of the local system, checks the status information of the work node 200 using the cluster manager 110 and the heartbeat protocol, and then displays the status information. Real-time reflection in metadata.
  • the DBMS engine 220 generates table information for the table creation request requested by the client 300 and transmits the result of the table creation processing to the coordinator server 100. Then, the table information is shared with the DBMS engine 220 of other work nodes 200.
  • the DBMS engine 220 includes a metadata storage 221 that stores metadata including table information and status information of a work node.
  • FIG. 3 is a flowchart illustrating a method of extending a work node in a hybrid P2P cluster system according to a first embodiment of the present invention.
  • FIG. 3 an operation of distributing and storing data stored in an existing work node as a new work node is described.
  • the cluster manager 110 monitors the status of the existing work nodes 200, and when a preset work node addition condition is satisfied, the cluster manager 110 informs the manager, and the new work node 200-1, the existing work node by the manager In order to distinguish it from, the description is given by adding "-1" to the reference number related to the existing work node).
  • the administrator performs a request to add a new work node 200-1 to the cluster manager 110, which is input by the manager directly through the input means (not shown) of the cluster manager 110, or a separate manager terminal. Can be done through
  • the cluster manager 110 rejects a new connection request from the client 300 when the new work node addition request information is received from the outside (ST100), and provides an ongoing service through the existing work node 200 without interruption.
  • ST100 new work node addition request information
  • ST200 work node extension mode
  • step ST200 the cluster manager 110 adds a new work node until the number of new work nodes 200-1 to be added is a multiple of “1” greater than the preset copy number K (K+1). For (200-1), only access information is managed.
  • the cluster manager 110 adds new work nodes newly added to the currently connected cluster agents 210. Request to add information for (200-1).
  • the cluster agent 210 of the existing work nodes 200 requests this from the corresponding DBMS engine 220, and the DBMS engines 220 request the client 300 to change the set metadata such as a table creation request.
  • the cluster agent 210 notifies the cluster manager 110 of the coordinator server 100 that information about the new work node 200-1 has been added.
  • the cluster manager 110 updates metadata based on the completion of all metadata change operations, such as changing the current DDL/work node status information.
  • the cluster manager 110 drives the new work node 200-1 and sets the new work node 200-1 to a standby state (ST300 ). That is, the cluster manager 110 remotely copies metadata to the DBMS engine 220-1 of the new work node 200-1, and drives the cluster agent 210-1 of the new work node 200-1.
  • the cluster agent 210-1 of the new work node 200-1 starts the DBMS engine 220-1, and then displays the operation setting completion information indicating that it is ready to participate in the P2P cluster system. To send.
  • the cluster manager 110 transmits load balancing management preparation request information to the cluster agent 210 of the existing work node 200, and receives load distribution management preparation request information from the cluster agent 210.
  • the request service for adding/updating/deleting newly requested data from the client 300 is rejected, and providing a service without interruption to the newly requested data search request, DBMS engine 300
  • the method includes transmitting progress service completion information to the cluster manager 110 informing that it is ready to perform a load balancing operation.
  • the cluster manager 110 updates metadata in response to the result of performing the load balancing operation, and the updated metadata includes new work nodes. Synchronize with all work nodes (ST600).
  • the cluster manager 110 from the cluster agent 210 of the existing work node 200 that moved the data in step ST500 and the cluster agent 210-1 of the new work node 200-1 to which the data was moved. Data segmentation information is received, and metadata is updated based on this.
  • the cluster manager 110 requests metadata update to all work nodes 200 and receives the update result for metadata from each work node 200.
  • the DBMS engine 220 of the existing work node 200 to which the currently connected client 300 exists to divide the data stops receiving the SELECT query request from the client 300 and completes processing for the currently executing SELECT query After that, the metadata is updated, and the moved data is deleted from the corresponding table, and the processing result is transmitted.
  • the DBMS engine 220-1 of the new work node 200-1 stores data moved from the DBMS 220 of the existing work node 200, updates metadata, and displays the results to the cluster manager 110. ).
  • the metadata is reflected data distribution information for all work nodes including the new work node.
  • the cluster manager 110 sets the new work node 200-1 to an operation state, updates the cluster setting information, and configures the new work node 200-1 as a cluster to the client. Service is resumed (ST700).
  • the cluster manager 110 registers the setting information for the new work node 200-1 in the setting information storage unit 120 and sets the operation mode of the current coordinator server 100 to the normal mode to create a new work node. All work nodes, including, are organized into clusters.
  • the cluster manager 110 to the cluster agent 210 of all the work nodes 200 including the new work node 200-1 in order to operate the new work node 200-1 as a member of the hybrid P2P cluster normally.
  • the new work nodes 200-1 operate as normal members, and at the same time, the DBMS engine 300 of all work nodes 200 sets the load distribution mode to the operation mode, and requests all of the clients 300 from the point in time. To receive.
  • 4A to 4C are diagrammatic views of the operation of FIG. 3, and a process in which the original 1 table stored in the work node 1 is dividedly stored in the new work node 1 is illustrated.
  • FIG. 4A in a hybrid P2P cluster system composed of six existing work nodes (1 to 6), when the number of copies is two, the data distribution state of each work node 200 and three (2+1) new work nodes.
  • the configuration in which (1 ⁇ 3) is added is illustrated, and FIG. 4B shows a process in which the original 1 data of the work node 1 is distributed to the newly added new work nodes 1 to 3, and FIG. 4C shows the new operation. The process of copying a replica from node 1 to new work node 2 and new work node 3 is shown.
  • the service for the client is normally performed until the reception of the connection information for the new work node is completed, and after the reception of the connection information for the new work node is completed, the connection to the client connected to the existing work node is performed.
  • it performs load balancing processing for all work nodes including the new work node at the time when all services except the search service are terminated among the services currently in progress in the existing work node. Until the metadata and cluster configuration information are updated, the ongoing search service is continuously performed.
  • the cluster manager 100 collects data distribution status information of the existing work node 200 to perform the load balancing operation (ST510).
  • the cluster manager 110 requests statistical information of the corresponding work node, that is, data loading status information, to the cluster agents 210 of each existing work node 200, and each cluster agent 210 receives the corresponding DBMS engine (
  • the data loading status information of 220) is collected and transmitted to the cluster manager 100.
  • the data loading status information may include a table unit size, the total memory size, the current memory usage, etc. loaded on the corresponding work node 200, and the present invention is not limited thereto. According to the present invention, if necessary, more operation node operation status information can be collected.
  • the cluster manager 110 includes a partition target work node to move data using the data load status information of the existing work nodes 200, a data capacity of the partition decision data, and a storage target work node to store the partition decision data.
  • Data division information to be determined is determined (ST520).
  • the cluster manager 110 calculates the average data capacity by dividing the total data capacity stored in all the existing work nodes 200 by the sum of the number of the existing work nodes 200 and the new work nodes 200-1. By allowing an error of a predetermined value or more relative to the data capacity, the existing work nodes 200 exceeding this can be set as a work node to be divided.
  • the cluster manager 110 performs a series of data distribution processing for moving the partition decision data stored in the partition target work node to the storage target work node based on the data partition information (ST530).
  • the cluster manager 110 performs a data partition request to the cluster agent 210 of the work node 1 to be partitioned, and the cluster agent 210 is transmitted to the DBMS engine 220.
  • the DBMS engine 220 partitions the determined data table and moves it to the storage target work node.
  • the DBMS engine 220 performs a SELECT query on all the data to be moved by using the partitioning information determined for the corresponding table, and temporarily stores all records corresponding to the SELECT result in the temporary target storage node (not shown).
  • the INSERT operation is performed on all records stored in the temporary storage (not shown) of the work node to be partitioned by the storage target work node.
  • the DBMS engine 220 of the corresponding storage target work node automatically creates a replica of data that is inserted into the replica work node of the corresponding work node (ST540).
  • the original 1 of the work node 1 is divided and moved to the new work node 7, and the DBMS engine 220 of the work node 7 automatically generates another new work node 8, 9) Create a replica.
  • FIGS. 6A to 6C are diagrams for explaining a method (ST520) for determining partitioning information in FIG. 5, which divides a specific table in order to distribute data and store it in a plurality of work nodes 200 in the present invention. Different methods are illustrated. 6A to 6C illustrate a case in which the work node to be divided is "6".
  • the data capacity and the storage target work node may be determined by dividing the key value range of the partitioned determined table by the total number of storage target work nodes. For example, data corresponding to a key value of 0 to v1 is stored in work node 1, and data corresponding to a v1 to v2 section is stored in work node 2.
  • the data capacity and the storage target work node can be determined by dividing and setting the key value list corresponding to the number of storage target work nodes in consideration of the number of data corresponding to the key values of the partitioned table. .
  • data corresponding to the key values "abc1”, “bcb1”, and “cde1” is stored in the work node 1
  • data corresponding to "abc2", "bcb2", and "cde2" are stored in the work node 2.
  • the data capacity and the work node to be stored can be determined. For example, data corresponding to a hash value of 0 to v1 is stored in work node 1, and data corresponding to a section of v1 to v2 is stored in work node 2.
  • the cluster manager 110 in response to a load balancing operation for a table partitioned based on a hash, the number of new work nodes, a work target to be partitioned, a work target to be stored, a timestamp, and the like as shown in FIG.
  • timestamp is for synchronizing and managing global time for all work nodes, and the system automatically grants a partition key when data is input.
  • segmentation key is an arrangement of key values included in the work node to be divided, and means a key value used in the division.
  • data of all work nodes must be searched to process a region query for a hash-based partition table in each work node, but all work nodes are searched for data for a specific key value using split log information. It can be done not to search.
  • FIG. 8 is a diagram for explaining a query operation for a specific key value of a hash-based partition table using partition log information shown in FIG. 7.
  • step ST920 in the case of data after the table to be searched is divided, the search query is propagated to the work node corresponding to the remaining value obtained by dividing the hash value by the number of all work nodes including the new work node (ST930).
  • step ST920 when the search target table is data before partitioning, work node information corresponding to the remaining value obtained by dividing the hash value by the number of existing work nodes before adding a new work node is obtained (ST940).
  • step ST950 it is checked whether or not the target node is a partition based on whether or not the partitioning task log for the work node information obtained in step ST940 exists (ST950).
  • step ST950 when the work node obtained in step ST940 is not a target node to be split, the search query is propagated to the obtained work node (ST960).
  • step ST950 if the work node obtained in step ST940 in step ST950 is a target node to be split, it is acquired as job node information to propagate the storage target job node information in the corresponding split job log, and a search query is propagated to the obtained job node. (ST970).
  • the search query can be processed more quickly by propagating the search query only to the work node loaded with the search target data.
  • This operation is applied when a hash-based partitioning method is applied by adding a work node while the hybrid P2P cluster system is running.
  • a hash-based whole table For, it can be implemented to perform data movement and metadata change operations collectively by reflecting the changed number of work nodes.

Abstract

The present invention relates to a technique which performs an operation of adding a new task node while maintaining a service for a client as much as possible in a hybrid P2P distributed cluster system, and automatically performs load balancing processing among task nodes including the new task node in consideration of a data loading state of an existing task node.

Description

하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법A method of extending a work node in a hybrid P2P cluster system
본 발명은 하이브리드 P2P 방식의 분산 클러스터 시스템에서 클라이언트에 대한 서비스를 최대한 유지하면서 신규 작업 노드 추가 작업을 수행함과 더불어, 기존 작업 노드의 데이터 적재상태를 고려하여 신규 작업 노드를 포함한 작업 노드간 부하 분산처리를 자동 수행하는 기술에 관한 것이다.The present invention performs a task of adding a new task node while maintaining the service to a client as much as possible in a hybrid P2P-type distributed cluster system, and considers the data load state of the existing task node and distributes the load between task nodes including the new task node. It relates to a technique to perform automatically.
클러스터 시스템(Cluster system)은 네트워크로 연결된 단일 컴퓨팅들의 집합을 통해 하나의 작업을 공동으로 처리하는 것을 의미한다. 슈퍼컴퓨터가 다수의 CPU를 내부적으로 연결하고, 각각의 CPU들이 공통의 가상 메모리에 접근하도록 제작되어 있다면, 클러스터 시스템은 각각의 연결을 네트워크를 통해 구현한다는 점이 가장 큰 차이점이라고 할 수 있다. A cluster system means collectively processing a single task through a single set of networked computings. If the supercomputer connects multiple CPUs internally and each CPU is designed to access a common virtual memory, the biggest difference is that the cluster system implements each connection through a network.
클러스터 시스템은 일반적인 서버를 이용해 구성할 수 있기 때문에 슈퍼컴퓨터와 비교해서 구축 비용이 적게 든다는 장점이 있다. 사용자의 필요에 따라 시스템을 구축할 수 있으며, 연결된 서버의 수를 늘리는 것으로 쉽게 성능을 향상시킬 수 있는 장점이 있지만, 반면에 단일 시스템에 비해 유지 보수가 힘들고, 시스템의 성능이 네트워크 성능에 많은 영향을 받는다는 단점이 있다.Since the cluster system can be configured using a general server, it has the advantage of being less expensive to build than a supercomputer. The system can be built according to the needs of users, and it has the advantage of easily improving performance by increasing the number of connected servers, but on the other hand, it is difficult to maintain compared to a single system, and the performance of the system greatly affects network performance. It has the disadvantage of receiving it.
이러한 클러스터 시스템은 동종 또는 이종 노드들을 네트워크로 연결하여 시스템을 확장하는 방법으로 클러스터 내의 개별 시스템을 서버 또는 노드라고 한다. 부하 분산 클러스터 시스템은 클라이언트로부터의 요청을 클러스터 내의 다른 노드로 할당하는 역할을 수행하는 부하 분배기와, 요청에 대해 서비스를 제공하는 노드로 구성된다. 부하 분산 클러스터 시스템에서 부하 분배기는 서비스 요청이 있을 경우에 특정한 알고리즘을 바탕으로 적절한 노드를 선발하여 그 요청을 처리하게 된다. 즉, 하나의 작업을 여러 대의 노드가 나누어 처리하는 것이 아니고, 분산 알고리즘에 의해 선택된 노드가 배정받은 작업 전체를 처리한다. 그러므로 병렬 시스템과는 달리 쇄도하는 모든 요청이 여러 대의 노드에 골고루 할당되어 부하가 분산되도록 한다. Such a cluster system is a method of extending a system by connecting homogeneous or heterogeneous nodes with a network, and individual systems in a cluster are called servers or nodes. The load balancing cluster system is composed of a load distributor that serves to allocate requests from clients to other nodes in the cluster, and a node that provides services for requests. In a load balancing cluster system, when a service request is made, the load divider selects an appropriate node based on a specific algorithm and processes the request. In other words, a plurality of nodes do not divide and process a single task, but a node selected by a distribution algorithm processes all assigned tasks. Therefore, unlike a parallel system, all rush requests are evenly allocated to multiple nodes so that the load is distributed.
이러한 부하 분산 클러스터 시스템을 관리하기 위해 크게 마스터-슬레이브 방식과 P2P 방식을 사용한다. 먼저, 마스터-슬레이브 방식의 분산 클러스터 관리 시스템은 클러스터 시스템을 관리하는 마스터 노드와 작업 처리를 담당하는 슬레이브 노드로 구성되고, P2P 방식의 분산 클러스터 관리 시스템은 모든 작업 노드들이 동등한 수준에서 작업 처리 동작을 수행하도록 한다. In order to manage such a load-balanced cluster system, a master-slave method and a P2P method are largely used. First, the master-slave distributed cluster management system is composed of a master node that manages the cluster system and a slave node that handles work processing. In the P2P distributed cluster management system, all work nodes perform work processing operations at an equal level. Do it.
종래의 부하 분산 클러스터 시스템은 분산 환경에서 마스터-슬레이브 방식을 적용하여 작업 처리를 수행하는 슬레이브 노드에서 마스터 노드를 경유하도록 함으로써 처리 성능의 저하를 초래하고, 마스터 노드의 오류 발생시 전체 클러스터를 재구동해야하는 문제점이 있다. In a conventional load-balanced cluster system, a master node is applied to a slave node in a distributed environment by passing a master node through a master node, which causes a decrease in processing performance, and when the master node fails, the entire cluster must be restarted. There is a problem.
또한, 종래의 P2P 방식을 적용한 부하 분산 클러스터 시스템은 클러스터 관리를 위한 작업 수행시 작업 노드들 중에 마스터 노드를 선정하기 위한 추가 작업이 필요하다는 문제점이 있다.In addition, the load balancing cluster system to which the conventional P2P method is applied has a problem in that additional work is required to select a master node among work nodes when performing a task for cluster management.
한편, 최근에는 코디네이터 노드와 다수의 작업 노드로 구성되고, 코디네이터 노드는 작업 노드들을 관리하는 역할만 수행하며 작업은 작업 노드들만의 협업을 통하여 수행하는 하이브리드 P2P의 클러스터 시스템이 제안되고 있다.On the other hand, recently, a hybrid P2P cluster system has been proposed that is composed of a coordinator node and a plurality of work nodes, and the coordinator node performs only a role of managing work nodes and performs work through collaboration of only work nodes.
하이브리드 P2P 방식의 클러스터 시스템은 마스터-슬레이브 시스템과 P2P 방식의 장점을 결합한 구조로서, 클라이언트는 코디네이터 서버로부터 수신된 작업노드와 연결하여 작업 요청을 수행하고, 클라이언트와 연결된 특정 작업노드는 클라이언트로부터 인가되는 동일한 테이블의 데이터를 다수의 타 작업노드에 분산하여 저장한다.The hybrid P2P system cluster system combines the advantages of the master-slave system and the P2P system, and the client connects to the work node received from the coordinator server to perform the work request, and the specific work node connected to the client is applied from the client. The data of the same table is distributed and stored in multiple other work nodes.
그런데, 작업노드에서는 미리 지정된 규칙에 의해 테이블의 데이터를 타 작업노드로 분산 저장되는 바, 일정 기간이 경과하여 저장 용량을 초과하거나 또는 작업노드에 데이터가 불균등하게 저장되는 등의 이유로 작업 노드를 추가하여할 상황이 발생된다. However, in the work node, the data in the table is distributed and stored in another work node according to a predetermined rule, and a work node is added due to a certain period of time exceeding the storage capacity or data being unevenly stored in the work node. The situation to be done occurs.
신규 작업노드를 새롭게 추가하기 위해서는 해당 작업노드를 등록하는 절차를 수행하여야 하며, 서비스 안정성을 위해 클러스터 시스템을 일시 중단하고 이러한 설정 처리를 수행하는 것이 일반적이다.In order to add a new work node, it is necessary to perform the procedure of registering the work node, and it is common to temporarily suspend the cluster system and perform such configuration processing for service stability.
그러나, 클라이언트에 대한 서비스 품질을 위해서는 클러스터 시스템을 최대한 중단하지 않으면서 신규 작업노드를 확장하는 방안이 요구되는 실정이다.However, in order to provide quality of service to clients, a method of expanding a new work node without stopping the cluster system as much as possible is required.
이에, 본 발명은 상기한 사정을 감안하여 창출된 것으로, 본 발명은 하이브리드 P2P 방식의 분산 클러스터 시스템에서 클라이언트에 대한 서비스를 유지하면서 신규 작업 노드를 추가할 수 있는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법을 제공함에 그 기술적 목적이 있다.Accordingly, the present invention was created in view of the above-described circumstances, and the present invention is a hybrid P2P-type cluster system capable of adding new work nodes while maintaining service to a client in a hybrid P2P-type distributed cluster system. The technical purpose is to provide a method for extending a node.
또한, 본 발명은 기존 작업 노드의 데이터 적재 상태를 고려하여 신규 작업노드를 포함한 작업 노드들간의 부하 분산 작업을 자동으로 수행한 후, 신규 작업노드를 포함한 클러스터 시스템을 정상 가동하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법을 제공함에 또 다른 기술적 목적이 있다. In addition, the present invention is a hybrid P2P cluster that automatically performs a load balancing operation between work nodes including a new work node in consideration of the data load state of an existing work node, and then normally operates the cluster system including the new work node. Another technical purpose is to provide a method for extending a work node in a system.
상기 목적을 달성하기 위한 본 발명의 일측면에 따르면, 다수의 작업 노드와 작업 노드들을 관리하는 코디네이터 서버로 클러스터를 구성하여 클라이언트에서 요청한 작업을 분산 환경에서 동시에 처리하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법에 있어서, 상기 코디네이터 서버에서 외부로부터 신규 작업노드 추가 요청정보가 수신되면, 클라이언트로부터의 새로운 연결 요청은 거절하고, 기존 작업노드에 연결된 클라이언트에 대해 진행중인 서비스는 중단 없이 제공하도록 함과 더불어, 신규 작업노드 접속 정보를 반영하여 메타데이터를 갱신하는 제1 단계와, 코디네이터 서버는 신규 작업노드로 제1 단계에서 갱신된 메타 데이터를 원격 복사하고, 신규 작업노드를 구동시킴과 더불어 신규 작업노드의 상태를 대기 상태로 설정하는 제2 단계, 코디네이터 서버는 모든 기존 작업노드로부터 현재 연결중인 클라이언트에 대해 검색 서비스를 제외한 다른 진행중인 서비스가 모두 완료된 것으로 확인되면, 신규 작업노드를 포함한 모든 작업노드들 사이의 부하 분산 작업을 수행하는 제3 단계, 코디네이터 서버는 부하 분산 작업 결과에 대응하여 메타데이터를 갱신하고, 갱신된 메타데이터를 신규 작업노드를 포함한 모든 작업노드들과 동기화하는 제4 단계 및, 코디네이터 서버는 신규 작업노드를 포함한 모든 작업노드에 대해 신규 작업노드의 상태정보를 동작상태로 변경하여 신규 작업노드를 포함한 모든 작업노드를 클러스터로 동작시키고, 클라이언트에 대한 서비스를 재개하는 제5 단계를 포함하여 구성되는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다.According to an aspect of the present invention for achieving the above object, in a hybrid P2P cluster system that configures a cluster with a plurality of work nodes and a coordinator server that manages the work nodes to simultaneously process the work requested by the client in a distributed environment. In the method of extending a work node, when the request information for adding a new work node is received from the coordinator server from the outside, a new connection request from the client is rejected, and an ongoing service is provided to the client connected to the existing work node without interruption. In addition, the first step of updating the metadata by reflecting the new work node access information, and the coordinator server remotely copies the metadata updated in the first step to the new work node, and drives the new work node, as well as the new work. In the second step of setting the state of the node to a standby state, if the coordinator server determines that all other ongoing services except the search service are completed for the client currently connected from all existing work nodes, all work nodes including the new work node. A third step of performing a load balancing operation between the coordinator server and updating the metadata in response to the load balancing operation result, and a fourth step of synchronizing the updated metadata with all work nodes including the new work node, and The coordinator server changes the status information of the new work node to an operation state for all work nodes including the new work node, operates all work nodes including the new work node as a cluster, and restarts the service for the client. Provided is a method for extending a work node in a hybrid P2P system cluster system, characterized in that it is configured to include.
또한, 상기 제3 단계에서 기존 작업노드들은 현재 연결된 클라이언트로부터 새롭게 요구되는 데이터의 추가/갱신/삭제 요청 서비스는 거절하고, 새롭게 요구되는 데이터 검색 요청에 대해서는 중단 없이 서비스를 제공하는 단계와, 현재 수행중인 데이터에 대한 추가/갱신/삭제 요청 서비스가 완료되는 경우, 코디네이터 서버로 분산 작업을 수행할 준비가 되었음을 알리는 진행 서비스 완료정보를 전송하는 단계를 포함하여 구성되는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다.In addition, in the third step, the existing work nodes reject the service for requesting to add/update/delete newly requested data from the currently connected client, and provide the service without interruption to the newly requested data retrieval request. A hybrid P2P cluster comprising a step of transmitting completion service completion information indicating that the data is being added/updated/deleted for the data being processed is ready to perform a distributed operation to the coordinator server. A method of extending a work node in a system is provided.
또한, 상기 기존 작업노드들은 기 설정된 개수에 대응되는 복제본을 생성하여 서로 다른 타 작업노드에 저장하도록 구성되고, 상기 제1 단계에서 코디네이터 서버는 신규 작업노드의 개수가 기 설정된 복사본 개수(K)보다 "1" 큰 개수(K+1)의 배수가 될 때까지 작업노드의 접속 정보만을 관리하는 단계와, (K+1)의 배수 개에 해당하는 신규 작업 노드 정보의 추가가 완료되면 클라이언트로부터의 새로운 연결 요청은 거절하고, 기존 작업노드로 현재 연결되어 있는 클라이언트에 대한 서비스는 중단 없이 제공하도록 요청하는 단계를 포함하여 구성되는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다. In addition, the existing work nodes are configured to create a copy corresponding to a preset number and store them in different work nodes, and in the first step, the coordinator server has a number of new work nodes than the preset number of copies (K). The step of managing only the access information of the work node until the number of "1" is a multiple of a large number (K+1), and adding the new work node information corresponding to the multiple of (K+1) is completed from the client. Provided is a method for extending a work node in a hybrid P2P cluster system comprising rejecting a new connection request and requesting to provide a service for a client currently connected to an existing work node without interruption. do.
또한, 상기 제3 단계는 코디네이터 서버에서 기존 작업노드들의 테이블 단위 크기와, 전체 메모리 크기 및 현재 메모리 사용량을 포함하는 데이터 적재 상태정보를 수집하는 단계와, 기존 작업노드별 데이터 적재 상태정보를 근거로 데이터를 이동시킬 분할 대상 작업노드와, 분할 결정 데이터의 데이터 용량 및, 분할 결정 데이터를 저장할 저장 대상 작업노드를 포함하는 데이터 분할 정보를 결정하는 단계, 결정된 데이터 분할 정보에 기반하여 작업노드간 데이터를 이동시키는 단계를 포함하여 구성되는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다.In addition, the third step is a step of collecting data loading status information including the table unit size of the existing work nodes, the total memory size and the current memory usage by the coordinator server, and based on the data loading status information for each existing work node. Determining data partitioning information including a work target to be partitioned to move data, a data capacity of the partitioning decision data, and a storage target worknode to store the partitioning decision data, based on the determined data partitioning information Provided is a method of extending a work node in a hybrid P2P system cluster system, characterized in that it comprises a step of moving.
또한, 상기 제4 단계에서 상기 신규 작업노드는 자신에게 이동 저장된 데이터를 복제하여 서로 다른 타 신규 작업노드에 각각 저장하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다.In addition, in the fourth step, a method for extending a work node in a hybrid P2P cluster system is provided, characterized in that the new work node duplicates data stored in the mobile and stores it in another new work node.
또한, 상기 데이터 분할정보를 결정하는 단계는, 코디네이터 서버에서 모든 기존 작업노드에 저장된 전체 데이터 용량을 기존 작업 노드와 신규 작업노드의 개수의 합으로 나누어 평균 데이터 용량을 산출하고, 평균 데이터 용량 대비 일정값 이상의 오차를 허용하여 이를 초과하는 기존 작업 노드들을 분할 대상 작업노드로 설정하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다.In addition, the step of determining the data partitioning information is calculated by dividing the total data capacity stored in all existing work nodes by the coordinator server by the sum of the number of existing work nodes and new work nodes, and calculating an average data capacity. A method of extending a work node in a hybrid P2P cluster system is provided, characterized in that an error of a value or more is allowed and existing work nodes exceeding this are set as a work node to be divided.
또한, 상기 데이터 분할 정보를 결정하는 단계는, 분할 결정된 테이블의 키값 범위를 저장 대상 작업노드의 총 개수로 분할하여 데이터 용량 및 저장 대상 작업노드를 결정하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다.Further, in the determining of the data partitioning information, in the hybrid P2P cluster system, the data capacity and the storage target work node are determined by dividing the key value range of the partitioned determined table into the total number of work nodes to be stored. A method of extending a working node is provided.
또한, 상기 데이터 분할 정보를 결정하는 단계는, 분할 결정된 테이블의 키값에 해당하는 데이터 개수를 고려하여 키값 목록을 저장 대상 작업노드의 개수에 대응되게 분할 설정함으로써, 데이터 용량 및 저장 대상 작업노드를 결정하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다.Further, in the determining of the data partitioning information, the data capacity and the storage target work node are determined by dividing and setting the key value list corresponding to the number of work targets to be stored in consideration of the number of data corresponding to the key values of the partitioned table. Provided is a method for extending a work node in a hybrid P2P cluster system, characterized in that.
또한, 상기 데이터 분할 정보를 결정하는 단계는, 분할 결정된 테이블의 키값을 해쉬 함수에 적용하여 산출되는 해쉬값의 범위를 저장 대상 작업노드 개수로 나눔으로써, 데이터 용량 및 저장 대상 작업노드를 결정하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다.Further, in the determining of the data partitioning information, determining a data capacity and a storage target work node by dividing the range of the hash value calculated by applying the key value of the partitioned table to the hash function by the number of work nodes to be stored. A method of extending a work node in a hybrid P2P system cluster system is provided.
또한, 상기 제4 단계에서 코디네이터 서버는 부하 분산 작업에 대응하여 신규 작업노드 개수, 분할 대상 작업노드번호, 저장 대상 작업노드번호를 포함하는 데이터 분할 로그정보를 생성하여 메타데이터로 관리하여 작업노드들과 동기화하고, 상기 작업노드는 클라이언트로부터의 특정 키값을 포함하는 데이터 검색 질의에 대하여 해당 키값에 대응되는 검색 질의 테이블의 데이터 분할 로그정보를 확인하여 검색 대상 데이터가 분할 이전 데이터인 경우, 해쉬값을 신규 작업 노드를 추가하기 이전의 기존 작업노드 개수로 나눈 나머지값에 대응되는 검색 대상 작업노드번호를 획득하고, 획득된 검색 대상 작업노드번호가 분할 대상 노드번호이면, 상기 데이터 분할 로그 정보의 저장 대상 작업노드번호에 해당하는 작업노드로 데이터 검색 질의를 전파하여 클라이언트의 요청에 대응되는 서비스를 제공하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다.In addition, in the fourth step, the coordinator server generates data division log information including the number of new operation nodes, the operation node number to be divided, and the operation node number to be stored in response to the load balancing operation, and manages the metadata as work nodes. Synchronize with, and the work node checks the data partitioning log information of the search query table corresponding to the key value for the data search query including the specific key value from the client, and if the search target data is the data before the partition, the hash value If a search target work node number corresponding to the remaining value divided by the number of existing work nodes prior to adding a new work node is acquired, and the obtained search target work node number is a target node number to be divided, the target of storing the data split log information Provided is a method for extending a work node in a hybrid P2P cluster system, characterized in that a data search query is propagated to a work node corresponding to a work node number to provide a service corresponding to a client request.
본 발명에 의하면, 현재 운용 중인 시스템을 중지하지 않고 클라이언트에 대한 서비스를 최대한 제공함과 동시에, 새로 추가되는 신규 작업노드를 자동으로 인식하여 작업노드 확장처리를 수행할 수 있다. According to the present invention, it is possible to perform a task node extension process by automatically recognizing a new task node that is newly added, while providing the service to the client as much as possible without stopping the currently operating system.
또한, 본 발명에 의하면, 기존 작업노드에 저장된 데이터를 타 작업노드로 분산시켜 특정 작업노드에 발생되는 과부하를 방지함으로써, 클러스터를 보다 효율적으로 운영할 수 있다. Further, according to the present invention, the data stored in the existing work node is distributed to other work nodes to prevent overload generated in a specific work node, so that the cluster can be operated more efficiently.
도1은 본 발명이 적용되는 하이브리드 P2P 방식의 클러스터 시스템의 개략적인 구성을 예시한 도면.1 is a diagram illustrating a schematic configuration of a hybrid P2P system cluster system to which the present invention is applied.
도2는 도1에 도시된 코디네이터 서버(100)와 작업노드(200)의 구성을 설명하기 위한 도면.2 is a view for explaining the configuration of the coordinator server 100 and the work node 200 shown in FIG.
도3은 본 발명의 제1 실시예에 따른 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법을 설명하는 순서도.3 is a flowchart illustrating a method for extending a work node in a hybrid P2P cluster system according to a first embodiment of the present invention.
도4a 내지 도4c는 도3의 동작을 도식화하여 나타낸 것으로, 작업노드1에 저장된 원본1 테이블이 신규 작업노드 1에 분할 저장되는 과정을 나타낸 도면.4A to 4C are views schematically showing the operation of FIG. 3 and showing a process in which the original 1 table stored in the work node 1 is dividedly stored in the new work node 1.
도5는 도3의 부하 분산 작업(ST500)에 대하여 보다 상세히 설명하기 위한 도면.5 is a view for explaining in more detail the load balancing operation (ST500) of FIG.
도6a 내지 도6c는 도5에서 분할 정보를 결정하는 방법(ST520)을 설명하기 위한 도면.6A to 6C are diagrams for explaining a method (ST520) for determining segmentation information in FIG. 5;
도7은 도3의 부하 분산 작업(ST500)에 대해 메타 데이터로 관리되는 데이터 분할 로그정보를 예시한 도면.FIG. 7 is a diagram illustrating data split log information managed as metadata for the load balancing operation ST500 of FIG. 3.
도8은 도7에 도시된 분할 로그정보를 이용한 해쉬 기반 분할 테이블의 특정 키값에 대한 질의 동작을 설명하기 위한 도면.FIG. 8 is a diagram for explaining a query operation for a specific key value of a hash-based partition table using partition log information shown in FIG. 7.
본 발명에 기재된 실시예 및 도면에 도시된 구성은 본 발명의 바람직한 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 표현하는 것은 아니므로, 본 발명의 권리범위는 본문에 설명된 실시예 및 도면에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The configurations shown in the embodiments and drawings described in the present invention are only preferred embodiments of the present invention, and do not represent all of the technical spirit of the present invention, so the scope of the present invention is the embodiments and drawings described in the text It should not be construed as limited by. That is, since the embodiments can be variously changed and have various forms, it should be understood that the scope of the present invention includes equivalents capable of realizing technical ideas. In addition, the purpose or effect presented in the present invention does not mean that a specific embodiment should include all of them or only such an effect, and the scope of the present invention should not be understood as being limited thereby.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as generally understood by a person skilled in the art to which the present invention pertains, unless otherwise defined. The terms defined in the commonly used dictionary should be interpreted to be consistent with meanings in the context of related technologies, and cannot be interpreted as having ideal or excessively formal meanings that are not explicitly defined in the present invention.
도1은 본 발명이 적용되는 하이브리드 P2P 방식의 클러스터 시스템의 개략적인 구성을 예시한 도면이다. 1 is a diagram illustrating a schematic configuration of a hybrid P2P system cluster system to which the present invention is applied.
도1을 참조하면, 본 발명이 적용되는 하이브리드 P2P 방식의 클러스터 시스템은 클라이언트(300)에서 요청한 작업을 분산 환경에서 동시에 처리하기 위해 코디네이터 서버(100)와, 다수의 작업노드(200)로 클러스터를 구성한다. 이때, 코디네이터 서버(100)는 복제본 서버를 추가하여 구성될 수 있다. 그리고, 상기 클라이언트(300)는 하나만 도시되어 있으나, 다수의 클라이언트(300)로 이루어질 수 있다.Referring to FIG. 1, a hybrid P2P system cluster system to which the present invention is applied is configured to cluster a cluster with a coordinator server 100 and a plurality of work nodes 200 to simultaneously process tasks requested by a client 300 in a distributed environment. Make up. At this time, the coordinator server 100 may be configured by adding a replica server. In addition, although only one client 300 is shown, it may be composed of a plurality of clients 300.
상기 코디네이터 서버(100)는 작업노드(200)들을 관리하고, 클러스터 운용 프로세스를 진행하여 각 작업노드(200)의 메타데이터들을 동기화하여 작업 노드(200)들을 관리한다. The coordinator server 100 manages the work nodes 200 and manages the work nodes 200 by synchronizing metadata of each work node 200 through a cluster operation process.
상기 작업노드(200)는 로컬 시스템에 저장되어 있는 메타데이터를 이용하여 클라이언트(300)에서 요청한 작업을 분산하여 처리한다.The work node 200 distributes and processes the work requested by the client 300 using metadata stored in the local system.
즉, 하이브리드 P2P 방식의 클러스터 시스템은 클라이언트(300)에서 코디네이터 서버(100)로 연결 요청을 수행하고, 코디네이터 서버(100)는 다수의 작업노드(200)의 정보들을 이용하여 연결할 작업노드(200)를 결정하여 클라이언트(300)로 제공한다. 클라이언트(300)는 코디네이터 서버(100)로부터 수신된 작업노드(200)와 연결하여 작업 요청을 수행하고, 클라이언트(300)와 연결된 특정 작업노드(200)는 클라이언트(300)로부터 인가되는 동일한 테이블의 데이터를 다수의 타 작업노드(200)에 분산하여 저장 관리한다. That is, the hybrid P2P type cluster system performs a connection request from the client 300 to the coordinator server 100, and the coordinator server 100 uses the information of a plurality of work nodes 200 to connect to the work node 200. Is determined and provided to the client 300. The client 300 connects to the work node 200 received from the coordinator server 100 to perform a work request, and the specific work node 200 connected to the client 300 is of the same table applied from the client 300 Data is distributed and managed in a number of other work nodes 200.
이때, 임의 작업 노드(200)에 데이터가 집중적으로 저장되는 현상이 발생하할 수 있으며, 본 발명에서는 신규 작업노드를 새롭게 추가하여 클러스터를 운영할 수 있다.At this time, a phenomenon in which data is intensively stored in an arbitrary work node 200 may occur, and in the present invention, a new work node may be newly added to operate a cluster.
도2는 도1에 도시된 코디네이터 서버(100)와 작업노드(200)의 구성을 설명하기 위한 도면이다. FIG. 2 is a view for explaining the configuration of the coordinator server 100 and the work node 200 shown in FIG. 1.
도2를 참고하면, 코디네이터 서버(100)는 클러스터 관리자(110)와 설정정보 저장부(120) 및 DBMS 엔진(130)을 포함하고, DBMS 엔진(130)은 메타 데이터 테이블(131)을 구비한다.Referring to FIG. 2, the coordinator server 100 includes a cluster manager 110, a setting information storage unit 120, and a DBMS engine 130, and the DBMS engine 130 includes a metadata table 131. .
클러스터 관리자(110)는 로컬 시스템의 DBMS 엔진(130)을 구동하고 클러스터 설정정보를 이용하여 작업노드(200)들의 연결 정보를 획득하여 클러스터 설정정보를 작업노드(200)들에 복사함과 더불어, 원격으로 작업노드(200)들을 구동한다. 이때, 클러스터 관리자(110)는 작업노드(200)의 클러스터 에이전트(210)를 가동하고, 클러스터 에이전트(210)의 구동과 동시에 로컬 시스템의 DBMS 엔진(300)이 구동됨으로써, 작업노드(200)는 서비스를 제공할 수 있는 동작상태가 된다. 이 상황에서 작업노드의 DBMS 엔진(220)은 다른 작업노드(200)의 DBMS 엔진(220)과 P2P 방식으로 작업을 처리하게 된다. The cluster manager 110 drives the DBMS engine 130 of the local system and obtains connection information of the work nodes 200 using the cluster setting information, and copies the cluster setting information to the work nodes 200, Remotely drive the work nodes (200). At this time, the cluster manager 110 starts the cluster agent 210 of the work node 200, and the DBMS engine 300 of the local system is driven simultaneously with the operation of the cluster agent 210, so that the work node 200 is It becomes an operation state capable of providing a service. In this situation, the DBMS engine 220 of the work node processes the work in a P2P manner with the DBMS engine 220 of the other work node 200.
또한, 클러스터 관리자(110)는 작업노드(200)에 클러스터 설정 파일을 전송하고, 클러스터 구성 변경시 클러스터 설정 파일을 수정하여 클러스터 중지 후 재가동시 모든 작업노드(200)에 자동으로 배포한다. 그리고, 클러스터 관리자(110)는 클라이언트(300)의 요청에 따라 작업노드(200)와의 연결 또는 연결 해제 기능을 수행하고, 작업노드(200)와 메타데이터를 동기화하여 공유한다. In addition, the cluster manager 110 transmits the cluster configuration file to the work node 200, and when the cluster configuration is changed, the cluster configuration file is modified to automatically distribute to all the work nodes 200 when the cluster is stopped and restarted. Then, the cluster manager 110 performs a connection or disconnection function with the work node 200 at the request of the client 300, and synchronizes and shares metadata with the work node 200.
또한, 클러스터 관리자(110)는 작업노드(200)들의 데이터 분산 정보를 파악하여 필요한 경우 새로운 작업노드(200)에 대한 확장 작업을 수행하고, 확장된 신규 작업노드를 이용하여 부하분산 작업을 수행한다. In addition, the cluster manager 110 grasps data distribution information of the work nodes 200 and, if necessary, performs an expansion task for the new work node 200 and performs a load balancing task using the expanded new work node. .
설정정보 저장부(120)는 코디네이터 서버 접속정보와, 작업노드들의 접속정보, 복제본 개수를 포함한 클러스터 설정정보가 저장된다.The configuration information storage unit 120 stores coordinator server connection information, connection information of work nodes, and cluster configuration information including the number of copies.
DBMS 엔진(130)은 작업 노드의 상태 정보를 포함한 로컬 시스템에서의 정보만을 이용하여 P2P 방식으로 사용자 요청 작업을 처리하기 위한 메타데이터를 관리한다. The DBMS engine 130 manages metadata for processing a user request operation in a peer-to-peer manner using only information from a local system including status information of a work node.
한편, 작업노드(200)는 클러스터 에이전트(210)와 DBMS 엔진(220)을 포함한다.Meanwhile, the work node 200 includes the cluster agent 210 and the DBMS engine 220.
클러스터 에이전트(210)는 로컬 시스템의 DBMS 엔진(220)을 구동함과 더불어, 클러스터 관리자(110)와 하트비트(Heartbeat) 프로토콜을 이용하여 작업노드(200)의 상태 정보를 체크한 후 상태 정보를 메타데이터에 실시간 반영한다. The cluster agent 210 drives the DBMS engine 220 of the local system, checks the status information of the work node 200 using the cluster manager 110 and the heartbeat protocol, and then displays the status information. Real-time reflection in metadata.
DBMS 엔진(220)은 클라이언트(300)에서 요청한 테이블 생성 요청에 대해 테이블 정보를 생성하고, 이에 대한 테이블 생성 처리 결과를 코디네이터 서버(100)에 전송한다. 그리고, 다른 작업노드(200)들의 DBMS 엔진(220)과 테이블 정보를 공유한다. The DBMS engine 220 generates table information for the table creation request requested by the client 300 and transmits the result of the table creation processing to the coordinator server 100. Then, the table information is shared with the DBMS engine 220 of other work nodes 200.
또한, DBMS 엔진(220)은 테이블 정보와 작업 노드의 상태 정보를 포함한 메타데이터를 저장하는 메타데이터 저장소(221)를 구비한다.In addition, the DBMS engine 220 includes a metadata storage 221 that stores metadata including table information and status information of a work node.
이하에서는 도1 및 도2에 도시된 하이브리드 P2P 방식의 클러스터 시스템을 이용하여 본 발명에 따른 작업 노드 확장 방법을 설명한다. Hereinafter, a method for extending a work node according to the present invention will be described using the hybrid P2P type cluster system illustrated in FIGS. 1 and 2.
도3은 본 발명의 제1 실시예에 따른 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법을 설명하는 순서도이다. 도3에서는 기존 작업노드에 저장된 데이터를 신규 작업노드로 분산 저장하는 동작이 설명되어 있다. 3 is a flowchart illustrating a method of extending a work node in a hybrid P2P cluster system according to a first embodiment of the present invention. In FIG. 3, an operation of distributing and storing data stored in an existing work node as a new work node is described.
먼저, 클러스터 관리자(110)는 기존 작업 노드(200)들의 상태를 감시하여 기 설정된 작업 노드 추가 조건을 만족하는 경우, 이를 관리자에게 안내하고, 관리자에 의해 신규 작업노드(200-1, 기존 작업노드와 구분하기 위해 기존 작업노드 관련 참조번호에 "-1"을 부여하여 설명함)가 추가 설치된다. 이때, 관리자는 클러스터 관리자(110)로 신규 작업노드(200-1) 추가 요청을 수행하는데, 이는 관리자가 클러스터 관리자(110)의 입력수단(미도시)을 통해 직접 입력하거나, 또는 별도의 관리자 단말을 통해 이루어질 수 있다.First, the cluster manager 110 monitors the status of the existing work nodes 200, and when a preset work node addition condition is satisfied, the cluster manager 110 informs the manager, and the new work node 200-1, the existing work node by the manager In order to distinguish it from, the description is given by adding "-1" to the reference number related to the existing work node). At this time, the administrator performs a request to add a new work node 200-1 to the cluster manager 110, which is input by the manager directly through the input means (not shown) of the cluster manager 110, or a separate manager terminal. Can be done through
클러스터 관리자(110)는 외부로부터 신규 작업노드 추가 요청정보가 수신되면(ST100), 클라이언트(300)로부터의 새로운 연결 요청은 거절하고, 기존 작업노드(200)를 통해 현재 진행중인 서비스는 중단 없이 제공하도록 하는 작업노드 확장모드로 설정한다(ST200).The cluster manager 110 rejects a new connection request from the client 300 when the new work node addition request information is received from the outside (ST100), and provides an ongoing service through the existing work node 200 without interruption. Set to the work node extension mode (ST200).
상기 ST200 단계는 클러스터 관리자(110)는 추가되는 신규 작업노드(200-1)의 개수가 기 설정된 복사본 개수(K)보다 "1" 큰 수(K+1)의 배수 개가 될 때까지 신규 작업노드(200-1)에 대해서는 접속 정보만을 관리한다. In step ST200, the cluster manager 110 adds a new work node until the number of new work nodes 200-1 to be added is a multiple of “1” greater than the preset copy number K (K+1). For (200-1), only access information is managed.
또한, 클러스터 관리자(110)는 신규 작업노드의 개수가 (K+1)의 배수 개까지 신규 작업 노드 정보의 추가가 완료되면, 현재 연결되어 있는 클러스터 에이전트(210)들에게 새로 추가된 신규 작업노드(200-1)에 대한 정보를 추가하도록 요청한다. 이때, 기존 작업노드(200)들의 클러스터 에이전트(210)는 해당 DBMS 엔진(220)에게 이를 요청하고, DBMS 엔진(220)들은 테이블 생성 요청 등 기 설정된 메타데이터에 변경을 주는 클라이언트(300)의 요청에 대해서는 거절하고, 신규 작업노드(200-1) 정보만 메타데이터에 추가한다. 그리고, 클러스터 에이전트(210)는 코디네이터 서버(100)의 클러스터 관리자(110)에게 신규 작업노드(200-1)에 대한 정보를 추가하였음을 알린다. 클러스터 관리자(110)는 현재 작업중인 DDL/작업노드 상태정보 변경 등 메타데이터 변경 작업이 모두 완료되면, 이를 근거로 메타데이터를 갱신한다. In addition, when the number of new work nodes is added to the number of (K+1) new work node information, the cluster manager 110 adds new work nodes newly added to the currently connected cluster agents 210. Request to add information for (200-1). At this time, the cluster agent 210 of the existing work nodes 200 requests this from the corresponding DBMS engine 220, and the DBMS engines 220 request the client 300 to change the set metadata such as a table creation request. In the case of rejection, only the new work node 200-1 information is added to the metadata. Then, the cluster agent 210 notifies the cluster manager 110 of the coordinator server 100 that information about the new work node 200-1 has been added. The cluster manager 110 updates metadata based on the completion of all metadata change operations, such as changing the current DDL/work node status information.
이어, 클러스터 관리자(110)는 신규 작업노드(200-1)를 구동시킴과 더불어, 신규 작업노드(200-1)를 대기 상태로 설정한다(ST300). 즉, 클러스터 관리자(110)는 신규 작업노드(200-1)의 DBMS 엔진(220-1)으로 메타데이터를 원격 복사하고, 신규 작업노드(200-1)의 클러스터 에이전트(210-1)를 구동시키며, 신규 작업노드(200-1)의 클러스터 에이전트(210-1)는 DBMS 엔진(220-1)을 구동한 후, P2P 클러스터 시스템에 참여할 준비가 되었음을 알리는 구동설정 완료정보를 클러스터 관리자(110)에게 전송한다.Subsequently, the cluster manager 110 drives the new work node 200-1 and sets the new work node 200-1 to a standby state (ST300 ). That is, the cluster manager 110 remotely copies metadata to the DBMS engine 220-1 of the new work node 200-1, and drives the cluster agent 210-1 of the new work node 200-1. The cluster agent 210-1 of the new work node 200-1 starts the DBMS engine 220-1, and then displays the operation setting completion information indicating that it is ready to participate in the P2P cluster system. To send.
이어, 클러스터 관리자(110)는 모든 기존 작업노드(200)로부터 현재 수행중인 검색 서비스를 제외한 현재 진행 중인 서비스가 완료된 것으로 확인되면(ST400), 신규 작업노드(200-1)를 포함한 모든 작업노드들 사이의 부하 분산 작업을 수행한다(ST500).Subsequently, if it is confirmed that the current ongoing service is completed from all the existing work nodes 200 except for the search service currently being performed (ST400), all the work nodes including the new work node 200-1. Perform load balancing operation between (ST500).
즉, 상기 ST400 단계는 클러스터 관리자(110)가 기존 작업 노드(200)의 클러스터 에이전트(210)로 부하분산 관리준비 요청정보를 전송하는 단계와, 클러스터 에이전트(210)로부터 부하분산 관리준비 요청정보를 수신한 DBMS 엔진(300)에서 클라이언트(300)로부터 새롭게 요구되는 데이터의 추가/갱신/삭제 요청 서비스는 거절하고, 새롭게 요구되는 데이터 검색 요청에 대해서는 중단 없이 서비스를 제공하는 단계, DBMS 엔진(300)에서 현재 수행중인 데이터에 대한 추가/갱신/삭제 요청 서비스가 완료되면 클러스터 관리자(110)로 부하 분산 작업을 수행할 준비가 되었음을 알리는 진행 서비스 완료정보를 전송하는 단계를 포함한다.That is, in the ST400 step, the cluster manager 110 transmits load balancing management preparation request information to the cluster agent 210 of the existing work node 200, and receives load distribution management preparation request information from the cluster agent 210. In the received DBMS engine 300, the request service for adding/updating/deleting newly requested data from the client 300 is rejected, and providing a service without interruption to the newly requested data search request, DBMS engine 300 When the service for requesting to add/update/delete data currently being performed is completed, the method includes transmitting progress service completion information to the cluster manager 110 informing that it is ready to perform a load balancing operation.
한편, 상기 ST500 단계의 부하 분산 작업에 대해서는 이하에서 도3 내지 도6을 참조하여 상세히 설명한다.Meanwhile, the load balancing operation of the ST500 step will be described in detail with reference to FIGS. 3 to 6 below.
이어, 클러스터 관리자(110)는 상기 ST500 단계에서 모든 작업노드들에 대한 부하 부하 분산 작업이 완료되면, 부하 분산 작업 수행 결과에 대응하여 메타데이터를 갱신하고, 갱신된 메타데이터를 신규 작업노드를 포함한 모든 작업노드들과 동기화한다(ST600). Subsequently, when the load load balancing operation for all the work nodes is completed in step ST500, the cluster manager 110 updates metadata in response to the result of performing the load balancing operation, and the updated metadata includes new work nodes. Synchronize with all work nodes (ST600).
즉, 클러스터 관리자(110)는 상기 ST500 단계에서 데이터를 이동시킨 기존 작업노드(200)의 클러스터 에이전트(210) 및 데이터가 이동된 신규 작업노드(200-1)의 클러스터 에이전트(210-1)로부터 데이터 분할 정보를 수신하고, 이를 근거로 메타데이터를 갱신한다.That is, the cluster manager 110 from the cluster agent 210 of the existing work node 200 that moved the data in step ST500 and the cluster agent 210-1 of the new work node 200-1 to which the data was moved. Data segmentation information is received, and metadata is updated based on this.
그리고, 클러스터 관리자(110)는 모든 작업노드(200)로 메타데이터 갱신을 요청하고, 각 작업노드(200)로부터 메타데이터에 대한 갱신결과를 수신한다.Then, the cluster manager 110 requests metadata update to all work nodes 200 and receives the update result for metadata from each work node 200.
이때, 현재 연결된 클라이언트(300)가 존재하는 데이터 분할 대상 기존 작업노드(200)의 DBMS 엔진(220)은 클라이언트(300)로부터의 SELECT 질의 요청 수신을 중단하고 현재 수행중인 SELECT 질의에 해서는 처리를 완료한 후, 메타데이터를 갱신함과 더불어, 이동한 데이터를 해당 테이블에서 삭제하고, 그 처리 결과를 전달한다. At this time, the DBMS engine 220 of the existing work node 200 to which the currently connected client 300 exists to divide the data stops receiving the SELECT query request from the client 300 and completes processing for the currently executing SELECT query After that, the metadata is updated, and the moved data is deleted from the corresponding table, and the processing result is transmitted.
또한, 기존 작업노드(200) 중 데이터 이동을 수행하지 않은 작업노드의 경우에도 메타데이터를 갱신하고 그 결과를 클러스터 관리자(110)에 전달한다. In addition, in the case of a work node that does not perform data movement among the existing work nodes 200, metadata is updated and the result is transmitted to the cluster manager 110.
그리고, 신규 작업노드(200-1)의 DBMS 엔진(220-1)은 기존 작업노드(200)의 DBMS(220)로부터 이동된 데이터를 저장함과 더불어, 메타데이터를 갱신하고 결과를 클러스터 관리자(110)에게 전달한다. Then, the DBMS engine 220-1 of the new work node 200-1 stores data moved from the DBMS 220 of the existing work node 200, updates metadata, and displays the results to the cluster manager 110. ).
이와 같이, 본 발명에서는 부하 분산 작업을 진행중에도 새로운 데이터에 대한 추가 작업은 중단하지만 데이터 검색 요청에 대해서는 최대한 중단 없이 서비스를 제공할 수 있다. As described above, in the present invention, while the load balancing operation is in progress, the additional operation for the new data is stopped, but the service for requesting data retrieval can be provided without interruption.
상기 작업을 수행하면 메타데이터는 신규 작업 노드를 포함하는 모든 작업노드에 대한 데이터 분산 정보가 반영되어 있게 된다.When the above operation is performed, the metadata is reflected data distribution information for all work nodes including the new work node.
상기한 상태에서, 클러스터 관리자(110)는 신규 작업노드(200-1)를 동작 상태로 설정함과 더불어, 클러스터 설정정보를 갱신하고, 신규 작업노드(200-1)를 클러스터로 구성하여 클라이언트에 대한 서비스를 재개한다(ST700).In the above state, the cluster manager 110 sets the new work node 200-1 to an operation state, updates the cluster setting information, and configures the new work node 200-1 as a cluster to the client. Service is resumed (ST700).
즉, 클러스터 관리자(110)는 신규 작업노드(200-1)에 대한 설정정보를 설정정보 저장부(120)에 등록하고, 현재 코디네이터 서버(100)의 동작모드를 정상모드로 설정하여 신규 작업노드를 포함한 모든 작업노드를 클러스터로 구성한다.That is, the cluster manager 110 registers the setting information for the new work node 200-1 in the setting information storage unit 120 and sets the operation mode of the current coordinator server 100 to the normal mode to create a new work node. All work nodes, including, are organized into clusters.
또한, 클러스터 관리자(110)는 신규 작업노드(200-1)를 정상적으로 하이브리드 P2P 클러스터의 멤버로 작동하기 위해 신규 작업노드(200-1)를 포함한 모든 작업노드(200)의 클러스터 에이전트(210)에게 신규 작업노드(200-1)의 상태정보를 정상 상태로 변경하도록 요청한다. 이에 따라 신규 작업노드(200-1)들이 정상적인 멤버로 동작함과 동시에 모든 작업노드(200)의 DBMS 엔진(300)은 부하분산 모드를 동작 모드로 설정하고, 시점부터 클라이언트(300)의 모든 요청을 수신하도록 한다.In addition, the cluster manager 110 to the cluster agent 210 of all the work nodes 200 including the new work node 200-1 in order to operate the new work node 200-1 as a member of the hybrid P2P cluster normally. Request to change the status information of the new work node (200-1) to a normal state. Accordingly, the new work nodes 200-1 operate as normal members, and at the same time, the DBMS engine 300 of all work nodes 200 sets the load distribution mode to the operation mode, and requests all of the clients 300 from the point in time. To receive.
도4a 내지 도4c는 도3의 동작을 도식화하여 나타낸 것으로, 작업노드1에 저장된 원본1 테이블이 신규 작업노드 1에 분할 저장되는 과정이 나타나 있다.4A to 4C are diagrammatic views of the operation of FIG. 3, and a process in which the original 1 table stored in the work node 1 is dividedly stored in the new work node 1 is illustrated.
도4a에는 6개의 기존 작업노드(1~6)들로 구성된 하이브리드 P2P 클러스터 시스템에서 복사본의 개수가 2개일 때 각 작업노드(200)들의 데이터 분산 상태와 3개(2+1)의 신규 작업노드(1~3)가 추가되는 구성이 도시되어 있고, 도4b에는 새로 추가된 신규 작업노드(1~3)로 작업노드1의 원본1 데이터가 분산되는 과정이 도시되어 있으며, 도4c에는 신규 작업노드1에서 신규 작업노드2와 신규 작업노드3으로 복제본을 복사하는 과정이 도시되어 있다.In FIG. 4A, in a hybrid P2P cluster system composed of six existing work nodes (1 to 6), when the number of copies is two, the data distribution state of each work node 200 and three (2+1) new work nodes. The configuration in which (1~3) is added is illustrated, and FIG. 4B shows a process in which the original 1 data of the work node 1 is distributed to the newly added new work nodes 1 to 3, and FIG. 4C shows the new operation. The process of copying a replica from node 1 to new work node 2 and new work node 3 is shown.
즉, 본 발명에 의하면, 신규 작업노드에 대한 접속정보의 수신이 완료되는 시점까지는 정상적으로 클라이언트에 대한 서비스를 수행하고, 신규 작업노드에 대한 접속정보의 수신이 완료된 이후부터는 기존 작업노드에 연결된 클라이언트에 대한 서비스만을 수행하며, 기존 작업노드에서 현재 진행중인 서비스 중 검색 서비스를 제외한 모든 서비스가 종료되는 시점에서 신규 작업노드를 포함한 모든 작업노드에 대한 부하분산처리를 수행함과 더불어, 부하분산처리가 종료되고 이에 따른 메타데이터 및 클러스터 설정정보를 갱신하기까지는 진행 중인 검색 서비스는 지속적으로 수행하게 된다. That is, according to the present invention, the service for the client is normally performed until the reception of the connection information for the new work node is completed, and after the reception of the connection information for the new work node is completed, the connection to the client connected to the existing work node is performed. In addition, it performs load balancing processing for all work nodes including the new work node at the time when all services except the search service are terminated among the services currently in progress in the existing work node. Until the metadata and cluster configuration information are updated, the ongoing search service is continuously performed.
이어, 도5를 참조하여 도3의 부하 분산 작업(ST500)에 대하여 보다 상세히 설명한다.Next, the load balancing operation ST500 of FIG. 3 will be described in more detail with reference to FIG. 5.
먼저, 클러스터 관리자(100)는 부하 분산 작업을 수행하기 위해서 기존 작업 노드(200)의 데이터 분산 상태 정보를 수집한다(ST510). 이때, 클러스터 관리자(110)는 각 기존 작업 노드(200)의 클러스터 에이전트(210)들에게 해당 작업노드의 통계 정보 즉, 데이터 적재 상태정보를 요청하고, 각 클러스터 에이전트(210)들은 해당 DBMS 엔진(220)의 데이터 적재 상태 정보를 수집하여 클러스터 관리자(100)에게 전달한다. 여기서, 데이터 적재 상태 정보는 해당 작업노드(200)에 적재된 테이블 단위 크기, 전체 메모리 크리, 현재 메모리 사용량 등을 포함할 수 있으며, 본 발명에서는 이에 제한하지 않는다. 본 발명에 의하면 필요한 경우, 더 많은 작업노드의 운용 상태 정보를 수집할 수 있다.First, the cluster manager 100 collects data distribution status information of the existing work node 200 to perform the load balancing operation (ST510). At this time, the cluster manager 110 requests statistical information of the corresponding work node, that is, data loading status information, to the cluster agents 210 of each existing work node 200, and each cluster agent 210 receives the corresponding DBMS engine ( The data loading status information of 220) is collected and transmitted to the cluster manager 100. Here, the data loading status information may include a table unit size, the total memory size, the current memory usage, etc. loaded on the corresponding work node 200, and the present invention is not limited thereto. According to the present invention, if necessary, more operation node operation status information can be collected.
이어, 클러스터 관리자(110)는 기존 작업노드(200)들의 데이터 적재 상태정보를 이용하여 데이터를 이동시킬 분할 대상 작업노드와 분할 결정 데이터의 데이터 용량 및, 분할 결정 데이터를 저장할 저장 대상 작업노드를 포함하는 데이터 분할 정보를 결정한다(ST520). Subsequently, the cluster manager 110 includes a partition target work node to move data using the data load status information of the existing work nodes 200, a data capacity of the partition decision data, and a storage target work node to store the partition decision data. Data division information to be determined is determined (ST520).
이때, 클러스터 관리자(110)는 모든 기존 작업노드(200)에 저장된 전체 데이터 용량을 기존 작업 노드(200)와 신규 작업노드(200-1)의 개수의 합으로 나누어 평균 데이터 용량을 산출하고, 평균 데이터 용량 대비 일정값 이상의 오차를 허용하여 이를 초과하는 기존 작업 노드(200)들을 분할 대상 작업노드로 설정할 수 있다. At this time, the cluster manager 110 calculates the average data capacity by dividing the total data capacity stored in all the existing work nodes 200 by the sum of the number of the existing work nodes 200 and the new work nodes 200-1. By allowing an error of a predetermined value or more relative to the data capacity, the existing work nodes 200 exceeding this can be set as a work node to be divided.
또한, 클러스터 관리자(110)는 데이터 분할 정보를 근거로 분할 대상 작업노드에 저장된 분할 결정 데이터를 저장 대상 작업노드로 이동시키는 일련의 데이터 분산 처리를 수행한다(ST530). 이때, 클러스터 관리자(110)는 분할 대상 작업노드(1)의 클러스터 에이전트(210)로 데이터 분할 요청을 수행하고, 클러스터 에이전트(210)는 DBMS 엔진(220)에 이를 전달된다. DBMS 엔진(220)은 이동 결정된 데이터 테이블을 분할하여 저장 대상 작업노드로 이동시킨다. 여기서, DBMS 엔진(220)은 해당 테이블에 대해 결정된 분할 정보를 이용하여 이동할 데이터 전체를 SELECT질의 처리하고, SELECT 결과에 해당하는 전체 레코드를 일괄적으로 해당 분할 대상 작업노드의 임시 저장소(미도시)로 전송하며, 저장 대상 작업 노드에서 분할 대상 작업노드의 임시 저장소(미도시)에 저장된 전체 레코드에서 INSERT 질의를 진행함으로써 데이터 이동에 따른 부하를 감소하도록 한다. In addition, the cluster manager 110 performs a series of data distribution processing for moving the partition decision data stored in the partition target work node to the storage target work node based on the data partition information (ST530). At this time, the cluster manager 110 performs a data partition request to the cluster agent 210 of the work node 1 to be partitioned, and the cluster agent 210 is transmitted to the DBMS engine 220. The DBMS engine 220 partitions the determined data table and moves it to the storage target work node. Here, the DBMS engine 220 performs a SELECT query on all the data to be moved by using the partitioning information determined for the corresponding table, and temporarily stores all records corresponding to the SELECT result in the temporary target storage node (not shown). To reduce the load caused by data movement, the INSERT operation is performed on all records stored in the temporary storage (not shown) of the work node to be partitioned by the storage target work node.
또한, 임의 하나의 저장 대상 작업노드에서 INSERT 질의 처리 시 자동으로 해당 저장 대상 작업노드의 DBMS 엔진(220)에서 해당 작업 노드의 복제본 작업노드에 INSERT되는 데이터의 복제본을 생성한다(ST540). In addition, when an INSERT query is processed at any one storage target work node, the DBMS engine 220 of the corresponding storage target work node automatically creates a replica of data that is inserted into the replica work node of the corresponding work node (ST540).
예컨대, 도4c와 같이 작업노드(1)의 원본1을 분할하여 신규 작업노드(7)로 이동함과 더불어, 작업노드(7)의 DBMS 엔진(220)은 자동으로 타 신규 작업노드(8,9)에 복제본을 생성한다. For example, as shown in FIG. 4C, the original 1 of the work node 1 is divided and moved to the new work node 7, and the DBMS engine 220 of the work node 7 automatically generates another new work node 8, 9) Create a replica.
한편, 도6a 내지 도6c는 도5에서 분할 정보를 결정하는 방법(ST520)을 설명하기 위한 도면으로, 본 발명에서 데이터를 분산하여 다수의 작업노드(200)에 저장하기 위해서 특정 테이블을 분할하는 서로 다른 방법이 예시되어 있다. 도6a 내지 도6c에는 분할 대상 작업노드가 "6"개인 경우가 예시되어 있다. Meanwhile, FIGS. 6A to 6C are diagrams for explaining a method (ST520) for determining partitioning information in FIG. 5, which divides a specific table in order to distribute data and store it in a plurality of work nodes 200 in the present invention. Different methods are illustrated. 6A to 6C illustrate a case in which the work node to be divided is "6".
먼저, 도6a에 도시된 바와 같이, 분할 결정된 테이블의 키값 범위를 저장 대상 작업노드의 총 개수로 분할하여 데이터 용량 및 저장 대상 작업노드를 결정할 수 있다. 예컨대, 키값이 0 ~v1 구간에 해당하는 데이터는 작업노드1에 저장되고, v1 ~v2 구간에 해당하는 데이터는 작업노드2에 저장된다.First, as illustrated in FIG. 6A, the data capacity and the storage target work node may be determined by dividing the key value range of the partitioned determined table by the total number of storage target work nodes. For example, data corresponding to a key value of 0 to v1 is stored in work node 1, and data corresponding to a v1 to v2 section is stored in work node 2.
또한, 도6b에 도시된 바와 같이, 분할 결정된 테이블의 키값에 해당하는 데이터 개수를 고려하여 키값 목록을 저장 대상 작업노드의 개수에 대응되게 분할 설정함으로써, 데이터 용량 및 저장 대상 작업노드를 결정할 수 있다. 예컨대, 작업노드1에는 키값 "abc1","bcb1","cde1"에 해당하는 데이터가 저장되고, 작업노드2에는 "abc2","bcb2","cde2"에 해당하는 데이터가 저장된다. In addition, as illustrated in FIG. 6B, the data capacity and the storage target work node can be determined by dividing and setting the key value list corresponding to the number of storage target work nodes in consideration of the number of data corresponding to the key values of the partitioned table. . For example, data corresponding to the key values "abc1", "bcb1", and "cde1" is stored in the work node 1, and data corresponding to "abc2", "bcb2", and "cde2" are stored in the work node 2.
또한, 도6c에 도시된 바와 같이, 분할 결정된 테이블의 키값을 해쉬 함수에 적용하여 산출되는 해쉬값의 범위를 저장 대상 작업노드 개수로 나눔으로써, 데이터 용량 및 저장 대상 작업노드를 결정할 수 있다. 예컨대, 해쉬값이 0 ~v1 구간에 해당하는 데이터는 작업노드1에 저장되고, v1 ~v2 구간에 해당하는 데이터는 작업노드2에 저장된다.In addition, as shown in FIG. 6C, by dividing the range of the hash value calculated by applying the key value of the partitioned table to the hash function by the number of work nodes to be stored, the data capacity and the work node to be stored can be determined. For example, data corresponding to a hash value of 0 to v1 is stored in work node 1, and data corresponding to a section of v1 to v2 is stored in work node 2.
한편, 본 발명에 있어서는 해쉬 기반으로 분할된 테이블에 대한 부하 분산 작업에 대응하여 클러스터 관리자(110)가 도7에 도시된 바와 같이 신규 작업노드 개수, 분할 대상 작업노드, 저장 대상 작업노드, timestamp 및 분할 key 정보를 포함하는 데이터 분할 로그정보를 생성하여 메타데이터로 관리함으로써, 작업노드들과 동기화할 수 있다. 여기서, "timestamp"는 전체 작업 노드에 대해서 글로벌 시간을 동기화하여 관리하기 위한 것으로, 데이터 입력 시 분할 키에 대해서 시스템에서 자동으로 부여한다. "분할 key"는 분할 대상 작업 노드에 포함된 키 값을 정렬한 것으로, 분할에 사용된 키 값을 의미한다. On the other hand, in the present invention, the cluster manager 110 in response to a load balancing operation for a table partitioned based on a hash, the number of new work nodes, a work target to be partitioned, a work target to be stored, a timestamp, and the like as shown in FIG. By generating data partitioning log information including partitioning key information and managing it as metadata, it is possible to synchronize with work nodes. Here, "timestamp" is for synchronizing and managing global time for all work nodes, and the system automatically grants a partition key when data is input. The "segmentation key" is an arrangement of key values included in the work node to be divided, and means a key value used in the division.
이때, 본 발명에 있어서는 각 작업노드에서 해쉬 기반 분할 테이블에 대한 영역질의를 처리하기 위해 모든 작업 노드의 데이터를 검색하여야 하지만, 분할 로그정보를 이용하여 특정 키값에 대한 데이터를 검색하기 위해 모든 작업노드를 검색하지 않도록 실시할 수 있다. At this time, in the present invention, data of all work nodes must be searched to process a region query for a hash-based partition table in each work node, but all work nodes are searched for data for a specific key value using split log information. It can be done not to search.
도8은 도7에 도시된 분할 로그정보를 이용한 해쉬 기반 분할 테이블의 특정 키값에 대한 질의 동작을 설명하기 위한 도면이다.FIG. 8 is a diagram for explaining a query operation for a specific key value of a hash-based partition table using partition log information shown in FIG. 7.
도8을 참조하면, 먼저 특정 키 값에 해당되는 데이터 검색 질의가 요청(ST910)되면, 검색 대상 테이블의 분할 로그정보를 확인하여 검색 대상 데이터가 분할 이후의 데이터인지를 확인한다(ST920).Referring to FIG. 8, first, when a data search query corresponding to a specific key value is requested (ST910), the log information of the search target table is checked to determine whether the search target data is data after the split (ST920).
상기 ST920단계에서 검색 대상 테이블이 분할 이후의 데이터의 경우에는 해쉬값을 신규 작업 노드를 포함한 모든 작업노드 개수로 나눈 나머지값에 해당하는 작업노드로 검색 질의를 전파한다(ST930). In step ST920, in the case of data after the table to be searched is divided, the search query is propagated to the work node corresponding to the remaining value obtained by dividing the hash value by the number of all work nodes including the new work node (ST930).
한편, 상기 ST920 단계에서 검색 대상 테이블이 분할 이전의 데이터인 경우에는 해쉬값을 신규 작업 노드를 추가하기 이전의 기존 작업 노드 개수로 나눈 나머지값에 해당하는 작업노드 정보를 획득한다(ST940).Meanwhile, in step ST920, when the search target table is data before partitioning, work node information corresponding to the remaining value obtained by dividing the hash value by the number of existing work nodes before adding a new work node is obtained (ST940).
그리고, 상기 ST940 단계에서 획득된 작업노드 정보에 대한 분할 작업 로그가 존재하는지를 근거로 분할 대상 작업 노드인지의 여부를 확인한다(ST950).Then, it is checked whether or not the target node is a partition based on whether or not the partitioning task log for the work node information obtained in step ST940 exists (ST950).
상기 ST950 단계에서 ST940 단계에서 획득된 작업 노드가 분할 대상 노드가 아닌 경우에는 획득된 작업노드로 검색 질의를 전파한다(ST960).In step ST950, when the work node obtained in step ST940 is not a target node to be split, the search query is propagated to the obtained work node (ST960).
한편, 상기 ST950 단계에서 ST940 단계에서 획득된 작업 노드가 분할 대상 노드인 경우에는 해당 분할 작업 로그에서 저장 대상 작업노드 정보를 전파할 작업 노드정보로서 획득하고, 획득된 작업 노드로 검색 질의를 전파한다(ST970). On the other hand, if the work node obtained in step ST940 in step ST950 is a target node to be split, it is acquired as job node information to propagate the storage target job node information in the corresponding split job log, and a search query is propagated to the obtained job node. (ST970).
즉, 본 발명에 의하면 검색 대상 데이터가 적재된 작업 노드에만 검색 질의를 전파하여 보다 신속하게 검색 질의를 처리할 수 있다. That is, according to the present invention, the search query can be processed more quickly by propagating the search query only to the work node loaded with the search target data.
이러한 동작은 하이브리드 P2P 클러스터 시스템 가동 중에 작업노드를 추가하여 해쉬 기반의 분할 방법을 적용하는 경우에 적용되는 것으로, 본 발명에서는 질의 처리 성능을 위해서 클러스터 시스템 중단하고 재가동 하기 이전에, 해쉬 기반의 전체 테이블에 대해서는 변경된 작업노드 개수를 반영하여 일괄적으로 데이터 이동 및 메타데이터 변경 작업을 수행하도록 실시할 수 있다. This operation is applied when a hash-based partitioning method is applied by adding a work node while the hybrid P2P cluster system is running. In the present invention, before the cluster system is stopped and restarted for query processing performance, a hash-based whole table For, it can be implemented to perform data movement and metadata change operations collectively by reflecting the changed number of work nodes.

Claims (10)

  1. 다수의 작업 노드와 작업 노드들을 관리하는 코디네이터 서버로 클러스터를 구성하여 클라이언트에서 요청한 작업을 분산 환경에서 동시에 처리하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법에 있어서,In the method of extending a work node in a hybrid P2P cluster system that configures a cluster with a plurality of work nodes and a coordinator server that manages the work nodes and simultaneously processes work requested by a client in a distributed environment
    상기 코디네이터 서버에서 외부로부터 신규 작업노드 추가 요청정보가 수신되면, 클라이언트로부터의 새로운 연결 요청은 거절하고, 기존 작업노드에 연결된 클라이언트에 대해 진행중인 서비스는 중단 없이 제공하도록 함과 더불어, 신규 작업노드 접속 정보를 반영하여 메타데이터를 갱신하는 제1 단계와,When the coordinator server receives new work node addition request information from the outside, the new connection request from the client is rejected, and the ongoing service is provided to the client connected to the existing work node without interruption, and new work node access information. A first step of updating the metadata by reflecting,
    코디네이터 서버는 신규 작업노드로 제1 단계에서 갱신된 메타 데이터를 원격 복사하고, 신규 작업노드를 구동시킴과 더불어 신규 작업노드의 상태를 대기 상태로 설정하는 제2 단계,The coordinator server remotely copies the metadata updated in the first step to the new work node, drives the new work node, and sets the status of the new work node to the standby state,
    코디네이터 서버는 모든 기존 작업노드로부터 현재 연결중인 클라이언트에 대해 검색 서비스를 제외한 다른 진행중인 서비스가 모두 완료된 것으로 확인되면, 신규 작업노드를 포함한 모든 작업노드들 사이의 부하 분산 작업을 수행하는 제3 단계, When the coordinator server determines that all ongoing services except for the search service are completed for all clients currently connected from all existing work nodes, a third step of performing load balancing among all work nodes including the new work node,
    코디네이터 서버는 부하 분산 작업 결과에 대응하여 메타데이터를 갱신하고, 갱신된 메타데이터를 신규 작업노드를 포함한 모든 작업노드들과 동기화하는 제4 단계 및,The coordinator server updates the metadata in response to the load balancing work result, and the fourth step of synchronizing the updated metadata with all work nodes including the new work node, and
    코디네이터 서버는 신규 작업노드를 포함한 모든 작업노드에 대해 신규 작업노드의 상태정보를 동작상태로 변경하여 신규 작업노드를 포함한 모든 작업노드를 클러스터로 동작시키고, 클라이언트에 대한 서비스를 재개하는 제5 단계를 포함하여 구성되는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법. The coordinator server changes the status information of the new work node to an operation state for all work nodes including the new work node, operates all work nodes including the new work node as a cluster, and restarts the service for the client. A method of extending a work node in a hybrid P2P cluster system, characterized in that it is configured to include.
  2. 제1항에 있어서,According to claim 1,
    상기 제3 단계에서 기존 작업노드들은 현재 연결된 클라이언트로부터 새롭게 요구되는 데이터의 추가/갱신/삭제 요청 서비스는 거절하고, 새롭게 요구되는 데이터 검색 요청에 대해서는 중단 없이 서비스를 제공하는 단계와, 현재 수행중인 데이터에 대한 추가/갱신/삭제 요청 서비스가 완료되는 경우, 코디네이터 서버로 분산 작업을 수행할 준비가 되었음을 알리는 진행 서비스 완료정보를 전송하는 단계를 포함하여 구성되는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법.In the third step, the existing work nodes reject the service for requesting to add/update/delete newly requested data from the currently connected client, and provide the service without interruption to the newly requested data search request, and the data currently being performed. In the hybrid P2P cluster system, characterized in that it comprises a step of transmitting progress service completion information informing that it is ready to perform a distributed operation to the coordinator server when the add/update/delete request service is completed. How to expand the working node.
  3. 제1항에 있어서,According to claim 1,
    상기 기존 작업노드들은 기 설정된 개수에 대응되는 복제본을 생성하여 서로 다른 타 작업노드에 저장하도록 구성되고,The existing work nodes are configured to create a copy corresponding to a preset number and store them in different work nodes,
    상기 제1 단계에서 코디네이터 서버는 신규 작업노드의 개수가 기 설정된 복사본 개수(K)보다 "1" 큰 개수(K+1)의 배수가 될 때까지 작업노드의 접속 정보만을 관리하는 단계와, (K+1)의 배수 개에 해당하는 신규 작업 노드 정보의 추가가 완료되면 클라이언트로부터의 새로운 연결 요청은 거절하고, 기존 작업노드로 현재 연결되어 있는 클라이언트에 대한 서비스는 중단 없이 제공하도록 요청하는 단계를 포함하여 구성되는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법. In the first step, the coordinator server manages only the access information of the work node until the number of new work nodes is a multiple of the number (K+1) that is "1" greater than the preset number of copies (K), and ( When the addition of new work node information corresponding to multiples of K+1) is completed, the request for a new connection from the client is rejected, and a request is made to provide the service for the client currently connected to the existing work node without interruption. A method of extending a work node in a hybrid P2P cluster system, characterized in that it is configured to include.
  4. 제1항에 있어서,According to claim 1,
    상기 제3 단계는 코디네이터 서버에서 기존 작업노드들의 테이블 단위 크기와, 전체 메모리 크기 및 현재 메모리 사용량을 포함하는 데이터 적재 상태정보를 수집하는 단계와, 기존 작업노드별 데이터 적재 상태정보를 근거로 데이터를 이동시킬 분할 대상 작업노드와, 분할 결정 데이터의 데이터 용량 및, 분할 결정 데이터를 저장할 저장 대상 작업노드를 포함하는 데이터 분할 정보를 결정하는 단계, 결정된 데이터 분할 정보에 기반하여 작업노드간 데이터를 이동시키는 단계를 포함하여 구성되는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법. In the third step, the coordinator server collects data loading status information including the table unit size of the existing work nodes, the total memory size, and the current memory usage, and collects data based on the data loading status information for each existing work node. Determining data partitioning information including a work target to be partitioned to be moved, a data capacity of the partitioning decision data, and a storage target work node to store the partitioning decision data, and moving data between work nodes based on the determined data partitioning information A method of extending a work node in a hybrid P2P cluster system, comprising steps.
  5. 제3항, 또는 제4항에 있어서,The method of claim 3 or 4,
    상기 제4 단계에서 상기 신규 작업노드는 자신에게 이동 저장된 데이터를 복제하여 서로 다른 타 신규 작업노드에 각각 저장하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법. The method of extending a work node in a hybrid P2P cluster system, characterized in that in the fourth step, the new work node duplicates data stored in the mobile and stores the data in another new work node.
  6. 제4항에 있어서,According to claim 4,
    상기 데이터 분할정보를 결정하는 단계는, 코디네이터 서버에서 모든 기존 작업노드에 저장된 전체 데이터 용량을 기존 작업 노드와 신규 작업노드의 개수의 합으로 나누어 평균 데이터 용량을 산출하고, 평균 데이터 용량 대비 일정값 이상의 오차를 허용하여 이를 초과하는 기존 작업 노드들을 분할 대상 작업노드로 설정하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법. The step of determining the data partitioning information is calculated by dividing the total data capacity stored in all existing work nodes by the coordinator server by the sum of the number of existing work nodes and new work nodes, and calculating an average data capacity, and more than a predetermined value compared to the average data capacity. A method of extending a work node in a hybrid P2P cluster system, characterized by setting an existing work node exceeding this by allowing an error as a work node to be divided.
  7. 제4항 또는 제6항에 있어서,The method of claim 4 or 6,
    상기 데이터 분할 정보를 결정하는 단계는, 분할 결정된 테이블의 키값 범위를 저장 대상 작업노드의 총 개수로 분할하여 데이터 용량 및 저장 대상 작업노드를 결정하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법. In the determining of the data partitioning information, a work in a hybrid P2P cluster system is characterized by determining a data capacity and a storage target work node by dividing the key value range of the partitioned determined table into the total number of work targets to be stored. Node expansion method.
  8. 제4항 또는 제6항에 있어서,The method of claim 4 or 6,
    상기 데이터 분할 정보를 결정하는 단계는, 분할 결정된 테이블의 키값에 해당하는 데이터 개수를 고려하여 키값 목록을 저장 대상 작업노드의 개수에 대응되게 분할 설정함으로써, 데이터 용량 및 저장 대상 작업노드를 결정하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법.The determining of the data partitioning information may include determining a data capacity and a storage target work node by dividing and setting the key value list corresponding to the number of work targets to be stored in consideration of the number of data corresponding to the key values of the partitioned table. A method of extending a work node in a hybrid P2P-type cluster system.
  9. 제4항 또는 제6항에 있어서,The method of claim 4 or 6,
    상기 데이터 분할 정보를 결정하는 단계는, 분할 결정된 테이블의 키값을 해쉬 함수에 적용하여 산출되는 해쉬값의 범위를 저장 대상 작업노드 개수로 나눔으로써, 데이터 용량 및 저장 대상 작업노드를 결정하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법.The determining of the data partitioning information is characterized by determining a data capacity and a storage target work node by dividing the range of the hash value calculated by applying the key value of the partitioned table to the hash function by the number of work nodes to be stored. A method of extending a work node in a hybrid P2P-type cluster system.
  10. 제1항에 있어서,According to claim 1,
    상기 제4 단계에서 코디네이터 서버는 부하 분산 작업에 대응하여 신규 작업노드 개수, 분할 대상 작업노드번호, 저장 대상 작업노드번호를 포함하는 데이터 분할 로그정보를 생성하여 메타데이터로 관리하여 작업노드들과 동기화하고,In the fourth step, the coordinator server generates data split log information including the number of new work nodes, the target work node number to be divided, and the work target number to be stored in response to load balancing work, manages it as metadata and synchronizes it with work nodes. and,
    상기 작업노드는 클라이언트로부터의 특정 키값을 포함하는 데이터 검색 질의에 대하여 해당 키값에 대응되는 검색 질의 테이블의 데이터 분할 로그정보를 확인하여 검색 대상 데이터가 분할 이전 데이터인 경우, 해쉬값을 신규 작업 노드를 추가하기 이전의 기존 작업노드 개수로 나눈 나머지값에 대응되는 검색 대상 작업노드번호를 획득하고, 획득된 검색 대상 작업노드번호가 분할 대상 노드번호이면, 상기 데이터 분할 로그 정보의 저장 대상 작업노드번호에 해당하는 작업노드로 데이터 검색 질의를 전파하여 클라이언트의 요청에 대응되는 서비스를 제공하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법.The work node checks the data partitioning log information of the search query table corresponding to the key value for a data search query including a specific key value from the client, and if the search target data is data before partitioning, a new work node is assigned a hash value. To obtain the search target work node number corresponding to the remaining value divided by the number of existing work nodes before adding, and if the obtained search target work node number is the split target node number, to the target data storage target number of the data split log information A method of extending a work node in a hybrid P2P cluster system, characterized in that a service corresponding to a client request is provided by propagating a data search query to a corresponding work node.
PCT/KR2019/001245 2019-01-29 2019-01-30 Method for extending task node in hybrid p2p cluster system WO2020158968A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190010974A KR102112047B1 (en) 2019-01-29 2019-01-29 Method for adding node in hybride p2p type cluster system
KR10-2019-0010974 2019-01-29

Publications (1)

Publication Number Publication Date
WO2020158968A1 true WO2020158968A1 (en) 2020-08-06

Family

ID=70912650

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/001245 WO2020158968A1 (en) 2019-01-29 2019-01-30 Method for extending task node in hybrid p2p cluster system

Country Status (2)

Country Link
KR (1) KR102112047B1 (en)
WO (1) WO2020158968A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112860694A (en) * 2021-02-04 2021-05-28 京东数字科技控股股份有限公司 Method, device and equipment for processing service data
CN113452767A (en) * 2021-06-23 2021-09-28 新华三大数据技术有限公司 Load balancing method and device applied to service cluster
CN112860694B (en) * 2021-02-04 2024-05-17 京东科技控股股份有限公司 Service data processing method, device and equipment

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113326100B (en) * 2021-06-29 2024-04-09 深信服科技股份有限公司 Cluster management method, device, equipment and computer storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6968359B1 (en) * 2000-08-14 2005-11-22 International Business Machines Corporation Merge protocol for clustered computer system
US7516181B1 (en) * 2005-02-08 2009-04-07 Microstrategy, Inc. Technique for project partitioning in a cluster of servers
US20150186228A1 (en) * 2013-12-27 2015-07-02 Dinesh Kumar Managing nodes in a distributed computing environment
KR20160025926A (en) * 2014-08-28 2016-03-09 한국전자통신연구원 Apparatus and method for balancing load to virtual application server
JP2017041267A (en) * 2016-10-20 2017-02-23 株式会社ソフトギア Distributed data processing program, information processing apparatus, distributed database system, and distribution system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9172750B2 (en) * 2011-04-26 2015-10-27 Brian J. Bulkowski Cluster-node load balancing in a distributed database system
US9813491B2 (en) * 2011-10-20 2017-11-07 Oracle International Corporation Highly available network filer with automatic load balancing and performance adjustment
KR20170075319A (en) 2015-12-23 2017-07-03 서울시립대학교 산학협력단 Big data system which can add cluster node and method of adding node

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6968359B1 (en) * 2000-08-14 2005-11-22 International Business Machines Corporation Merge protocol for clustered computer system
US7516181B1 (en) * 2005-02-08 2009-04-07 Microstrategy, Inc. Technique for project partitioning in a cluster of servers
US20150186228A1 (en) * 2013-12-27 2015-07-02 Dinesh Kumar Managing nodes in a distributed computing environment
KR20160025926A (en) * 2014-08-28 2016-03-09 한국전자통신연구원 Apparatus and method for balancing load to virtual application server
JP2017041267A (en) * 2016-10-20 2017-02-23 株式会社ソフトギア Distributed data processing program, information processing apparatus, distributed database system, and distribution system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112860694A (en) * 2021-02-04 2021-05-28 京东数字科技控股股份有限公司 Method, device and equipment for processing service data
CN112860694B (en) * 2021-02-04 2024-05-17 京东科技控股股份有限公司 Service data processing method, device and equipment
CN113452767A (en) * 2021-06-23 2021-09-28 新华三大数据技术有限公司 Load balancing method and device applied to service cluster

Also Published As

Publication number Publication date
KR102112047B1 (en) 2020-05-18

Similar Documents

Publication Publication Date Title
US9407703B2 (en) Connection management system, and a method for linking connection management server in thin client system
WO2018099067A1 (en) Distributed task scheduling method and system
EP2996308B1 (en) Massively scalable object storage system
EP2501108B1 (en) Massively scalable object storage system
EP2498476B1 (en) Massively scalable object storage system
WO2012086919A2 (en) Distributed storage system including plurality of proxy servers, method for managing object thereof, and storage medium readable by computer
WO2012057581A4 (en) Cloud computing system and data synchronization method therefor
WO2019189963A1 (en) Distributed cluster management system and method therefor
CN110990432B (en) Device and method for synchronizing distributed cache clusters across machine room
US20080256248A1 (en) Single server access in a multiple tcp/ip instance environment
WO2012086918A2 (en) Distributed storage system for distributed storing of object based on position of plurality of data nodes, method for distributed storing based on same position, and storage medium readable by computer
US10866965B2 (en) Data replicating systems and data replicating methods
US20100138540A1 (en) Method of managing organization of a computer system, computer system, and program for managing organization
WO2016199955A1 (en) Code dispersion hash table-based map-reduce system and method
US10320905B2 (en) Highly available network filer super cluster
WO2020158968A1 (en) Method for extending task node in hybrid p2p cluster system
KR100936238B1 (en) Lazy Replication System And Method For Balanced I/Os Between File Read/Write And Replication
WO2018021593A1 (en) Online database management system and method for minimizing performance degradation of transaction when reconfiguring table
CN113127444B (en) Data migration method, device, server and storage medium
JPH11249943A (en) Method and system for synchronous management of distributed data base
US6580791B1 (en) Apparatus for providing data to switching elements in a communications system
WO2022220830A1 (en) Geographically dispersed hybrid cloud cluster
KR100604593B1 (en) Method for dynamic reconfiguring cluster system based on configuration information
KR20080008699A (en) Grid database system using ring-based connection structure and load-balancing method therefor
CN112948052A (en) Cross-data-center virtual machine migration method, data center and computer medium

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

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

Country of ref document: EP

Kind code of ref document: A1