KR101638797B1 - Method for scheduling query - Google Patents

Method for scheduling query Download PDF

Info

Publication number
KR101638797B1
KR101638797B1 KR1020140058359A KR20140058359A KR101638797B1 KR 101638797 B1 KR101638797 B1 KR 101638797B1 KR 1020140058359 A KR1020140058359 A KR 1020140058359A KR 20140058359 A KR20140058359 A KR 20140058359A KR 101638797 B1 KR101638797 B1 KR 101638797B1
Authority
KR
South Korea
Prior art keywords
ema
query
application server
query data
load
Prior art date
Application number
KR1020140058359A
Other languages
Korean (ko)
Other versions
KR20140135125A (en
Inventor
남범석
Original Assignee
울산과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 울산과학기술원 filed Critical 울산과학기술원
Publication of KR20140135125A publication Critical patent/KR20140135125A/en
Application granted granted Critical
Publication of KR101638797B1 publication Critical patent/KR101638797B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Operations Research (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

질의 할당 방법이 제공되며, 적어도 하나의 클라이언트로부터 질의 데이터를 수신하는 단계, 수신된 질의 데이터를 적어도 하나의 어플리케이션 서버에 할당하기 위하여, 적어도 하나의 어플리케이션 서버의 EMA(Exponential Moving Average)를 계산하는 단계, 적어도 하나의 어플리케이션 서버에 할당된 작업량인 부하에 대응하는 질의의 수를 파악하는 단계, 계산된 EMA와 부하에 기반하여, 수신된 질의 데이터를 적어도 하나의 어플리케이션 서버 중 어느 하나의 어플리케이션 서버에 할당하는 단계를 포함한다.A method of assigning a query, the method comprising: receiving query data from at least one client; calculating an Exponential Moving Average (EMA) of at least one application server to assign the received query data to at least one application server Determining a number of queries corresponding to a load, which is an amount of work assigned to at least one application server, assigning the received query data to one of application servers of at least one application server based on the calculated EMA and the load .

Description

질의 할당 방법{METHOD FOR SCHEDULING QUERY}{METHOD FOR SCHEDULING QUERY}

본 발명은 질의 할당 방법에 관한 것이다.The present invention relates to a query allocation method.

최근, 분산 네트워크는 대규모 데이터를 저장하고, 검색하여 처리하는데 다양하게 이용되고 있으며, 분산 네트워크에 질의 데이터를 어떻게 할당하고 분산할 것인지는 다양하게 연구되고 있다.In recent years, distributed networks have been widely used for storing, retrieving and processing large-scale data. Various researches have been conducted on how to allocate and distribute query data to a distributed network.

이때, 질의 데이터는 각 분산 자원에 부하를 줄이는 방법으로 할당되고 있다. 이와 관련하여, 한국공개특허인 제2003-0045987호(2003.06.12 공개)에는 라운드-로빈 방식의 스케줄링 방법을 개시한다.At this time, the query data is allocated in such a way as to reduce the load on each distributed resource. In this regard, Korean Unexamined Patent Publication No. 2003-0045987 (published Jun. 10, 2003) discloses a round-robin scheduling method.

다만, 라운드-로빈 방식의 스케줄링 방법은, 분산 네트워크 내에서 캐시 히트율(Cache Hit Rate)을 무시하므로 데이터의 재사용률이 적고, 분산 네트워크에 작업의 수를 균등하게 분배하는 것만으로는 분산 네트워크를 효율적으로 활용하는 방법이 아니다.However, since the round-robin scheduling method ignores the cache hit rate in the distributed network, the reuse rate of the data is low, and evenly distributing the number of jobs to the distributed network makes the distributed network It is not a method to utilize efficiently.

본 발명의 일 실시예는, 질의 데이터의 중심 포인트와, 복수의 어플리케이션 서버가 가지는 EMA(Exponential Moving Average) 간의 거리가 최소화되는 서버를 선택할 뿐만 아니라, 복수의 어플리케이션에 할당된 부하에 대응하는 질의의 수까지 고려하여 EMA 영역을 설정함으로써, 로드 밸런싱과 캐시 히트율을 동시에 고려하여 질의 데이터가 처리되도록 질의 데이터를 어플리케이션 서버에 할당할 수 있는, 질의 할당 방법을 제공할 수 있다. 다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.In an embodiment of the present invention, not only a server in which the distance between the center point of query data and the Exponential Moving Average (EMA) of a plurality of application servers is minimized, but also a query corresponding to a load allocated to a plurality of applications It is possible to provide a query allocation method capable of allocating query data to an application server so that query data is processed while simultaneously considering load balancing and cache hit rate. It should be understood, however, that the technical scope of the present invention is not limited to the above-described technical problems, and other technical problems may exist.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예는, 적어도 하나의 클라이언트로부터 질의 데이터를 수신하는 단계, 수신된 질의 데이터를 적어도 하나의 어플리케이션 서버에 할당하기 위하여, 적어도 하나의 어플리케이션 서버의 EMA(Exponential Moving Average)를 계산하는 단계, 적어도 하나의 어플리케이션 서버에 할당된 작업량인 부하(Load)에 대응하는 질의의 수를 파악하는 단계, 계산된 EMA와 부하에 기반하여, 수신된 질의 데이터를 적어도 하나의 어플리케이션 서버 중 어느 하나의 어플리케이션 서버에 할당하는 단계를 포함한다.As a technical means for achieving the above-mentioned technical object, an embodiment of the present invention is a method for receiving query data from at least one client, comprising the steps of receiving at least one Calculating an Exponential Moving Average (EMA) of an application server; determining a number of queries corresponding to a load, which is an amount of work assigned to at least one application server, based on the calculated EMA and the load; And assigning the query data to at least one of the application servers.

전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 분산 환경에서 시스템에 과부하를 야기하지 않으면서도 로드 밸런싱과 캐시 히트율을 동시에 고려하여 질의가 처리되도록 할 수 있다.According to any one of the above-mentioned objects of the present invention, it is possible to simultaneously process load balancing and cache hit ratio without causing an overload in the system in a distributed environment.

도 1은 본 발명의 일 실시예에 따른 질의 할당 시스템을 설명하기 위한 구성도이다.
도 2는 도 1에 도시된 질의 할당 서버를 설명하기 위한 구성도이다.
도 3은 도 1에 도시된 질의 할당 서버에서 EMA 포인트와 질의 간의 거리를 계산하는 것을 도시한 도면이다.
도 4는 도 1에 도시된 질의 할당 서버에서 부하를 고려하여 EMA 포인트와 질의 간의 거리를 계산하는 것을 도시한 도면이다.
도 5는 도 1에 도시된 질의 할당 서버에서 어플리케이션 서버의 부하를 밸런싱하는 일 실시예를 도시한 도면이다.
도 6은 도 1에 도시된 질의 할당 서버에서 EMA 포인트 및 부하에 기반하여 질의를 할당하는 알고리즘의 일 실시예를 도시한다.
도 7은 본 발명의 일 실시예에 따른 질의 할당 방법의 성능 평가 그래프를 도시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 질의 할당 방법을 설명하기 위한 동작 흐름도이다.
1 is a block diagram illustrating a query allocation system according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating a query allocation server shown in FIG. 1. FIG.
FIG. 3 is a diagram illustrating calculating the distance between an EMA point and a query in the query assignment server shown in FIG. 1; FIG.
FIG. 4 is a diagram illustrating calculation of the distance between an EMA point and a query in consideration of load in the query assignment server shown in FIG. 1; FIG.
5 is a diagram illustrating an embodiment for balancing the load of an application server in the query allocation server shown in FIG.
6 illustrates an embodiment of an algorithm for assigning queries based on EMA points and load in the query allocation server shown in FIG.
7 is a graph showing a performance evaluation graph of a query allocation method according to an embodiment of the present invention.
8 is a flowchart illustrating an example of a query allocation method according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another part in between . Also, when an element is referred to as "including" an element, it is to be understood that the element may include other elements as well as other elements, And does not preclude the presence or addition of one or more other features, integers, steps, operations, components, parts, or combinations thereof.

이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 질의 할당 시스템을 설명하기 위한 구성도이다. 본 발명의 일 실시예에 따른 질의 할당 시스템(1)은, 적어도 하나의 클라이언트(100), 질의 할당 서버(300) 및 적어도 하나의 어플리케이션 서버(400)를 포함할 수 있다. 다만, 도 1의 질의 할당 시스템(1)은 본 발명의 일 실시예에 불과하므로, 도 1을 통해 본 발명이 한정 해석되는 것은 아니다.1 is a block diagram illustrating a query allocation system according to an embodiment of the present invention. The query allocation system 1 according to an embodiment of the present invention may include at least one client 100, a query allocation server 300, and at least one application server 400. However, since the query assignment system 1 of FIG. 1 is only an embodiment of the present invention, the present invention is not limited to FIG.

이때, 도 1의 각 구성요소들은 일반적으로 네트워크(network, 200)를 통해 연결될 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 네트워크(200)를 통하여 적어도 하나의 클라이언트(100)와 질의 할당 서버(300)가 연결될 수 있다. 또한, 질의 할당 서버(300)는 네트워크를 통하여 적어도 하나의 어플리케이션 서버(400)와 연결될 수 있다. 그리고, 적어도 하나의 클라이언트(100)는 네트워크(200)를 통하여 적어도 하나의 어플리케이션 서버(400)와 연결될 수 있다. At this time, the respective components of FIG. 1 may be connected through a network 200 in general. For example, as shown in FIG. 1, at least one client 100 and a query allocation server 300 may be connected through a network 200. In addition, the query assignment server 300 may be connected to at least one application server 400 through a network. At least one client 100 may be connected to at least one application server 400 through the network 200. [

여기서, 네트워크(200)는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크(200)의 일 예는, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 3G, 4G, LTE, Wi-Fi 등이 포함되나 이에 한정되지는 않는다. 도 1에 도시된 적어도 하나의 클라이언트(100), 질의 할당 서버(300) 및 적어도 하나의 어플리케이션 서버(400)는, 도 1에 도시된 것들로 한정 해석되는 것은 아니다.Here, the network 200 refers to a connection structure capable of exchanging information between nodes such as terminals and servers. An example of the network 200 is an Internet, a LAN (Local Area Network) ), Wireless LAN (Local Area Network), WAN (Wide Area Network), PAN (Personal Area Network), 3G, 4G, LTE, Wi-Fi and the like. At least one client 100, a query assignment server 300, and at least one application server 400 shown in FIG. 1 are not construed as being limited to those shown in FIG.

적어도 하나의 클라이언트(100)는, 적어도 하나의 어플리케이션 서버(400)로 적어도 하나의 질의를 전송할 수 있다. 그리고, 적어도 하나의 클라이언트(100)는, 적어도 하나의 어플리케이션 서버(400)에서 질의를 처리한 결과인 응답 데이터를 수신할 수 있다.At least one client 100 may send at least one query to at least one application server 400. At least one client 100 can receive response data that is the result of processing a query in at least one application server 400. [

질의 할당 서버(300)는, 적어도 하나의 클라이언트(100)로부터 질의 데이터를 수신할 수 있다. 그리고, 질의 할당 서버(300)는, 적어도 하나의 어플리케이션 서버(400)의 EMA(Exponential Moving Average, 기하 평균 이동) 포인트 또는 적어도 하나의 어플리케이션 서버(400)에 이미 할당된 질의 데이터에 대응하는 부하(Load)를 고려하여, 적어도 하나의 클라이언트(100)로부터 수신된 질의 데이터를 할당할 수 있다.The query assignment server 300 can receive query data from at least one client 100. [ The query allocation server 300 is further provided with an EMA (Exponential Moving Average) point of at least one application server 400 or a load corresponding to query data already allocated to at least one application server 400 Load), it is possible to allocate the query data received from at least one client 100.

적어도 하나의 어플리케이션 서버(400)는, 적어도 하나의 클라이언트(100)로부터 수신되고, 질의 할당 서버(300)에서 분배된 질의 데이터를 처리할 수 있다. 그리고, 적어도 하나의 어플리케이션 서버(400)는 질의 데이터의 처리 결과인 질의에 대한 응답 데이터를, 적어도 하나의 클라이언트(100)로 전송할 수 있다.At least one application server 400 may process query data received from at least one client 100 and distributed by the query assignment server 300. At least one application server 400 can transmit response data to the query, which is the processing result of the query data, to at least one client 100.

도 2는 도 1에 도시된 질의 할당 서버를 설명하기 위한 구성도이고, 도 3은 도 1에 도시된 질의 할당 서버에서 EMA 포인트와 질의 간의 거리를 계산하는 것을 도시한 도면이고, 도 4는 도 1에 도시된 질의 할당 서버에서 부하를 고려하여 EMA 포인트와 질의 간의 거리를 계산하는 것을 도시한 도면이다. FIG. 2 is a diagram for explaining a query assignment server shown in FIG. 1, FIG. 3 is a diagram for calculating a distance between an EMA point and a query in the query assignment server shown in FIG. 1, 1 illustrates calculating the distance between an EMA point and a query in consideration of load in a query assignment server shown in FIG.

도 2를 참조하면, 본 발명의 일 실시예에 따른 질의 할당 서버(300)는, 수신부(410), 계산부(420), 파악부(430), 할당부(440), 업데이트부(450)를 포함할 수 있다.2, the query assignment server 300 according to an exemplary embodiment of the present invention includes a receiving unit 410, a calculating unit 420, a determining unit 430, an assigning unit 440, an updating unit 450, . ≪ / RTI >

수신부(410)는, 적어도 하나의 클라이언트(100)로부터 질의 데이터를 수신할 수 있다.The receiving unit 410 can receive query data from at least one client 100. [

계산부(420)는, 수신된 질의 데이터를 적어도 하나의 어플리케이션 서버(400)에 할당하기 위하여, 적어도 하나의 어플리케이션 서버(400)의 EMA(Exponential Moving Average)를 계산할 수 있다. 여기서, 계산부(420)는, 적어도 하나의 어플리케이션 서버(400)에 EMA를 랜덤하게 부여하고, 수신된 질의 데이터의 다차원 중심 포인트와 EMA 간 거리를 계산할 수 있다. The calculation unit 420 may calculate an exponential moving average (EMA) of at least one application server 400 in order to allocate the received query data to at least one application server 400. [ Here, the calculation unit 420 can randomly assign an EMA to at least one application server 400, and calculate the distance between the multi-dimensional center point of the received query data and the EMA.

이하에서, EMA의 개념에 대하여 간략하게 설명한다.Hereinafter, the concept of the EMA will be briefly described.

EMA는 장기 또는 단기 추세 변동을 파악하기 위한 통계적인 방법인데, 계산부(420)에서는 수신된 질의 데이터에 가중치를 두고, 가중 평균을 구하는데 사용할 수 있다. 즉, 캐시(Cache)된 데이터는 다차원 좌표로 표현될 수 있는데, 다차원 중심 포인트를 캐시 데이터의 EMA 값을 구하는데 사용할 수 있다. 시간의 변동에 따른 EMA는 하기 수학식 1과 같이 표현될 수 있다.The EMA is a statistical method for detecting long-term or short-term trend fluctuation. In the calculation unit 420, the weighted average of the received query data can be obtained by weighting the received query data. That is, the cached data can be expressed in multidimensional coordinates, and the multi-dimensional center point can be used to obtain the EMA value of the cache data. The EMA according to the variation of the time can be expressed by the following equation (1).

Figure 112014045700117-pat00001
Figure 112014045700117-pat00001

여기서, t는 시간을 의미하고, EMA[t]는 시간에 따라 변하는 EMA를 의미하고, α는 0 내지 1 사이의 값을 가지는 가중치를 의미한다. 여기서, EMA에 대한 수식 및 정의는 당업자에게 자명하므로 설명을 생략하기로 한다. Here, t means time, EMA [t] means EMA which changes with time, and a means a weight having a value between 0 and 1. Here, the formulas and definitions for the EMA are obvious to those skilled in the art, and therefore, a description thereof will be omitted.

다시, 도 2의 계산부(320)의 설명으로 돌아와서, 본 발명에 따른 질의 할당 방법에서는, 계산부(320)는, 분산 캐시 인프라구조를 가지는 적어도 하나의 어플리케이션 서버(400)가, 분포된 질의가 변하는 상황에서도 적응할 수 있도록 EMA 포인트를 할당할 수 있다. 즉, n 개의 어플리케이션 서버(400)와 하나의 질의 할당 서버(300)가 존재한다고 가정하면, 계산부(320)는, EMA 포인트의 초기화를 위해서 n 개의 어플리케이션 서버(400)에 부여할 EMA 변수를 랜덤하게 결정할 수 있다. Returning to the description of the calculation unit 320 of FIG. 2, in the query allocation method according to the present invention, the calculation unit 320 determines whether at least one application server 400 having a distributed cache infrastructure has distributed queries An EMA point can be allocated so that the EMA point can be adapted even in a situation where a change occurs. That is, assuming that there are n application servers 400 and one query assignment server 300, the calculation unit 320 calculates EMA variables to be given to the n application servers 400 in order to initialize the EMA points Can be determined at random.

본 발명의 일 실시예에 따른 질의 할당 방법은, i) EMA와 ii) 부하를 모두 고려할 수 있다. 우선, i) EMA 만을 이용하여 질의를 할당하는 방법을 설명한 후, i) EMA 와 ii) 부하를 모두 고려한 방법을 이후에 설명하기로 한다.The query allocation method according to an embodiment of the present invention can consider both i) EMA and ii) load. First, i) a method of assigning a query using only EMA will be described, and a method considering both i) EMA and ii) load will be described hereinafter.

