KR101029416B1 - 실시간으로 대용량 랭킹을 산정하기 위한 랭킹 데이터 시스템, 랭킹 질의 시스템 및 랭킹 산정 방법 - Google Patents

실시간으로 대용량 랭킹을 산정하기 위한 랭킹 데이터 시스템, 랭킹 질의 시스템 및 랭킹 산정 방법 Download PDF

Info

Publication number
KR101029416B1
KR101029416B1 KR1020090093476A KR20090093476A KR101029416B1 KR 101029416 B1 KR101029416 B1 KR 101029416B1 KR 1020090093476 A KR1020090093476 A KR 1020090093476A KR 20090093476 A KR20090093476 A KR 20090093476A KR 101029416 B1 KR101029416 B1 KR 101029416B1
Authority
KR
South Korea
Prior art keywords
ranking
query
information
data
score
Prior art date
Application number
KR1020090093476A
Other languages
English (en)
Other versions
KR20110035665A (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 KR1020090093476A priority Critical patent/KR101029416B1/ko
Priority to PCT/KR2010/006654 priority patent/WO2011040765A2/ko
Publication of KR20110035665A publication Critical patent/KR20110035665A/ko
Application granted granted Critical
Publication of KR101029416B1 publication Critical patent/KR101029416B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

실시간으로 대용량 랭킹을 산정하기 위한 랭킹 데이터 시스템, 랭킹 질의 시스템 및 랭킹 산정 방법을 개시한다. 랭킹 데이터 시스템은 랭킹 스킴 테이블로부터 서비스할 랭킹의 속성 정보를 읽어, 메모리에 속성 정보에 해당하는 자료구조를 생성하는 자료구조 생성부, 점수 구간에 따라 분할되어 복수의 랭킹 데이터 시스템에 분산 적재되는 랭킹 정보 중 해당하는 점수 구간의 랭킹 정보를 데이터베이스로부터 수신하여 생성된 자료구조를 통해 메모리에 적재하는 랭킹 정보 적재부, 복수의 랭킹 질의 시스템 중 어플리케이션으로부터 질의를 수신한 랭킹 질의 시스템으로부터 질의에 대한 요청을 수신하는 요청 수신부 및 수신된 요청에 따른 동작을 적재된 랭킹 정보에 대해 처리하고, 처리한 결과를 랭킹 질의 시스템으로 전송하는 요청 처리부를 포함한다.
Figure R1020090093476
랭킹(ranking), 게임, 데이터베이스, 실시간, 라우팅 테이블

Description

실시간으로 대용량 랭킹을 산정하기 위한 랭킹 데이터 시스템, 랭킹 질의 시스템 및 랭킹 산정 방법{RANKING DATA SYSTEM, RANKING QUERY SYSTEM AND RANKING COMPUTATION METHOD FOR COMPUTING LARGE SCALE RANKING IN REAL TIME}
본 발명에 따른 실시예들은 실시간으로 대용량 랭킹을 산정하기 위한 랭킹 데이터 시스템, 랭킹 질의 시스템 및 랭킹 산정 방법에 관한 것이다.
종래기술에 따른 랭킹 시스템은 일반적으로 아래와 같은 2가지 방법으로 구현된다.
첫 번째로, 데이터베이스에 의존하는 랭킹 시스템을 이용하는 방법이 있다. 이러한 랭킹 시스템은 일반적인 DBMS를 이용하여 랭킹을 계산하기 위한 숫자값을 저장하고, 정해진 시간마다 데이터베이스 질의 연산을 통해 랭킹을 산출해서 저장해두는 방식이다. 랭킹 시스템은 기본적인 데이터베이스 연산만으로 랭킹을 계산할 수 있고, 어플리케이션 입장에서도 데이터베이스에 저장된 랭킹 정보만 읽어가면 되기 때문에 가장 구현이 쉬운 방식이다.
그러나, 데이터베이스에 의존하는 랭킹 시스템을 활용하는 경우, 데이터베이스에 소모되는 연산부하로 인해 실시간으로 랭킹을 계산하기 어렵다. 따라서, 랭 킹 시스템에서 랭킹을 계산하기 위한 숫자값을 저장해 둔 후, 정해진 시간마다(예를 들어, 하루 한번) 랭킹을 집계하고, 어플리케이션에서 집계된 랭킹 정보를 읽어간다. 실시간으로 계산하는 것이 불가능한 것은 아니나 그렇게 할 경우 데이터베이스에 부하가 되지 않을 정도로 랭킹 집계 범위를 축소할 필요가 있다. 결국 데이터베이스는 상대적으로 느린 반응성으로 인해 실시간 랭킹을 집계하기에는 적절치 않다.
두 번째로, 랭킹 서버를 직접 구축하는 방법이 있다. 이러한 방법은 비용이 많이 들고, 반응성이 느린 DBMS 대신 직접 랭킹 서버를 구현해서 랭킹 정보를 관리한다. 이때, 어플리케이션은 랭킹 서버와 정의된 인터페이스를 통해, 요청과 응답을 주고 받을 수 있다. 이 경우, 랭킹 서버는 개념상 랭킹 정보에 대해서 일종의 데이터베이스 캐시로 동작한다. 이러한 랭킹 서버는 내부에서 관리하고 있는 랭킹 정보를 영구적으로 저장할 필요가 있다. 이때, 랭킹 정보는 내/외부의 별도 DBMS를 활용하든가, 운영체제의 파일시스템을 이용해 직접 데이터 파일로 관리될 수 있다.
그러나, 하나의 단일 서버에서 랭킹 정보를 모두 처리해야 하므로, 랭킹 요청에 대한 트래픽이 아주 많거나, 저장된 랭킹 정보의 개수가 아주 많을 경우에는 물리적인 성능 한계에 직면하게 된다. 서비스 도메인별로 랭킹서버를 분리해서 분산처리할 수 있겠지만 그럴 경우 어플리케이션에서 서비스 도메일별로 할당된 랭킹 서버에 대한 정보를 모두 알고 있어야 하는 단점이 있다. 또한 단일 서비스 도메인에서 역시 성능 문제에 직면하게 되면 분산처리가 불가능하다. 또한, 랭킹 서버 개발에 시간이 걸리는 만큼이나, 랭킹을 새로운 서비스에 적용하기도 쉽지 않다. 랭킹 자체에 대한 스키마가 하드 코딩되어 있기 때문에 스키마를 바꾸거나 새로운 랭킹을 적용하기 위해서는 추가개발이 필요한 경우가 많다.
본 명세서에서는 이러한 대용량 랭킹을 실시간으로 그리고 효율적으로 산정할 수 있는 랭킹 데이터 시스템, 랭킹 질의 시스템 및 랭킹 산정 방법을 제안한다.
복수의 랭킹 데이터 시스템에 랭킹 정보를 분산 적재하고, 자신의 점수 구간에 대해서만 랭킹 정보를 처리하도록 함으로써, 실시간으로 대용량의 랭킹 산정이 가능한 랭킹 데이터 시스템 및 랭킹 산정 방법이 제공된다.
랭킹 라우트 테이블을 이용하여 어플리케이션의 질의에 맞는 랭킹 데이터 시스템으로 질의를 중계하고, 랭킹 데이터 시스템의 응답과 랭킹 라우트 테이블에 저장된 복수의 랭킹 데이터 시스템 각각의 카운터를 통해 순위를 결정함으로써, 실시간으로 대용량의 랭킹 산정이 가능한 랭킹 질의 시스템 및 랭킹 산정 방법이 제공된다.
랭킹 데이터 시스템의 부하율(burst rate)에 기초하여 부하율이 높은 랭킹 데이터 시스템의 랭킹 정보 중 일부를 부하율이 낮은 랭킹 데이터 시스템으로 이동시킴으로써, 동적으로 부하를 분산시킬 수 있는 랭킹 데이터 시스템, 랭킹 질의 시스템 및 랭킹 산정 방법이 제공된다.
본 발명의 일실시예에 따른 랭킹 데이터 시스템은 랭킹 스킴 테이블로부터 서비스할 랭킹의 속성 정보를 읽어, 메모리에 속성 정보에 해당하는 자료구조를 생성하는 자료구조 생성부, 점수 구간에 따라 분할되어 복수의 랭킹 데이터 시스템에 분산 적재되는 랭킹 정보 중 해당하는 점수 구간의 랭킹 정보를 데이터베이스로부터 수신하여 생성된 자료구조를 통해 메모리에 적재하는 랭킹 정보 적재부, 복수의 랭킹 질의 시스템 중 어플리케이션으로부터 질의를 수신한 랭킹 질의 시스템으로부터 질의에 대한 요청을 수신하는 요청 수신부 및 수신된 요청에 따른 동작을 적재된 랭킹 정보에 대해 처리하고, 처리한 결과를 랭킹 질의 시스템으로 전송하는 요청 처리부를 포함한다.
본 발명의 일측면에 따르면, 랭킹 데이터 시스템은 자신의 부하율(burst rate)을 계산하는 부하율 계산부를 포함할 수 있고, 상기 자신의 부하율 및 상기 복수의 랭킹 데이터 시스템 중 인접한 점수 구간의 랭킹 정보가 적재된 다른 랭킹 데이터 시스템의 부하율에 기초하여 상기 잭재된 랭킹 정보 중 일부가 상기 다른 랭킹 데이터 시스템으로 이동되거나 상기 다른 랭킹 데이터 시스템에 적재된 랭킹 정보의 일부가 이동될 수 있다.
본 발명의 일측면에 따르면, 적재된 랭킹 정보 중 일부는 자신의 부하율의 다른 랭킹 데이터 시스템의 부하율에 대한 비율이 일정 비율 이상인 경우, 다른 랭킹 데이터 시스템으로 이동될 수 있다.
본 발명의 일측면에 따르면, 복수의 랭킹 데이터 시스템에서 서로 인접한 점수 구간의 랭킹 정보를 적재하는 랭킹 데이터 시스템마다 점수 구간의 일부가 서로 중복되도록 적재될 수 있고, 이동되는 일부의 랭킹 정보는 다른 랭킹 데이터 시스템과 서로 중복되는 랭킹 정보를 포함할 수 있다.
본 발명의 일측면에 따르면, 랭킹 데이터 시스템은 부하율을 복수의 랭킹 질의 시스템으로 브로드캐스팅하는 부하율 전송부를 더 포함할 수 있고, 부하율은 복수의 랭킹 질의 시스템이 포함하는 랭킹 라우팅 테이블에 갱신될 수 있다.
본 발명의 일측면에 따르면, 상기 점수 구간은 상기 복수의 랭킹 질의 시스템에서 상기 부하율에 기초하여 변경될 수 있고, 이동되는 일부의 랭킹 정보는 점수 구간의 변경에 따라 결정된 랭킹 정보를 포함할 수 있다.
본 발명의 일측면에 따르면, 속성 정보는 관리자에게 제공되는 랭킹 관리 도구를 통해 생성될 수 있다.
본 발명의 일측면에 따르면, 부하율은 TPS(Throughput Per Second) 및 여유 메모리 용량에 따라 결정될 수 있다.
본 발명의 일측면에 따르면, 랭킹 데이터 시스템은 주기적으로 자신의 랭킹 정보를 상기 데이터베이스에 백업하는 백업부를 더 포함할 수 있다.
본 발명의 일측면에 따르면, 질의는 랭킹 질의 시스템에서 랭킹 라우팅 테이블에 기초하여 복수의 랭킹 데이터 시스템 중 결정된 하나의 랭킹 데이터 시스템으로 전송될 수 있다.
본 발명의 일측면에 따르면, 요청 처리부에서 처리한 결과 및 랭킹 라우팅 테이블에 저장된 복수의 랭킹 데이터 시스템 각각에 대한 카운트에 기초하여 랭킹 질의 시스템에서 랭킹이 산정될 수 있고, 카운트는 랭킹 정보를 요청하거나 랭킹 정보를 등록하는 랭킹 서비스 이용 주체의 수를 포함할 수 있다.
본 발명의 일실시예에 따른 랭킹 산정 방법은 랭킹 데이터 시스템의 자료구조 생성부에서 랭킹 스킴 테이블로부터 서비스할 랭킹의 속성 정보를 읽어, 메모리에 속성 정보에 해당하는 자료구조를 생성하는 단계, 랭킹 데이터 시스템의 랭킹 정보 적재부에서 점수 구간에 따라 분할되어 복수의 랭킹 데이터 시스템에 분산 적 재되는 랭킹 정보 중 해당하는 점수 구간의 랭킹 정보를 데이터베이스로부터 수신하여 생성된 자료구조를 통해 메모리에 적재하는 단계, 랭킹 데이터 시스템의 요청 수신부에서 복수의 랭킹 질의 시스템 중 어플리케이션으로부터 질의를 수신한 랭킹 질의 시스템으로부터 질의에 대한 요청을 수신하는 단계 및 랭킹 데이터 시스템의 요청 처리부에서 수신된 요청에 따른 동작을 적재된 랭킹 정보에 대해 처리하고, 처리한 결과를 랭킹 질의 시스템으로 전송하는 단계를 포함한다.
본 발명의 일실시예에 따른 랭킹 질의 시스템은 복수의 랭킹 데이터 시스템으로부터 속성 정보 및 부하율 중 적어도 하나를 수신하여 랭킹 라우팅 테이블을 생성 또는 갱신하는 테이블 관리부, 어플리케이션으로부터 수신된 질의를 분석하고, 랭킹 라우팅 테이블에 기초하여 복수의 랭킹 데이터 시스템 중 질의에 해당하는 랭킹 정보를 포함하는 랭킹 데이터 시스템으로 질의를 전송하는 질의 처리부, 질의에 대한 랭킹 데이터 시스템의 응답을 수신하여 어플리케이션으로 전송하는 응답 처리부 및 복수의 랭킹 데이터 시스템이 각각 포함하는 랭킹 정보의 점수 구간을 부하율에 기초하여 랭킹 라우팅 테이블에 갱신하는 점수 구간 갱신부를 포함한다.
본 발명의 일실시예에 따른 랭킹 산정 시스템은 랭킹 질의 시스템의 테이블 관리부에서 복수의 랭킹 데이터 시스템으로부터 속성 정보 및 부하율 중 적어도 하나를 수신하여 랭킹 라우팅 테이블을 생성 또는 갱신하는 단계, 랭킹 질의 시스템의 질의 처리부에서 어플리케이션으로부터 수신된 질의를 분석하고, 랭킹 라우팅 테이블에 기초하여 복수의 랭킹 데이터 시스템 중 질의에 해당하는 랭킹 정보를 포 함하는 랭킹 데이터 시스템으로 질의를 전송하는 단계, 랭킹 질의 시스템의 응답 처리부에서 질의에 대한 랭킹 데이터 시스템의 응답을 수신하여 어플리케이션으로 전송하는 단계 및 랭킹 질의 시스템의 점수 구간 갱신부에서 복수의 랭킹 데이터 시스템이 각각 포함하는 랭킹 정보의 점수 구간을 부하율에 기초하여 랭킹 라우팅 테이블에 갱신하는 점수 구간 갱신부를 포함한다.
복수의 랭킹 데이터 시스템에 랭킹 정보를 분산 적재하고, 자신의 점수 구간에 대해서만 랭킹 정보를 처리하도록 함으로써, 실시간으로 대용량의 랭킹을 산정할 수 있다.
랭킹 라우트 테이블을 이용하여 어플리케이션의 질의에 맞는 랭킹 데이터 시스템으로 질의를 중계하고, 랭킹 데이터 시스템의 응답과 랭킹 라우트 테이블에 저장된 복수의 랭킹 데이터 시스템 각각의 카운터를 통해 순위를 결정함으로써, 실시간으로 대용량의 랭킹을 산정할 수 있다.
랭킹 데이터 시스템의 부하율(burst rate)에 기초하여 부하율이 높은 랭킹 데이터 시스템의 랭킹 정보 중 일부를 부하율이 낮은 랭킹 데이터 시스템으로 이동시킴으로써, 동적으로 부하를 분산시킬 수 있다.
이하 첨부된 도면을 참조하여 본 발명에 따른 다양한 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일실시예에 있어서, 랭킹 서비스를 제공하는 전체 시스템 의 개괄적인 모습을 도시한 도면이다.
여기서, 랭킹 서비스 시스템(100)은 복수의 랭킹 질의 서버 및 복수의 랭킹 데이터 서버로 구성되어 실시간 랭킹 서비스를 제공하는 서버군을 의미할 수 있다. 이때, 대용량의 랭킹 정보를 빠른 속도로 실시간 서비스 하기 위해 내부적으로 랭킹 정보를 분산 처리한다. 이때, 랭킹 서비스의 사용자는 내부 구조를 알 필요 없이 서비스로써 제공된 인터페이스를 이용하여 랭킹 서비스를 이용할 수 있다.
랭킹 관리 도구(110)는 랭킹 마스터 스킴(120)을 관리하기 위해 제작된 툴로서 일례로, 개발 업무와 랭킹 서비스 운영 업무를 분리하기 위해 이용될 수 있다. 이러한 랭킹 관리 도구(110)는 랭킹 마스터 스킴(120)에 대한 정보뿐만 아니라 부정사용자 랭킹 삭제 처리, 랭킹 로그 확인 등 운영에 필요한 제반적인 기능을 제공할 수 있다.
랭킹 마스터 스킴(120)은 랭킹의 속성과 같이 랭킹에 대한 메타 정보를 설정되는 것으로, 랭킹 스킴 테이블로서 유지될 수 있다. 이때, 랭킹 서비스 시스템(100)에 포함되는 랭킹 데이터 서버에서 이러한 랭킹 스킴 테이블을 통해 자신이 서비스할 랭킹에 맞는 자료구조를 생성할 수 있다. 이때, 랭킹 스킴 테이블에는 랭킹 서비스 도메인 이름, 랭킹 기간 타입(일간, 주간, 월간 또는 누적), 랭킹 정렬 속성(오름차순 또는 내림차순), 랭킹 동점자 처리 방식(최초등록자 우선 또는 최근 등록자 우선), 랭킹 종류 개수 지정 등과 같은 다양한 메타 정보가 설정될 수 있다.
데이터베이스(130)는 랭킹 데이터 서버의 메모리에 저장된 랭킹 정보를 백업 하는 외부 저장소로서, 최초 랭킹 데이터 서버는 자료구조를 생성한 후 데이터베이스로부터 필요한 랭킹 정보를 수신하여 메모리에 적재할 수 있다.
어플리케이션(140)은 랭킹 정보를 요청하거나 랭킹 정보를 등록하는 랭킹 서비스 이용 주체를 의미할 수 있다. 예를 들어, 사용자가 이용하는 단말기에서 동작하는 임의의 프로그램일 수 있다.
도 2는 본 발명의 일실시예에 있어서, 랭킹 서비스 시스템의 개괄적인 모습을 도시한 도면이다. 도 1을 통해 간단히 설명한 바와 같이, 랭킹 서비스 시스템(100)은 복수의 랭킹 데이터 시스템(210) 및 복수의 랭킹 질의 시스템(220)을 포함할 수 있다. 이때, 복수의 랭킹 데이터 시스템(210)은 도 1을 통해 설명한 복수의 랭킹 데이터 서버에, 복수의 랭킹 질의 시스템(220)은 도 1을 통해 설명한 복수의 랭킹 질의 서버에 각각 대응될 수 있다.
이때, 어플리케이션(140)이 랭킹 서비스 시스템(100)으로 랭킹 정보를 요청하게 되면, 실제적으로는 복수의 랭킹 질의 시스템(220) 중 하나로 애니캐스트(anycast) 동작을 수행하게 된다. 이때, 애니캐스트는 L4(Layer-4) 스위치를 통해 수행되거나 어플리케이션(140)에서 소프트웨어적으로 수행될 수도 있다.
이때, 복수의 랭킹 질의 시스템(220) 중 랭킹 정보의 요청에 따른 질의를 수신하는 랭킹 질의 시스템은 수신된 질의를 분석하고, 복수의 랭킹 데이터 시스템(210) 중 해당 랭킹 정보를 포함하는 랭킹 데이터 시스템으로 요청을 중계하여 질의를 전달하고, 랭킹 데이터 시스템으로부터 응답을 받아 다시 어플리케이션(140)으로 전달할 수 있다. 이때, 복수의 랭킹 질의 시스템(220)은 많은 트래픽 을 분산 처리할 필요가 있으므로 횡적으로 유연하게 확장될 수 있다.
복수의 랭킹 데이터 시스템(210)은 실제적인 랭킹 정보를 저장하는 곳으로, 빠른 처리를 위해 메모리에 랭킹 정보를 저장한다. 이러한 복수의 랭킹 데이터 시스템(210)은 랭킹 스킴 테이블에 포함된 랭킹의 속성 정보를 이용하여 최적의 자료구조를 생성할 수 있다. 이때, 물리적인 메모리에도 역시 한계가 있기 때문에 복수의 랭킹 데이터 시스템(210) 또한 횡적으로 유언하게 확장될 수 있다.
도 3은 본 발명의 일실시예에 있어서, 랭킹 데이터 시스템의 내부 구성을 설명하기 위한 블록도이다. 본 실시예에 따른 랭킹 데이터 시스템(300)은 도 2를 통해 설명한 복수의 랭킹 데이터 시스템(210) 중 하나일 수 있다. 또한, 랭킹 데이터 시스템(300)은 도 3에 도시된 바와 같이, 자료구조 생성부(310), 랭킹 정보 적재부(320), 요청 수신부(330), 요청 처리부(340), 부하율 계산부(350), 부하율 전송부(360) 및 백업부(370)를 포함할 수 있다.
자료구조 생성부(310)는 랭킹 스킴 테이블로부터 서비스할 랭킹의 속성 정보를 읽어, 메모리에 속성 정보에 해당하는 자료구조를 생성한다. 이때, 속성 정보는 관리자에게 제공되는 랭킹 관리 도구를 통해 생성될 수 있다.
랭킹 정보 적재부(320)는 점수 구간에 따라 분할되어 복수의 랭킹 데이터 시스템에 분산 적재되는 랭킹 정보 중 해당하는 점수 구간의 랭킹 정보를 데이터베이스로부터 수신하여 생성된 자료구조를 통해 메모리에 적재한다. 보다 자세하게, 랭킹은 서비스 도메인별로 분할되고, 다시 랭킹 정보는 점수 구간에 따라 분할될 수 있다. 이때, 랭킹 데이터 시스템(300)은 자신에게 할당된 점수 구간에 대해서 만 순위를 계산할 수 있고, 이를 위해 랭킹 정보 적재부(320)는 해당하는 점수 구간의 랭킹 정보를 데이터베이스로부터 수신하여 메모리에 적재할 수 있다.
요청 수신부(330)는 복수의 랭킹 질의 시스템 중 어플리케이션으로부터 질의를 수신한 랭킹 질의 시스템으로부터 질의에 대한 요청을 수신한다. 이때, 질의는 랭킹 질의 시스템에서 랭킹 라우팅 테이블에 기초하여 복수의 랭킹 데이터 시스템 중 결정된 하나로 전송될 수 있다. 이러한 랭킹 라우팅 테이블은 복수의 랭킹 질의 시스템 모두에서 동일한 값을 가질 수 있다. 일례로, 랭킹 데이터 시스템(300)은 적재된 랭킹 정보가 갱신되는 경우, 복수의 랭킹 질의 시스템으로 정보를 브로드캐스팅하여 랭킹 라우팅 테이블이 동일하게 갱신되도록 할 수 있다.
요청 처리부(340)는 수신된 요청에 따른 동작을 적재된 랭킹 정보에 대해 처리하고, 처리한 결과를 랭킹 질의 시스템으로 전송한다. 요청 처리부(340)에서 처리한 결과 및 랭킹 라우팅 테이블에 저장된 복수의 랭킹 데이터 시스템 각각에 대한 카운트에 기초하여 랭킹 질의 시스템에서 랭킹이 산정될 수 있고, 카운트는 랭킹 정보를 요청하거나 랭킹 정보를 등록하는 랭킹 서비스 이용 주체의 수를 포함할 수 있다. 따라서, 랭킹 질의 시스템은 복수의 랭킹 데이터 시스템 각각에 해당하는 점수 구간에 포함된 이용 주체의 수를 랭킹 라우팅 테이블에 저장된 카운트를 통해 알 수 있기 때문에 복수의 랭킹 데이터 시스템 중 하나에서의 랭킹을 알면, 랭킹 서비스 이용 주체 전체에서 질의를 요청한 어플리케이션의 랭킹을 산정할 수 있다. 이러한 랭킹 산정에 대해서는 아래 도 5를 통해 더욱 자세히 설명한다.
부하율 계산부(350)는 자신의 부하율(burst rate)을 계산한다. 여기서, 부 하율은 TPS(Throughput Per Second) 및 여유 메모리 용량에 따라 결정될 수 있다. 예를 들어 부하율은 하기 수학식 1과 같이 계산될 수 있다.
부하율 = Exceed TPS * 100 + (1,000,000/ 여유 메모리 용량)
여기서, 'Exceed TPS'는 '현재 TPS - 5000'의 값을 가질 수 있고, 'Exceed TPS'가 음수인 경우, '0'으로 보정될 수 있다. 또한, 여유 메모리 용량의 단위는 메가 바이트일 수 있다.
이때, 자신의 부하율 및 복수의 랭킹 데이터 시스템 중 인접한 점수 구간의 랭킹 정보가 적재된 다른 랭킹 데이터 시스템의 부하율에 기초하여 잭재된 랭킹 정보 중 일부가 다른 랭킹 데이터 시스템으로 이동되거나 다른 랭킹 데이터 시스템에 적재된 랭킹 정보의 일부가 이동될 수 있다. 보다 자세하게, 적재된 랭킹 정보 중 일부는 자신의 부하율의 다른 랭킹 데이터 시스템의 부하율에 대한 비율이 일정 비율 이상인 경우, 다른 랭킹 데이터 시스템으로 이동될 수 있다. 예를 들어, 점수 구간이 서로 인접한 랭킹 데이터 시스템 H와 I에서 H의 부하율이 I의 부하율보다 1.5배 이상 큰 경우, H에 적재된 랭킹 정보 중 일부를 I로 이동시킴으로써, H의 부하를 줄일 수 있다. 이때, I 또한 점수 구간이 인접한 랭킹 데이터 시스템 J와 부하율을 비교할 수 있고, 순차적으로 점수 구간이 서로 인접한 모든 랭킹 데이터 시스템의 부하율을 비교함으로써, 동적으로 부하를 분산시킬 수 있다.
또한, 복수의 랭킹 데이터 시스템에서 서로 인접한 점수 구간의 랭킹 정보를 적재하는 랭킹 데이터 시스템마다 점수 구간의 일부가 서로 중복되도록 적재될 수 있고, 이때 이동되는 일부의 랭킹 정보는 다른 랭킹 데이터 시스템과 서로 중복되는 랭킹 정보를 포함할 수 있다. 이는 점수 구간의 종단에 위치한 랭킹 정보에 대해서 인접한 랭킹 정보를 요청하게 되는 경우, 두 개의 랭킹 데이터 서버로 읽기 요청을 해야 하는 것을 방지하기 위해 점수 구간을 서로 중복되게 설정함으로써, 리스트에 대한 읽기 요청이 반드시 한 개의 랭킹 데이터 서버에 대해서만 발생하도록 한정하기 위함이다. 이때, 부하율에 따라 중복된 랭킹 정보가 이동되도록 할 수 있다.
부하율 전송부(360)는 부하율을 복수의 랭킹 질의 시스템으로 브로드캐스팅한다. 이때, 부하율은 복수의 랭킹 질의 시스템이 포함하는 랭킹 라우팅 테이블에 갱신될 수 있다. 이 경우, 점수 구간은 복수의 랭킹 질의 시스템에서 부하율에 기초하여 변경될 수 있고, 이동되는 일부의 랭킹 정보는 점수 구간의 변경에 따라 결정된 랭킹 정보를 포함할 수 있다. 즉, 부하율에 따른 랭킹 정보의 이동이 랭킹 데이터 시스템간의 데이터 이동을 통해서 이루어질 수도 있지만, 랭킹 라우팅 테이블에서 변경된 점수 구간의 랭킹 정보를 각각의 랭킹 데이터 시스템에서 데이터베이스로부터 다시 수신하여 적재함으로써 이루어질 수도 있다.
백업부(370)는 주기적으로 자신의 랭킹 정보를 데이터베이스에 백업한다.
도 4는 본 발명의 일실시예에 있어서, 랭킹 질의 시스템의 내부 구성을 설명하기 위한 블록도이다. 본 실시예에 따른 랭킹 질의 시스템(400)은 도 2를 통해 설명한 복수의 랭킹 질의 시스템(220) 중 하나일 수 있다. 또한, 랭킹 질의 시스템(400)은 도 4에 도시된 바와 같이 테이블 관리부(410), 질의 처리부(420), 응답 처리부(430) 및 점수 구간 갱신부(440)를 포함할 수 있다.
테이블 관리부(410)는 복수의 랭킹 데이터 시스템으로부터 속성 정보 및 부하율 중 적어도 하나를 수신하여 랭킹 라우팅 테이블을 생성 또는 갱신한다. 이때, 부하율은 상기 복수의 랭킹 데이터 시스템에서 TPS(Throughput Per Second) 및 여유 메모리 용량에 따라 각각 결정되어 브로드캐스트될 수 있다. 또한, 복수의 랭킹 데이터 시스템 각각은 랭킹 스킴 테이블로부터 서비스할 랭킹의 속성 정보를 읽어, 메모리에 속성 정보에 해당하는 자료구조를 생성할 수 있다. 즉, 테이블 관리부(410)는 복수의 랭킹 데이터 시스템으로부터 각각 수신되는 속성 정보와 부하율을 수신하여 랭킹 라우팅 테이블을 생성 또는 갱신할 수 있다.
이때, 복수의 랭킹 데이터 시스템 각각은 점수 구간에 따라 분할되어 복수의 랭킹 데이터 시스템에 분산 적재되는 랭킹 정보 중 해당하는 점수 구간의 랭킹 정보를 데이터베이스로부터 수신하여 생성된 자료구조를 통해 메모리에 적재할 수 있다. 이 경우, 복수의 랭킹 데이터 시스템 중 서로 인접한 점수 구간의 랭킹 정보를 적재하는 랭킹 데이터 시스템마다 점수 구간의 일부가 서로 중복되도록 적재될 수 있고, 랭킹 라우팅 테이블은 중복되지 않게 적재된 랭킹 정보의 점수 구간을 읽기(read) 구간으로서, 중복되지 않게 적재된 랭킹 정보의 점수 구간 및 중복되어 적재된 랭킹 정보의 점수 구간은 쓰기(right) 구간으로서, 각각 저장할 수 있다. 즉, 쓰기 동작은 동시에 두 개의 랭킹 데이터 시스템에서 발생할 수 있지만, 읽기 동작은 반드시 하나의 랭킹 데이터 시스템에서 발생하도록 한정할 수 있다.
질의 처리부(420)는 어플리케이션으로부터 수신된 질의를 분석하고, 상기 랭 킹 라우팅 테이블에 기초하여 상기 복수의 랭킹 데이터 시스템 중 상기 질의에 해당하는 랭킹 정보를 포함하는 랭킹 데이터 시스템으로 상기 질의를 전송한다. 이때, 어플리케이션으로부터의 질의는 애니캐스트(anycast) 전송 방식을 통해 복수의 랭킹 질의 시스템 중 하나로 전송될 수 있다.
응답 처리부(430)는 상기 질의에 대한 상기 랭킹 데이터 시스템의 응답을 수신하여 상기 어플리케이션으로 전송한다. 이때, 랭킹 라우팅 테이블은 랭킹 정보를 요청하거나 랭킹 정보를 등록하는 랭킹 서비스 이용 주체의 수인 카운트를 상기 복수의 랭킹 데이터 시스템별로 포함할 수 있고, 응답 및 카운트에 기초하여 랭킹이 산정될 수 있다.
예를 들어, 전체 점수 구간이 0점부터 99점까지이고, 10점 단위로 10개의 점수 구간으로 분류되고, 각각 제1 랭킹 데이터 시스템 내지 제10 랭킹 데이터 시스템의 10개의 랭킹 데이터 시스템에서 해당 점수 구간의 랭킹 정보를 포함한다고 가정하자. 이때, 질의가 70점 내지 79점의 점수 구간에 포함된 랭킹을 요청한다면, 랭킹 질의 시스템(400)은 제8 랭킹 데이터 시스템으로 질의를 중계하여 응답을 수신함으로써 70점 내지 79점의 점수 구간 내에서의 순위를 얻을 수 있다. 또한, 랭킹 질의 시스템(400)은 랭킹 라우팅 테이블에서 제9 랭킹 데이터 시스템 및 제10 랭킹 데이터 시스템의 카운트를 확인함으로써, 80점 내지 89점의 점수 구간과 90점 내지 99점의 점수 구간에 포함된 랭킹 서비스 이용 주체의 수를 확인하여 원하는 점수 구간 외에서의 순위를 얻을 수 있다. 즉, 랭킹 질의 시스템(400)은 제9 랭킹 데이터 시스템 및 제10 랭킹 데이터 시스템의 카운트와 70점 내지 79점의 점수 구 간 내에서의 순위를 합산함으로써 간단히 어플리케이션의 랭킹을 계산할 수 있다.
점수 구간 갱신부(440)는 복수의 랭킹 데이터 시스템이 각각 포함하는 랭킹 정보의 점수 구간을 상기 부하율에 기초하여 상기 랭킹 라우팅 테이블에 갱신한다. 이때, 점수 구간 갱신부(440)는 서로 인접한 랭킹 데이터 시스템의 부하율간의 비율이 A 이상인 경우, 상기 부하율에 기초하여 상기 서로 인접한 랭킹 데이터 시스템이 각각 포함하는 랭킹 정보의 점수 구간을 상기 랭킹 라우팅 테이블에 갱신할 수 있다. 여기서, 서로 인접한 랭킹 데이터 시스템은 서로 인접한 점수 구간의 랭킹 정보를 각각 포함하는 랭킹 데이터 시스템을 의미할 수 있다.
예를 들어, 점수 구간이 서로 인접한 랭킹 데이터 시스템 H와 I에서 H의 부하율이 I의 부하율보다 1.5배 이상 큰 경우, H에 적재된 랭킹 정보 중 일부를 I로 이동시킴으로써, H의 부하를 줄일 수 있다. 이때, I 또한 점수 구간이 인접한 랭킹 데이터 시스템 J와 부하율을 비교할 수 있고, 순차적으로 점수 구간이 서로 인접한 모든 랭킹 데이터 시스템의 부하율을 비교함으로써, 동적으로 부하를 분산시킬 수 있다.
이와 같이, 본 발명의 실시예들에 따른 랭킹 질의 시스템 및 랭킹 데이터 시스템을 이용하면, 복수의 랭킹 데이터 시스템에 랭킹 정보를 분산 적재하고, 자신의 점수 구간에 대해서만 랭킹 정보를 처리하도록 함으로써, 실시간으로 대용량의 랭킹을 산정할 수 있고, 랭킹 라우트 테이블을 이용하여 어플리케이션의 질의에 맞는 랭킹 데이터 시스템으로 질의를 중계하고, 랭킹 데이터 시스템의 응답과 랭킹 라우트 테이블에 저장된 복수의 랭킹 데이터 시스템 각각의 카운터를 통해 순위를 결정함으로써, 실시간으로 대용량의 랭킹을 산정할 수 있다. 또한, 랭킹 데이터 시스템의 부하율에 기초하여 부하율이 높은 랭킹 데이터 시스템의 랭킹 정보 중 일부를 부하율이 낮은 랭킹 데이터 시스템으로 이동시킴으로써, 동적으로 부하를 분산시킬 수 있다.
도 5는 본 발명의 일실시예에 따른 랭킹 질의 시스템이 포함하는 랭킹 라우팅 테이블의 일례이다. 제1 테이블(510)은 각각의 게임 식별자와 테이블 포인터를 포함하고 있다. 즉, 제1 테이블(510)은 일차적으로 랭킹 정보를 서비스 도메인별로 분류한 모습을 나타낸다. 제2 테이블(520)은 하나의 게임에 대해 점수 구간을 읽기 구간 및 쓰기 구간으로 나누어서 각 점수 구간에 대한 최소값 및 최대값, 점수 구간에 포함된 랭킹 서비스 이용 주체의 수를 나타내는 카운트, 해당 점수 구간의 랭킹 정보가 적재된 랭킹 데이터 시스템의 주소 및 각 랭킹 데이터 시스템의 부하율을 포함하고 있다.
만약, 제2 테이블(520)에 나타난 3개의 랭킹 데이터 시스템만이 존재하고, 전체 점수 구간이 '0'점에서 '10000'점이라고 가정하자. 이때, 랭킹 질의 시스템이 읽기 구간이 '4000'점에서 '6000'점 사이인 제2 랭킹 데이터 시스템으로부터 응답으로써, 랭킹 '100'을 수신하였다면, 어플리케이션의 랭킹은 읽기 구간이 '7000'점에서 '9000'점 사이인 제3 랭킹 데이터 시스템의 카운트 '734'와 응답 '100'의 합인 '834'임을 확인할 수 있다.
또한, 제3 랭킹 데이터 시스템의 부하율은 '7832'로 제2 랭킹 데이터 시스템의 부하율 '4423'보다 1.5배 이상 크기 때문에 제3 랭킹 데이터 시스템의 랭킹 정 보 중 일부를 제2 랭킹 데이터 시스템으로 전송해서 제3 랭킹 데이터 시스템의 부하를 줄일 수 있다. 이때, 제2 테이블(520)의 쓰기 구간 최소값 및 쓰기 구간 최대값을 통해 제3 랭킹 데이터 시스템과 제2 랭킹 데이터 시스템은 '6000'점에서 '7000'점 사이의 점수 구간에 해당하는 랭킹 정보가 서로 중복 적재되어 있음을 알 수 있다. 즉, 랭킹 질의 시스템은 제2 랭킹 데이터 시스템의 읽기 구간의 최대값을 기존 '6000'점에서 '7000'점으로 갱신하고, 쓰기 구간의 최대값을 '7000'점에서 '8000'점으로 갱신할 수 있다. 또한, 랭킹 질의 시스템은 제3 랭킹 데이터 시스템의 읽기 구간의 최소값을 '7000'점에서 '8000'점으로 갱신하고, 쓰기 구간의 최소값을 '6000'점에서 '7000'점으로 갱신할 수 있다. 즉, 갱신 전에 어플리케이션이 점수 '7500'점인 사용자의 랭킹을 요청한다면, 랭킹 질의 시스템은 제3 랭킹 데이터 시스템으로 해당 요청을 중계한다. 그러나, 갱신 후에는 제2 랭킹 데이터 시스템으로 해당 요청을 중계하게 되어 제3 랭킹 데이터 시스템의 부하가 감소한다. 이때, '7500'점은 제2 랭킹 데이터 시스템과 제3 랭킹 데이터 시스템 모두의 읽기 구간에는 해당하지 않으나 제2 랭킹 데이터 시스템과 제3 랭킹 데이터 시스템 모두에 해당 점수에 대한 랭킹 정보가 중복 적재되어 있기 때문에 랭킹 질의 시스템은 부하율에 따라 부하율이 작은 랭킹 데이터 시스템으로 요청을 중계할 수 있다. 이때, 제3 랭킹 데이터 시스템에서 제2 랭킹 데이터 시스템으로 해당 랭킹 정보를 직접 전송하거나 또는, 변경된 구간에 따라 데이터베이스로부터 해당 점수 구간에 따른 랭킹 정보를 다시 적재함으로써, 갱신이 적용될 수 있다.
제2 랭킹 데이터 시스템에서 변경된 점수 구간으로 인해 부하율이 높아지면, 읽기 구간이 '0점에서 '3000'점 사이인 제1 랭킹 데이터 시스템과 위 동작을 반복함으로써, 부하를 전체 서비스 영역에 고루 분산시킬 수 있다.
도 6은 본 발명의 일실시예에 따른 랭킹 데이터 시스템에 적재되는 랭킹 정보의 일례이다. 제1 구간(601) 내지 제4 구간(604)은 4개의 랭킹 데이터 시스템 각각에 해당하는 점수 구간을 의미할 수 있다. 이때, 도 6에 도시된 바와 같이 각각의 랭킹 데이터 시스템은 점수 구간의 일부가 서로 중복될 수 있다. 이는, 점수 구간의 양종단에 위치한 랭킹 정보에 대해 인접한 랭킹 정보를 요청하게 되는 경우 두 개의 랭킹 데이터 시스템으로 요청을 중계해야 하는 상황을 방지하기 위한 것이다. 예를 들어, '2999'점의 랭킹 정보와 '3000'점의 랭킹 정보가 필요한 경우에는 제1 구간(601)에 대한 랭킹 데이터 시스템으로, '4000'점과 '4001'점에 대한 랭킹 정보가 필요한 경우에는 와 제2 구간(602)에 대한 랭킹 데이터 시스템으로 요청을 중계함으로써, 쓰기 요청이 최대 2개의 랭킹 데이터 시스템에서 일어나더라도 읽기 요청을 반드시 하나의 랭킹 데이터 서버로 한정시킬 수 있다.
도 7은 본 발명의 일실시예에 있어서, 랭킹 산정 방법을 도시한 흐름도이다. 본 실시예에 따른 랭킹 산정 방법은 도 3을 통해 설명한 랭킹 데이터 시스템(300)에 의해 수행될 수 있다. 도 3에서는 랭킹 데이터 시스템(300)에 의해 각각의 단계가 수행되는 과정을 설명함으로써, 랭킹 산정 방법을 설명한다.
단계(710)에서 랭킹 데이터 시스템(300)은 랭킹 스킴 테이블로부터 서비스할 랭킹의 속성 정보를 읽어, 메모리에 속성 정보에 해당하는 자료구조를 생성한다. 이때, 속성 정보는 관리자에게 제공되는 랭킹 관리 도구를 통해 생성될 수 있다.
단계(720)에서 랭킹 데이터 시스템(300)은 점수 구간에 따라 분할되어 복수의 랭킹 데이터 시스템에 분산 적재되는 랭킹 정보 중 해당하는 점수 구간의 랭킹 정보를 데이터베이스로부터 수신하여 생성된 자료구조를 통해 메모리에 적재한다. 보다 자세하게, 랭킹은 서비스 도메인별로 분할되고, 다시 랭킹 정보는 점수 구간에 따라 분할될 수 있다. 이때, 랭킹 데이터 시스템(300)은 자신에게 할당된 점수 구간에 대해서만 순위를 계산할 수 있고, 해당하는 점수 구간의 랭킹 정보를 데이터베이스로부터 수신하여 메모리에 적재할 수 있다.
단계(730)에서 랭킹 데이터 시스템(300)은 복수의 랭킹 질의 시스템 중 어플리케이션으로부터 질의를 수신한 랭킹 질의 시스템으로부터 질의에 대한 요청을 수신한다. 이때, 질의는 랭킹 질의 시스템에서 랭킹 라우팅 테이블에 기초하여 복수의 랭킹 데이터 시스템 중 결정된 하나로 전송될 수 있다. 이러한 랭킹 라우팅 테이블은 복수의 랭킹 질의 시스템 모두에서 동일한 값을 가질 수 있다. 일례로, 랭킹 데이터 시스템(300)은 적재된 랭킹 정보가 갱신되는 경우, 복수의 랭킹 질의 시스템으로 정보를 브로드캐스팅하여 랭킹 라우팅 테이블이 동일하게 갱신되도록 할 수 있다.
단계(740)에서 랭킹 데이터 시스템(300)은 수신된 요청에 따른 동작을 적재된 랭킹 정보에 대해 처리하고, 처리한 결과를 랭킹 질의 시스템으로 전송한다. 랭킹 데이터 시스템(300)에서 처리한 결과 및 랭킹 라우팅 테이블에 저장된 복수의 랭킹 데이터 시스템 각각에 대한 카운트에 기초하여 랭킹 질의 시스템에서 랭킹이 산정될 수 있고, 카운트는 랭킹 정보를 요청하거나 랭킹 정보를 등록하는 랭킹 서 비스 이용 주체의 수를 포함할 수 있다. 따라서, 랭킹 질의 시스템은 복수의 랭킹 데이터 시스템 각각에 해당하는 점수 구간에 포함된 이용 주체의 수를 랭킹 라우팅 테이블에 저장된 카운트를 통해 알 수 있기 때문에 복수의 랭킹 데이터 시스템 중 하나에서의 랭킹을 알면, 랭킹 서비스 이용 주체 전체에서 질의를 요청한 어플리케이션의 랭킹을 산정할 수 있다. 이러한 랭킹 산정에 대해서는 아래 도 5를 통해 더욱 자세히 설명한다.
단계(750)에서 랭킹 데이터 시스템(300)은 자신의 부하율(burst rate)을 계산한다. 여기서, 부하율은 TPS(Throughput Per Second) 및 여유 메모리 용량에 따라 결정될 수 있다.
이때, 자신의 부하율 및 복수의 랭킹 데이터 시스템 중 인접한 점수 구간의 랭킹 정보가 적재된 다른 랭킹 데이터 시스템의 부하율에 기초하여 잭재된 랭킹 정보 중 일부가 다른 랭킹 데이터 시스템으로 이동되거나 다른 랭킹 데이터 시스템에 적재된 랭킹 정보의 일부가 이동될 수 있다. 보다 자세하게, 적재된 랭킹 정보 중 일부는 자신의 부하율의 다른 랭킹 데이터 시스템의 부하율에 대한 비율이 일정 비율 이상인 경우, 다른 랭킹 데이터 시스템으로 이동될 수 있다. 예를 들어, 점수 구간이 서로 인접한 랭킹 데이터 시스템 H와 I에서 H의 부하율이 I의 부하율보다 1.5배 이상 큰 경우, H에 적재된 랭킹 정보 중 일부를 I로 이동시킴으로써, H의 부하를 줄일 수 있다. 이때, I 또한 점수 구간이 인접한 랭킹 데이터 시스템 J와 부하율을 비교하고, 순차적으로 점수 구간이 서로 인접한 모든 랭킹 데이터 시스템의 부하율을 비교함으로써, 동적으로 부하를 분산시킬 수 있다.
또한, 복수의 랭킹 데이터 시스템에서 서로 인접한 점수 구간의 랭킹 정보를 적재하는 랭킹 데이터 시스템마다 점수 구간의 일부가 서로 중복되도록 적재될 수 있고, 이때 이동되는 일부의 랭킹 정보는 다른 랭킹 데이터 시스템과 서로 중복되는 랭킹 정보를 포함할 수 있다. 이는 점수 구간의 종단에 위치한 랭킹 정보에 대해서 인접한 랭킹 정보를 요청하게 되는 경우, 두 개의 랭킹 데이터 서버로 읽기 요청을 해야 하는 것을 방지하기 위해 점수 구간을 서로 중복되게 설정함으로써, 리스트에 대한 읽기 요청이 반드시 한 개의 랭킹 데이터 서버에 대해서만 발생하도록 한정하기 위함이다. 이때, 부하율에 따라 중복된 랭킹 정보가 이동되도록 할 수 있다.
단계(760)에서 랭킹 데이터 시스템(300)은 부하율을 복수의 랭킹 질의 시스템으로 브로드캐스팅한다. 이때, 부하율은 복수의 랭킹 질의 시스템이 포함하는 랭킹 라우팅 테이블에 갱신될 수 있다. 이 경우, 점수 구간은 복수의 랭킹 질의 시스템에서 부하율에 기초하여 변경될 수 있고, 이동되는 일부의 랭킹 정보는 점수 구간의 변경에 따라 결정된 랭킹 정보를 포함할 수 있다. 즉, 부하율에 따른 랭킹 정보의 이동이 랭킹 데이터 시스템간의 데이터 이동을 통해서 이루어질 수도 있지만, 랭킹 라우팅 테이블에서 변경된 점수 구간의 랭킹 정보를 각각의 랭킹 데이터 시스템에서 데이터베이스로부터 다시 수신하여 적재함으로써 이루어질 수도 있다.
단계(770)에서 랭킹 데이터 시스템(300)은 주기적으로 자신의 랭킹 정보를 데이터베이스에 백업한다.
상술한 단계(710) 내지 단계(770)는 랭킹 데이터 시스템(300)이 포함할 수 있는 자료구조 생성부, 랭킹 정보 적재부, 요청 수신부, 요청 처리부, 부하율 계산부, 부하율 전송부 및 백업부에 의해 각각 수행될 수 있다.
도 8은 본 발명의 다른 실시예에 있어서, 랭킹 산정 방법을 도시한 흐름도이다. 본 실시예에 따른 랭킹 산정 방법은 도 4를 통해 설명한 랭킹 질의 시스템(400)을 통해 수행될 수 있다. 도 8에서는 랭킹 질의 시스템(400)을 통해 각각의 단계가 수행되는 과정을 설명함으로써, 랭킹 산정 방법을 설명한다.
단계(810)에서 랭킹 질의 시스템(400)은 복수의 랭킹 데이터 시스템으로부터 속성 정보 및 부하율 중 적어도 하나를 수신하여 랭킹 라우팅 테이블을 생성 또는 갱신한다. 이때, 부하율은 상기 복수의 랭킹 데이터 시스템에서 TPS 및 여유 메모리 용량에 따라 각각 결정되어 브로드캐스트될 수 있다. 또한, 복수의 랭킹 데이터 시스템 각각은 랭킹 스킴 테이블로부터 서비스할 랭킹의 속성 정보를 읽어, 메모리에 속성 정보에 해당하는 자료구조를 생성할 수 있다. 즉, 랭킹 질의 시스템(400)은 복수의 랭킹 데이터 시스템으로부터 각각 수신되는 속성 정보와 부하율을 수신하여 랭킹 라우팅 테이블을 생성 또는 갱신할 수 있다.
이때, 복수의 랭킹 데이터 시스템 각각은 점수 구간에 따라 분할되어 복수의 랭킹 데이터 시스템에 분산 적재되는 랭킹 정보 중 해당하는 점수 구간의 랭킹 정보를 데이터베이스로부터 수신하여 생성된 자료구조를 통해 메모리에 적재할 수 있다. 이 경우, 복수의 랭킹 데이터 시스템 중 서로 인접한 점수 구간의 랭킹 정보를 적재하는 랭킹 데이터 시스템마다 점수 구간의 일부가 서로 중복되도록 적재될 수 있고, 랭킹 라우팅 테이블은 중복되지 않게 적재된 랭킹 정보의 점수 구간을 읽 기 구간으로서, 중복되지 않게 적재된 랭킹 정보의 점수 구간 및 중복되어 적재된 랭킹 정보의 점수 구간은 쓰기 구간으로서, 각각 저장할 수 있다. 즉, 쓰기 동작은 동시에 두 개의 랭킹 데이터 시스템에서 발생할 수 있지만, 읽기 동작은 반드시 하나의 랭킹 데이터 시스템에서 발생하도록 한정할 수 있다.
단계(810)에서 랭킹 질의 시스템(400)은 어플리케이션으로부터 수신된 질의를 분석하고, 상기 랭킹 라우팅 테이블에 기초하여 상기 복수의 랭킹 데이터 시스템 중 상기 질의에 해당하는 랭킹 정보를 포함하는 랭킹 데이터 시스템으로 상기 질의를 전송한다. 이때, 어플리케이션으로부터의 질의는 애니캐스트(anycast) 전송 방식을 통해 복수의 랭킹 질의 시스템 중 하나로 전송될 수 있다.
단계(810)에서 랭킹 질의 시스템(400)은 상기 질의에 대한 상기 랭킹 데이터 시스템의 응답을 수신하여 상기 어플리케이션으로 전송한다. 이때, 랭킹 라우팅 테이블은 랭킹 정보를 요청하거나 랭킹 정보를 등록하는 랭킹 서비스 이용 주체의 수인 카운트를 상기 복수의 랭킹 데이터 시스템별로 포함할 수 있고, 응답 및 카운트에 기초하여 랭킹이 산정될 수 있다.
예를 들어, 전체 점수 구간이 0점부터 99점까지이고, 10점 단위로 10개의 점수 구간으로 분류되고, 각각 제1 랭킹 데이터 시스템 내지 제10 랭킹 데이터 시스템의 10개의 랭킹 데이터 시스템에서 해당 점수 구간의 랭킹 정보를 포함한다고 가정하자. 이때, 질의가 70점 내지 79점의 점수 구간에 포함된 랭킹을 요청한다면, 랭킹 질의 시스템(400)은 제8 랭킹 데이터 시스템으로 질의를 중계하여 응답을 수신함으로써 70점 내지 79점의 점수 구간 내에서의 순위를 얻을 수 있다. 또한, 랭 킹 질의 시스템(400)은 랭킹 라우팅 테이블에서 제9 랭킹 데이터 시스템 및 제10 랭킹 데이터 시스템의 카운트를 확인함으로써, 80점 내지 89점의 점수 구간과 90점 내지 99점의 점수 구간에 포함된 랭킹 서비스 이용 주체의 수를 확인하여 원하는 점수 구간 외에서의 순위를 얻을 수 있다. 즉, 랭킹 질의 시스템(400)은 제9 랭킹 데이터 시스템 및 제10 랭킹 데이터 시스템의 카운트와 70점 내지 79점의 점수 구간 내에서의 순위를 합산함으로써 간단히 어플리케이션의 랭킹을 계산할 수 있다.
단계(810)에서 랭킹 질의 시스템(400)은 복수의 랭킹 데이터 시스템이 각각 포함하는 랭킹 정보의 점수 구간을 상기 부하율에 기초하여 상기 랭킹 라우팅 테이블에 갱신한다. 이때, 랭킹 질의 시스템(400)은 서로 인접한 랭킹 데이터 시스템의 부하율간의 비율이 A 이상인 경우, 상기 부하율에 기초하여 상기 서로 인접한 랭킹 데이터 시스템이 각각 포함하는 랭킹 정보의 점수 구간을 상기 랭킹 라우팅 테이블에 갱신할 수 있다. 여기서, 서로 인접한 랭킹 데이터 시스템은 서로 인접한 점수 구간의 랭킹 정보를 각각 포함하는 랭킹 데이터 시스템을 의미할 수 있다.
예를 들어, 점수 구간이 서로 인접한 랭킹 데이터 시스템 H와 I에서 H의 부하율이 I의 부하율보다 1.5배 이상 큰 경우, H에 적재된 랭킹 정보 중 일부를 I로 이동시킴으로써, H의 부하를 줄일 수 있다. 이때, I 또한 점수 구간이 인접한 랭킹 데이터 시스템 J와 부하율을 비교할 수 있고, 순차적으로 점수 구간이 서로 인접한 모든 랭킹 데이터 시스템의 부하율을 비교함으로써, 동적으로 부하를 분산시킬 수 있다.
여기서, 상술한 단계(810) 내지 단계(840)는 랭킹 데이터 시스템(400)이 포 함할 수 있는 테이블 관리부, 질의 처리부, 응답 처리부 및 점수 구간 갱신부에 의해 각각 수행될 수 있다.
이와 같이, 본 발명의 실시예들에 따른 랭킹 산정 방법을 이용하면, 복수의 랭킹 데이터 시스템에 랭킹 정보를 분산 적재하고, 자신의 점수 구간에 대해서만 랭킹 정보를 처리하도록 함으로써, 실시간으로 대용량의 랭킹을 산정할 수 있고, 랭킹 라우트 테이블을 이용하여 어플리케이션의 질의에 맞는 랭킹 데이터 시스템으로 질의를 중계하고, 랭킹 데이터 시스템의 응답과 랭킹 라우트 테이블에 저장된 복수의 랭킹 데이터 시스템 각각의 카운터를 통해 순위를 결정함으로써, 실시간으로 대용량의 랭킹을 산정할 수 있다. 또한, 랭킹 데이터 시스템의 부하율에 기초하여 부하율이 높은 랭킹 데이터 시스템의 랭킹 정보 중 일부를 부하율이 낮은 랭킹 데이터 시스템으로 이동시킴으로써, 동적으로 부하를 분산시킬 수 있다.
도 9는 본 발명의 일실시예에 따른 랭킹 데이터 시스템 및 랭킹 질의 시스템의 기본 동작을 설명하기 위한 일례이다.
단계(910)에서 랭킹 관리 도구를 통해 입력되는 랭킹의 속성을 통해 생성하고자 하는 속성 정보가 생성될 수 있고, 랭킹 스킴 테이블에 랭킹의 속성 정보가 등록될 수 있다. 이때, 단계(920)에서 랭킹 서비스 가동 시 랭킹 데이터 시스템에서 랭킹 스킴 테이블로부터 자신이 서비스할 랭킹의 정보를 읽어온 후 그에 맞는 자료구조를 메인 메모리에 생성하고, 데이터베이스로부터 백업된 랭킹 정보들을 생성된 내부 자료구조에 로드할 수 있다.
단계(930)에서는 랭킹 질의 시스템에서 각 랭킹 데이터 시스템에 생성된 속 성 정보를 읽어와 랭킹 라우팅 테이블을 생성할 수 있다. 단계(940)에서는 랭킹 질의 시스템에서 어플리케이션으로부터 랭킹 요청에 대한 질의를 수신하면, 랭킹 요청에 대해서 해당 랭킹 정보가 어느 랭킹 데이터 시스템에 있는지 랭킹 라우팅 테이블을 조회하고, 해당 랭킹 데이터 시스템에 요청을 중계할 수 있다. 이때, 어플리케이션으로부터의 랭킹 요청에 대한 질의는 복수의 랭킹 질의 시스템에 대한 애니캐스트 전송 방식을 통해 수신될 수 있다.
단계(950)에서는 랭킹 데이터 시스템에서 요청에 따라 랭킹 정보가 저장된 내부 자료구조를 검색해, 필요한 동작을 수행하고 결과를 요청한 랭킹 질의 시스템으로 전달할 수 있다. 단계(960)에서는 랭킹 질의 시스템에서 랭킹 데이터 시스템으로부터 수신한 결과를 질의 전송한 어플리케이션으로 전달할 수 있다. 이때, 상술한 바와 같이, 전체에서의 랭킹은 랭킹 질의 시스템이 랭킹 라우팅 테이블과 수신한 결과를 이용하여 계산한 후 어플리케이션으로 전달할 수 있다.
단계(970)에서는 어플리케이션에서 수신한 결과를 사용자에게 전달하고, 단계(980)에서는 랭킹 데이터 시스템에서 주기적으로 자신의 랭킹 정보를 데이터베이스에 백업할 수 있다.
도 10은 본 발명의 일실시예에 따른 랭킹 데이터 시스템 및 랭킹 질의 시스템에서 부하를 동적으로 분산하는 동작을 설명하기 위한 일례이다.
단계(S1010)에서는 랭킹 데이터 시스템에서 주기적으로 자신의 부하율을 랭킹 질의 시스템으로 브로드캐스팅한다. 단계(1020)에서 랭킹 질의 시스템은 서로 인접한 점수 구간의 랭킹 정보를 포함하는 모든 랭킹 데이터 시스템에 대해 부하율 간의 비율이 A이상인지 확인한다. 이때, 단계(1030)를 통해 부하율간의 비율이 A이상일 때까지 단계(1020)이 반복 수행될 수 있다.
단계(1040)에서는 랭킹 질의 시스템에서 랭킹 라우팅 테이블의 읽기 구간 및 쓰기 구간의 값을 변경하여 인접버퍼의 영역을 조정한다. 이러한 인접버퍼는 서로 인접한 점수 구간의 랭킹 정보가 적재된 랭킹 데이터 시스템에서 중복되는 점수 구간의 랭킹 정보를 저장하기 위한 영역으로써, 부하율이 낮은 랭킹 데이터 시스템은 인접버퍼의 랭킹 정보를 전용 영역에 저장하여 새로운 인접버퍼 영역을 설정하고, 부하율이 높은 랭킹 데이터 시스템은 전용 영역 중 일부를 인접버퍼 영역으로 전환할 수 있다. 부하율에 따라 이러한 동작이 복수의 랭킹 데이터 시스템에 대해 재귀적으로 수행되면, 부하율이 높은 랭킹 데이터 시스템은 해당 점수 구간이 좁아지고, 부하율이 낮은 랭킹 데이터 시스템은 해당 점수 구간이 넓어져 전체 서비스 영역에 걸쳐 부하를 순차적으로 고루 분산시킬 수 있다.
본 발명에 따른 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 파일 데이터, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
도 1은 본 발명의 일실시예에 있어서, 랭킹 서비스를 제공하는 전체 시스템의 개괄적인 모습을 도시한 도면이다.
도 2는 본 발명의 일실시예에 있어서, 랭킹 서비스 시스템의 개괄적인 모습을 도시한 도면이다.
도 3은 본 발명의 일실시예에 있어서, 랭킹 데이터 시스템의 내부 구성을 설명하기 위한 블록도이다.
도 4는 본 발명의 일실시예에 있어서, 랭킹 질의 시스템의 내부 구성을 설명하기 위한 블록도이다.
도 5는 본 발명의 일실시예에 따른 랭킹 질의 시스템이 포함하는 랭킹 라우팅 테이블의 일례이다.
도 6은 본 발명의 일실시예에 따른 랭킹 데이터 시스템에 적재되는 랭킹 정보의 일례이다.
도 7은 본 발명의 일실시예에 있어서, 랭킹 산정 방법을 도시한 흐름도이다.
도 8은 본 발명의 다른 실시예에 있어서, 랭킹 산정 방법을 도시한 흐름도이다.
도 9는 본 발명의 일실시예에 따른 랭킹 데이터 시스템 및 랭킹 질의 시스템의 기본 동작을 설명하기 위한 일례이다.
도 10은 본 발명의 일실시예에 따른 랭킹 데이터 시스템 및 랭킹 질의 시스템에서 부하를 동적으로 분산하는 동작을 설명하기 위한 일례이다.
<도면의 주요 부분에 대한 부호의 설명>
210: 복수의 랭킹 데이터 시스템
220: 복수의 랭킹 질의 시스템
300: 랭킹 데이터 시스템
400: 랭킹 질의 시스템

Claims (19)

  1. 랭킹 스킴 테이블로부터 서비스할 랭킹의 속성 정보를 읽어, 메모리에 상기 속성 정보에 해당하는 자료구조를 생성하는 자료구조 생성부;
    점수 구간에 따라 분할되어 복수의 랭킹 데이터 시스템에 분산 적재되는 랭킹 정보 중 해당하는 점수 구간의 랭킹 정보를 데이터베이스로부터 수신하여 상기 생성된 자료구조를 통해 상기 메모리에 적재하는 랭킹 정보 적재부;
    복수의 랭킹 질의 시스템 중 어플리케이션으로부터 질의를 수신한 랭킹 질의 시스템으로부터 상기 질의에 대한 요청을 수신하는 요청 수신부; 및
    상기 수신된 요청에 따른 동작을 상기 적재된 랭킹 정보에 대해 처리하고, 처리한 결과를 상기 랭킹 질의 시스템으로 전송하는 요청 처리부
    를 포함하는, 랭킹 데이터 시스템.
  2. 제1항에 있어서,
    자신의 부하율(burst rate)을 계산하는 부하율 계산부
    를 포함하고,
    상기 자신의 부하율 및 상기 복수의 랭킹 데이터 시스템 중 인접한 점수 구간의 랭킹 정보가 적재된 다른 랭킹 데이터 시스템의 부하율에 기초하여 상기 잭재된 랭킹 정보 중 일부가 상기 다른 랭킹 데이터 시스템으로 이동되거나 상기 다른 랭킹 데이터 시스템에 적재된 랭킹 정보의 일부가 이동되는, 랭킹 데이터 시스템.
  3. 제2항에 있어서,
    상기 적재된 랭킹 정보 중 일부는 상기 자신의 부하율의 상기 다른 랭킹 데이터 시스템의 부하율에 대한 비율이 일정 비율 이상인 경우, 상기 다른 랭킹 데이터 시스템으로 이동되는, 랭킹 데이터 시스템.
  4. 제2항에 있어서,
    상기 복수의 랭킹 데이터 시스템에서 서로 인접한 점수 구간의 랭킹 정보를 적재하는 랭킹 데이터 시스템마다 상기 점수 구간의 일부가 서로 중복되도록 적재되고,
    상기 이동되는 일부의 랭킹 정보는 상기 다른 랭킹 데이터 시스템과 서로 중복되는 랭킹 정보를 포함하는, 랭킹 데이터 시스템.
  5. 제2항에 있어서,
    상기 부하율을 복수의 랭킹 질의 시스템으로 브로드캐스팅하는 부하율 전송부
    를 더 포함하고,
    상기 부하율은 상기 복수의 랭킹 질의 시스템이 포함하는 랭킹 라우팅 테이블에 갱신되는, 랭킹 데이터 시스템.
  6. 제5항에 있어서,
    상기 점수 구간은 상기 복수의 랭킹 질의 시스템에서 상기 부하율에 기초하여 변경되고,
    상기 이동되는 일부의 랭킹 정보는 상기 점수 구간의 변경에 따라 결정된 랭킹 정보를 포함하는, 랭킹 데이터 시스템.
  7. 제2항에 있어서,
    상기 부하율은 TPS(Throughput Per Second) 및 여유 메모리 용량에 따라 결정되는, 랭킹 데이터 시스템.
  8. 제1항에 있어서,
    상기 질의는 상기 랭킹 질의 시스템에서 랭킹 라우팅 테이블에 기초하여 상기 복수의 랭킹 데이터 시스템 중 결정된 하나로 전송되는, 랭킹 데이터 시스템.
  9. 제1항에 있어서,
    상기 요청 처리부에서 처리한 결과 및 랭킹 라우팅 테이블에 저장된 상기 복수의 랭킹 데이터 시스템 각각에 대한 카운트에 기초하여 상기 랭킹 질의 시스템에서 랭킹이 산정되고,
    상기 카운트는 랭킹 정보를 요청하거나 랭킹 정보를 등록하는 랭킹 서비스 이용 주체의 수를 포함하는, 랭킹 데이터 시스템.
  10. 복수의 랭킹 데이터 시스템으로부터 속성 정보 및 부하율 중 적어도 하나를 수신하여 랭킹 라우팅 테이블을 생성 또는 갱신하는 테이블 관리부;
    어플리케이션으로부터 수신된 질의를 분석하고, 상기 랭킹 라우팅 테이블에 기초하여 상기 복수의 랭킹 데이터 시스템 중 상기 질의에 해당하는 랭킹 정보를 포함하는 랭킹 데이터 시스템으로 상기 질의를 전송하는 질의 처리부; 및
    상기 질의에 대한 상기 랭킹 데이터 시스템의 응답을 수신하여 상기 어플리케이션으로 전송하는 응답 처리부
    를 포함하는 랭킹 질의 시스템.
  11. 제10항에 있어서,
    상기 복수의 랭킹 데이터 시스템이 각각 포함하는 랭킹 정보의 점수 구간을 상기 부하율에 기초하여 상기 랭킹 라우팅 테이블에 갱신하는 점수 구간 갱신부
    를 더 포함하는 랭킹 질의 시스템.
  12. 제11항에 있어서,
    상기 점수 구간 갱신부는,
    서로 인접한 랭킹 데이터 시스템의 부하율간의 비율이 A 이상인 경우, 상기 부하율에 기초하여 상기 서로 인접한 랭킹 데이터 시스템이 각각 포함하는 랭킹 정보의 점수 구간을 상기 랭킹 라우팅 테이블에 갱신하는, 랭킹 질의 시스템.
  13. 제10항에 있어서,
    상기 부하율은 상기 복수의 랭킹 데이터 시스템에서 TPS(Throughput Per Second) 및 여유 메모리 용량에 따라 각각 결정되어 브로드캐스트되는, 랭킹 질의 시스템.
  14. 제10항에 있어서,
    상기 복수의 랭킹 데이터 시스템 중 서로 인접한 점수 구간의 랭킹 정보를 적재하는 랭킹 데이터 시스템마다 상기 점수 구간의 일부가 서로 중복되도록 적재되고,
    상기 랭킹 라우팅 테이블은 중복되지 않게 적재된 랭킹 정보의 점수 구간을 읽기(read) 구간으로서, 상기 중복되지 않게 적재된 랭킹 정보의 점수 구간 및 상기 중복되어 적재된 랭킹 정보의 점수 구간은 쓰기(right) 구간으로서, 각각 저장하는, 랭킹 질의 시스템.
  15. 제10항에 있어서,
    상기 어플리케이션으로부터의 질의는 애니캐스트(anycast) 전송 방식을 통해 복수의 랭킹 질의 시스템 중 하나로 전송되는, 랭킹 질의 시스템.
  16. 제10항에 있어서,
    상기 랭킹 라우팅 테이블은 랭킹 정보를 요청하거나 랭킹 정보를 등록하는 랭킹 서비스 이용 주체의 수인 카운트를 상기 복수의 랭킹 데이터 시스템별로 포함하고,
    상기 응답 및 상기 카운트에 기초하여 랭킹이 산정되는, 랭킹 질의 시스템.
  17. 랭킹 데이터 시스템에서 랭킹을 산정하는 방법에 있어서,
    상기 랭킹 데이터 시스템의 자료구조 생성부에서 랭킹 스킴 테이블로부터 서비스할 랭킹의 속성 정보를 읽어, 메모리에 상기 속성 정보에 해당하는 자료구조를 생성하는 단계;
    상기 랭킹 데이터 시스템의 랭킹 정보 적재부에서 점수 구간에 따라 분할되어 복수의 랭킹 데이터 시스템에 분산 적재되는 랭킹 정보 중 해당하는 점수 구간의 랭킹 정보를 데이터베이스로부터 수신하여 상기 생성된 자료구조를 통해 상기 메모리에 적재하는 단계;
    상기 랭킹 데이터 시스템의 요청 수신부에서 복수의 랭킹 질의 시스템 중 어플리케이션으로부터 질의를 수신한 랭킹 질의 시스템으로부터 상기 질의에 대한 요청을 수신하는 단계; 및
    상기 랭킹 데이터 시스템의 요청 처리부에서 상기 수신된 요청에 따른 동작을 상기 적재된 랭킹 정보에 대해 처리하고, 처리한 결과를 상기 랭킹 질의 시스템으로 전송하는 단계
    를 포함하는 랭킹 산정 방법.
  18. 랭킹 질의 시스템에서 랭킹을 산정하는 방법에 있어서,
    상기 랭킹 질의 시스템의 테이블 관리부에서 복수의 랭킹 데이터 시스템으로부터 속성 정보 및 부하율 중 적어도 하나를 수신하여 랭킹 라우팅 테이블을 생성 또는 갱신하는 단계;
    상기 랭킹 질의 시스템의 질의 처리부에서 어플리케이션으로부터 수신된 질의를 분석하고, 상기 랭킹 라우팅 테이블에 기초하여 상기 복수의 랭킹 데이터 시스템 중 상기 질의에 해당하는 랭킹 정보를 포함하는 랭킹 데이터 시스템으로 상기 질의를 전송하는 단계; 및
    상기 랭킹 질의 시스템의 응답 처리부에서 상기 질의에 대한 상기 랭킹 데이터 시스템의 응답을 수신하여 상기 어플리케이션으로 전송하는 단계
    를 포함하는, 랭킹 산정 방법.
  19. 제17항 또는 제18항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
KR1020090093476A 2009-09-30 2009-09-30 실시간으로 대용량 랭킹을 산정하기 위한 랭킹 데이터 시스템, 랭킹 질의 시스템 및 랭킹 산정 방법 KR101029416B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090093476A KR101029416B1 (ko) 2009-09-30 2009-09-30 실시간으로 대용량 랭킹을 산정하기 위한 랭킹 데이터 시스템, 랭킹 질의 시스템 및 랭킹 산정 방법
PCT/KR2010/006654 WO2011040765A2 (ko) 2009-09-30 2010-09-30 실시간으로 대용량 랭킹을 산정하기 위한 랭킹 데이터 시스템, 랭킹 질의 시스템 및 랭킹 산정 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090093476A KR101029416B1 (ko) 2009-09-30 2009-09-30 실시간으로 대용량 랭킹을 산정하기 위한 랭킹 데이터 시스템, 랭킹 질의 시스템 및 랭킹 산정 방법

Publications (2)

Publication Number Publication Date
KR20110035665A KR20110035665A (ko) 2011-04-06
KR101029416B1 true KR101029416B1 (ko) 2011-04-14

Family

ID=43826790

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090093476A KR101029416B1 (ko) 2009-09-30 2009-09-30 실시간으로 대용량 랭킹을 산정하기 위한 랭킹 데이터 시스템, 랭킹 질의 시스템 및 랭킹 산정 방법

Country Status (2)

Country Link
KR (1) KR101029416B1 (ko)
WO (1) WO2011040765A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160239777A1 (en) * 2015-02-13 2016-08-18 Atlassian Pty Ltd Issue and trigger rebalancing in a ranked issue management system

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101667796B1 (ko) * 2015-07-21 2016-10-20 네이버 주식회사 검색 결과의 실시간 변화 양상을 제공하는 검색 결과 제공 방법과 시스템 및 기록 매체
CN109241195B (zh) * 2017-07-03 2022-03-18 北京国双科技有限公司 排名的计算方法及装置
CN110147944B (zh) * 2019-04-30 2023-08-01 创新先进技术有限公司 排名方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050030156A (ko) * 2003-09-24 2005-03-29 가부시키가이샤 세가 랭킹 데이터 생성 프로그램
KR20090080209A (ko) * 2008-01-21 2009-07-24 (주)드래곤플라이 실시간 랭킹 제공 시스템 및 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070003268A (ko) * 2005-07-01 2007-01-05 메타냅주식회사 동적 검색 결과 순위 생성 방법 및 시스템
US20090132515A1 (en) * 2007-11-19 2009-05-21 Yumao Lu Method and Apparatus for Performing Multi-Phase Ranking of Web Search Results by Re-Ranking Results Using Feature and Label Calibration

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050030156A (ko) * 2003-09-24 2005-03-29 가부시키가이샤 세가 랭킹 데이터 생성 프로그램
KR20090080209A (ko) * 2008-01-21 2009-07-24 (주)드래곤플라이 실시간 랭킹 제공 시스템 및 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160239777A1 (en) * 2015-02-13 2016-08-18 Atlassian Pty Ltd Issue and trigger rebalancing in a ranked issue management system
US20160239786A1 (en) * 2015-02-13 2016-08-18 Atlassian Pty Ltd Issue and trigger rebalancing in a ranked issue management system
US10282686B2 (en) * 2015-02-13 2019-05-07 Atlassian Pty Ltd. Issue and trigger rebalancing in a ranked issue tracking system
US10289971B2 (en) * 2015-02-13 2019-05-14 Atlassian Pty Ltd Issue and trigger rebalancing in a ranked issue management system
US11544650B2 (en) 2015-02-13 2023-01-03 Atlassian Pty Ltd. Issue and trigger rebalancing in a ranked issue tracking system
US11934983B2 (en) 2015-02-13 2024-03-19 Atlassian Pty Ltd. Issue and trigger rebalancing in a ranked issue management system

Also Published As

Publication number Publication date
WO2011040765A2 (ko) 2011-04-07
WO2011040765A3 (ko) 2011-07-28
KR20110035665A (ko) 2011-04-06

Similar Documents

Publication Publication Date Title
US10121169B2 (en) Table level distributed database system for big data storage and query
CN108090225B (zh) 数据库实例的运行方法、装置、***及计算机可读存储介质
CN108881348B (zh) 服务质量控制方法、装置和存储服务器
CN102281290B (zh) 一种PaaS云平台的仿真***及方法
JP5952724B2 (ja) 人流調査支援システム及び方法
JP2019159685A (ja) 共用車両管理サーバ、及び、共用車両管理プログラム
CN109408590B (zh) 分布式数据库的扩容方法、装置、设备及存储介质
CN107004013A (zh) 用于使用基于硬件的处理来提供分布式树遍历的***和方法
JPWO2012131927A1 (ja) 計算機システム及びデータ管理方法
CN104391737A (zh) 云平台中负载平衡的优化方法
CN103731498B (zh) 一种基于副本选择的大数据实时查询***负载均衡方法
CN103970807B (zh) 数据库连接管理方法及***
CN104462432A (zh) 自适应的分布式计算方法
US20210400121A1 (en) Generalized resource accountant
KR101029416B1 (ko) 실시간으로 대용량 랭킹을 산정하기 위한 랭킹 데이터 시스템, 랭킹 질의 시스템 및 랭킹 산정 방법
CN112579692B (zh) 一种数据同步方法、装置、***、设备及存储介质
JP2012064128A (ja) 通信量削減方法
CN104077188A (zh) 一种用于任务调度的方法和装置
CN110636388A (zh) 一种业务请求分配方法、***、电子设备及存储介质
CN111159219A (zh) 一种数据管理方法、装置、服务器及存储介质
CN108573029A (zh) 一种获取网络访问关系数据的方法、装置及存储介质
CN112307065A (zh) 一种数据处理方法、装置及服务器
CN104182826A (zh) 一种分摊数据处理方法及装置
US20200349277A1 (en) Privacy preserving data collection and analysis
CN110457307A (zh) 元数据管理***、用户集群创建方法、装置、设备和介质

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170328

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180328

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190325

Year of fee payment: 9