KR20060086225A - Distributed virtual environment management systems and methods - Google Patents
Distributed virtual environment management systems and methods Download PDFInfo
- Publication number
- KR20060086225A KR20060086225A KR1020050007229A KR20050007229A KR20060086225A KR 20060086225 A KR20060086225 A KR 20060086225A KR 1020050007229 A KR1020050007229 A KR 1020050007229A KR 20050007229 A KR20050007229 A KR 20050007229A KR 20060086225 A KR20060086225 A KR 20060086225A
- Authority
- KR
- South Korea
- Prior art keywords
- server
- region
- slave server
- tree
- concurrent users
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
Abstract
본 발명은 협상 분산형 가상 환경(DVE) 관리 시스템에 관한 것이다. 마스터 서버는 제 1 슬래이브 서버로부터 재분배 요청을, 제 1 슬래이브 서버로부터 제 1 트리를, 제 2 슬래이브 서버로부터 제 2 트리를 수신하고, 제 1 영역의 제 1 부분이 제 2 슬래이브 서버에 의해 제어된다고 결정하고, 제 1 영역의 일부가 제 2 슬래이브 서버에 의해 제어됨을 표시하는 결과를 전송한다. The present invention relates to a negotiated distributed virtual environment (DVE) management system. The master server receives a redistribution request from the first slave server, a first tree from the first slave server, and a second tree from the second slave server, the first portion of the first zone being the second slave server. Determine that it is controlled by the second slave server and transmit a result indicating that part of the first area is controlled by the second slave server.
분산형, 관리, 가상, 환경, 서버Distributed, managed, virtual, environment, server
Description
도 1은 분산형 가상 환경(DVE) 시스템의 일실시예를 도시하는 도, 1 illustrates one embodiment of a distributed virtual environment (DVE) system;
도 2는 마스터, 백업 및 슬래이브 서버에 적용가능한 하드웨어 환경을 도시하는 도, 2 illustrates a hardware environment applicable to master, backup, and slave servers;
도 3은 DVE 관리 시스템의 일실시예의 소프트웨어 아키텍쳐를 도시하는 도, 3 illustrates a software architecture of one embodiment of a DVE management system;
도 4는 로컬 영역에 대한 예시적인 쿼드트리(Quadtree)를 도시하는 도, 4 illustrates an example Quadtree for a local area;
도 5a, 5b, 5c, 5d는 DVE 관리 방법의 일실시예에 대한 흐름도, 5A, 5B, 5C, and 5D are flowcharts of one embodiment of a DVE management method;
도 6a, 6b, 6c는 로컬 영역에 대한 상이한 측면의 예시적인 쿼드트리를 도시하는 도, 6A, 6B, 6C illustrate exemplary quadtrees of different aspects for the local area;
도 7a, 7b는 로컬 영역에 대한 상이한 측면의 예시적인 쿼드트리를 도시하는 도, 7A, 7B illustrate exemplary quadtrees of different aspects for a local area, FIGS.
도 8은 예시적인 쿼드트리를 도시하는 도, 및8 illustrates an example quadtree, and
도 9는 예시적인 쿼드트리를 도시하는 도이다. 9 is a diagram illustrating an exemplary quadtree.
*도면의 주요 부분에 대한 설명** Description of the main parts of the drawings *
11 : 프로세싱 장치 12 : 메모리11
13 : 저장 장치 14 : 출력 장치13: storage device 14: output device
15 : 입력 장치 16 : 통신 장치15
221, 231, 241, 251, 261 : 로컬 영역 관리 모듈 221, 231, 241, 251, 261: local area management module
211 : VE 관리 모듈 211: VE management module
본 발명은 분산형 가상 환경 관리에 관한 것이며, 보다 상세하게는, AOIM(Area Of Interest Management)의 시스템 및 방법에 관한 것이다. The present invention relates to distributed virtual environment management, and more particularly, to a system and method of AOIM (Area Of Interest Management).
분산형 가상 환경(DVE) 시스템에 의해, 지역적으로 분포된 사용자들이 서로 상호 작용하고, 인터넷과 같은 네트워크를 통해 그들의 상태 정보를 교환함으로써 가상 환경(VE)의 항상성 뷰(consistent view)를 공유할 수 있다. DVE 시스템이 VE의 크기와 동시 사용자 수 측면에서 성장하고 있기 때문에, 확장성(scalability), 즉, 그들의 상호 작용의 기능을 저하시키지 않고 대규모 VE에서 상호 작용하는 동시 사용자를 얼마나 많이 지원하는지가 중요한 문제로 되고 있다. 확장성을 개선하는 한가지 방법은 대부분의 상업적인 멀티플레이어 네트워크 게임 뿐만 아니라 몇몇 DVE 시스템에 채택된 멀티플 서버 아키텍처이다. 하나의 VE를 멀티플 영역에 참여시키면, 또한 그 영역을 관리할 책임을 멀티플 서버에 분산시키면, 개별적인 서버의 작업 부하를 상당히 감소시킬 수 있으며, 결과적으로, 시스템이 보다 많은 동시 사용자와 보다 큰 VE를 지원할 수 있다. With a distributed virtual environment (DVE) system, geographically dispersed users can share a consistent view of the virtual environment (VE) by interacting with each other and exchanging their state information over a network such as the Internet. have. Since DVE systems are growing in terms of VE size and number of concurrent users, it is important that scalability, i.e., how many concurrent users they support interacting in large VEs without sacrificing the functionality of their interactions. It is becoming. One way to improve scalability is the multiple server architecture employed in some DVE systems, as well as most commercial multiplayer network games. Joining a VE to multiple zones, and also distributing the responsibility for managing that zone across multiple servers, can significantly reduce the workload of individual servers, resulting in a system that has more concurrent users and larger VEs. Can support
그러나, 사용자가 DVE에 비균일하게 분포되면, 서버간의 작업 부하의 불균형 이 발생, 즉, 몇몇 서버는 다른 서버보다 많은 밀집 영역을 관리하여 과중의 작업 부하에 시달리게 된다. 결과적으로, 과중 부하의 서버에 의해 관리되는 사용자는 서버 상태 갱신의 긴 대기 시간으로 인해 낮은 상호 작용 실행을 경험하게 된다. 이러한 상호 작용 실행의 저하를 피하기 위해서, 동적인 부하 분산 방법이 필요하다. However, if users are distributed non-uniformly in the DVE, there is an unbalanced workload among servers, i.e., some servers manage more dense areas than others and suffer from heavy workloads. As a result, users managed by servers with heavy loads experience low interaction performance due to the long latency of server status updates. In order to avoid this degradation of interaction performance, a dynamic load balancing method is needed.
분산형 가상 환경(DVE) 관리 시스템이 제공된다. 이러한 시스템의 일실시예는 마스터 서버와, 제 1 슬래이브 서버와, 제 2 슬래이브 서버를 포함한다. 마스터 서버는 제 1 슬래이브 서버로부터 재분배 요청 및 제 1 트리를 수신하고, 제 2 슬래이브 서버로부터 제 2 트리를 수신한다. 제 1 트리는 복수의 제 1 노드를 포함한다. 각각의 제 1 노드는 얼마나 많은 사용자가 제 1 영역 또는 그 제 1 영역의 일부분에 존재하는지를 표시하는 제 1 동시 사용자 수(first concurrent user quantity)를 포함한다. 제 2 트리는 다수의 제 2 노드를 포함한다. 각각의 제 2 노드는 얼마나 많은 사용자가 제 2 영역 또는 그 제 2 영역의 일부분에 존재하는지를 표시하는 제 2 동시 사용자 수를 포함한다. 마스터 서버는, 제 1 영역의 제 1 부분이 제 2 영역과 인접하면, 또한, 제 2 영역의 제 2 동시 사용자 수와 제 1 영역의 제 1 부분의 제 1 동시 사용자 수의 합이 서버 부하 한계값의 소정의 퍼센트 값 또는 서버 부하 한계값보다 낮다면, 제 1 영역의 제 1 부분이 제 2 슬래이브 서버에 의해 제어된다고 결정한다. 추가로, 마스터 서버는 제 1 영역의 일부가 제 2 슬래이브 서버에 의해 제어됨을 표시하는 결과를 전송하여, 제 1 슬래이브 서버와 제 2 슬래이브 서버간의 제 1 영역의 제 1 부분에 대한 제어의 교환을 가능하게 한다. A distributed virtual environment (DVE) management system is provided. One embodiment of such a system includes a master server, a first slave server, and a second slave server. The master server receives the redistribution request and the first tree from the first slave server and receives the second tree from the second slave server. The first tree includes a plurality of first nodes. Each first node includes a first concurrent user quantity indicating how many users are present in the first region or a portion of the first region. The second tree includes a plurality of second nodes. Each second node includes a second number of concurrent users indicating how many users are present in the second area or a portion of the second area. In the master server, if the first portion of the first zone is adjacent to the second zone, the sum of the number of second concurrent users in the second zone and the first concurrent user in the first zone of the first zone is the server load limit. If the value is below a predetermined percentage value or server load threshold, it is determined that the first portion of the first region is controlled by the second slave server. In addition, the master server sends a result indicating that a portion of the first zone is controlled by the second slave server, thereby controlling the first portion of the first zone between the first slave server and the second slave server. Enable exchange of
마스터 서버에 의해 수행되는 DVE 관리 방법이 또한 제공된다. 실행될 때 DVE 관리 방법을 수행하는 컴퓨터 코드 세트가 또한 제공된다. Also provided is a DVE management method performed by a master server. A computer code set is also provided that performs the DVE management method when executed.
분산형 가상 환경(DVE) 관리 시스템 및 방법은 실시예에 대한 다음의 상세한 설명 및 첨부 도면을 참조함으로써 보다 자명해질 것이다. Distributed virtual environment (DVE) management systems and methods will become more apparent by reference to the following detailed description of embodiments and the accompanying drawings.
도 1은 로컬 접속을 이용하여 네트워크(바람직하게, 인터넷 또는 인트라넷) 상에서 작동하는 마스터 서버(21)와, 백업 서버(26)와, 슬래이브 서버(22, 23, 24, 25)를 포함하는 분산형 가상 환경(DVE) 시스템의 일실시예를 도시하는 도면이다. 당업자라면, 마스터 서버(21)와, 백업 서버(26)와 슬래이브 서버(22, 23, 24, 25)가 상이한 유형의 네트워킹 환경에서 접속되어 있으며, 라우터, 게이트웨이, 접근점, 기지국 시스템 등과 같은 여러 유형의 전송 수단을 통해 상이한 유형의 네트워킹 환경 간에 서로 통신한다는 것을 알 것이다. VE내의 4개의 영역(31, 32, 33, 34)은 슬래이브 서버(22, 23, 24, 25)에 의해 개별적으로 관리된다. 이들 영역의 크기는 동일하지 않을 수 있으며, 그들의 형상은 사각형 또는 직사각형으로 제한되지 않으며 다양한 다형태일 수 있다. 1 is a distributed system comprising a
도 2는 프로세싱 장치(11), 메모리(12), 저장 장치(13), 입력 장치(14), 출력 장치(15) 및 통신 장치(16)를 포함하는, 마스터, 백업 및 슬래이브 서버(21 내지 25)에 적용가능한 하드웨어 환경을 도시하는 도면이다. 프로세싱 장치(11)는 버스(17)를 통해 메모리(12), 저장 장치(13), 입력 장치(14), 출력 장치(15) 및 폰 노이만 구조(Von Neumann architecture)의 통신 장치(16)와 접속되어 있다. 컴퓨터의 프로세서가 단일의 중앙 처리 장치(CPU), 마이크로프로세싱 장치(MPU) 또는 일반적으로 병렬 프로세싱 환경으로 불리우는 복수의 프로세싱 장치를 포함하는 바와 같이, 하나 이상의 프로세싱 장치(11)가 있을 수 있다. 바람직하게, 메모리(12)는 랜덤 액세스 메모리(RAM)이지만, 판독 전용 메모리(ROM) 또는 플래시 ROM을 또한 포함할 수 있다. 바람직하게, 메모리(12)는 프로세싱 장치(11)에 의해 실행되어 DVE 관리 기능을 수행하는 프로그램 모듈을 저장한다. 일반적으로, 특정의 작업을 수행하거나 특정의 추상 데이터 유형을 구현하는 프로그램 모듈은 루틴, 프로그램, 객체, 구성 요소, 스크립트, 웹 페이지 등을 포함한다. 또한, 당업자라면, 몇몇 실시예가 휴대용 장치, 멀티프로세서 기반의 전자 장치, 마이크로프로세서 기반의 전자 장치, 또는 프로그래밍가능 전자 장치, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함한 다른 컴퓨터 시스템 구성을 이용하여 실행될 수 있음을 알 것이다. 몇몇 실시예는, 통신 네트워크를 통해 링크된 원격 처리 장치에 의해 작업이 수행되는 분산형 컴퓨팅 환경에서 또한 실행될 수 있다. 분산형 컴퓨팅 환경에서, DCOM, CORBA, 웹 객체, 웹 서비스 또는 다른 유사한 구조 등의 여러 원격 액세스 구조를 기반으로 하는 로컬 및 원격 메모리 저장 장치 둘 다에 프로그램 모듈이 배치될 수 있다. 저장 장치(13)는 하드 드라이브, 자기 드라이브, 광학 드라이브, 휴대용 드라이브 또는 비휘발성 메모리 드라이브일 수 있다. 드라이브 및 관련 컴퓨터 판독가능 매체(필요한 경우)는 컴퓨터 판독가능 명령어, 데이터 구 조 및 프로그램 모듈을 비휘발성으로 저장한다. 메모리(12)로부터, 또한 조작자에 의한 입력 장치를 통해 수신된 프로그램 모듈에 의해 제어되는 프로세싱 장치(11)는 DVE 관리 기능을 감독한다. FIG. 2 shows a master, backup and
도 3은 DVE 관리 시스템의 일실시예에 대한 소프트웨어 아키텍쳐를 도시하는 도면이다. 슬래이브 서버(22 내지 25)와 백업 서버(26)는 개별적으로 로컬 영역 관리 모듈(221 내지 261)을 포함하며, 마스터 서버(21)는 VE 관리 모듈(211)을 포함한다. 각각의 영역 관리 모듈은 쿼드트리를 이용하여 마스터 서버(21)에 의해 할당된 로컬 영역 내의 동시 사용자의 수를 유지하고, 자 노드(child node)를 제거하고, 하나의 노드에 대한 새로운 자 노드를 삽입하고, 동시 사용자 수에 따라서 쿼드트리와 함께 재분배 요청을 VE 관리 모듈(211)에 출력하고, VE 관리 모듈(211)로부터 재분배 결과를 수신한다. VE 관리 모듈(211)은 영역 축소 기능(area-receding functions)을 수행하여, 수신된 쿼드트리에 따라서, VE 내의 몇몇 영역과, 필요한 경우에 슬래이브 서버(22 내지 25)와 백업 서버(26)에 의해 관리되는 축소 영역을 관리하기 위해 추가적인 서버가 필요한지를 결정한다. 3 is a diagram illustrating a software architecture for one embodiment of a DVE management system. The
쿼드트리 내의 각각의 노드는 2차원으로 분할되어 4개의 자 노드로 되며, 로컬 영역의 전체/일부에 대응한다. 도 4는 4개의 부분(R41a 내지 R41d)을 포함하는 로컬 영역에 대한 예시적인 쿼드트리를 도시하는 도면이다. 노드(N41)는 전체 영역(R41) 내의 동시 사용자 수(31)를 저장하고, 노드(N41a, N41b, N41c, N41d)는 영역(R41a, R41b, R41d, R41c) 내의 동시 사용자 수(5, 5, 5, 16)를 저장한다. 서북(NW), 동북(NE), 남동(SE) 및 남서(SW) 부분의 4개의 서브 영역은 N41a, N41b, N41c, N41d와 같은 노드에 의해 순차적으로 정렬될 수 있다. 모든 노드에 대한 지역적인 정보가 개별적으로 저장될 수 있다. Each node in the quadtree is divided into two dimensions into four child nodes, corresponding to all / parts of the local area. 4 is a diagram illustrating an exemplary quadtree for a local area that includes four portions R41a through R41d. The node N41 stores the number of
도 5a, 5b, 5c, 5d는 추가적으로 명확하게 하기 위해서 점선으로 분리되어 있는 2개의 부분, 즉, 로컬 영역 관리 모듈(221, 231, 241 또는 251)에 의해 수행되는 단계를 나타내는 좌측부와, VE 관리 모듈(211)에 의해 수행되는 단계를 나타내는 우측부로 분할된 DVE 관리 방법의 실시예에 대한 흐름도를 도시한다. 5A, 5B, 5C, and 5D show two parts separated by dashed lines for further clarity, i.e., the left part showing the steps performed by the local
단계 S411에서, 원 영역과 착신지 영역에 관한 정보와 함께, 원 영역으로부터 착신지 영역으로 사용자가 이동하였음을 표시하는 이동 메시지를 수신한다. 단계 S421에서, 다른 서버로부터 이동 메시지를 수신하고 있는지를 결정하고, 그렇다면, 프로세스는 단계 S453으로 진행되고, 그렇지 않으면, 프로세스는 단계 S423으로 진행된다. 이러한 결정은 유지된 쿼드트리 내에 원 영역이 존재하는지를 검출함으로써 이루어질 수 있다. 단계 S423에서, 수신된 원 영역에 대응하는 노드가 위치 결정된다(located). 단계 S425에서, 위치 결정된 노드 내의 동시 사용자 수가 1만큼 감소된다. 단계 S431에서, 위치 결정된 노드가 루트 노드인지를 결정하고, 그렇다면, 프로세스는 단계 S451로 진행되고, 그렇지 않으면, 프로세스가 단계 S433으로 진행된다. 단계 S433에서, 모 노드(parent node)가 위치 결정된다. 단계 S435에서, 위치 결정된 노드 내의 동시 사용자 수가 1만큼 감소된다. 단계 S441에서, 갱신된 동시 사용자 수에 따라서, 그 위치 결정된 노드에 대한 자 노드가 합병될 필요가 있는지 결정한다. 예를 들어, 갱신된 동시 사용자 수가 영역 한계값으로 낮아지면, 그 위치 결정된 노드에 대한 자 노드가 합병되어야 한다. 영 역 한계값은 단일의 리프 노드(leaf node) 내의 동시 사용자 수를 제한하는데 사용된다. 단계 S443에서, 그 위치 결정된 노드에 대한 자 노드가 제거된다. In step S411, a movement message indicating that the user has moved from the original area to the destination area is received together with the information about the original area and the destination area. In step S421, it is determined whether a mobile message is being received from another server, and if so, the process proceeds to step S453, otherwise, the process proceeds to step S423. This determination can be made by detecting whether the original area exists in the maintained quadtree. In step S423, a node corresponding to the received original area is located. In step S425, the number of concurrent users in the located node is reduced by one. In step S431, it is determined whether the located node is the root node, and if so, the process proceeds to step S451; otherwise, the process proceeds to step S433. In step S433, a parent node is located. In step S435, the number of concurrent users in the located node is reduced by one. In step S441, according to the updated number of concurrent users, it is determined whether the child node for the located node needs to be merged. For example, if the number of updated concurrent users is lowered to the zone limit, the child nodes for that located node must be merged. The zone limit is used to limit the number of concurrent users in a single leaf node. In step S443, the child node for the located node is removed.
단계 S451에서, 다른 서버로 이동 메시지가 출력되고 있는지를 결정하고, 그렇다면, 프로세스는 종료되며, 그렇지 않으면, 프로세스는 단계 S453으로 진행된다. 유지된 쿼드트리내에 착신지 영역이 존재하는지를 검출함으로써 이러한 결정이 이루어질 수 있다. 단계 S453에서, 착신지 영역에 대응하는 노드가 위치 결정된다. 단계 S455에서, 그 위치 결정된 노드 내의 동시 사용자 수는 1만큼 증가된다. 단계 S461에서, 그 위치 결정된 노드가 분할될 필요가 있는지를 결정하고, 그렇다면, 프로세스는 단계 S463으로 진행되며, 그렇지 않으면, 프로세스는 단계 S471로 진행된다. 예를 들어, 갱신된 동시 사용자 수가 상술한 영역 한계값을 초과하면, 위치 결정된 노드를 분할할 필요가 있다. 단계 S463에서, 위치 결정된 노드에 대해 4개의 자 노드가 생성되고, 동시 사용자 수를 획득하게 된다. 단계 S471에서, 위치 결정된 노드가 루트 노드인지를 결정하고, 그렇다면, 프로세스는 단계 S481로 진행되고, 그렇지 않으면, 프로세스는 단계 S473으로 진행된다. 단계 S473에서, 모 노드가 위치 결정된다. 단계 S481에서, 슬래이브 서버가 과부하 상태인지를 결정하고, 그렇다면, 프로세스는 단계 S483으로 진행하고, 그렇지 않으면, 프로세스는 종료된다. 예를 들어, 루트 노드 내의 동시 사용자 수가 서버 부하 한계값을 초과하면, 유지된 영역의 일부가 다른 슬래이브 서버 또는 백업 서버로 이동되어야 한다. 단계 S483에서, 루트 노드의 재분배 요청이 VE 관리 모듈(211)로 전송된다. 단계 S485에서, 재분배 결과가 VE 관리 모듈(211)로부터 수신 되어, 유지된 로컬 영역의 일부에 대한 슬래이브 서버와 백업 서버(필요한 경우)간의 제어의 교환(exchange)이 가능하게 된다. 단계 S491에서, 쿼드트리 요청이 수신된다. 단계 S493에서, 유지된 쿼드트리는 VE 관리 모듈(211)로 전송된다. In step S451, it is determined whether a move message is output to another server, and if so, the process ends, otherwise, the process proceeds to step S453. This determination can be made by detecting whether a destination area exists in the maintained quadtree. In step S453, the node corresponding to the destination area is located. In step S455, the number of concurrent users in the located node is increased by one. In step S461, it is determined whether the located node needs to be split, and if so, the process proceeds to step S463; otherwise, the process proceeds to step S471. For example, if the number of updated concurrent users exceeds the area threshold described above, it is necessary to partition the located node. In step S463, four child nodes are created for the located nodes, and the number of simultaneous users is obtained. In step S471, it is determined whether the located node is the root node, and if so, the process proceeds to step S481, otherwise, the process proceeds to step S473. In step S473, the parent node is located. In step S481, it is determined whether the slave server is overloaded, and if so, the process proceeds to step S483, otherwise, the process ends. For example, if the number of concurrent users in the root node exceeds the server load limit, some of the retained area must be moved to another slave server or backup server. In step S483, a redistribution request of the root node is sent to the
단계 S511에서, 루트 노드의 재분배 요청이 수신된다. 단계 S513에서, 수신된 루트 노드에 대응하는 영역을 밀집 영역으로 정의한다. 단계 S515에서, 쿼드트리 요청이 밀집 영역의 대응하는 슬래이브 서버에 전송된다. 단계 S517에서, 쿼드트리는 대응하는 슬래이브 서버로부터 수신된다. 수신된 쿼드트리의 각 노드는 어느 영역이 어느 슬래이브 서버에 의해 관리되는지를 표시하는 대응 슬래이브 서버 식별로 마킹된다는 것을 알아야 한다. 단계 S521에서, 밀집 영역에 인접하고 인접 영역간의 최소 동시 사용자 수를 가진 여유 영역(slack region)이 정의된다. 이러한 정의는 루트 노드 내의 동시 사용자 수를 검출함으로써 이루어질 수 있다. 단계 S523에서, 여유 영역과 밀집 영역의 동시 사용자의 수는 제 1 동시 사용자 수와 제 2 동시 사용자 수로서 각각 획득된다. 단계 S531에서, 밀집 영역에 대응하는 루트 노드가 위치 결정된다. 단계 S533에서, 현재의 노드에 대응하는 다음 노드가 위치 결정된다. 다음 노드 결정은 공지의 폭 우선 트래버셜(breadth-first Traversal) 또는 깊이 우선 트래버셜(depth-first Traversal)을 이용할 수 있다. 단계 S535에서, 위치 결정된 노드가 리프 노드인지를 결정하고, 그렇다면, 프로세스는 단계 S541로 진행되고, 그렇지 않으면, 프로세스는 단계 S533로 진행한다. 단계 S541에서, 위치 결정된 노드에 대응하는 영역이 여유 영역에 인접하는지를 결정하고, 그렇다면, 프로세스는 단계 S543으로 진행하고, 그렇지 않으면, 프로세스 는 단계 S533으로 진행한다. 바람직하게, Samet에 의해 도입된 효율적인 쿼드트리 트래버셜 알고리즘을 이용하여 인접 노드들을 획득하게 된다. 단계 S543에서, 위치 결정된 노드는 여유 영역과의 합병을 위해서 마킹된다. 단계 S545에서, 위치 결정된 노드 내의 동시 사용자 수는 제 1 동시 사용자 수에 가산되고 제 2 동시 사용자 수로부터 감산된다. 단계 S551에서, 재분배 프로세스가 충분한지를 결정하고, 그렇다면, 프로세스는 단계 S553으로 진행하고, 그렇지 않으면, 프로세스는 단계 S561로 진행된다. 예를 들어, 제 2 동시 사용자 수가 상술한 서버 부하 한계값 또는 서버 부하 한계값의 소정의 퍼센트 값으로 떨어지면, 재분배 프로세스는 충분하다. 단계 S553에서, 최종적인 쿼드트리가 대응 슬래이브 서버에 전송된다. In step S511, a redistribution request of the root node is received. In step S513, the area corresponding to the received root node is defined as a dense area. In step S515, a quadtree request is sent to the corresponding slave server in the dense area. In step S517, the quadtree is received from the corresponding slave server. It should be noted that each node of the received quadtree is marked with a corresponding slave server identification that indicates which area is managed by which slave server. In step S521, a slack region is defined that is adjacent to the dense area and has a minimum number of simultaneous users between the adjacent areas. This definition can be made by detecting the number of concurrent users in the root node. In step S523, the number of simultaneous users in the free area and the dense area is obtained as the number of first and second concurrent users, respectively. In step S531, a root node corresponding to the dense area is located. In step S533, the next node corresponding to the current node is located. The next node decision may use known breadth-first traversal or depth-first traversal. In step S535, it is determined whether the located node is a leaf node, and if so, the process proceeds to step S541, otherwise, the process proceeds to step S533. In step S541, it is determined whether the area corresponding to the positioned node is adjacent to the spare area, and if so, the process proceeds to step S543, otherwise, the process proceeds to step S533. Preferably, neighboring nodes are obtained using an efficient quadtree traversal algorithm introduced by Samet. In step S543, the positioned node is marked for merging with the free area. In step S545, the number of concurrent users in the located node is added to the first number of concurrent users and subtracted from the second number of concurrent users. In step S551, it is determined whether the redistribution process is sufficient, and if so, the process proceeds to step S553, otherwise, the process proceeds to step S561. For example, the redistribution process is sufficient if the number of second concurrent users drops to the server load threshold or a predetermined percentage value of the server load threshold described above. In step S553, the final quadtree is transmitted to the corresponding slave server.
단계 S561에서, 여유 영역이 채워지는지를 결정하고, 그렇다면, 프로세스는 단계 S571로 진행되고, 그렇지 않으면, 프로세스는 단계 S533로 진행된다. 예를 들어, 제 1 동시 사용자 수가 서버 부하 한계값 또는 서버 부하 한계값의 소정의 퍼센트 값을 초과하면, 여유 영역은 채워진다. 단계 S571에서, 백업 서버가 존재하는지를 결정하고, 그렇다면, 프로세스는 단계 S573으로 진행되고, 그렇지 않으면, 프로세스는 종료된다. 단계 S573에서, 현재의 노드에 대응하는 다음 노드가 위치 결정된다. 이용되는 트래버셜 접근법은 단계 S533와 동일하다는 것을 알아야 한다. 단계 S575에서, 위치 결정된 노드가 리프 노드인지를 결정하고, 그렇다면, 프로세스는 단계 S577로 진행되고, 그렇지 않으면, 프로세스는 단계 S573으로 진행된다. 단계 S577에서, 위치 결정된 노드에 대응하는 영역이 여유 영역에 인접하는지를 결정하고, 그렇다면, 프로세스는 단계 S578로 진행되고, 그렇지 않으면, 프로 세스는 단계 S573로 진행된다. 단계 S578에서, 위치 결정된 노드가 백업 서버용으로 마킹된다. 단계 S579에서, 위치 결정된 노드 내의 동시 사용자 수는 제 2 동시 사용자 수로부터 감산된다. 단계 S581에서, 재분배 프로세스가 충분한지를 결정하고, 그렇다면, 프로세스는 단계 S583로 진행되고, 그렇지 않으면, 프로세스는 단계 S573으로 진행된다. 단계 S583에서, 최종 쿼드트리가 대응 슬래이브 서버와 백업 서버로 전송된다. In step S561, it is determined whether the spare area is filled, and if so, the process proceeds to step S571, otherwise, the process proceeds to step S533. For example, if the number of first concurrent users exceeds the server load threshold or a predetermined percentage value of the server load threshold, the free area is filled. In step S571, it is determined whether a backup server exists, and if so, the process proceeds to step S573, otherwise, the process ends. In step S573, the next node corresponding to the current node is located. Note that the traversal approach used is the same as in step S533. In step S575, it is determined whether the located node is a leaf node, and if so, the process proceeds to step S577, otherwise, the process proceeds to step S573. In step S577, it is determined whether the area corresponding to the positioned node is adjacent to the spare area, and if so, the process proceeds to step S578, otherwise, the process proceeds to step S573. In step S578, the located node is marked for the backup server. In step S579, the number of concurrent users in the located node is subtracted from the second number of concurrent users. In step S581, it is determined whether the redistribution process is sufficient, and if so, the process proceeds to step S583, otherwise, the process proceeds to step S573. In step S583, the final quadtree is sent to the corresponding slave server and backup server.
VE 관리 방법에 대한 상세한 설명은 다음의 예에서 주어진다. 도 6a, 6b, 6c는 로컬 영역 관리 모듈(221)에 의해 유지된 로컬 영역(R6)에 대한 상이한 측면의 예시적인 쿼드트리를 도시하는 도면이다. 일실시예에서, 도 6a를 참조하면, 로컬 영역(R6)은 4개 부분(R61, R62, R63, R64)으로 논리적으로 분할되고, 서브 영역(R63)은 4개 부분(R631, R632, R633, R634)으로 논리적으로 분할된다. 영역(R6, R61, R62, R63, R64, R631, R632, R633, R634) 내의 동시 사용자 수는 30, 5, 5, 10, 10, 5, 2, 1, 2이다. 단계 S411에서, 영역(R634)으로부터 영역(R64)으로 사용자(U1)가 이동된다고 표시하는 이동 메시지는 로컬 영역 관리 모듈(221)에 의해 수신된다. 단계 S421, S423, S425에서, 노드(N634)의 동시 사용자 수는 1만큼 감소되어 1로 된다. 단계 S433 및 S435에서, 노드(N63)의 동시 사용자 수는 1만큼 감소되어 9로 된다. 영역 한계값이 10으로 설정되고, 단계 S441에서, 노드(N631, N632, N633, N634)는 합병된 것으로 결정된다. 단계 S443에서, 노드(N631, N632, N633, N634)는 제거된다. 단계 S431, S433, S435에서, 루트 노드(N6)의 동시 사용자 수는 1만큼 감소되어 29로 된다. 일시적인 결과가 도 6b에 도시되어 있다. 다 음에, 단계 S431, S451, S453, S455에서, 노드(R64)의 동시 사용자 수는 1만큼 증가되어, 11로 된다. 단계 S461에서, 노드(R64)는 분할되는 것으로 결정된다. 단계 S463에서, 4개의 자 노드(N641, N642, N644, N643)가 생성되고, 그들의 동시 사용자 수는 4, 2, 2, 3이다. 단계 S471, S473, S455에서, 루트 노드(N6)의 동시 사용자 수는 1만큼 증가되어 30으로 된다. 최종적으로, 프로세스가 종료되고, 최종 결과가 도 6c에 도시되어 있다. A detailed description of the VE management method is given in the following example. 6A, 6B, and 6C are diagrams illustrating exemplary quadtrees of different aspects for the local area R6 maintained by the local
도 7a 및 도 7b는 로컬 영역 관리 모듈(221)에 의해 유지되는 로컬 영역(R6)의 상이한 측면의 예시적인 쿼드트리를 도시하는 도면이다. 다른 예에서, 도 7a를 참조하면, 로컬 영역(R6)은 4개 부분(R61, R62, R63, R64)으로 논리적으로 분할되고, 서브 영역(R64)은 4개 부분(R641, R642, R643, R644)으로 논리적으로 분할된다. 영역(R6, R61, R62, R63, R64, R641, R642, R643, R644) 내의 동시 사용자 수는 30, 5, 5, 9, 11, 4, 2, 3, 2이다. 단계 S411에서, 다른 슬래이브 서버로부터 영역(N642)으로 사용자(U2)가 이동됨을 표시하는 이동 메시지는 로컬 영역 관리 모듈(221)에 의해 수신된다. 단계 S421, S453, S455에서, 노드(R642)의 동시 사용자 수는 1만큼 증가되어, 3으로 된다. 단계 S461, S471, S473, S455에서, 노드(N64)의 동시 사용자 수는 1만큼 증가되어 12로 된다. 단계 S461, S471, S473, S455에서, 루트 노드(N6)의 동시 사용자 수는 1만큼 증가되어 31으로 된다. 서버 부하 한계값이 30으로 설정되는 동안에, 단계 S481에서, 슬래이브 서버(221)는 과부하 상태인 것으로 결정된다. 단계 S483에서, 루트 노드(N6)의 재분배 요청은 마스터 서버(21)로 전송된다. 단계 S511에서, 루트 노드(N6)의 재분배 요청은 VE 관리 모 듈(211)에 의해 수신된다. 단계 S513에서, 영역(R6)은 밀집 영역으로서 정의된다. 단계 S515에서, 쿼드트리 요청은 로컬 영역 관리 모듈(221, 231, 241, 251)로 각각 전송된다. 도 8은 로컬 영역 관리 모듈(221, 231, 241, 251)에 의해 각각 유지되는 예시적인 쿼드트리를 도시하는 도면이다. 단계 S517에서, 쿼드트리(T6 내지 T9)는 로컬 영역 관리 모듈(221, 231, 241, 251)로부터 수신된다. 단계 S521에서, 영역(R7)은 여유 영역으로서 정의된다. 단계 S523에서, 제 1 수(first quantity), 즉 22와 제 2 수(second quantity), 즉, 31이 획득된다. 깊이 우선 트래버셜이 이용되는 동안에, 단계 S531 내지 S541에서, 노드(N61, N62)는 순차적으로 위치 결정된다. 단계 S543에서, 노드(N62)(즉, 영역(R62))는 로컬 영역 관리 모듈(231) 용으로 마킹된다. 단계 S545에서, 제 1 및 제 2 수는 각각 26과 27로 갱신된다. 단계 S551에서, 재분배 프로세스는 충분한 것으로서 결정된다. 최종적으로, 단계 S553에서, 최종 쿼드트리는 로컬 영역 관리 모듈(221, 231)로 전송되어, 영역(R62)의 제어를 교환할 수 있게 한다. 7A and 7B are diagrams illustrating exemplary quadtrees of different aspects of local area R6 maintained by local
다른 예로, 단계 S511에서, 루트 노드(N6)의 재분배 요청은 VE 관리 모듈(211)에 의해 수신된다. 단계 S513에서, 영역(R6)은 밀집 영역으로서 정의된다. 단계 S515에서, 쿼드트리 요청은 로컬 영역 관리 모듈(221, 231, 241, 251)로 각각 전송된다. 도 9는 로컬 영역 관리 모듈(221, 231, 241, 251)에 의해 각각 유지되는 예시적인 쿼드트리를 도시하는 도면이다. 단계 S517에서, 쿼드트리(T6 내지 T9)는 로컬 영역 관리 모듈(221, 231, 241, 251)로부터 수신된다. 단계 S521에서, 영역(R7)은 여유 영역으로서 정의된다. 단계 S523에서, 제 1 수, 즉 22와 제 2 수 , 즉 38이 획득된다. 깊이 우선 트래버셜이 이용되는 동안에, 단계 S531 내지 S541에서, 노드(N61, N62)가 순차적으로 위치 결정된다. 단계 S543에서, 노드(N62)(즉, 영역(N62))는 로컬 영역 관리 모듈(231) 용으로 마킹된다. 단계 S545에서, 제 1 및 제 2 수는 각각 27 및 33으로 갱신된다. 단계 S551에서, 재분배 프로세스는 불충분한 것으로 결정된다. 단계 S561에서, 제 1 수가 서버 부하 한계값의 80%을 초과하기 때문에, 여유 영역은 채워진 것으로 결정된다. 단계 S571 내지 S577에서, 노드(N63, N64, N641, N642)가 순차적으로 위치 결정된다. 단계 S578에서, 노드(N642)는 로컬 영역 관리 모듈(261) 용으로 마킹된다. 단계 S579에서, 제 2 수는 28로 갱신된다. 단계 S581에서, 재분배 프로세스는 충분한 것으로 결정된다. 최종적으로, 단계 S583에서, 최종 쿼드트리는 로컬 영역 관리 모듈(221, 231, 261)로 전송되어, 영역(R62, R642)의 제어가 교환될 수 있게 한다. 상술한 실시예는, 수신된 쿼드트리가 마스터 서버(21)에서 4개의 개별적인 트리처럼 개별적으로 취급됨을 개시하고 있지만, 이것으로 제한되는 것은 아니다. 당업자라면, 본 발명의 사상과 범위를 벗어나지 않는 범위에서, 수신된 쿼드트리를 단일의 쿼드트리에 합병할 수 있으며, 특정의 프로세스 단계에 맞게 적절히 수정할 수 있다. As another example, in step S511, the redistribution request of the root node N6 is received by the
DVE 관리 시스템 및 방법, 또는 이들의 특정의 측면 또는 일부분은 플로피 디스켓, CD-ROMS, 하드 드라이브, 또는 다른 기계 판독가능 저장 매체와 같은 유형의 매체에 내장된 프로그램 코드(즉, 명령어)의 형태를 취할 수 있으며, 여기서, 프로그램 코드가, 컴퓨터와 같은 기계에 로딩되어 실행될 때, 기계는 본 발명을 실행하기 위한 장치로 된다. 개시된 방법 및 시스템은 전기 배선 또는 케이블과 같 은 몇몇 전송 매체를 통해, 광섬유를 통해, 또는 다른 형태의 전송 수단을 통해 전송된 프로그램 코드의 형태로 또한 구현될 수 있으며, 여기서, 프로그램 코드가 수신되어 컴퓨터와 같은 기계로 로딩되어 실행될 때, 기계는 본 발명을 실행하기 위한 장치로 된다. 범용 프로세서 상에서 구현될 때, 프로그램 코드는 프로세서와 조합되어, 특정의 논리 회로와 유사하게 동작하는 전용 장치를 제공한다. DVE management systems and methods, or certain aspects or portions thereof, may be in the form of program code (ie, instructions) embedded in a type of medium, such as a floppy diskette, CD-ROMS, hard drive, or other machine-readable storage medium. In this case, when the program code is loaded and executed on a machine such as a computer, the machine becomes an apparatus for practicing the present invention. The disclosed methods and systems can also be implemented in the form of program code transmitted via some transmission medium, such as electrical wiring or cable, via an optical fiber, or through other forms of transmission, wherein the program code is received and When loaded and executed on a machine such as a computer, the machine becomes an apparatus for practicing the present invention. When implemented on a general purpose processor, the program code is combined with the processor to provide a dedicated device that operates similarly to certain logic circuits.
본 발명은 바람직한 실시예에 관련하여 설명되었지만, 이것으로 제한되는 것은 아니다. 당업자라면, 본 발명의 사상과 범위를 벗어나지 않는 범위에서 여러 변경 및 수정을 가할 수 있다. 따라서, 본 발명의 범위는 다음의 청구 범위 및 그 등가에 의해 정의되고 보호될 수 있다. Although the present invention has been described in connection with the preferred embodiment, it is not limited thereto. Those skilled in the art can make various changes and modifications without departing from the spirit and scope of the present invention. Accordingly, the scope of the invention may be defined and protected by the following claims and their equivalents.
본 발명에 따르면, 상호 작용 실행의 저하를 피하는 동적인 부하 분산 방법을 제공할 수 있다.
According to the present invention, it is possible to provide a dynamic load balancing method that avoids the degradation of the interaction execution.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050007229A KR100709678B1 (en) | 2005-01-26 | 2005-01-26 | Distributed virtual environment management systems and methods |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050007229A KR100709678B1 (en) | 2005-01-26 | 2005-01-26 | Distributed virtual environment management systems and methods |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060086225A true KR20060086225A (en) | 2006-07-31 |
KR100709678B1 KR100709678B1 (en) | 2007-04-20 |
Family
ID=37175635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050007229A KR100709678B1 (en) | 2005-01-26 | 2005-01-26 | Distributed virtual environment management systems and methods |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100709678B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100956636B1 (en) * | 2007-12-07 | 2010-05-11 | 한국전자통신연구원 | System and method for service level management in virtualized server environment |
KR101340323B1 (en) * | 2011-10-31 | 2013-12-11 | 한국과학기술정보연구원 | System and method for approaching the distributed data |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101113943B1 (en) * | 2008-12-22 | 2012-03-05 | 한국전자통신연구원 | Method And Apparatus For Managing Workload And Distributed Computing System Using The Same |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11328125A (en) * | 1998-05-15 | 1999-11-30 | Dainippon Printing Co Ltd | Virtual space share system |
-
2005
- 2005-01-26 KR KR1020050007229A patent/KR100709678B1/en active IP Right Grant
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100956636B1 (en) * | 2007-12-07 | 2010-05-11 | 한국전자통신연구원 | System and method for service level management in virtualized server environment |
KR101340323B1 (en) * | 2011-10-31 | 2013-12-11 | 한국과학기술정보연구원 | System and method for approaching the distributed data |
Also Published As
Publication number | Publication date |
---|---|
KR100709678B1 (en) | 2007-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976774B (en) | Block link point deployment method, device, equipment and storage medium | |
CN106708622B (en) | Cluster resource processing method and system and resource processing cluster | |
US8145732B2 (en) | Live network configuration within a link based computing system | |
CN111522661A (en) | Micro-service management system, deployment method and related equipment | |
CN105426245A (en) | Dynamically composed compute nodes comprising disaggregated components | |
CN112134857B (en) | Method for binding honeypots of honeypot system by multiple nodes | |
WO2012086919A2 (en) | Distributed storage system including plurality of proxy servers, method for managing object thereof, and storage medium readable by computer | |
US20100058329A1 (en) | Method and apparatus for dynamically instantiating services using a service insertion architecture | |
US9485144B2 (en) | Network traffic optimization | |
US20150134779A1 (en) | Location of actor resources | |
US20170302543A1 (en) | Method and Device for Managing Virtualized Network Function | |
CN109886693B (en) | Consensus realization method, device, equipment and medium for block chain system | |
CN102263822B (en) | Distributed cache control method, system and device | |
CN104995604A (en) | Resource allocation method of virtual machine and device thereof | |
US20190222639A1 (en) | Distributed load-balancing for software defined networks | |
CN100489791C (en) | Method and system for local authority partitioning of client resources | |
CN111224990B (en) | Flow traction method and system of distributed micro-isolation network | |
KR20120039014A (en) | Method and system for the efficient and automated management of virtual networks | |
Srivastava et al. | CGP: Cluster-based gossip protocol for dynamic resource environment in cloud | |
KR100709678B1 (en) | Distributed virtual environment management systems and methods | |
CN112187864B (en) | Load balancing method and device, storage medium and electronic equipment | |
CN109039790A (en) | A kind of inter-cluster communication method and relevant apparatus | |
CN113010313A (en) | Load balancing method and device, electronic equipment and computer storage medium | |
CN106302709A (en) | A kind of method and system of network file management | |
CN105843693A (en) | High-speed maglev transportation simulation oriented memory sharing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130326 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20140326 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20160328 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20180330 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20190329 Year of fee payment: 13 |