여기서, 계산부(320)는, i) EMA 만을 이용해서 질의를 할당할 수도 있다. 즉, 계산부(320)는, 질의 데이터를 q라고 가정하면, q의 중심 포인트를 계산하고, q의 중심 포인트와 가장 가까운 EMA 포인트를 가지는 어플리케이션 서버(400)를 검색할 수 있다. 여기서, 질의 데이터와 EMA 포인트 간의 거리는 유클라디언 거리로 정의될 수 있다. 이때, i) EMA 만을 이용하여 질의를 할당하는 방법을, 도 3을 통하여 설명하기로 한다. 여기서, (a) EMA는 각각의 중심 포인트를 가지고 있고, 각각의 영역을 가지고 있는데, 질의 데이터(Query, q)가 수신되는 경우, EMA 포인트와 질의 데이터 간의 거리가 가장 가까운 EMA를 가지는 어플리케이션 서버(400)로 질의가 할당되게 된다. 즉, (b) EMAk가 가지는 영역은 Bound(k,k+1)이고, EMAk +1이 가지는 영역은 Bound(k+1,k)라고 가정하자. 이때, 질의 데이터의 중심 포인트가 EMAk의 영역 내에 존재하는 경우, EMAk와 질의 데이터의 중심 포인트 간의 거리가, EMAk+1와 질의 데이터의 중심 포인트 간의 거리보다 짧으므로, 질의 데이터는 EMAk로 할당되게 된다. 이는, i) EMA만을 고려한 결과로서, 이후 i)EMA와 ii)부하를 모두 고려한 결과와 비교될 것이다.Here, the calculation unit 320 may allocate a query using only i) EMA. That is, when the query data is q, the calculation unit 320 calculates the center point of q and searches the application server 400 having the EMA point closest to the center point of q. Here, the distance between the query data and the EMA point can be defined as an Euclidian distance. At this time, i) a method of allocating a query using only EMA will be described with reference to FIG. Here, (a) EMA has each center point and each area, and when the query data (Query, q) is received, the application server having the EMA with the closest distance between the EMA point and the query data 400) is assigned to the query. (B) Assume that the region of EMA k is Bound (k, k + 1) and the region of EMA k +1 is Bound (k + 1, k). At this time, if a center point of the question data present in the area of the EMA k, because the distance between the center point of the EMA k and Q data, is shorter than the distance between the center point of the EMA k + 1 to the query data, query data is EMA k . This will be compared to i) considering both EMA and ii) load as a result of i) considering only EMA.

다시, 도 2로 돌아와서, 만약, 계산부(320)의 계산 결과로 질의 데이터인 q가 어플리케이션 서버(400)인 i에 할당이 되는 경우에는, i인 어플리케이션 서버(400)의 EMA를 하기 수학식 2를 통하여 계산할 수 있고, i인 어플리케이션 서버(400)의 EMA는 업데이트될 수 있다.Returning to FIG. 2, if the query data q is assigned to i, which is the application server 400, as a result of the calculation unit 320, the EMA of the application server 400, i, 2, and the EMA of the application server 400 which is i can be updated.

Figure 112014045700117-pat00002
Figure 112014045700117-pat00002

여기서, EMAi*는 i번째 어플리케이션 서버의 EMA를 의미하고, α는 0 내지 1의 가중치를 의미하고, q는 질의 데이터의 다차원 중심 포인트를 의미한다.Here, EMAi * denotes the EMA of the i-th application server, a denotes a weight of 0 to 1, and q denotes a multi-dimensional center point of the query data.

한편, i) EMA와 ii) 부하를 모두 고려하기 위해서는, 적어도 하나의 어플리케이션 서버(400)에 각각 할당된 질의 데이터에 대응하는 부하도 파악해야 한다. 따라서, 파악부(430)는, 적어도 하나의 어플리케이션 서버(400)에 할당된 작업량인 부하에 대응하는 질의의 수를 파악할 수 있다.On the other hand, in order to consider both i) EMA and ii) load, it is necessary to grasp the load corresponding to the query data allocated to each of at least one application server 400. [ Therefore, the holding unit 430 can grasp the number of queries corresponding to the load, which is the workload assigned to at least one application server 400. [

할당부(440)는, 계산된 EMA와 부하에 기반하여, 수신된 질의 데이터를 적어도 하나의 어플리케이션 서버(400) 중 어느 하나의 어플리케이션 서버(400)에 할당할 수 있다. 여기서, 할당부(440)는, 하기 수학식 3을 통하여 EMA와 부하를 모두 고려할 수 있다. 즉, 할당부(440)는, EMA와 부하를 곱한 결과를 이용할 수 있다.The assigning unit 440 can assign the received query data to one of the application servers 400 of at least one application server 400 based on the calculated EMA and the load. Here, the assigning unit 440 can consider both the EMA and the load through the following Equation (3). That is, the assigning unit 440 can use the result of multiplying the EMA by the load.

Figure 112014045700117-pat00003
Figure 112014045700117-pat00003

여기서, Bound(i,j)는 i번째 어플리케이션 서버와 j번째 어플리케이션 서버 간의 EMA 거리를 의미하고, Bound(j,i)는 j번째 어플리케이션 서버와 i번째 어플리케이션 서버 간의 EMA 거리를 의미하고, Load(j)는 j번째 어플리케이션 서버에 할당된 작업량인 부하에 대응하는 질의의 수를 의미하고, Load(i)는 i번째 어플리케이션 서버에 할당된 작업량인 부하에 대응하는 질의의 수를 의미한다.Here, Bound (i, j) denotes an EMA distance between the i-th application server and the j-th application server, Bound (j, i) denotes an EMA distance between the j- j denotes the number of queries corresponding to the load, which is the workload allocated to the j-th application server, and Load (i) denotes the number of queries corresponding to the load, which is the workload allocated to the i-th application server.

정리하면, 할당부(440)는, 계산된 EMA와 부하를 곱하여 계산된 총 EMA를 적어도 하나의 어플리케이션(400)에 부여하고, 수신된 질의 데이터의 다차원 중심 포인트와, 부여된 총 EMA 간 거리를 계산하고, 계산된 거리가 가장 짧은 어느 하나의 어플리케이션 서버(400)에 질의 데이터를 할당함으로써 수행될 수 있다. 여기서, 다차원 중심 포인트와 EMA 간 거리는, 유클라디언 거리로 정의될 수 있다. 이때, 총 EMA는 갱신된 EMA로 정의한다.In summary, the assigning unit 440 assigns the total EMA calculated by multiplying the calculated EMA and the load to the at least one application 400, and calculates the distance between the multi-dimensional center point of the received query data and the total EMA And assigning the query data to any one of the application servers 400 having the shortest calculated distance. Here, the distance between the multi-dimensional center point and the EMA can be defined as an Euclidian distance. At this time, the total EMA is defined as the updated EMA.

할당부(440)에서, i) EMA와 ii) 부하를 모두 고려하여 질의를 할당하는 방법을 도 4를 참조하여 설명한다. 도 4의 (a)를 보면, EMA1은 부하가 15이고, EMA2는 부하가 5이므로, EMA1의 영역과 EMA2의 영역을 5:15로 설정할 수 있다. 여기서, 각각의 EMA를 중심으로 형성된 원은 아폴로니우스 원일 수 있다. 즉, EMA1에는, EMA2보다 이미 부하가 3배나 많이 걸려있으므로, EMA1의 영역을 EMA2의 영역보다 부하의 비에 반비례하도록 설정함으로써, EMA1의 영역 내에 새로운 질의 데이터가 위치할 확률을 줄이는 것이다. 즉, (b) EMAk가 가지는 영역은 Bound(k,k+1)이고, EMAk +1이 가지는 영역은 Bound(k+1,k)라고 가정하자. 이때, 각 EMA가 가지는 영역은, 이미 각 EMA에 걸린 부하가 고려되어 있다. 즉, 부하가 30이 걸린 EMAk는 1 만큼의 영역을 가지고 있고, 부하가 10이 걸린 EMAk +1은 3 만큼의 영역을 가지고 있다. 이때, 질의 데이터의 중심 포인트가 EMAk +1의 영역 내에 존재하는 경우, EMAk와 질의 데이터의 중심 포인트 간의 거리가, EMAk + 1와 질의 데이터의 중심 포인트 간의 거리보다 짧지만, 부하를 고려한 영역이 EMAk:EMAk +1=1:3으로 설정되어 있고, 이미 질의 데이터는 EMAk +1의 영역 내에 존재하므로, 새로운 질의 데이터는 EMAk +1로 할당되게 된다.A method of allocating a query in consideration of both i) EMA and ii) load will be described with reference to Fig. 4 in the allocating unit 440. Fig. 4 (a), EMA 1 has a load of 15 and EMA 2 has a load of 5, so that the area of EMA 1 and the area of EMA 2 can be set to 5:15. Here, a circle formed around each EMA may be an Apollonius circle. That is, EMA1 is, than EMA 2 because it is already the load is three times as much hanging, by setting the area of the EMA 1 to be inversely proportional to the load ratio than the area of the EMA 2, to reduce the chance of a new query data is located in the region of EMA 1 will be. (B) Assume that the region of EMA k is Bound (k, k + 1) and the region of EMA k +1 is Bound (k + 1, k). At this time, the load on each EMA is already taken into account in the area of each EMA. That is, the EMA k having a load of 30 has an area of 1, and the EMA k +1 having a load of 10 has an area of 3. In this case, when the center point of the query data is within the area of EMA k +1 , the distance between EMA k and the center point of the query data is shorter than the distance between EMA k + 1 and the center point of the query data, Area is set to EMA k : EMA k +1 = 1: 3, and since the query data already exists in the area of EMA k +1 , new query data is assigned to EMA k +1 .

도 2로 다시 돌아와서, 업데이트부(450)는, 질의 데이터가 할당된 어플리케이션 서버(400)의 EMA 및 부하에 기초한 최종 EMA를 업데이트할 수 있다. 이때, EMA는 수학식 2 및 수학식 3에 의해 계산될 수 있다. 여기서, 질의 데이터는, 동일한 확률을 가지고 적어도 하나의 어플리케이션 서버(400) 중 어느 하나의 어플리케이션 서버에 할당될 수 있다. 즉, 질의 데이터는, 적어도 하나의 어플리케이션 서버(400)에 이미 할당된 질의 데이터와의 유사도를 고려하여, 적어도 하나의 어플리케이션 서버(400) 중 어느 하나의 어플리케이션 서버에 할당될 수 있다. 이는, 캐시 히트율을 높이기 위함일 수 있다. 그리고, 질의 데이터가 수신되는 경우, 질의 데이터는 질의 할당 서버(400)의 큐에 저장된 가장 오래된 질의 데이터와 대체하여 저장될 수 있다.Returning to Fig. 2, the update unit 450 may update the EMA of the application server 400 to which the query data is allocated and the final EMA based on the load. At this time, EMA can be calculated by Equations (2) and (3). Here, the query data may be assigned to any one of the at least one application server 400 with the same probability. That is, the query data may be assigned to any one of the application servers 400, taking into consideration the similarity with the query data already allocated to at least one application server 400. [ This may be to increase cache hit rate. When query data is received, the query data may be stored in place of the oldest query data stored in the queue of the query assignment server 400. [

이와 같은 도 2 내지 도 4의 질의 할당 방법 대해서 설명되지 아니한 사항은 앞서 도 1을 통해 질의 할당 방법에 대하여 설명된 내용과 동일하거나 설명된 내용으로부터 용이하게 유추 가능하므로 이하 설명을 생략하도록 한다. The matters not described with respect to the query allocation methods of FIGS. 2 to 4 can be easily deduced from the same or explanations as those described above with reference to FIG. 1, and the description will be omitted.

도 5는 도 1에 도시된 질의 할당 서버에서 어플리케이션 서버의 부하를 밸런싱하는 일 실시예를 도시한 도면이다. 도 5를 참조하면, 본 발명의 일 실시예에 따른 질의 할당 방법을, 최소-최대 최적화(min-max optimization) 관점으로 표현한 도면이다. 여기서, 선형 질의 공간과 단일 질의 분산을 가정하고, EMA가 E2인 제 2 어플리케이션 서버(400)는 부하가 최대로 걸려있다고 가정한다. 즉, 제 2 어플리케이션 서버(400)에 걸린 부하 Load(2)가 제 1 어플리케이션 서버(400)에 걸린 부하 Load(1)나, 제 3 어플리케이션 서버(400)에 걸린 부하 Load(3)보다 크다고 가정한다. 그리고, m1은 E1보다는 E2에 가깝고, m2는 E3보다는 E2에 가깝다고 가정한다. 즉, r2<r1이고, r3<r4이므로, r2+r3<r1+r4이고, 제 2 어플리케이션 서버(400)에 질의 데이터가 할당될 확률은, 제 1 어플리케이션 서버(400)에 질의 데이터가 할당될 확률이나, 제 3 어플리케이션 서버(400)에 질의 데이터가 할당될 확률보다 낮게 된다. 따라서, 제 2 어플리케이션 서버(400)에 걸린 부하는 줄어들 수 있다.5 is a diagram illustrating an embodiment for balancing the load of an application server in the query allocation server shown in FIG. Referring to FIG. 5, a query allocation method according to an embodiment of the present invention is expressed in terms of min-max optimization. Here, assuming that a linear query space and a uniform quality distribution are satisfied, it is assumed that the second application server 400 whose EMA is E2 has a maximum load. That is, it is assumed that the load 2 loaded on the second application server 400 is larger than the load 1 loaded on the first application server 400 or the load 3 loaded on the third application server 400 do. It is assumed that m1 is closer to E2 than E1 and m2 is closer to E2 than E3. That is, since r2 <r1 and r3 <r4, r2 + r3 <r1 + r4, and the probability that the query data is allocated to the second application server 400 is that the query data is allocated to the first application server 400 The probability that the query data is allocated to the third application server 400 is lower than the probability. Therefore, the load on the second application server 400 can be reduced.

이와 같은 도 5의 질의 할당 방법에 대해서 설명되지 아니한 사항은 앞서 도 1 내지 도 4를 통해 질의 할당 방법에 대하여 설명된 내용과 동일하거나 설명된 내용으로부터 용이하게 유추 가능하므로 이하 설명을 생략하도록 한다. The matters not described in relation to the query allocation method of FIG. 5 can be easily deduced from the same or described contents of the query allocation method described above with reference to FIGS. 1 to 4, and the description thereof will be omitted.

도 6은 도 1에 도시된 질의 할당 서버에서 EMA 포인트 및 부하에 기반하여 질의를 할당하는 알고리즘의 일 실시예를 도시한다. 본 발명의 일 실시예에 따른 알고리즘은, 도 6의 알고리즘의 한정되는 것은 아니고, 본 발명의 따른 i) EMA 또는 ii) 부하를 고려하여 적어도 하나의 어플리케이션 서버에, 적어도 하나의 클라이언트의 질의 데이터를 분산하여 할당하는 알고리즘이면 어느 것이든 가능하다는 것은 당업자에게 자명하다 할 것이다.6 illustrates an embodiment of an algorithm for assigning queries based on EMA points and load in the query allocation server shown in FIG. The algorithm according to an embodiment of the present invention is not limited to the algorithm of Fig. 6, but may be applied to at least one application server in consideration of i) EMA or ii) load according to the present invention, It will be apparent to those skilled in the art that any algorithm can be used to distribute and allocate.

이와 같은 도 6의 질의 할당 방법에 대해서 설명되지 아니한 사항은 앞서 도 1 내지 도 5를 통해 질의 할당 방법에 대하여 설명된 내용과 동일하거나 설명된 내용으로부터 용이하게 유추 가능하므로 이하 설명을 생략하도록 한다. The matters not described with respect to the query allocation method of FIG. 6 can be easily deduced from the same or explanations of the query allocation method described above with reference to FIGS. 1 to 5, and the description thereof will be omitted.

도 7 및 도 8은 본 발명의 일 실시예에 따른 질의 할당 방법의 성능 평가 그래프를 도시한 도면이다. 도 7 및 도 8에서는, 본 발명의 일 실시예에 따른 질의 할당 방법의 성능을 측정하기 위하여, 다양한 질의 분포(uniform, normal, Zipf)를 가진 질의 세트를 사용하였다. 여기서, 도 7 및 도 8의 실험은, 41대의 리눅스 클러스터 머신과, 복수의 머신에 대한 성능 평가를 위하여 시뮬레이터를 사용하였다. 여기서, 실험에 사용한 머신은 dual QuadCore Xeon E5506 2.13 GHz CPUs가 장착되었으며, 각 노드당 12 GB의 메모리를 사용하였고, 각 노드는 Gigabit switched Ethernet으로 연결된다.FIG. 7 and FIG. 8 are graphs showing performance evaluation graphs of a query allocation method according to an embodiment of the present invention. 7 and 8, in order to measure the performance of the query allocation method according to an embodiment of the present invention, a query set having various query distributions (uniform, normal, Zipf) is used. Here, the experiments of FIGS. 7 and 8 use a simulator for performance evaluation of 41 Linux cluster machines and a plurality of machines. Here, the experimental machine is equipped with dual QuadCore Xeon E5506 2.13 GHz CPUs, each node uses 12 GB of memory, and each node is connected to Gigabit switched Ethernet.

도 7을 참조하면, 어플리케이션 서버의 수가 증가함에 따라, (a) 질의 응답 시간, (b) 캐시 히트율, (c) 로드 밸런싱의 변화를 도시한다. 이때, 캐시 히트율은, 이전 질의 데이터를 처리함으로써 사용되었던 데이터가 재사용되는 확률을 의미한다.Referring to FIG. 7, as the number of application servers increases, (a) query response time, (b) cache hit rate, and (c) load balancing change. At this time, the cache hit rate means the probability that the data used by processing the previous query data is reused.

여기서, 질의 응답 시간은, 질의 할당 서버가 질의 데이터를 수신받고, 어플리케이션 서버에 질의 데이터가 할당되고, 어플리케이션 서버가 할당된 질의 데이터의 처리를 완료할 때까지의 시간을 의미한다. 여기서, 각각의 어플리케이션 서버는, 100개의 질의 결과를 저장할 수 있는 LRU 캐시를 가지고 있다.Here, the query response time means the time from when the query allocation server receives the query data, the query data is allocated to the application server, and the application server completes the processing of the query data allocated thereto. Here, each application server has an LRU cache capable of storing 100 query results.

(a) 어플리케이션 서버가 증가함에 따라, 질의 응답 시간이 줄어드는 것을 알 수 있다. 즉, 복수의 어플리케이션 서버는 더 많은 캐시 공간을 제공할 수 있다. 여기서, 본 발명의 일 실시예에 따른 방법은, BEMA(Balancing EMA)로 표기되는데, 어플리케이션 서버의 수가 늘어날수록 본 발명의 BEMA의 질의 처리 시간이 가장 빠른 것을 알 수 있다. 또한, (b) 본 발명의 BEMA가 어플리케이션 서버의 수가 증가함에 따라 캐시 히트율도 함께 가장 많이 증가하는 것을 알 수 있다. 그리고, (c) 본 발명의 BEMA가 어플리케이션의 수가 적든 많든 간에 가장 좋은 부하 분산율을 가지는 것을 알 수 있다. (a) As the application server increases, the query response time decreases. That is, a plurality of application servers can provide more cache space. Here, the method according to an embodiment of the present invention is represented by BEMA (Balancing EMA). As the number of application servers increases, the processing time of the BEMA of the present invention is the fastest. Also, (b) the BEMA of the present invention shows that the cache hit ratio increases the most as the number of application servers increases. (C) It can be seen that the BEMA of the present invention has the best load distribution ratio regardless of whether the number of applications is small or not.

도 8은 본 발명의 일 실시예에 따른 질의 할당 방법을 설명하기 위한 동작 흐름도이다. 도 8을 참조하면, 질의 할당 서버는, 적어도 하나의 클라이언트로부터 질의 데이터를 수신한다(S7100).8 is a flowchart illustrating an example of a query allocation method according to an embodiment of the present invention. Referring to FIG. 8, the query assignment server receives query data from at least one client (S7100).

그리고 나서, 질의 할당 서버는, 수신된 질의 데이터를 적어도 하나의 어플리케이션 서버에 할당하기 위하여, 적어도 하나의 어플리케이션 서버의 EMA(Exponential Moving Average)를 계산한다(S7200).Then, the query allocation server calculates an Exponential Moving Average (EMA) of at least one application server in order to allocate the received query data to at least one application server (S7200).

또한, 질의 할당 서버는, 적어도 하나의 어플리케이션 서버에 할당된 작업량인 부하에 대응하는 질의의 수를 파악한다(S7300).In addition, the query assignment server determines the number of queries corresponding to the load, which is the workload allocated to at least one application server (S7300).

마지막으로, 질의 할당 서버는, 계산된 EMA와 부하에 기반하여, 수신된 질의 데이터를 적어도 하나의 어플리케이션 서버 중 어느 하나의 어플리케이션 서버에 할당한다(S7400).Finally, the query assignment server assigns the received query data to any one of the application servers based on the calculated EMA and the load (S7400).

도 8을 통하여, 본 발명의 일 실시예에 따른 질의 할당 방법 대해서 설명되지 아니한 사항은 앞서 도 1 내지 도 7을 통해 질의 할당 방법에 대하여 설명된 내용과 동일하거나 설명된 내용으로부터 용이하게 유추 가능하므로 이하 설명을 생략하도록 한다. 8, matters not described with respect to the query allocation method according to an embodiment of the present invention can be easily derived from the same or described contents of the query allocation method described above with reference to FIGS. 1 to 7 The description will be omitted.

상술한 단계들(S7100~S7400)간의 순서는 예시일 뿐, 이에 한정되지 않는다. 즉, 상술한 단계들(S7100~S7400)간의 순서는 상호 변동될 수 있으며, 이중 일부 단계들은 동시에 실행되거나 삭제될 수도 있다.The order between the above-described steps (S7100 to S7400) is merely an example, but is not limited thereto. That is, the order between the above-described steps S7100 to S7400 may be mutually varied, and some of the steps may be executed or deleted at the same time.

도 8을 통해 설명된 일 실시예에 따른 질의 할당 방법은, 컴퓨터에 의해 실행되는 애플리케이션이나 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.The method of assigning a query according to the embodiment described with reference to FIG. 8 may also be implemented in the form of a recording medium including instructions executable by a computer such as an application or a program module executed by a computer. Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. In addition, the computer-readable medium can include both computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media typically includes any information delivery media, including computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, or other transport mechanism.

전술한 본 발명의 일 실시예에 따른 질의 할당 방법은, 단말기에 기본적으로 설치된 애플리케이션(이는 단말기에 기본적으로 탑재된 플랫폼이나 운영체제 등에 포함된 프로그램을 포함할 수 있음)에 의해 실행될 수 있고, 사용자가 애플리케이션 스토어 서버, 애플리케이션 또는 해당 서비스와 관련된 웹 서버 등의 애플리케이션 제공 서버를 통해 마스터 단말기에 직접 설치한 애플리케이션(즉, 프로그램)에 의해 실행될 수도 있다. 이러한 의미에서, 전술한 본 발명의 일 실시예에 따른 질의 할당 방법은 단말기에 기본적으로 설치되거나 사용자에 의해 직접 설치된 애플리케이션(즉, 프로그램)으로 구현되고 단말기에 등의 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다.The query allocation method according to an embodiment of the present invention may be executed by an application installed in a terminal (which may include a program included in a platform or an operating system basically installed in the terminal) (I.e., a program) installed directly on the master terminal through an application providing server such as an application store server, an application, or a web server associated with the service. In this sense, the query allocation method according to an embodiment of the present invention described above is implemented as an application (i.e., a program) installed basically in a terminal or directly installed by a user and stored in a computer readable recording medium Lt; / RTI &gt;

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다. It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.

Claims (10)

질의 할당 서버에서 실행되는 질의 할당 방법에 있어서,
적어도 하나의 클라이언트로부터 질의 데이터를 수신하는 단계;
상기 수신된 질의 데이터를 적어도 하나의 어플리케이션 서버에 할당하기 위하여, 상기 적어도 하나의 어플리케이션 서버의 EMA(Exponential Moving Average)를 계산하는 단계;
상기 적어도 하나의 어플리케이션 서버에 할당된 작업량인 부하에 대응하는 질의의 수를 파악하는 단계;
상기 계산된 EMA와 부하에 기반하여, 상기 수신된 질의 데이터를 상기 적어도 하나의 어플리케이션 서버 중 어느 하나의 어플리케이션 서버에 할당하는 단계;
를 포함하되,
상기 EMA를 계산하는 단계는,
상기 적어도 하나의 어플리케이션 서버에 EMA를 랜덤하게 부여하는 단계;
상기 수신된 질의 데이터의 다차원 중심 포인트와 상기 EMA 간 거리를 계산하는 단계;
를 포함하는 것인, 질의 할당 방법.
A query allocation method executed in a query assignment server,
Receiving query data from at least one client;
Calculating Exponential Moving Average (EMA) of the at least one application server to assign the received query data to at least one application server;
Determining a number of queries corresponding to a load, which is an amount of work allocated to the at least one application server;
Assigning the received query data to any one of the application servers based on the calculated EMA and the load;
, &Lt; / RTI &
The step of calculating the EMA comprises:
Randomly assigning an EMA to the at least one application server;
Calculating a distance between the multi-dimensional center point of the received query data and the EMA;
Wherein the query is a query.
삭제delete 제 1 항에 있어서,
상기 계산된 EMA와 부하에 기반하여, 상기 수신된 질의 데이터를 상기 적어도 하나의 어플리케이션 서버 중 어느 하나의 어플리케이션 서버에 할당하는 단계는,
상기 계산된 EMA와 부하를 곱하여 계산된 총 EMA를 상기 적어도 하나의 어플리케이션에 부여하고,
상기 수신된 질의 데이터의 다차원 중심 포인트와, 상기 부여된 총 EMA 간 거리를 계산하고,
상기 계산된 거리가 가장 짧은 상기 어느 하나의 어플리케이션 서버에 상기 질의 데이터를 할당함으로써 수행되는 것인, 질의 할당 방법.
The method according to claim 1,
Wherein the step of assigning the received query data to one of the at least one application server based on the calculated EMA and the load includes:
Assigning a total EMA calculated by multiplying the calculated EMA to a load to the at least one application,
Calculating a distance between the multi-dimensional center point of the received query data and the granted total EMA,
And allocating the query data to any one of the application servers having the shortest calculated distance.
제 3 항에 있어서,
상기 다차원 중심 포인트와 상기 EMA 간 거리는, 유클라디언 거리로 정의되는 것인, 질의 할당 방법.
The method of claim 3,
Wherein the distance between the multi-dimensional center point and the EMA is defined as an Euclidean distance.
제 1 항에 있어서,
상기 질의 데이터는, 동일한 확률을 가지고 상기 적어도 하나의 어플리케이션 서버 중 어느 하나의 어플리케이션 서버에 할당되는 것인, 질의 할당 방법.
The method according to claim 1,
Wherein the query data is assigned to one of the at least one application server with the same probability.
제 1 항에 있어서,
상기 질의 데이터는, 상기 적어도 하나의 어플리케이션 서버에 이미 할당된 질의 데이터와의 유사도를 고려하여, 상기 적어도 하나의 어플리케이션 서버 중 어느 하나의 어플리케이션 서버에 할당되는 것인, 질의 할당 방법.
The method according to claim 1,
Wherein the query data is allocated to any one of the application servers in consideration of the degree of similarity with query data already allocated to the at least one application server.
제 1 항에 있어서,
상기 질의 데이터가 할당된 어플리케이션 서버의 EMA 및 부하에 기초한 최종 EMA를 업데이트하는 단계
를 더 포함하는 것인, 질의 할당 방법.
The method according to claim 1,
Updating the final EMA based on the EMA and the load of the application server to which the query data is allocated
Further comprising the steps of:
제 1 항에 있어서,
상기 질의 데이터가 수신되는 경우, 상기 질의 데이터를 상기 질의 할당 서버의 큐에 저장된 가장 오래된 질의 데이터와 대체하여 저장하는 단계;
를 더 포함하는 것인, 질의 할당 방법.
The method according to claim 1,
Storing the query data in place of the oldest query data stored in a queue of the query assignment server when the query data is received;
Further comprising the steps of:
제 1 항에 있어서,
상기 계산된 EMA와 부하에 기반하여, 상기 수신된 질의 데이터를 상기 적어도 하나의 어플리케이션 서버 중 어느 하나의 어플리케이션 서버에 할당하는 단계는,
하기 수학식을 이용하여, 상기 질의 데이터를 상기 어느 하나의 어플리케이션 서버에 할당하는 것인, 질의 할당 방법:
Figure 112014045700117-pat00004

Figure 112014045700117-pat00005

여기서, EMAi*는 i번째 어플리케이션 서버의 EMA를 의미하고, α는 0 내지 1의 가중치를 의미하고, q는 질의 데이터의 다차원 중심 포인트를 의미하고, Bound(i,j)는 i번째 어플리케이션 서버와 j번째 어플리케이션 서버 간의 EMA 거리를 의미하고, Bound(j,i)는 j번째 어플리케이션 서버와 i번째 어플리케이션 서버 간의 EMA 거리를 의미하고, Load(j)는 j번째 어플리케이션 서버에 할당된 작업량인 부하에 대응하는 질의의 수를 의미하고, Load(i)는 i번째 어플리케이션 서버에 할당된 작업량인 부하에 대응하는 질의의 수를 의미한다.
The method according to claim 1,
Wherein the step of assigning the received query data to one of the at least one application server based on the calculated EMA and the load includes:
Wherein the query data is allocated to one of the application servers using the following equation:
Figure 112014045700117-pat00004

Figure 112014045700117-pat00005

Here, EMAi denotes EMA of the i-th application server, α denotes a weight of 0 to 1, q denotes a multi-dimensional center point of query data, Bound (i, j) (j, i) denotes the EMA distance between the j-th application server and Bound (j, i) denotes the EMA distance between the j-th application server and the i-th application server, (I) denotes the number of queries corresponding to the load, which is the workload allocated to the i-th application server.
제1항 및 제3항 내지 제9항 중 어느 한 항의 방법을 프로세서에서 실행시키기 위한 프로그램을 기록한 프로세서가 읽을 수 있는 기록매체.10. A processor-readable recording medium having recorded thereon a program for causing a processor to execute the method according to any one of claims 1 to 9.
KR1020140058359A 2013-05-15 2014-05-15 Method for scheduling query KR101638797B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20130055048 2013-05-15
KR1020130055048 2013-05-15

Publications (2)

Publication Number Publication Date
KR20140135125A KR20140135125A (en) 2014-11-25
KR101638797B1 true KR101638797B1 (en) 2016-07-13

Family

ID=52455924

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140058359A KR101638797B1 (en) 2013-05-15 2014-05-15 Method for scheduling query

Country Status (1)

Country Link
KR (1) KR101638797B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109726191B (en) * 2018-12-12 2021-02-02 中国联合网络通信集团有限公司 Cross-cluster data processing method and system and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100628821B1 (en) 2002-12-31 2006-09-27 인터내셔널 비지네스 머신즈 코포레이션 Programmatic response-time based workload distribution techniques

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100715674B1 (en) * 2005-09-15 2007-05-09 한국전자통신연구원 Load balancing method and software steaming system using the same
KR101233296B1 (en) * 2011-03-03 2013-02-14 전자부품연구원 System and method for distance metric used weighted sum

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100628821B1 (en) 2002-12-31 2006-09-27 인터내셔널 비지네스 머신즈 코포레이션 Programmatic response-time based workload distribution techniques

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
정보과학회논문지 제38 권 제4 호

Also Published As

Publication number Publication date
KR20140135125A (en) 2014-11-25

Similar Documents

Publication Publication Date Title
US7203747B2 (en) Load balancing system and method in a multiprocessor system
JP5514041B2 (en) Identifier assignment method and program
US9405588B2 (en) Cloud resource allocation system and method
CN104954468A (en) Resource allocation method and resource allocation device
CN109710406B (en) Data distribution and model training method and device thereof, and computing cluster
CN109196807B (en) Network node and method of operating a network node for resource distribution
US10372766B2 (en) Method and system for generating a virtual thing for a machine-to-machine application and a method and system for providing a result of a virtual thing to a machine-to-machine application
US9609054B2 (en) Load balancing scalable storage utilizing optimization modules
US10558579B1 (en) System and method for adaptive cache
JP2016024612A (en) Data processing control method, data processing control program, and data processing control apparatus
US20140222896A1 (en) Distributed processing system and management method of distributed processing system
JP2006344068A5 (en)
JP2005148911A (en) Load distribution method and device, system and its program
KR101396394B1 (en) Methods to autonomously optimize performance using clustering in mobile cloud environment
Vishakha Performance Analysis of Cloud Load Balancing Algorithms
KR101638797B1 (en) Method for scheduling query
US9959290B2 (en) Method for the continuous processing of two-level data on a system with a plurality of nodes
EP3374881B1 (en) Dynamic allocation of hash table resources
CN105025042B (en) A kind of method and system of determining data information, proxy server
CN110430236A (en) A kind of method and dispatching device of deployment business
EP3342113B1 (en) Dynamic allocation of resources within network devices
Sufiev et al. DCF: Dynamic cluster flow architecture for SDN control plane
CN116436978B (en) Cloud computing-oriented memory allocation method, memory acquisition method, device and equipment
Jacobs et al. A study of caching strategies for web service discovery
KR101690944B1 (en) Method and apparatus for managing distributed cache in consideration of load distribution in heterogeneous computing environment

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant