KR101854631B1 - Priority processing system and method for login user group - Google Patents

Priority processing system and method for login user group Download PDF

Info

Publication number
KR101854631B1
KR101854631B1 KR1020170099391A KR20170099391A KR101854631B1 KR 101854631 B1 KR101854631 B1 KR 101854631B1 KR 1020170099391 A KR1020170099391 A KR 1020170099391A KR 20170099391 A KR20170099391 A KR 20170099391A KR 101854631 B1 KR101854631 B1 KR 101854631B1
Authority
KR
South Korea
Prior art keywords
group
groups
user data
queue
logged
Prior art date
Application number
KR1020170099391A
Other languages
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 주식회사 엔트리브소프트
Priority to KR1020170099391A priority Critical patent/KR101854631B1/en
Application granted granted Critical
Publication of KR101854631B1 publication Critical patent/KR101854631B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1002
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/5038Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • H04L67/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present invention relates to a login user group priority processing system and a login user group priority processing method which can quickly process data. The login user group priority processing system comprises: a database server including a storage area to store data, and a queue to bundle a plurality of user data in a prescribed number to form one or more groups, set a processing order of groups to which a logged-in user datum belongs when any one user datum among the plurality of user data logs in, and arrange the set groups in an ascending order; and a plurality of simulation servers including a plurality of threads to bring groups arranged in the queue to simultaneously process the groups and then transmit the groups to the storage area. Also, the login user group priority processing method comprises: a step (A) of bundling a plurality of user data in a prescribed number to form one or more groups in a database server; a step (B) of setting a processing order of groups to which a logged-in user datum belongs when any one user datum among the plurality of user data logs in; a step (C) of generating a queue to arrange groups whose processing orders are set in an ascending order; a step (D) of taking groups aligned in the queue from a simulation server including a plurality of threads; and a step (E) of processing the taken groups and then transmitting the groups to a storage area.

Description

로그인 유저그룹 우선처리시스템 및 로그인 유저그룹 우선처리방법 {Priority processing system and method for login user group}[0002] Priority processing system and method for login user group [0003]

본 발명은 로그인 유저그룹 우선처리시스템 및 로그인 유저그룹 우선처리방법에 관한 것이다.The present invention relates to a login user group preference processing system and a login user group preference processing method.

더욱 상세하게는 복수의 유저를 그룹별로 묶어 복수 개의 그룹을 형성하고, 형성된 그룹 가운데 로그인한 유저가 포함된 그룹을 우선 처리하는 로그인 유저그룹 우선처리시스템 및 로그인 유저그룹 우선처리방법에 관한 것이다.To a login user group preference processing system and a login user group preference processing method in which a plurality of groups are formed by grouping a plurality of users and a group including a logged-in user is preferentially processed among formed groups.

온라인 게임은 전 세계적으로 많은 인기를 끌고 있다. 온라인 게임 가운데 스포츠 시뮬레이션 게임 일례로, 축구, 농구, 및 야구 등의 시뮬레이션 게임이 많은 인기를 끌고 있다.Online games are becoming popular all over the world. As an example of a sports simulation game among online games, simulation games such as soccer, basketball, and baseball are gaining popularity.

현재의 스포츠 시뮬레이션 게임은 다양한 사운드 및 다양한 경기장을 제공할 뿐만 아니라 케릭터의 능력이 세분화되 실제와 유사한 콘텐츠 제공하고 있다.The current sports simulation game not only provides various sounds and various stadiums, but also provides realistic contents with a detailed character abilities.

이러한 콘텐츠 제공에 따라 스포츠 시뮬레이션 게임은 사용자가 실제 스포츠 영상을 시청하는 듯한 착각을 할 정도의 게임 경기 영상을 제공하고 있다.According to the provision of the contents, the sports simulation game provides a game game image which is so misleading that the user is watching the actual sports image.

고화질의 그래픽을 제공하는 스포츠 시뮬레이션 게임은 많은 사용자가 참여하여, 동 시간 때에 많은 시뮬레이션을 처리할 수 있는 서버를 필요로 한다.Sports simulation games that provide high-quality graphics require a server that can handle many simulations at the same time, with many users participating.

최근 들어, 콘텐츠의 업데이트와 사용자의 증가에 의해 서버가 다운되지 않도록 하는 데이터를 관리하는 시스템 및 방법 등이 활발하게 개발되고 있다. 현재 개발된 시스템으로는 단독 스레드로 백그라운드에서 작업을 단독으로 처리하는 시스템이 대다수이다.Recently, a system and a method for managing data to prevent a server from being brought down due to an update of contents and an increase of users are actively being developed. Currently, most of the systems developed are single threaded systems that process jobs in the background alone.

그러나 개발된 시스템은 유저별로 업데이트 작업의 호출 시간이 오래 걸리며 호출된 작업을 처리하는 데 있어 특정 리소스에 부하가 집중되는 문제가 있다.However, there is a problem that the developed system takes a long time to call an update task for each user and concentrates a load on a specific resource in processing a called task.

아울러, 업데이트 작업을 중복 처리하며 데이터 처리의 효율성이 낮은 문제를 가지고 있다.In addition, there is a problem that the update operation is duplicated and the data processing efficiency is low.

대한민국 공개특허 제10-2009-0085906호 (2009.08.10)Korean Patent Publication No. 10-2009-0085906 (2009.08.10)

본 발명이 해결하고자 하는 과제는 이러한 문제점을 해결하기 위한 것으로서, 복수 개의 시뮬레이션 서버에서 복수 개의 데이터를 신속 처리하며 처리되는 데이터가 여러 시뮬레이션 서버에서 중복처리 되지 않도록 한다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and it is an object of the present invention to quickly process a plurality of data in a plurality of simulation servers and prevent data to be processed from being duplicated in various simulation servers.

또한, 복수 개의 데이터를 여러 시뮬레이션 서버에서 분산 처리하며 특정 시뮬레이션 서버에 부하가 집중되지 않도록 한다.In addition, a plurality of data is distributed in a plurality of simulation servers and load is not concentrated on a specific simulation server.

본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the above-mentioned problems, and other technical problems which are not mentioned can be clearly understood by those skilled in the art from the following description.

상기 해결하고자 하는 과제를 달성하기 위한 본 발명의 로그인 유저그룹 우선처리시스템은 데이터를 저장하는 저장소와 복수 개의 사용자데이터를 일정 개수로 묶어 적어도 하나의 그룹을 형성하고, 복수 개의 상기 사용자데이터 가운데 어느 하나의 상기 사용자데이터가 로그인되었을 때, 로그인된 상기 사용자데이터가 속한 상기 그룹의 처리 순서를 설정하고, 설정된 상기 그룹을 상위 순서대로 배치하는 큐(Queue)를 생성하는 데이터베이스 서버 및According to an aspect of the present invention, there is provided a login user group preference processing system comprising: a repository for storing data; a group of a plurality of user data groups to form at least one group; A database server configured to set a processing order of the group to which the logged user data belongs when the user data is logged in and to create a queue for arranging the set groups in a higher order;

다수 개의 스레드를 포함하여 상기 큐에 배치된 상기 그룹을 가져와 동시에 처리한 후, 상기 저장소에 전송하는 복수 개의 시뮬레이션 서버를 포함할 수 있다.And a plurality of simulation servers that include a plurality of threads, fetch the groups disposed in the queues, process them simultaneously, and transmit the groups to the repository.

상기 데이터베이스 서버는 복수 개의 상기 사용자데이터 가운데 동일한 등급을 갖는 상기 사용자데이터를 하나의 상기 그룹으로 묶고, 상기 그룹의 상기 사용자데이터 가운데 적어도 하나의 상기 사용자데이터가 로그인되었을 때, 로그인된 상기 사용자데이터를 포함하는 상기 그룹의 처리 순위를 다른 그룹의 처리 순위보다 상위로 설정한 후, 상기 그룹의 처리 순서를 정렬할 수 있다.Wherein the database server groups the user data having the same rank among a plurality of the user data into one group and when the at least one user data among the user data of the group is logged in, The processing order of the group is set higher than the processing order of the other groups, and then the processing order of the group can be sorted.

상기 큐(Queue)는 상기 사용자데이터가 로그인된 순서대로 상기 그룹을 정렬할 수 있다.The queue may sort the groups in the order in which the user data is logged.

상기 데이터베이스 서버는, 상기 시뮬레이션 서버에서 한 번에 한 트랜잭션을 통해 상기 큐에 배치된 상기 그룹을 가져갈 수 있도록 하며, 상기 그룹 간에 형성된 잠금과 호환되지 않도록 상기 그룹을 업데이트 잠금(Update lock) 할 수 있다.The database server may allow the simulation server to take the group disposed in the queue through one transaction at a time and update lock the group so as not to be compatible with the lock formed between the groups .

상기 업데이트 잠금은 잠금 설정된 상기 그룹은 건너뛰고 다른 그룹을 조회하는 잠금 힌트(Locking Hints)를 포함할 수 있다.The update lock may include locking hints that skip the locked group and query another group.

상기 시뮬레이션 서버는 업데이트 잠금 설정된 그룹 가운데 서로 다른 그룹을 가져갈 수 있다.The simulation server may take different groups among the update-locked groups.

상기 큐는, 상기 그룹이 설정시간 내에서 변경되면 커밋(commit)하고 상기 그룹이 상기 설정시간 내에 변경되지 않으면 롤백(roll back)할 수 있다.The queue may commit when the group changes within a set time and roll back if the group does not change within the set time.

그리고 해결하고자 하는 과제를 달성하기 위한 또 다른 본 발명의 로그인 유저그룹 우선처리방법은 데이터베이스 서버에, 복수 개의 사용자데이터를 일정 개수로 묶어 적어도 하나의 그룹을 형성하는 (A)단계;According to another aspect of the present invention, there is provided a method for prioritizing a login user group in a database server, the method comprising: (A) forming at least one group by grouping a plurality of pieces of user data in a predetermined number;

복수 개의 상기 사용자데이터 가운데 어느 하나의 상기 사용자데이터가 로그인되었을 때, 로그인된 상기 사용자데이터가 속한 상기 그룹의 처리 순서를 설정하는 (B)단계;(B) setting a processing order of the group to which the logged-in user data belongs when any one of the plurality of user data is logged in;

처리 순서가 설정된 상기 그룹을 상위 순서대로 배치하는 큐(Queue)를 생성하는 (C)단계;A step (C) of creating a queue for arranging the groups in which the processing order is set in a higher order;

다수 개의 스레드를 포함하는 시뮬레이션 서버에서 상기 큐에 정렬된 상기 그룹을 가져가는 (D)단계; 및(D) taking the group sorted in the queue at a simulation server comprising a plurality of threads; And

가져간 상기 그룹을 처리한 후, 상기 저장소에 전송하는 (E)단계를 포함한다.And (E) processing the group, which is taken, and transmitting the processed group to the storage.

상기 (A)단계에서 상기 그룹은 등급이 동일한 상기 사용자데이터를 포함하고, 상기 사용자데이터 가운데 적어도 하나가 로그인되었을 때, 로그인된 상기 사용자데이터를 포함하는 상기 그룹의 처리 순위를 다른 그룹의 처리 순위보다 상위로 설정할 수 있다.Wherein, in the step (A), the group includes the same user data, and when at least one of the user data is logged in, the processing order of the group including the logged-in user data is Can be set to the upper level.

상기 (C)단계에서, 상기 큐(Queue)는 상기 사용자데이터가 로그인된 순서대로 상기 그룹을 정렬할 수 있다.In the step (C), the queue may sort the groups in the order in which the user data is logged.

상기 (B)단계에서, 상기 데이터베이스 서버는 상기 시뮬레이션 서버에서 한 번에 한 트랜잭션을 통해, 상기 큐에 배치된 상기 그룹을 가져갈 수 있도록 하며, 상기 그룹 간에 형성된 잠금과 호환되지 않도록 상기 그룹을 업데이트 잠금(Update lock)할 수 있다.In the step (B), the database server allows the simulation server to take the group disposed in the queue through one transaction at a time, and updates the group to an update lock (Update lock).

상기 업데이트 잠금은 잠금 설정된 상기 그룹은 건너뛰고 다른 그룹을 조회하는 잠금 힌트를 포함할 수 있다.The update lock may include a lock hint to skip the locked group and query another group.

상기 (D)단계에서, 상기 시뮬레이션 서버는 업데이트 잠금 설정된 그룹 가운데 서로 다른 상기 그룹을 가져갈 수 있다.In the step (D), the simulation server may take different groups among update-locked groups.

상기 (B)단계에서, 상기 큐는 상기 그룹이 설정시간 내에서 변경되면 커밋(commit)하고 상기 그룹이 상기 설정시간 내에 변경되지 않으면 롤백(roll back)할 수 있다.In the step (B), the queue commits if the group is changed within the set time, and rolls back the group if the group is not changed within the set time.

본 발명에 따른 로그인 유저그룹 우선처리시스템 및 로그인 유저그룹 우선처리방법은 복수의 유저를 그룹별로 묶어, 복수 개의 그룹을 형성하고 해당 그룹이 시뮬레이션 처리되는 동안, 다른 그룹의 유저가 데이터를 변경 및 수정할 수 있다. 즉, 해당 그룹이 시뮬레이션 처리되는 동안 다른 그룹 유저가 게임을 할 수 있다.The login user group preference processing system and the login user group preference processing method according to the present invention is a method for processing a login user group by grouping a plurality of users into groups and forming a plurality of groups, . That is, other group users can play the game while the group is being simulated.

더욱이, 로그인 유저그룹 우선처리시스템 및 로그인 유저그룹 우선처리방법은 그룹에 속한 유저의 로그인 순번에 따라 처리하며 로그인한 유저 그룹을 먼저 처리하며, 실시간으로 시뮬레이션 작업이 처리될 수 있도록 한다.Furthermore, the login user group preference processing system and the login user group preference processing method process the logged-in user group in accordance with the login sequence number of the users belonging to the group, and allow the simulation work to be processed in real time.

또한, 로그인 유저그룹 우선처리시스템 및 로그인 유저그룹 우선처리방법은 복수 개의 시뮬레이션 서버에 처리할 작업이 중복되지 않도록 분산 배치 시켜 특정 리소스에 부하가 집중되지 않도록 하며, 시뮬레이션 서버의 작업 처리 속도를 높일 수 있다.In addition, the login user group priority processing system and the login user group priority processing method distribute the plurality of simulation servers in such a manner that the jobs to be processed are not duplicated so that the loads are not concentrated on the specific resources, have.

도 1은 본 발명의 일 실시예에 의한 로그인 유저그룹 우선처리시스템의 블록도이다.
도 2는 도 1의 데이터베이스 서버에 작동을 나타낸 순서도이다.
도 3은 도 1의 데이터베이스 서버에 저장된 복수 개의 사용자데이터를 일정 개수로 묶어 그룹을 형성하는 상태를 나타낸 도면이다.
도 4는 도 1의 데이터베이스 서버에 형성된 그룹의 처리 순위가 설정되는 상태를 나타낸 도면이다.
도 5는 도 1의 로그인 유저그룹 우선처리시스템이 작동상태를 나타낸 도면이다.
도 6은 도 1의 데이터베이스 서버에 형성된 큐의 작동상태를 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 의한 로그인 유저그룹 우선처리방법의 순서도이다.
1 is a block diagram of a login user group priority processing system according to an embodiment of the present invention.
FIG. 2 is a flowchart showing the operation of the database server of FIG. 1;
FIG. 3 is a diagram illustrating a state in which a plurality of pieces of user data stored in the database server of FIG. 1 are grouped into a certain number.
FIG. 4 is a diagram illustrating a state in which a processing order of a group formed in the database server of FIG. 1 is set.
5 is a diagram showing an operating state of the login user group priority processing system of FIG.
FIG. 6 is a diagram illustrating an operational state of a queue formed in the database server of FIG. 1. FIG.
7 is a flowchart of a login user group priority processing method according to an embodiment of the present invention.

본 발명의 이점 및 특징 그리고 그것들을 달성하기 위한 시스템 및 방법들은 첨부되는 도면과 함께 상세하게 후술 되어 있는 실시예들을 참조하면 명확해질 것이다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention and the systems and methods for accomplishing them will become apparent with reference to the embodiments described in detail below with reference to the accompanying drawings.

그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the concept of the invention to those skilled in the art. It is provided to inform the person completely of the scope of the invention.

본 발명의 청구범위는 청구항에 의해 정의될 수 있다. 아울러, 명세서 전체에 걸쳐 동일 참조부호는 동일 구성요소를 지칭한다.The claims of the present invention can be defined by the claims. In addition, like reference characters refer to like elements throughout the specification.

그리고 본 명세서상에서 로그인 유저그룹 우선처리시스템과 로그인 유저그룹 우선처리방법에 대한 설명이 쉽게 이해될 수 있도록, 스포츠 시뮬레이션 게임 가운데 야구 게임을 일례로 하여 설명한다.In this specification, a baseball game among sports simulation games will be described as an example so that the description of the login user group priority processing system and the login user group priority processing method can be easily understood.

이에, 명세서상에 기술된 ‘일정 개수’는 한국 프로야구리그를 구성하는 팀의 개수 즉 10개가 될 수 있다. 다만, 일정 개수의 개수가 10개로 한정되는 것은 아니며, 로그인 유저그룹 우선처리시스템(1)의 관리자에 의해 10개 미만 또는 10개 초과의 개수로 다양하게 변경될 수 있다.Thus, the 'schedule number' described in the specification can be the number of teams constituting the Korean professional baseball league, that is, ten. However, the number of the predetermined number is not limited to ten, and may be variously changed to less than 10 or more than 10 by the administrator of the login user group priority processing system 1. [

이하, 도 1 내지 도 7을 참조하여 본 발명의 일 실시예에 의한 로그인 유저그룹 우선처리시스템과 로그인 유저그룹 우선처리방법에 대해 상세히 설명한다.Hereinafter, a login user group priority processing system and a login user group priority processing method according to an embodiment of the present invention will be described in detail with reference to FIG. 1 to FIG.

다만, 본 발명의 설명이 간결하고 명확해 질 수 있도록 로그인 유저그룹 우선처리시스템에 대해 상세히 설명한 후 이를 바탕으로 로그인 유저그룹 우선처리방법에 대해 설명하도록 한다.However, the login user group priority processing system will be described in detail so that the description of the present invention will be concise and clear, and then the login user group priority processing method will be described based on the description.

도 1은 본 발명의 일 실시예에 의한 로그인 유저그룹 우선처리시스템의 블록도이고, 도 2는 도 1의 데이터베이스 서버에 작동을 나타낸 순서도이다.FIG. 1 is a block diagram of a login user group preference processing system according to an embodiment of the present invention, and FIG. 2 is a flowchart showing operation of the database server of FIG.

현재 일반적으로 사용되는 시뮬레이션 처리 작업은 하나의 메인 서버와 하나의 시뮬레이션 서버 간의 데이터 처리 작업으로 진행되고 있다. 이러한 데이터 처리 작업은 메인 서버에서 처리될 데이터를 공유 잠금으로 설정하여 잠금 설정된 데이터가 호환되어 중복 조회 및 중복 처리되면서 에러가 발생 되는 문제가 있다.Currently, the commonly used simulation processing works on data processing between one main server and one simulation server. Such a data processing job has a problem in that data to be processed by the main server is set as a shared lock so that locked data is compatible and error is generated while redundant inquiry and redundant processing are performed.

이러한 문제를 해결하고자, 본 발명의 일 실시예에 의한 로그인 유저그룹 우선처리시스템(1)은 복수 개의 사용자데이터(12)를 일정 개수로 묶어 하나의 그룹 데이터(이하, 그룹)로 설정하고, 로그인된 사용자데이터가 발생 된 그룹(13)의 처리순서를 상위 순서로 변경하여 처리한다.In order to solve such a problem, the login user group priority processing system 1 according to an embodiment of the present invention sets a plurality of user data 12 into a single group data (hereinafter referred to as a group) The processing sequence of the group 13 in which the generated user data is generated is changed to the higher order and processed.

그리고 그룹을 처리 순서대로 처리할 때, 다른 그룹에 속한 사용자데이터가 변경할 수 있도록 한다. 즉, 로그인 유저그룹 우선처리시스템(1)은 로그인된 사용자데이터를 포함하는 그룹(13)을 먼저 처리하면서, 그룹(13)이 처리되는 동안 다른 그룹의 사용자데이터가 변경 가능하도록 할 수 있다.Then, when the group is processed in order of processing, user data belonging to another group can be changed. That is, the login user group preference processing system 1 may process the group 13 including the logged-in user data first, while allowing the user data of the other group to be changed while the group 13 is being processed.

더욱이, 로그인 유저그룹 우선처리시스템(1)은 데이터베이스 서버(10)에서 설정된 그룹(13)을 업데이트 잠금(Update lock)하여 시뮬레이션 서버(20)에서 동시에 하나의 그룹을 선택하여 가져갈 수 없도록 하여, 시뮬레이션 서버(20)에서 그룹의 시뮬레이션 작업을 중복처리 하지 않도록 할 수 있다.Furthermore, the login user group preference processing system 1 can update lock the group 13 set in the database server 10 so that the simulation server 20 can not select and take a group at the same time, It is possible to prevent the server 20 from duplicating the simulation work of the group.

이와 같은 로그인 유저그룹 우선처리시스템(1)은 데이터를 저장하는 저장소(11)와 그룹(13)이 한 방향으로 삽입되고, 삽입된 방향과 반대 방향에서 그룹(13)이 출력되는 구조의 큐(Queue)를 생성하는 데이터베이스 서버(10) 그리고, 복수 개의 스레드를 포함하여 큐(14)에 정렬된 그룹을 가져와 처리한 후 저장소(11)에 전송하는 시뮬레이션 서버(20)를 포함한다.The login user group preference processing system 1 includes a storage 11 storing data and a queue 13 of a structure in which the group 13 is inserted in one direction and the group 13 is output in a direction opposite to the inserted direction The simulation server 20 includes a database server 10 for generating a plurality of threads and a group arranged in the queue 14, processing the groups, and transmitting the processed groups to the storage 11.

도 2에 도시된 바와 같이, 데이터베이스 서버(10)는 처리할 데이터를 판별하고 처리할 데이터가 있는 것으로 판단되면 복수 개의 사용자데이터(12)를 일정 개수로 묶어 그룹별로 형성한다.As shown in FIG. 2, the database server 10 determines data to be processed and, if it is determined that there is data to be processed, arranges a plurality of user data 12 in a predetermined number and forms the data for each group.

더욱이, 데이터베이스 서버(10)는 복수 개의 사용자데이터(12)를 동일한 등급을 갖는 사용자데이터 10개를 하나의 그룹으로 묶어 복수 개 형성할 수 있다.Furthermore, the database server 10 may form a plurality of user data 12 by grouping ten user data having the same rating into one group.

이와 같은 데이터베이스 서버(10)는 처리할 데이터를 판별하는 단계(S11)를 시작으로, S11 단계에서 처리할 데이터가 없다고 판단되면 대기 상태로 진행되고, S11 단계에서 처리할 데이터가 있는 것으로 판단되면 복수 개의 사용자데이터를 그룹별로 묶어 하나의 그룹을 형성하는 단계(S12)를 진행한다.If it is determined that there is no data to be processed in step S11, the database server 10 proceeds to a standby state. If it is determined in step S11 that there is data to be processed, (S12) of forming a group by grouping user data for each group.

이후, 그룹 안에 적어도 하나의 사용자 데이터가 로그인되면 해당 그룹의 처리 순서를 상위로 하여 복수 개의 그룹의 처리 순위를 설정하는 단계(S13)를 진행한다. 그리고 설정된 순서를 정렬하는 큐를 생성하는 단계(S14)를 마지막으로 진행하며 사용자데이터를 처리할 수 있다.Thereafter, when at least one user data is logged in the group, the processing order of the group is changed to set the processing order of the plurality of groups (S13). Then, a step S14 of generating a queue for sorting the set order is finally performed and the user data can be processed.

데이터베이스 서버(10)는 형성된 그룹의 사용자데이터 가운데 적어도 하나의 사용자데이터(12)가 사용자에 의해 로그인되었을 때, 로그인된 사용자데이터를 포함하는 그룹의 처리 순위를 로그인되지 않은 사용자데이터(12)를 포함하는 그룹에 비해 상위로 설정할 수 있다.The database server 10 includes a processing rank of the group including the logged-in user data when the at least one user data 12 among the user data of the group formed is logged in by the user, Can be set to be higher than the group to which the group is connected.

그리고 큐(14)를 생성하여 그룹을 처리 순위가 높은 순서대로 배치할 수 있다. 이때, 큐(14)는 가상의 큐가 될 수 있으며, 사용자테이터가 로그인된 순서대로 그룹을 정렬할 수 있다.Then, the queue 14 can be created and the groups can be arranged in descending order of processing order. At this time, the queue 14 can be a virtual queue, and the user data can be sorted in the order in which they are logged in.

이러한 큐의 작동상태에 대해서는 후술하도록 한다.The operation state of such a queue will be described later.

데이터베이스 서버(10)는 그룹을 정렬할 수 있을 뿐만 아니라, 그룹을 잠금할 수 있다. 이때, 데이터베이스 서버(10)는 그룹 간에 형성된 잠금과 호환되지 않도록 그룹을 업데이트 잠금(Update lock) 할 수 있다.The database server 10 can not only sort the group, but also lock the group. At this time, the database server 10 may update lock the group so as not to be compatible with the lock formed between the groups.

특히, 데이터베이스 서버(10)는 잠겨진 그룹은 건너뛰고 다른 그룹을 조회할 수 있도록 하는 잠금 힌트(Locking Hints) 일례로, ‘READPAST’에 해당하는 잠금힌트를 포함하는 업데이트 잠금을 행할 수 있다. 아울러 업데이트 잠금을 통해 데이터 베이스 서버(10)는 시뮬레이션 서버(20)에서 호출하는 하나의 트랜잭션에 하나의 그룹(13)을 가져갈 수 있도록 하며, 그룹(13) 간에 형성된 잠금이 호환되지 않도록 할 수 있다.In particular, the database server 10 may perform an update lock including a locking hint corresponding to 'READPAST', as an example of a locking hint that allows a locked group to skip and query another group. In addition, through the update lock, the database server 10 can take one group 13 in one transaction to be called by the simulation server 20, and the lock formed between the groups 13 can be made incompatible .

따라서, 복수 개의 시뮬레이션 서버(20)는 큐에서 중복 조회 없이 한 트랜잭션에 하나의 그룹만을 가져가 처리하게 한다.Therefore, the plurality of simulation servers 20 allow only one group to be processed in one transaction without duplicate inquiry in the queue.

시뮬레이션 서버(20)는 다수 개의 스레드(Thread)를 포함하여 큐(14)에 배치된 그룹을 가져와 동시에 처리한다. 그리고 그룹을 시뮬레이션 처리한 후 데이터베이스 서버의 저장소에 전송한다.The simulation server 20 includes a plurality of threads to fetch and process groups arranged in the queue 14 at the same time. Then the group is simulated and sent to the database server's storage.

시뮬레이션 서버(20)는 복수 개가 배치되어 하나의 데이터베이스 서버(10)에서 업데이트 잠금 설정된 서로 다른 그룹을 가져오고, 가져온 그룹을 시뮬레이션 처리한 후 동시에 저장소(11)로 보낸다.A plurality of simulation servers 20 are arranged to fetch different groups set for update lock in one database server 10, simulate the imported groups, and send them to the storage 11 at the same time.

일례로, 시뮬레이션 서버(20)는 사용자데이터 10개 즉, 10개의 야구 구단이 하나의 리그로 묶인 그룹을 큐에서 가져와 10개 구단의 경기 화면을 만든 후 저장소(11)로 보낼 수 있다. 이때, 만들어지는 경기화면은 야구의 규칙대로 진행된 1회에서부터 9회 또는 1회에서부터 12회까지의 경기내용 일부 또는 전부를 포함하는 시뮬레이션 영상이 될 수 있다.For example, the simulation server 20 may send 10 groups of user data, that is, a group of 10 baseball teams into one league, from a queue to create a game screen of 10 baseballs and then send them to the storage 11. At this time, the generated game screen may be a simulation image including a part or all of the game content from one to nine times or one to twelve times of the game progressed according to the rules of the baseball game.

이하, 도 3 내지 도 5를 참조하여, 본 발명의 로그인 유저그룹 우선처리시스템(1)의 데이터베이스 서버의 작동에 대해 보다 구체적으로 설명한다.Hereinafter, the operation of the database server of the login user group preference processing system 1 of the present invention will be described in more detail with reference to FIG. 3 to FIG.

도 3은 도 1의 데이터베이스 서버에 저장된 복수 개의 사용자데이터를 일정 개수로 묶어 그룹을 형성하는 상태를 나타낸 도면이고, 도 4는 도 1의 데이터베이스 서버에 형성된 그룹의 처리 순위가 설정되는 상태를 나타낸 도면이다.FIG. 3 is a diagram illustrating a state in which a plurality of pieces of user data stored in the database server of FIG. 1 are grouped into a predetermined number, and FIG. 4 is a diagram illustrating a state in which a group processing order set in the database server of FIG. to be.

그리고 도 5는 도 1의 로그인 유저그룹 우선처리시스템이 작동상태를 나타낸 도면이다.And FIG. 5 is a diagram showing an operating state of the login user group priority processing system of FIG.

데이터베이스 서버(10)에 복수 개의 사용자데이터(12)가 저장되면, 데이터베이스 서버(10)는 데이터베이스 서버의 관리자에 의해 설정된 환경에 따라 복수 개의 사용자데이터가 갖는 등급별로 분류한 후, 분류된 사용자데이터를 일정 개수로 묶어 그룹별로 나눌 수 있다. 일례로, 데이터베이스 서버(10)는 등급이 1인 사용자데이터 10개를 묶어 첫 번째 그룹(13-1)을 형성하고, 등급이 2인 사용자데이터 10개를 묶어 500번째 그룹(13-500)을 형성할 수 있다. 그리고 등급이 3인 사용자데이터 10개를 묶어 1000번째의 그룹(13-1000)을 형성할 수 있다.When a plurality of pieces of user data 12 are stored in the database server 10, the database server 10 classifies the plurality of pieces of user data according to the environment set by the administrator of the database server, It can be grouped into a certain number and divided into groups. For example, the database server 10 forms a first group 13-1 by grouping 10 user data having a rating of 1, and groups 10 user data having a rating of 2 to form a 500th group (13-500) . Then, 10 groups of user data having a rank of 3 can be grouped to form a 1000th group (13-1000).

다만, 데이터베이스 서버(10)가 복수 개의 사용자데이터를 동일한 등급별로 묶는 것으로 한정되는 것은 아니며, 데이터베이스 서버의 관리자에 의해 설정된 환경에 따라 서로 다른 등급을 갖는 복수 개의 사용자데이터를 그룹별로 묶을 수도 있다.However, the database server 10 is not limited to grouping a plurality of user data by the same class, and may group groups of user data having different grades according to the environment set by the administrator of the database server.

데이터베이스 서버(10)는 복수 개의 그룹에 포함되는 복수 개의 사용자데이터 가운데 어느 하나가 로그인되면, 해당 그룹의 처리 순서를 상위로 변경한다. 일례로, 도 4의 (A)에 도시된 바와 같이 1000번째의 그룹에 속해 있는 복수 개의 사용자데이터 가운데 어느 하나가 다른 그룹에 속한 사용자데이터보다 빨리 로그인되면, 1000번째 그룹의 처리 순서를 상위로 설정할 수 있다. 다시 말해, 1000번째 그룹에 속한 사용자데이터가 다른 그룹에 속한 사용자데이터보다 빨리 로그인되면, 1000번째 그룹의 처리순서를 1번째로 변경한다.When any one of a plurality of user data included in a plurality of groups is logged in, the database server 10 changes the processing order of the group to an upper level. For example, if one of the plurality of user data belonging to the 1000th group is logged in earlier than the user data belonging to another group as shown in FIG. 4A, the processing order of the 1000th group is set to the upper level . In other words, if the user data belonging to the 1000th group is logged in earlier than the user data belonging to another group, the processing order of the 1000th group is changed first.

이후, 도 4의 (B)에 도시된 바와 같이 500번째의 그룹에 속해 있는 복수 개의 사용자데이터 가운데 어느 하나가 다른 그룹에 속한 사용자데이터보다 빨리 로그인되면, 500번째 그룹의 처리 순서를 1000번째 이후의 차순위로 설정할 수 있다. 즉, 500번째 그룹의 처리순서를 2번째로 변경할 수 있다.Then, as shown in FIG. 4B, if any one of the plurality of user data belonging to the 500th group is logged in earlier than the user data belonging to the other group, It can be set to the order of the lowest order. That is, the processing order of the 500th group can be changed for the second time.

그리고 각 그룹에 속해 있는 복수 개의 사용자데이터 가운데 어느 하나의 사용자데이터가 로그인되지 않으면, 로그인된 사용자데이터를 포함하는 그룹이 다 처리된 후, 순차적으로 처리할 수 있다. 즉, 1번째 그룹의 처리순서를 1000번째 그룹과 500번째 그룹의 처리 순서 이후로 변경할 수 있다.If any one of the plurality of pieces of user data belonging to each group is not logged in, the group including the logged-in user data may be processed and then sequentially processed. That is, the processing order of the first group can be changed after the processing order of the 1000th group and the 500th group.

데이터베이스 서버(10)는 도 5에 도시된 바와 같이 처리순서가 변경된 그룹(13)을 상위의 처리 순서대로 정렬한다.The database server 10 arranges the groups 13 whose processing order is changed as shown in Fig.

시뮬레이션 서버(20)는 포함하고 있는 여러 스레드의 개수에 대응하는 그룹을 데이터베이스 서버(10)에서 가져와 처리할 수 있다. 일례로, 제1시뮬레이션 서버(21)가 1 내지 L개 스레드를 가지면, 제1시뮬레이션 서버(21)는 데이터베이스 서버(10)에 1 내지 L개의 그룹을 가져와 시뮬레이션 처리할 수 있다.The simulation server 20 can fetch and process a group corresponding to the number of included threads from the database server 10. [ For example, if the first simulation server 21 has 1 to L threads, the first simulation server 21 can bring 1 to L groups to the database server 10 and simulate them.

그리고 제2시뮬레이션 서버(22)가 L+1내지 N개의 스레드를 가지면, 제2시뮬레이션 서버(22)는 데이터베이스 서버(10)에 L+1 내지 N개의 스레드를 가져와 시뮬레이션 처리할 수 있다.If the second simulation server 22 has L + 1 to N threads, the second simulation server 22 can bring L + 1 to N threads to the database server 10 for simulation processing.

제1시뮬레이션 서버(21)와 제2시뮬레이션 서버(22)는 데이터베이스 서버(10)에 의해 그룹이 업데이트 잠금 설정되어 있어 서로 중복되지 않는 그룹을 가져올 수 있고 가져온 그룹을 동시에 처리할 수 있다.The first simulation server 21 and the second simulation server 22 can obtain a group that is not updated by the database server 10 because the group is update-locked and can simultaneously process the imported group.

이때, 데이터베이스 서버(10)는 제1시뮬레이션 서버(21)와 제2시뮬레이션 서버(22)가 시뮬레이션 작업을 하는 동안 시뮬레이션 처리를 대기하고 있는 그룹의 사용자데이터가 업데이트 될 수 있도록 하며, 업데이트 된 사용자데이터를 포함한 그룹을 우선처리한다. 다시 말해, 데이터베이스 서버(10)는 제1시뮬레이션 서버(21)와 제2시뮬레이션 서버(22)가 경기화면을 만들어 내는 동안, 다른 그룹의 유저의 추가 게임작업이 가능하게 하면서도, 게임이 진행되는 그룹의 시뮬레이션 처리를 우선적으로 처리한다.At this time, the database server 10 allows the user data of the group waiting for the simulation processing to be updated while the first simulation server 21 and the second simulation server 22 are performing the simulation operation, The group including the first group is processed first. In other words, while the first simulation server 21 and the second simulation server 22 create a match screen, the database server 10 allows additional game operations of the users of other groups, Is preferentially processed.

이러한 제1시뮬레이션 서버(21)와 제2시뮬레이션 서버(22)는 처리된 시뮬레이션 작업을 저장소(11)로 전송한다.The first simulation server 21 and the second simulation server 22 transmit the processed simulation work to the storage 11.

이하, 도 6을 참조하여 큐의 작동에 대해 상세히 설명한다.Hereinafter, the operation of the cue will be described in detail with reference to FIG.

도 6은 도 1의 데이터베이스 서버에 형성된 큐의 작동상태를 나타낸 도면이다.FIG. 6 is a diagram illustrating an operational state of a queue formed in the database server of FIG. 1. FIG.

큐(14)는 한 방향으로 그룹이 삽입되고, 삽입된 방향과 반대 방향에서 그룹(13)이 삭제된다. 다시 말해, 큐(14)는 가장 먼저 사용자데이터가 로그인된 그룹을 가장 먼저 시뮬레이션 서버로 전송하며 삭제한다.The groups 14 are inserted in one direction and the group 13 is deleted in the direction opposite to the inserted direction. In other words, the queue 14 firstly sends the group in which the user data is logged to the simulation server and deletes it first.

이러한 큐(14)는 그룹(13)의 진행 상태를 관리하며 설정 시간 일례로 1분 내에 그룹(13)이 시뮬레이션 서버로 전송되면 커밋(commit)하며 순차적으로 그룹을 출력한다. 반면, 설정 시간 내에 그룹(13)이 시뮬레이션 서버로 전송되지 않으면, 그룹(13)의 처리가 실패되었다고 간주하여 롤백(roll back)한다. 이때, 롤백 되는 그룹은 시뮬레이션 처리되는 순서를 유지되어 롤백 되어 큐의 구조 내에서 즉시 상위 순서로 배치될 수 있다.The queue 14 manages the progress of the group 13 and commits when the group 13 is transferred to the simulation server within one minute as a set time, and sequentially outputs the group. On the other hand, if the group 13 is not sent to the simulation server within the set time, it is considered that the processing of the group 13 has failed and is rolled back. At this time, the groups to be rolled back can be rolled back while being held in the order of simulation processing, and can be immediately placed in the order of the highest order within the structure of the queue.

이와 같은 큐(14)는 로그인한 사용자데이터를 포함하는 그룹이 먼저 처리될 수 있도록 한다.Such a queue 14 allows a group containing logged in user data to be processed first.

이하, 지금까지 설명한 로그인 유저그룹 우선처리시스템(1)에 대한 설명을 바탕으로 본 발명의 일 실시예에 의한 로그인 유저그룹 우선처리방법에 대해 상세히 설명한다. 전술한 로그인 유저그룹 우선처리시스템(1)의 구성요소는 로그인 유저그룹 우선처리방법에 그대로 적용될 수 있다.Hereinafter, the login user group priority processing method according to one embodiment of the present invention will be described in detail based on the description of the login user group priority processing system 1 described so far. The above-described components of the login user group preference processing system 1 can be directly applied to the login user group priority processing method.

로그인 유저그룹 우선처리방법은 도 7의 순서도를 기준으로 설명한다.The login user group priority processing method will be described with reference to the flowchart of Fig.

도 7은 본 발명의 일 실시예에 의한 로그인 유저그룹 우선처리방법의 순서도이다.7 is a flowchart of a login user group priority processing method according to an embodiment of the present invention.

도 7을 참조하면, 로그인 유저그룹 우선처리방법은 데이터베이스 서버(10)에서 처리할 데이터가 있는가를 판단하는 단계(S21)로 시작될 수 있다. 여기서, 데이터는 야구 게임상에 2연전 또는 3연전으로 진행되는 라운드가 될 수 있다.Referring to FIG. 7, the login user group preference processing method may start with a step S21 of determining whether there is data to be processed in the database server 10. Here, the data may be a round in two or three rounds in a baseball game.

데이터베이스 서버(10)에서 처리할 데이터를 있다고 판단되면, 복수 개의 그룹 데이터를 출력해 시뮬레이션 서버(20)로 전송될 수 있도록 하는 단계(S22)를 진행한다.If it is determined that there is data to be processed in the database server 10, a step S22 is performed in which a plurality of group data are outputted and transmitted to the simulation server 20.

이후, 시뮬레이션 서버(20)에서 데이터를 처리하여 경기 화면을 만들어 내는 단계(S23)를 진행하고, 처리된 데이터를 저장소(11)에 전달하여 저장하는 단계(S24)를 진행한다.Thereafter, the simulation server 20 processes the data to generate a match screen (S23), and transmits the processed data to the storage 11 (S24).

이와 같은 각 단계에 대해 좀 더 구체적으로 설명한다.Each of these steps will be explained in more detail.

로그인 유저그룹 우선처리방법은 전술한 데이터베이스 서버(10)의 작동 순서를 포함하여 일례의 단계를 진행한다.The login user group priority processing method includes an operation sequence of the database server 10 described above and proceeds to an exemplary step.

로그인 유저그룹 우선처리방법은 데이터베이스 서버(10)에 복수 개의 사용자데이터(12)를 일정 개수로 묶어 적어도 하나의 그룹을 형성하는 (A) 단계로 일례의 단계를 시작한다. 이때, 데이터베이스 서버(10)는 사용자데이터의 등급이 동일한 데이터끼리 묶어 그룹(13)을 형성할 수 있다.The login user group preferential processing method starts an exemplary step (A) of forming at least one group by grouping a plurality of user data 12 in a predetermined number in the database server 10. At this time, the database server 10 may group the data of the same rank of the user data to form the group 13.

이러한 (A)단계가 완료된 후, 형성된 그룹 내에 포함되는 복수 개의 사용자데이터(12) 가운데 어느 하나의 사용자데이터가 로그인되었을 때, 로그인된 사용자데이터가 속한 그룹의 처리 순서를 상위로 설정하는 (B)단계를 진행한다.After step (A) is completed, when any one of the plurality of user data 12 included in the formed group is logged in, the process order of the group to which the logged-in user data belongs is set to be higher (B) Proceed to step.

이후, (B)단계에서 처리 순서가 설정된 그룹을 상위 순서대로 배치하는 큐(Queue)를 생성하는 (C)단계를 진행한다. 이때, 큐(14)는 사용자데이터가 로그인된 순서대로 그룹(13)을 정렬할 수 있다.Thereafter, the process proceeds to step (C) of creating a queue for arranging the groups in which the processing order is set in the order of higher order in step (B). At this time, the queue 14 can arrange the group 13 in the order in which the user data is logged in.

그리고 시뮬레이션 서버(20)에서 큐에 정렬된 그룹(13)을 가져가는 (D)단계를 진행한다. 데이터베이스 서버(10)는 그룹을 잠금 힌트를 포함하는 업데이트 잠금 설정하여, 복수 개의 시뮬레이션 서버(20)는 큐에서 서로 다른 그룹을 선택하여 가져갈 수 있다.Then, the simulation server 20 proceeds to step (D) of taking the group 13 arranged in the queue. The database server 10 sets an update lock including the group lock hint so that the plurality of simulation servers 20 can select and take different groups in the queue.

(D)단계 이후, 시뮬레이션 서버(20)에서 그룹을 시뮬레이션 처리한 후, 저장소(11)에 전송하는 (E)단계를 마지막 단계로 진행한다.After the step (D), the simulation server 20 simulates the group, and then transmits the group to the storage 11 (E).

이와 같은 일련의 단계로 데이터를 처리하며, 로그인 유저그룹 우선처리방법은 복수 개의 사용자데이터가 시뮬레이션 처리되는 동안 다른 그룹의 사용자데이터가 데이터베이스 서버(10)에서 처리될 수 있도록 한다.The login user group preferential processing method allows the user data of another group to be processed in the database server 10 while a plurality of user data is being simulated.

즉, 로그인 유저그룹 우선처리방법은 어느 하나의 그룹이 시뮬레이션 처리되는 동안에도 다른 그룹의 유저가 게임을 즐길 수 있도록 한다.That is, the login user group preference processing method enables a user of another group to enjoy a game while a certain group is being simulated.

또한, 로그인한 유저 그룹을 먼저 처리하며, 로그인한 유저가 신속하게 시뮬레이션 작업을 통해 생산된 영상을 볼 수 있도록 한다. 아울러, 복수 개의 시뮬레이션 서버에 복수 개의 그룹이 중복 없이 분산 배치되어, 특정 시뮬레이션 서버에 높은 부하가 형성되지 않도록 할 수 있다.In addition, the logged-in user group is processed first, and the logged-in user can quickly view the produced image through simulation. In addition, a plurality of groups can be dispersedly arranged in a plurality of simulation servers without redundancy, so that a high load is not formed in a specific simulation server.

이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야 한다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, You will understand. It is therefore to be understood that the embodiments described above are in all respects illustrative and not restrictive.

1: 로그인 유저그룹 우선처리시스템
10: 데이터베이스 서버 11: 저장소
12: 사용자데이터 13: 그룹
14: 큐 20: 시뮬레이션 서버
1: Login user group priority processing system
10: Database Server 11: Storage
12: User data 13: Group
14: queue 20: simulation server

Claims (14)

데이터를 저장하는 저장소와 복수 개의 사용자데이터를 일정 개수로 묶어 적어도 하나의 그룹을 형성하고, 복수 개의 상기 사용자데이터 가운데 어느 하나의 상기 사용자데이터가 로그인되었을 때, 로그인된 상기 사용자데이터가 속한 상기 그룹의 처리 순서를 설정하고, 설정된 상기 그룹을 상위 순서대로 배치하는 큐(Queue)를 생성하는 데이터베이스 서버; 및
다수 개의 스레드를 포함하여 상기 큐에 배치된 상기 그룹을 가져와 동시에 시뮬레이션 처리한 후, 상기 저장소에 전송하는 복수 개의 시뮬레이션 서버를 포함하되,
상기 데이터베이스 서버는 복수 개의 상기 사용자데이터 가운데 동일한 등급을 갖는 상기 사용자데이터를 하나의 상기 그룹으로 묶고, 상기 그룹의 상기 사용자데이터 가운데 적어도 하나의 상기 사용자데이터가 로그인 되었을 때, 로그인된 상기 사용자데이터를 포함하는 상기 그룹의 처리 순위를 다른 그룹의 처리 순위보다 상위로 설정한 후, 상기 그룹의 처리 순서를 정렬하고,
상기 데이터베이스 서버는, 상기 시뮬레이션 서버에서 한 번에 한 트랜잭션을 통해 상기 큐에 배치된 상기 그룹을 가져갈 수 있도록 하며, 상기 그룹 간에 형성된 잠금과 호환되지 않도록 상기 그룹을 업데이트 잠금(Update lock) 하고,
상기 업데이트 잠금은 잠금 설정된 상기 그룹은 건너뛰고 다른 그룹을 회하는 잠금 힌트(Locking Hints)를 포함하여,
복수 개의 상기 시뮬레이션 서버는 업데이트 잠금 설정된 그룹 가운데 서로 다른 그룹을 가져가, 하나의 그룹을 동시에 선택하지 않으며 상기 그룹을 중복 처리 하지 않는 로그인 유저그룹 우선처리 시스템.
A storage unit for storing data and a plurality of user data groups to form at least one group, and when any one of the plurality of user data units is logged in, A database server for setting a processing order and generating a queue for arranging the set groups in a higher order; And
A plurality of simulation servers including a plurality of threads to fetch and simultaneously simulate the groups arranged in the queues and transmit the groups to the repository,
Wherein the database server groups the user data having the same rank among a plurality of the user data into one group and when the at least one user data among the user data of the group is logged in, The processing order of the group is set higher than the processing order of the other groups,
Wherein the database server is configured to allow the simulation server to take the group disposed in the queue through one transaction at a time, update lock the group so as not to be compatible with the lock formed between the groups,
Wherein the update lock includes locking hints that skip the locked group and return to another group,
The plurality of simulation servers take different groups among update-locked groups, do not select one group at the same time, and do not duplicate the groups.
삭제delete 제1항에 있어서,
상기 큐(Queue)는 상기 사용자데이터가 로그인된 순서대로 상기 그룹을 정렬하는 로그인 유저그룹 우선처리시스템.
The method according to claim 1,
And the queue arranges the group in the order in which the user data is logged in.
삭제delete 삭제delete 삭제delete 제1항에 있어서,
상기 큐는, 상기 그룹이 설정시간 내에서 변경되면 커밋(commit)하고 상기 그룹이 상기 설정시간 내에 변경되지 않으면 롤백(roll back)하는 로그인 유저그룹 우선처리시스템.
The method according to claim 1,
Wherein the queue commits if the group is changed within a set time and rolls back if the group does not change within the set time.
데이터베이스 서버에, 복수 개의 사용자데이터를 일정 개수로 묶어 적어도 하나의 그룹을 형성하는 (A)단계;
복수 개의 상기 사용자데이터 가운데 어느 하나의 상기 사용자데이터가 로그인되었을 때, 로그인된 상기 사용자데이터가 속한 상기 그룹의 처리 순서를 설정하는 (B)단계;
처리 순서가 설정된 상기 그룹을 상위 순서대로 배치하는 큐(Queue)를 생성하는 (C)단계;
다수 개의 스레드를 포함하는 복수 개의 시뮬레이션 서버에서 상기 큐에 정렬된 상기 그룹을 가져가는 (D)단계; 및
가져간 상기 그룹을 시뮬레이션 처리한 후, 데이터를 저장하는 저장소에 전송하는 (E)단계를 포함하되,
상기 (A)단계에서 상기 그룹은 등급이 동일한 상기 사용자데이터를 포함하고, 상기 사용자데이터 가운데 적어도 하나가 로그인되었을 때, 로그인된 상기 사용자데이터를 포함하는 상기 그룹의 처리 순위를 다른 그룹의 처리 순위보다 상위로 설정하고,
상기 (B)단계에서, 상기 데이터베이스 서버는 상기 시뮬레이션 서버에서 한 번에 한 트랜잭션을 통해, 상기 큐에 배치된 상기 그룹을 가져갈 수 있도록 하며, 상기 그룹 간에 형성된 잠금과 호환되지 않도록 상기 그룹을 업데이트 잠금(Update lock)하고,
상기 업데이트 잠금은 잠금 설정된 상기 그룹은 건너뛰고 다른 그룹을 조회하는 잠금 힌트를 포함하고,
상기 (D)단계에서, 복수 개의 상기 시뮬레이션 서버는 업데이트 잠금 설정된 그룹 가운데 서로 다른 상기 그룹을 가져가, 하나의 그룹을 동시에 선택하지 않으며 상기 그룹을 중복처리 하지 않는 로그인 유저그룹 우선처리방법.
(A) forming, in a database server, at least one group by grouping a plurality of pieces of user data into a predetermined number;
(B) setting a processing order of the group to which the logged-in user data belongs when any one of the plurality of user data is logged in;
A step (C) of creating a queue for arranging the groups in which the processing order is set in a higher order;
(D) taking the group sorted in the queue in a plurality of simulation servers including a plurality of threads; And
(E) simulating the group that has taken it, and transmitting it to a storage for storing data,
Wherein, in the step (A), the group includes the same user data, and when at least one of the user data is logged in, the processing order of the group including the logged-in user data is Set to the upper level,
In the step (B), the database server allows the simulation server to take the group disposed in the queue through one transaction at a time, and updates the group to an update lock (Update lock)
Wherein the update lock includes a lock hint for skipping the locked group and querying another group,
In the step (D), the plurality of simulation servers take different groups among update-locked groups, do not select one group at the same time, and do not duplicate the group.
삭제delete 제8항에 있어서,
상기 (C)단계에서, 상기 큐(Queue)는 상기 사용자데이터가 로그인된 순서대로 상기 그룹을 정렬하는 로그인 유저그룹 우선처리방법.
9. The method of claim 8,
In the step (C), the queue arranges the groups in the order in which the user data is logged in.
삭제delete 삭제delete 삭제delete 제8항에 있어서,
상기 (B)단계에서, 상기 큐는 상기 그룹이 설정시간 내에서 변경되면 커밋(commit)하고 상기 그룹이 상기 설정시간 내에 변경되지 않으면 롤백(roll back)하는 로그인 유저그룹 우선처리방법.
9. The method of claim 8,
In the step (B), the queue commits if the group is changed within the set time, and rolls back the group if the group is not changed within the set time.
KR1020170099391A 2017-08-07 2017-08-07 Priority processing system and method for login user group KR101854631B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170099391A KR101854631B1 (en) 2017-08-07 2017-08-07 Priority processing system and method for login user group

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170099391A KR101854631B1 (en) 2017-08-07 2017-08-07 Priority processing system and method for login user group

Publications (1)

Publication Number Publication Date
KR101854631B1 true KR101854631B1 (en) 2018-05-03

Family

ID=62244875

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170099391A KR101854631B1 (en) 2017-08-07 2017-08-07 Priority processing system and method for login user group

Country Status (1)

Country Link
KR (1) KR101854631B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007088580A (en) * 2005-09-20 2007-04-05 Hitachi Ltd Communication system and method for managing communication
JP2007219651A (en) * 2006-02-14 2007-08-30 Toshiba Corp Job processing order control method, network computer system using this, and its program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007088580A (en) * 2005-09-20 2007-04-05 Hitachi Ltd Communication system and method for managing communication
JP2007219651A (en) * 2006-02-14 2007-08-30 Toshiba Corp Job processing order control method, network computer system using this, and its program

Similar Documents

Publication Publication Date Title
CN103889524B (en) Computer readable recording medium storing program for performing, data structure, netscape messaging server Netscape and the information processing terminal of information processing system, information processing method, message handling program, storing information processing program
CN107168797A (en) Resource regulating method based on dynamic game under cloud environment
US20130260888A1 (en) Phased game play for synchronized gaming schedule
US8126994B2 (en) Simulation techniques in a distributed computer system
US11789846B2 (en) Method and system for using stacktrace signatures for bug triaging in a microservice architecture
JP5502036B2 (en) GAME SYSTEM AND COMPUTER PROGRAM THEREOF
CN103390003A (en) Method and device for combining user data information among servers
Rea Calibrating play: sociotemporality in South Korean digital gaming culture
White et al. Database research opportunities in computer games
KR101854631B1 (en) Priority processing system and method for login user group
US20230016371A1 (en) Method, program, system, and server for program verification
WO2023142587A1 (en) Virtual object control method and apparatus, device, medium, and program product
Donkervliet et al. Dyconits: Scaling minecraft-like services through dynamically managed inconsistency
US8371941B2 (en) System and method for game state reduction
KR102195396B1 (en) Coding education system
Lin et al. Applying database replication to multi-player online games
JP7335739B2 (en) SYSTEM, METHOD AND PROGRAM FOR PROVIDING A GAME
US20130260849A1 (en) Deriving word-commonness for word-games
US20130260887A1 (en) Rule set for creating word-puzzles
US10325216B2 (en) System and method that facilitates a decision making process
Kristan et al. A high-availability bebras competition system
Subba et al. Scheduling sports tournaments by mixed-integer linear programming and a cluster pattern approach: computational implementation using data from the International timetabling competition 2021
Waldo Scaling in Games & Virtual Worlds: Online games and virtual worlds have familiar scaling requirements, but don’t be fooled: everything you know is wrong.
CN102779204A (en) Client-service-oriented multinational game strategic decision simulation and deduction high level architecture (HLA) simulation system
WO2020179822A1 (en) System, method, program, server, and electronic apparatus

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant