KR101594555B1 - 개인화된 데이터를 분산 처리하는 방법 및 클라우드 서버 - Google Patents
개인화된 데이터를 분산 처리하는 방법 및 클라우드 서버 Download PDFInfo
- Publication number
- KR101594555B1 KR101594555B1 KR1020150009359A KR20150009359A KR101594555B1 KR 101594555 B1 KR101594555 B1 KR 101594555B1 KR 1020150009359 A KR1020150009359 A KR 1020150009359A KR 20150009359 A KR20150009359 A KR 20150009359A KR 101594555 B1 KR101594555 B1 KR 101594555B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- user
- server
- storage space
- servers
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
클라우드 기반 개인화 데이터를 분산 처리하는 방법 및 클라우드 서버가 개시된다. 개인화된 데이터 분산 처리 방법은, 클라우드 서버는 복수의 사용자 별로 개인화된 데이터가 저장된 복수의 데이터 서버로 구성되며, 상기 복수의 데이터 서버 중 적어도 하나를 할당받은 사용자를 대상으로, 할당된 데이터 서버의 저장 공간 이용 가능성을 나타내는 사용자의 활동성 지수에 기초하여 상기 복수의 데이터 서버 중 선택된 어느 하나의 데이터 서버에 상기 사용자를 할당하는 단계, 및 할당된 사용자의 개인화된 데이터를 상기 선택된 어느 하나의 데이터 서버에 분산 저장하는 단계를 포함할 수 있다.
Description
본 발명의 실시예들은 클라우드 기반의 개인화된 데이터를 분산하여 저장하는 기술에 관한 것이다.
클라우드 서비스(cloud service)는 영화, 사진, 동영상, 음악, 문서 등의 사용자 콘텐츠(contents)를 서버에 저장해 두고, 스마트폰, 스마트 TV, 노트북, 데스크탑, 태블릿 PC 등의 사용자 단말을 이용하여 어느 기기에서든 자유로이 다운로드하여 사용할 수 있는 서비스이다. 예를 들어, 클라우드 서버에서 제공하는 대용량의 데이터 공간 중 일부 공간이 클라우드 서비스를 이용하는 각 사용자에게 할당된다. 그러면, 각 사용자들은 할당된 공간을 빌려서 자신의 콘텐츠를 저장, 편집하기 위해 사용하는데, 이처럼, 클라우드 서비스는 클라우드 서버에서 할당된 디스크 공간을 개인용으로 제공하는 서비스이다.
그런데, 클라우드 서비스를 이용하는 사용자 별로 이용 정도가 상이하여, 해당 서버의 디스크 공간 활용도가 저하되고, 결국 서버의 부하가 증가하는 경우가 종종 발생한다. 예를 들어, 클라우드 서비스를 자주 이용하여 할당된 디스크 공간을 자주 사용하는 사용자가 존재할 수도 있고, 할당된 디스크 공간을 상대적으로 적게 이용하는 사용자가 존재할 수도 있다. 이때, 할당된 디스크 공간을 자주 사용하는 사용자들이 서버 1에 집중되어 할당되고, 상대적으로 디스크 공간을 적게 이용하는 사용자들이 서버 2에 집중된 경우, 서버 1과 서버 2에 불균형이 발생한다. 결국, 서버 1은 잦은 사용으로 인해 부하가 증가하게 되어 시스템 효율이 저하된다.
클라우드 서비스를 이용하는 사용자의 저장 공간 이용 가능성 및 각 데이터 서버의 여유 저장 공간을 고려하여 데이터 서버 별로 개인화된 데이터를 적절하게 분산하여 저장할 수 있는 개인화된 데이터 분산 처리 방법 및 클라우드 서버가 개시된다.
또한, 각 데이터 서버에 개인화 데이터를 분산 처리하는 과정을 주기적으로 수행함에 따라, 각 데이터 서버의 저장 공간이 일정 수준을 유지하여 저장 공간 활용도를 높이는 개인화된 데이터 분산 처리 방법 및 클라우드 서버가 개시된다.
본 발명의 실시예에 따르면, 개인화된 데이터 분산 처리 방법은, 클라우드 서버는 복수의 사용자 별로 개인화된 데이터가 저장된 복수의 데이터 서버로 구성되며, 상기 복수의 데이터 서버 중 적어도 하나를 할당받은 사용자를 대상으로, 할당된 데이터 서버의 저장 공간 이용 가능성을 나타내는 사용자의 활동성 지수에 기초하여 상기 복수의 데이터 서버 중 선택된 어느 하나의 데이터 서버에 상기 사용자를 할당하는 단계, 및 할당된 사용자의 개인화된 데이터를 상기 선택된 어느 하나의 데이터 서버에 분산 저장하는 단계를 포함할 수 있다.
일측면에 따르면, 상기 사용자를 할당하는 단계는, 상기 개인화된 데이터가 저장된 데이터 서버의 여유 공간을 나타내는 서버의 가용성 지수를 고려하여 상기 복수의 데이터 서버 중 어느 하나를 상기 사용자를 할당할 서버로 결정할 수 있다.
다른 측면에 따르면, 상기 사용자를 할당하는 단계는, 상기 복수의 데이터 서버 중 서버의 가용성 지수가 가장 높은 데이터 서버를 결정하는 단계, 및 결정된 데이터 서버에 사용자의 활동성 지수가 가장 높은 사용자를 재할당하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 사용자를 할당하는 단계는, 상기 결정된 데이터 서버에 사용자의 활동성 지수가 가장 높은 사용자를 재할당한 이후, 상기 복수의 데이터 서버 각각의 가용성 지수를 재계산하고, 상기 사용자를 재할당하는 단계는, 재계산된 가용성 지수 및 사용자의 활동성 지수에 기초하여 사용자를 재할당할 수 있다.
본 발명의 실시예에 따르면, 클라우드 서버는, 복수의 사용자 별로 개인화된 데이터가 저장된 복수의 데이터 서버로 구성되며, 상기 복수의 데이터 서버 중 적어도 하나를 할당받은 사용자를 대상으로, 할당된 데이터 서버의 저장 공간 이용 가능성을 나타내는 사용자의 활동성 지수에 기초하여 상기 복수의 데이터 서버 중 선택된 어느 하나의 데이터 서버에 상기 사용자를 할당하는 사용자 할당부, 및 할당된 사용자의 개인화된 데이터를 상기 선택된 어느 하나의 데이터 서버에 분산 저장하는 데이터 저장부를 포함할 수 있다.
클라우드 서비스를 이용하는 사용자의 저장 공간 이용 가능성 및 각 데이터 서버의 여유 저장 공간을 고려하여 데이터 서버 별로 개인화된 데이터를 적절하게 분산하여 저장할 수 있다.
또한, 각 데이터 서버에 개인화 데이터를 분산 처리하는 과정을 주기적으로 수행함에 따라, 각 데이터 서버의 저장 공간이 일정 수준을 유지하여 저장 공간 활용도를 높일 수 있다.
도 1은 본 발명의 일실시예에 있어서, 클라우드 서비스를 이용하는 사용자 및 클라우드 서비스를 제공하는 클라우드 서버의 개괄적인 모습을 도시한 도면이다.
도 2는 본 발명의 일실시예에 있어서, 개인화 데이터를 분산 저장하는 클라우드 서버의 내부 구성을 도시한 블록도이다.
도 3은 본 발명의 일실시예에 있어서, 클라우드 기반 개인화 데이터를 분산 저장하는 방법을 설명하기 위해 제공되는 흐름도이다.
도 4는 본 발명의 일실시예에 있어서, 클라우드 기반의 개인화된 데이터를 분산 저장하는 상세 흐름도이다.
도 5는 본 발명의 일실시예에 있어서, 복수의 데이터 서버에 사용자를 할당하는 동작을 설명하기 위해 제공되는 도면이다.
도 6은 본 발명의 일실시예에 있어서, 사용자의 활동성 지수를 계산하는 동작을 상세히 설명하기 위해 제공되는 흐름도이다.
도 7은 사용자의 활동성 지수를 설명하기 위해 제공되는 도면이다.
도 2는 본 발명의 일실시예에 있어서, 개인화 데이터를 분산 저장하는 클라우드 서버의 내부 구성을 도시한 블록도이다.
도 3은 본 발명의 일실시예에 있어서, 클라우드 기반 개인화 데이터를 분산 저장하는 방법을 설명하기 위해 제공되는 흐름도이다.
도 4는 본 발명의 일실시예에 있어서, 클라우드 기반의 개인화된 데이터를 분산 저장하는 상세 흐름도이다.
도 5는 본 발명의 일실시예에 있어서, 복수의 데이터 서버에 사용자를 할당하는 동작을 설명하기 위해 제공되는 도면이다.
도 6은 본 발명의 일실시예에 있어서, 사용자의 활동성 지수를 계산하는 동작을 상세히 설명하기 위해 제공되는 흐름도이다.
도 7은 사용자의 활동성 지수를 설명하기 위해 제공되는 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 실시예들은 클라우드 기반 데이터 서버에 개인화된 데이터를 효율적으로 분산하여 저장하는 방법 및 클라우드 서버에 관한 것이다.
본 명세서에서, '개인화된 데이터'는 클라우드 서비스(cloud service)를 이용하는 사용자 별로 할당된 클라우드 서버(cloud server)에서 저장된 콘텐츠를 검색하기 위한 색인 또는 콘텐츠 등의 저장 데이터를 의미할 수 있다.
또한, '콘텐츠'는 영화, 음악, 사진, 동영상, 텍스트, 음성, 주소록 등 다양한 형태로 사용자가 작성한 글 단위를 의미하는 것으로, 클라우드 서버(cloud server)에 사용자와 연관되어 저장될 수 있다.
또한, '색인'이라는 것은 클라우드 서버에 저장된 콘텐츠들을 형태소 분석 등을 통해 검색이 가능한 형태로 바꾸는 작업을 의미한다. 일 예로, 색인은 콘텐츠에서 유의미한 키워드를 뽑아서 색인어로 정한 후, 출현 빈도나 출현 위치, 출현 문서 등에 대한 정보를 색인어에 담고 색인어 별로 소팅(sorting)하여 색인 데이터 셋(index data set)를 만드는 작업일 수 있다.
도 1은 본 발명의 일실시예에 있어서, 클라우드 서비스를 이용하는 사용자 및 클라우드 서비스를 제공하는 클라우드 서버의 개괄적인 모습을 도시한 도면이다. 도 1은, 클라우드 서비스(120)를 이용하는 복수의 사용자들(110) 및 클라우드 서버(130)를 포함할 수 있다.
클라우드 서비스(cloud service: 120)는 네트워크 인터페이스(미도시)를 통해 네트워크에 결합되어 해당 네트워크에 연결된 적어도 하나의 사용자 단말과 통신할 수 있다. 여기서, 사용자 단말은 클라우드 서비스를 이용하고자 하는 사용자가 소지한 데스크탑, 스마트폰, 태블릿 PC 등을 포함할 수 있다.
클라우드 서비스(120)는 사용자들(110)과의 통신 환경에서 개인화 데이터를 클라우드 서버(cloud server: 130)에 저장하거나, 클라우드 서버(130)에 저장된 개인화 데이터를 편집, 이동, 삭제, 검색 등이 가능하도록 클라우드 서버(130)를 통한 서비스 플랫폼을 제공할 수 있다.
클라우드 서버(130)는 여러 개의 데이터 서버(data server)를 하나로 묶어 마치 하나의 컴퓨터처럼 동작하도록 하는 서버군을 의미한다. 이때, 데이터 서버는 클라우드 서버에 포함된 개별 서버로서, 개인화 데이터를 저장하는 데이터베이스(미도시)를 포함할 수 있다.
클라우드 서버(130)는 여러 대의 데이터 서버를 하나로 묶어 동일한 데이터를 디스크(disc)에 저장할 수 있으며, 자체 API(application program interface)를 이용하여 개인화 데이터를 디스크에 쓰기/읽기/수정/삭제할 수 있다. 예를 들어, 자체 API는 클라우드 서비스(120)에 컴퓨팅 작업을 요청하는 인터페이스 역할을 할 수 있다. 상기 API를 통해 클라우드 서비스(120)에 컴퓨팅 작업이 요청된 경우, 클라우드 서버(130)는 여러 대의 데이터 서버 중 어느 하나의 데이터 서버를 선택하여 개인화 데이터를 분산 저장할 수 있다.
도 2는 본 발명의 일실시예에 있어서, 개인화 데이터를 분산 저장하는 클라우드 서버의 내부 구성을 도시한 블록도이고, 도 3은 본 발명의 일실시예에 있어서, 클라우드 기반 개인화 데이터를 분산 저장하는 방법을 설명하기 위해 제공되는 흐름도이다.
도 2 및 도 3에서, 본 발명의 실시예 따른 방법들은 다양한 컴퓨터 시스템을 통하여 수행될 수 있는 프로그램 명령(instruction) 형태로 구현되어 컴퓨터 판독 가능 기록 매체에 기록될 수 있다.
도 3에서, 클라우드 기반 개인화 데이터를 분산 저장하는 방법은 도 2의 클라우드 서버에 의해 수행될 수 있으며, 클라우드 서버는 개인화 데이터를 저장 및 유지하는 저장소 역할을 수행할 수 있다. 이외에, 클라우드 서버는 색인을 이용하여 개인화 데이터에 대한 검색 서비스를 제공할 수도 있다.
도 2에 도시된 바와 같이, 클라우드 서버(200)는 사용자 할당부(211) 및 데이터 저장부(212)로 이루어진 프로세서(210), 그리고 메모리(220), 인터페이스(230), 데이터 서버들(240)을 포함할 수 있다. 이하의 도 3 내지 도 5, 및 도 7에서 설명하는 클라우드 서버에서 수행하는 개인화 데이터를 분산 저장하는 각 단계들(310 및 320 단계, 410 내지 450 단계, 610 내지 630 단계)은 메모리(220)에 저장된 프로그램에 의해 수행될 수 있다. 예를 들어, 메모리(220)는 하드디스크, SSD, SD 카드 및 기타 저장매체일 수 있다.
복수의 데이터 서버(240)는 개인화 데이터를 저장 및 유지하는 저장소로서, 사용자 별로 할당된 해당 데이터 서버에 개인화 데이터가 저장될 수 있다. 이때, 저장된 개인화 데이터는 사용자와 연관되어 저장됨에 따라, 각 사용자 별로 저장된 개인화 데이터가 식별될 수 있다.
인터페이스부(230)는 개인화 데이터를 분산 저장하기 위해 데이터 서버 간의 인터페이스 등을 제공할 수 있다. 예를 들어, 데이터 서버 1에 활동성이 높은 사용자가 집중됨에 따라, 데이터 서버 1에 저장된 사용자 1의 개인화 데이터를 데이터 서버 2로 분산하고자 하는 경우, 인터페이스부(230)는 개인화 데이터 분산을 위해 데이터 서버 1과 데이터 서버 2 간의 인터페이스를 제공할 수 있다.
프로세서(210)는 사용자 할당부(211) 및 데이터 저장부(212)를 위한 프로그램 코드를 실행하도록 구성될 수 있고, 이러한 프로그램 코드는 메모리(220)와 같은 기록 장치에 저장될 수 있다. 예를 들어, 프로세서(210)는 메모리(220)에 저장된 프로그램의 명령어에 따라 처리하는 장치로서, CPU 등의 마이크로프로세서가 포함될 수 있다.
사용자 할당부(211) 및 데이터 저장부(212)는 도 3의 단계들(310 및 320 단계)를 수행하기 위해 구성될 수 있다.
310 단계에서, 사용자 할당부(211)는 사용자의 활동성 지수 및 서버의 가용성 지수에 기초하여 복수의 데이터 서버 중 어느 하나의 서버에 사용자를 할당할 수 있다.
예를 들어, 사용자 할당부(211)는 복수의 데이터 서버 중 가용성 지수가 가장 높은 서버를 결정할 수 있다. 그리고, 사용자 할당부(211)는 클라우드 서비스를 이용하는 복수의 사용자들 각각의 활동성 지수에 기초하여, 활동성 지수가 가장 높은 사용자를 상기 가용성 지수가 가장 높은 데이터 서버에 할당할 수 있다. 이어, 사용자 할당부(211)는 데이터 서버에 사용자를 할당한 이후, 복수의 데이터 서버들 각각의 가용성 지수를 재계산하고, 재계산된 가용성 지수가 가장 높은 데이터 서버에 두 번째로 활동성 지수가 높은 사용자를 할당할 수 있다. 동일한 방법으로, 사용자 할당부(211)는 클라우드 서비스를 이용하는 모든 사용자들, 또는 활동성 지수가 기설정된 기준 활동성 지수보다 높은 사용자들에 적절한 데이터 서버가 할당될 때까지 가용성 지수를 재계산하여 사용자들을 데이터 서버에 재할당하는 동작을 반복할 수 있다.
여기서, 사용자의 활동성 지수는, 사용자 에게 할당된 데이터 서버의 저장 공간 이용 가능성을 나타내는 지수일 수 있다. 예를 들어, 활동성 지수가 높은 사용자일수록 상기 저장 공간데 데이터를 삭제, 수정, 추가 하는 등의 업데이트를 빈번히 수행하는 사용자일 수 있다. 사용자의 활동성 지수는 주기적으로 업데이트될 수 있다. 예를 들어, 1주, 2주 등과 같이 기설정된 시간 주기에 따라, 상기 활동성 지수는 업데이트될 수 있다. 여기서, 사용자의 활동성 지수를 계산하는 구성에 대해서는 도 5 및 도 6을 참조하여 후술하기로 한다.
서버의 가용성 지수는, 개인화 데이터가 저장된 데이터 서버의 여유 공간을 나타내는 지수일 수 있다. 예를 들어, 가용성 지수가 높은 데이터 서버일수록 개인화 데이터를 저장할 수 있는 저장 공간에 여유가 많고, 해당 데이터 서버에 할당된 사용자가 적음을 나타낼 수 있다. 이에 따라, 가용성 지수가 높은 데이터 서버에 활동성 지수가 높은 사용자가 할당하면, 개인화 데이터가 분산 저장되어 시스템 효율이 증가할 수 있다. 예를 들어, 특정 데이터 서버에 부하가 집중되는 것을 감소시킬 수 있다.
이때, 서버의 가용성 지수는 주기적으로 업데이트될 수 있다. 예를 들어, 12시간, 24 시간, 2일 등과 같이, 시간 단위, 또는 일일 단위 등으로 기설정된 주기에 따라 가용성 지수가 업데이트될 수 있다. 여기서, 서버의 가용성 지수를 계산하는 구성에 대해서는 도 7 및 8을 참조하여 후술하기로 한다.
320 단계에서, 데이터 저장부(212)는 사용자의 개인화 데이터를 해당 사용자에게 할당된 데이터 서버에 분산 저장할 수 있다. 데이터 저장부(212)는 해시 디렉토리(hash directory)를 이용하여 데이터 서버의 저장 공간에 개인화 데이터를 개별 저장할 수 있다.
일례로, 위의 310 단계에서, 복수의 데이터 서버 중 데이터 서버 1의 가용성 지수가 가장 높은 것으로 결정되고, 사용자의 활동성 지수가 가장 높은 사용자 2가 데이터 서버 1에 할당된 경우, 데이터 저장부(212)는 데이터 서버 1에 사용자 2의 개인화된 데이터를 저장할 수 있다.
이때, 사용자 2가 데이터 서버 2에 이미 할당된 상태에서, 복수의 데이터 서버 중 데이터 서버 2의 가용성 지수가 가장 높은 것으로 결정된 경우, 데이터 저장부(212)는 데이터 2에 저장된 사용자 2의 개인화된 데이터를 그대로 유지할 수 있다.
도 3에서는, 활동성 지수가 높은 사용자의 개인화된 데이터를 새로이 할당된 데이터 서버에 이동 저장하는 것으로 설명하였으나, 개인화된 데이터의 속성을 고려하여 속성 별로 새로이 할당된 데이터 서버에 저장할 수도 있다.
예를 들어, 데이터 서버 2에 저장된 사용자 2의 콘텐츠들 중 영화, 음악, 문서 대비 사진에 대한 활동성 지수가 높은 경우, 데이터 저장부(212)는 사진만을 사용자 2와 연관하여 새로이 결정된 데이터 서버 1에 저장할 수도 있다.
도 4는 본 발명의 일실시예에 있어서, 클라우드 기반의 개인화된 데이터를 분산 저장하는 상세 흐름도이다. 도 4의 각 단계들(410 내지 450 단계)은 도 2의 클라우드 서버(200)에 의해 수행될 수 있다.
410 단계에서, 사용자 할당부(211)는 복수의 데이터 서버 각각에 할당된 사용자의 활동성 지수를 계산할 수 있다. 예를 들어, 복수의 데이터 서버 중 어느 하나의 데이터 서버에 할당된 사용자의 활동성 지수(ωui)는 아래의 수학식 1을 이용하여 계산될 수 있다.
수학식 1에 따르면, 사용자 할당부(211)는 이미 할당된 데이터 서버 1의 저장 공간 중 기설정된 일정 기간동안 사용자가 사용 중인 저장 공간 사용량 증가량(수학식 1의 사용자 디스크 최근 30일 증가량에 해당함.)과 상기 일정 기간(예를 들어, 최근 30일)동안 사용자가 데이터 서버 1에 저장된 개인화 데이터에 접근한 접근 횟수(수학식 1의 최근 30일간 사용자 접근 횟수)의 곱(A)을 계산할 수 있다. 그리고, 사용자 할당부(211)는 데이터 서버 1의 저장 공강 중 사용자가 이용중인 저장 공간 사용량(수학식 1의 사용자 디스크 사용량에 해당함.)과 상기 일정 기간(예를 들어, 최근 30일)동안 사용자가 개인화된 데이터에 접근한 횟수가 가장 많은 날의 데이터 접근 횟수(수학식 1의 최근 30일간 MAX 사용자 접근 횟수)의 곱(B)을 계산할 수 있다. 사용자 할당부(211)는 상기 곱(A)에서 곱(B)를 나눔에 따라 데이터 서버 1에 할당된 사용자의 활동성 지수를 계산할 수 있다. 동일한 방법으로, 사용자 할당부(211)는 데이터 서버 1에 할당된 모든 사용자를 대상으로, 활동성 지수를 계산할 뿐만 아니라, 데이터 서버 1 이외에 클라우드 서버를 구성하고 있는 모든 데이터 서버들에 할당된 모든 사용자들을 대상으로, 활동성 지수를 계산할 수 있다.
위의 수학식 1에서, 사용자가 개인화된 데이터에 접근한 횟수가 가장 많은 날의 최대 데이터 접근 횟수(수학식 1의 최근 30일간 MAX 사용자 접근 횟수)와 사용자가 데이터 서버에 저장된 개인화 데이터에 접근한 접근 횟수(수학식 1의 최근 30일간 사용자 접근 횟수)는 서로 반비례 관계를 가질 수 있다. 이 경우, 사용자가 데이터에 접근 횟수가 많을수록 활동성이 높으나, 사용자가 항상 상기 데이터 서버만을 이용하지 않고, 새로운 업체에서 제공하는 데이터 서버를 이용할 수도 있다. 이에 따라, 최대 사용자 접근 횟수는 상기 일정 기간 동안 계속하여 업데이트될 수 있으며, 사용자 할당부(211)는 최대 사용자 접근 횟수로 일정 기간 동안 사용자 접근 횟수를 나누어줌으로써 보다 정확한 활동성 지수를 계산할 수 있다.
420 단계에서, 사용자 할당부(211)는 복수의 데이터 서버들 각각의 가용성 지수를 계산할 수 있다. 예를 들어, 사용자 할당(211)는 아래의 수학식 2에 기초하여 데이터 서버들 각각의 가용성 지수(ωsi)를 계산할 수 있다.
수학식 2에 따르면, 사용자 할당부(211)는 데이터 서버의 저장 공간 여유량(수학식 2의 서버 여유 공간 크기)과 데이터 서버 내 할당된 사용자의 수(수학식 2의 서버 내 사용자 수)의 곱(C)을 계산할 수 있다. 그리고, 사용자 할당부(211)는 데이터 서버의 저장 공간 크기(수학식 2의 서버 디스크 크기)와 기설정된 일정 기간 동안 서 데이터 서버의 저장 공간 사용량 증가량(수학식 2의 서버 디스크 최근 30일 증가량)의 합을 계산할 수 있다. 사용자 할당부(211)는 계산된 합과 복수의 데이터 서버들 모두에 할당된 전체 사용자들의 수(수학식 2의 전체 사용자 수)이 곱(D)을 계산할 수 있다. 사용자 할당부(211)는 상기 곱(C)를 곱(D)로 나눔으로써, 데이터 서버의 가용성 지수를 계산할 수 있다.
수학식 2에서, 가용성 지수가 높을수록 데이터 서버에 할당된 사용자가 적고 저장 공간이 여유가 있음을 의미할 수 있다. 예를 들어, 활동성이 높은 사용자일수록 개인화 데이터에 대한 접근 횟수가 잦을 뿐만 아니라, 개인화 데이터의 크기 역시 클 수 있다. 즉, 활동성이 높다는 것은, 사용자가 개인화 데이터를 업데이트, 추가 등을 자주 수행함을 나타내므로, 활동성이 높은 사용자의 개인화 데이터는 활동성이 낮은 사용자 대비 크기가 클 수 있다. 이처럼, 데이터의 크기가 큰 데이터를 저장한 데이터 서버일수록 저장 공간의 여유가 없으며(가용성 지수가 낮음), 할당된 사용자가 많음을 나타낼 수 있다. 반면, 가용성 지수가 높은 데이터 서버는 사용자가 적게 할당되고, 저장 공간의 여유가 많음을 의미할 수 있다.
그리고, 수학식 1에서, 활동성 지수가 높을수록 사용자가 데이터에 자주 접근하여 서버에 부하가 증가될 수 있음을 의미할 수 있다. 이러한, 활동성 지수와 가용성 지수의 관계를 이용하여 개인화 데이터가 각 데이터 서버에 분산 저장될 수 있다. 즉, 데이터 서버에 다시 할당될 수 있다.
430 단계에서, 사용자 할당부(211)는 가용성 지수가 높은 데이터 서버에 활동성 지수가 높은 사용자를 할당할 수 있다.
예를 들어, 도 5를 참고하면, 복수의 데이터 서버들 각각에 할당된 N명의 사용자들 중 데이터 서버 1에 할당된 사용자 1의 활동성 지수는 10, 데이터 서버 2에 할당된 사용자 2의 활동성 지수는 8, 데이터 서버 3에 할당된 사용자 3의 활동성 지수는 1, 데이터 서버 4에 할당된 사용자 4의 활동성 지수는 6이고, 데이터 서버 1 내지 4 각각의 가용성 지수는 2, 6, 9, 8 순인 경우, 사용자 할당부(211)는 가용성 지수가 가장 높은 데이터 서버 3(501)에 사용자 1을 할당할 수 있다. 그러면, 데이터 저장부(212)는 할당된 데이터 서버 3(501)에 사용자 1의 개인화 데이터를 저장할 수 있다. 예를 들어, 데이터 저장부(212)는 데이터 서버 1에 저장된 사용자 1의 개인화 데이터를 데이터 서버 3(501)으로 이동 저장할 수 있다. 데이터 저장부(212)는 데이터 서버 3이 사용자 1에할당된 이후, 새로이 요청된 사용자 1의 개인화 데이터 역시 데이터 서버 3(501)에 저장할 수 있다/
440 단계에서, 데이터 서버에 사용자를 할당한 이후, 사용자 할당부(211)는 복수의 데이터 서버들 각각의 가용성 지수를 재계산할 수 있다.
예를 들어, 도 5를 참고하면, 데이터 서버 3에 사용자 1이 할당된 이후, 사용자 할당부(211)는 데이터 서버 1 내지 K의 가용성 지수를 재계산할 수 있다.
450 단계에서, 사용자 할당부(211)는 재계산된 가용성 지수가 가장 높은 데이터 서버에 사용자 1에 이어 두 번째로 활동성 지수가 높은 사용자를 할당할 수 있다. 예를 들어, 도 5를 참고하면, 재계산된 데이터 서버 1 내지 K의 가용성 지수가, 2, 6, 7, 8, ..., 3인 경우, 사용자 할당부(211)는 데이터 서버 4(503)에 사용자 2(504)를 할당할 수 있다. 그러면, 데이터 저장부(212)는 데이터 서버 2에 저장된 사용자 2의 개인화 데이터를 데이터 서버 4로 이동 저장할 수 있다.
동일한 방법으로, 복수의 데이터 서버들 각각의 저장 공간 여유량이 기설정된 기준 범위 내로 유사해질 때가지, 사용자 할당부(211)는 가용성 지수를 재계산하여 사용자를 재할당하는 동작을 반복할 수 있다. 예를 들어, 복수의 데이터 서버들 각각에 남아 있는 저장 공간 여유량의 차이가 1%, 5% 등 이내로 비슷해질 때까지 440 및 450 단계가 반복될 수 있다. 이처럼, 데이터 서버들 각각의 가용성 지수가 기준 범위 이내로 비슷해질 때까지 상기 440 및 450 단계를 반복 수행하여 활동성 지수가 높은 사용자를 데이터 서버들 각각에 분산시킴에 따라, 복수의 데이터 서버들 중 어느 하나의 서버에 사용자가 집중되지 않도록 할 수 있다. 즉, 특정 서버에 부하가 집중되지 않아 시스템 효율이 증가할 수 있으며, 사용자들은 보다 빠르게 클라우드 서비스를 이용할 수 있다.
또한, 이상의 410 단계 및 420 단계에서, 사용자의 활동성 지수와 가용성 지수는 주기적으로 업데이트될 수 있다. 예를 들어, 활동성 지수는 1주, 2주, 한달 등과 같이 기설정된 주기 간격으로 재계산되어 사용자 별로 업데이트될 수 있다. 그리고, 가용성 지수는 1일, 2일, 12시간 등과 같이 기설정된 주기 간격으로 재계산되어 데이터 서버 별로 업데이트될 수 있다.
도 6은 본 발명의 일실시예에 있어서, 사용자의 활동성 지수를 계산하는 동작을 상세히 설명하기 위해 제공되는 흐름도이고, 도 7은 사용자의 활동성 지수를 설명하기 위해 제공되는 도면이다. 도 6의 각 단계들(610 내지 630 단계)은 도 2의 클라우드 서버(200)에 의해 수행될 수 있다. 도 6에서, 사용자의 활동성 지수는 위의 수학식 1에 기초하여 계산될 수 있다.
610 단계에서, 사용자 할당부(211)는 활동성 지수를 계산하고자 하는 대상 사용자에게 이미 할당된 데이터 서버 1의 저장 공강 중 사용자가 이용중인 저장 공간 사용량(수학식 1의 사용자 디스크 사용량에 해당함.)을 계산할 수 있다.
620 단계에서, 사용자 할당부(211)는 상기 데이터 서버 1의 저장 공간 중 기설정된 일정 기간동안 사용자가 사용 중인 저장 공간 사용량 증가량(수학식 1의 사용자 디스크 최근 30일 증가량에 해당함.)을 계산할 수 있다. 예를 들어, 최근 30일동안 사용자가 사용 중인 저장 공간 사용량이 5%, 10 % 등과 같이 얼마나 증가했는지를 나타내는 수치를 계산할 수 있다.
630 단계에서, 사용자 할당부(211) 상기 계산된 저장 공간 사용량, 저장 공간 사용량 증가량, 사용자의 데이터 접근 횟수, 및 사용자의 최대 데이터 접근 횟수에 기초하여 사용자의 활동성 지수를 계산할 수 있다. 예를 들어, 사용자 할당부(211)는 상기 파라미터들과 위에서 설명한 수학식 1에 기초하여 사용자의 활동성 지수를 계산할 수 있다.
일례로, 저장 공간 사용량 및 저장 공간 사용량 증가량을 계산한 이후, 사용자 할당부(211)는 상기 일정 기간(예를 들어, 최근 30일)동안 사용자가 데이터 서버 1에 저장된 개인화 데이터에 접근한 접근 횟수(수학식 1의 최근 30일간 사용자 접근 횟수)를 카운트할 수 있다. 예를 들어, 사용자가 데이터 서버 1에 저장된 사진, 문서 등을 열람하거나, 편집하기 위해 데이터에 접근한 횟수가 카운트될 수 있다.
그리고, 사용자 할당부(211)는 일정 기간(예를 들어, 최근 30일)동안 데이터 서버에 저장된 개인화 데이터에 접근한 최대 횟수를 카운트할 수 있다. 도 7을 참고하여 최근 30일동안 개인화 데이터에 접근한 최대 횟수를 카운트하는 경우를 예를 들면, 1일에 개인화 데이터에 접근환 횟수가 5회, 2일에 10회, 3일에 15회,...인 경우, 1일에 최대 데이터 접근 횟수(MAX)는 5이고, 2일에는 MAX가 10으로 업데이트될 수 있다. 그리고, 3일에는 MAX가 15로 업데이트되고, 3일에는 데이터 접근 횟수가 8회(701)로 최대 데이터 접근 횟수(702)보다 작으므로, 사용자 할당부(211)는 MAX를 15(703)로 유지할 수 있다. 동일한 방법으로, 사용자 할당부(211)는 30일동안 최대 데이터 접근 횟수를 모니터링하여 MAX를 업데이트할 수 있다. 예를 들어, 30일에는 MAX가 20(704)으로 업데이트될 수 있다. 그러면, 수학식 1에서, 사용자 활동 지수 계산을 위해 MAX값으로 20이 이용될 수 있다.
이상에서는, 복수의 데이터 서버들 각각에 할당된 모든 사용자들을 대상으로, 사용자의 활동성 지수를 계산하는 것으로 설명하였으나, 이는 실시예에 해당되며, 클라우드 서비스를 이용하기 위해 가입 또는 해당 어플리케이션을 설치한 최초에는 기설정된 기간 동안의 정보들을 이용하여 각 사용자의 활동성 지수를 계산하나, 이후에 각 사용자의 활동성 지수를 업데이트 하는 경에는 모든 사용자가 아닌 일부의 사용자들을 대상으로 활동성 지수가 계산되어 업데이트될 수 있다.
일례로, 클라우드 서버(200)는 복수의 데이터 서버들 각각에 할당된 모든 사용자들의 사용자 활동성 지수를 기계산하여 저장하고 있는 상태에서, 새로운 사용자가 최초로 클라우드 서비스를 요청한 경우, 사용자 할당부(211)는 30일동안 새로운 사용자를 모니터링하여 새로운 사용자의 활동성 지수를 계산할 수 있다. 이후, 사용자 할당부(211)는 새로운 사용자를 포함한 기존의 모든 사용자들을 대상으로 활동성 지수를 계산하지 않고, 최근 접근 기록이 존재하는 사용자들을 대상으로 활동성 지수를 계산하여 업데이트할 수 있다.
예를 들어, 1주에 한번 활동성 지수를 업데이트하는 것으로 기설정된 경우, 1주, 10일, 2주 등과 같이 기설정된 기간 동안 접근 기록이 존재하는 사용자들에 대해서만 활동성 지수를 계산하여 사용자의 활동성 지수를 업데이트할 수 있다. 활동성 지수가 높을수록 활동성 지수가 낮은 사용자에 비해 최근에 클라우드 서비스를 이용하는 경우가 높으므로, 최근 접근 기록이 존재하는 사용자들을 대상으로 활동성 지수를 계산하여 업데이트하고, 분산 처리함에 따라, 클라우드 서버의 계산량을 줄이면서, 효율적으로 개인화 데이터를 각 데이터 서버에 분산 저장할 수 있다. 이처럼, 사용자의 활동성 지수는 일부 사용자들을 대상으로 1주, 10일 등의 단위로 업데이트되는 반면, 복수의 데이터 서버들 각각의 가용성 지수는 하루에 한번 하루에 두 번, 이틀에 한번 등과 같이, 사용자 활동성 지수의 업데이트 주기보다 짧은 주기로 업데이트될 수 있다. 그리고, 가용성 지수는 일부가 아닌 전체 데이터 서버들을 대상으로 계산될 수 있다.
이상과 같이, 본 발명의 실시예에 따르면, 개인화 데이터를 클라우드 컴퓨팅 시스템을 이용하여 각 데이터 서버에 분산 저장함으로써, 특정 데이터 서버에 활동성이 높은 사용자가 집중되어 서버에 부하가 증가하는 것을 방지 또는 감소시킬 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
200: 프로세서
211: 사용자 할당부
212: 데이터 저장부
220: 메모리
230: 인터페이스
240: 복수의 데이터 서버
211: 사용자 할당부
212: 데이터 저장부
220: 메모리
230: 인터페이스
240: 복수의 데이터 서버
Claims (17)
- 클라우드 서버는 복수의 사용자 별로 개인화된 데이터가 저장된 복수의 데이터 서버로 구성되며,
상기 복수의 데이터 서버 중 적어도 하나를 할당받은 사용자를 대상으로, 할당된 데이터 서버의 저장 공간 이용 가능성을 나타내는 사용자의 활동성 지수에 기초하여 상기 복수의 데이터 서버 중 선택된 어느 하나의 데이터 서버에 상기 사용자를 할당하는 단계; 및
할당된 사용자의 개인화된 데이터를 상기 선택된 어느 하나의 데이터 서버에 분산 저장하는 단계
를 포함하고,
상기 사용자를 할당하는 단계는,
이미 할당된 데이터 서버의 저장 공간 중 상기 사용자가 사용 중인 저장 공간 사용량을 계산하는 단계;
상기 이미 할당된 데이터 서버의 저장 공간 중 기설정된 제2 기간 동안 사용자의 저장 공간 사용량 증가량을 계산하는 단계; 및
상기 저장 공간 사용량, 상기 저장 공간 사용량 증가량, 상기 제2 기간 동안 사용자의 데이터 접근 횟수, 및 상기 제2 기간 동안 사용자의 최대 데이터 접근 횟수에 기초하여 상기 사용자 활동성 지수를 계산하는 단계
를 포함하는 것을 특징으로 하는 개인화된 데이터 분산 처리 방법. - 제1항에 있어서,
상기 사용자를 할당하는 단계는,
상기 개인화된 데이터가 저장된 데이터 서버의 여유 공간을 나타내는 서버의 가용성 지수를 고려하여 상기 복수의 데이터 서버 중 어느 하나를 상기 사용자를 할당할 서버로 결정하는 것을 특징으로 하는 개인화된 데이터 분산 처리 방법. - 제2항에 있어서,
상기 사용자를 할당하는 단계는,
상기 복수의 데이터 서버 중 서버의 가용성 지수가 가장 높은 데이터 서버를 결정하는 단계; 및
결정된 데이터 서버에 사용자의 활동성 지수가 가장 높은 사용자를 재할당하는 단계
를 포함하는 것을 특징으로 하는 개인화된 데이터 분산 처리 방법. - 클라우드 서버는 복수의 사용자 별로 개인화된 데이터가 저장된 복수의 데이터 서버로 구성되며,
상기 복수의 데이터 서버 중 적어도 하나를 할당받은 사용자를 대상으로, 할당된 데이터 서버의 저장 공간 이용 가능성을 나타내는 사용자의 활동성 지수에 기초하여 상기 복수의 데이터 서버 중 선택된 어느 하나의 데이터 서버에 상기 사용자를 할당하는 단계; 및
할당된 사용자의 개인화된 데이터를 상기 선택된 어느 하나의 데이터 서버에 분산 저장하는 단계
를 포함하고,
상기 사용자를 할당하는 단계는,
상기 개인화된 데이터가 저장된 데이터 서버의 여유 공간을 나타내는 서버의 가용성 지수를 고려하여 상기 복수의 데이터 서버 중 서버의 가용성 지수가 가장 높은 데이터 서버를 결정하는 단계;
결정된 데이터 서버에 사용자의 활동성 지수가 가장 높은 사용자를 재할당하는 단계; 및
상기 결정된 데이터 서버에 사용자의 활동성 지수가 가장 높은 사용자를 재할당한 이후, 상기 복수의 데이터 서버 각각의 가용성 지수를 재계산하는 단계
를 포함하고,
상기 사용자를 재할당하는 단계는,
재계산된 가용성 지수 및 사용자의 활동성 지수에 기초하여 사용자를 재할당하는 것을 특징으로 하는 개인화된 데이터 분산 처리 방법. - 클라우드 서버는 복수의 사용자 별로 개인화된 데이터가 저장된 복수의 데이터 서버로 구성되며,
상기 복수의 데이터 서버 중 적어도 하나를 할당받은 사용자를 대상으로, 할당된 데이터 서버의 저장 공간 이용 가능성을 나타내는 사용자의 활동성 지수에 기초하여 상기 복수의 데이터 서버 중 선택된 어느 하나의 데이터 서버에 상기 사용자를 할당하는 단계; 및
할당된 사용자의 개인화된 데이터를 상기 선택된 어느 하나의 데이터 서버에 분산 저장하는 단계
를 포함하고,
상기 사용자를 할당하는 단계는,
상기 사용자에게 이미 할당된 데이터 서버의 저장 공간 여유량을 계산하는 단계;
기설정된 제1 기간 동안 상기 이미 할당된 데이터 서버의 저장 공간 사용량 증가량을 계산하는 단계;
상기 데이터 서버의 저장 공간 여유량, 저장 공간 사용량 증가량, 상기 이미 할당된 데이터 서버를 이용하는 사용자의 수, 저장 공간 크기, 및 상기 복수의 데이터 서버에 할당된 전체 사용자의 수에 기초하여 상기 서버의 가용성 지수를 계산하는 단계; 및
상기 개인화된 데이터가 저장된 데이터 서버의 여유 공간을 나타내는 상기 서버의 가용성 지수를 고려하여 상기 복수의 데이터 서버 중 어느 하나를 상기 사용자를 할당할 서버로 결정하는 단계
를 포함하는 것을 특징으로 하는 개인화된 데이터 분산 처리 방법. - 삭제
- 제1항에 있어서,
상기 데이터 서버에 분산 저장하는 단계는,
해시 디렉토리를 이용하여 상기 선택된 어느 하나의 데이터 서버의 저장 공간에 저장하는 것을 특징으로 하는 개인화된 데이터 분산 처리 방법. - 제1항에 있어서,
상기 사용자를 할당하는 단계는,
상기 사용자의 활동성 지수와 서버의 가용성 지수를 주기적으로 업데이트하는 단계; 및
업데이트된 사용자의 활동성 지수와 서버의 가용성 지수에 기초하여 주기적으로 상기 복수의 데이터 서버 중 어느 하나를 상기 사용자에게 재할당하는 단계
를 포함하는 것을 특징으로 하는 개인화된 데이터 분산 처리 방법. - 클라우드 서버는 복수의 사용자 별로 개인화된 데이터가 저장된 복수의 데이터 서버로 구성되며,
상기 복수의 데이터 서버 중 적어도 하나를 할당받은 사용자를 대상으로, 할당된 데이터 서버의 저장 공간 이용 가능성을 나타내는 사용자의 활동성 지수에 기초하여 상기 복수의 데이터 서버 중 선택된 어느 하나의 데이터 서버에 상기 사용자를 할당하는 사용자 할당부; 및
할당된 사용자의 개인화된 데이터를 상기 선택된 어느 하나의 데이터 서버에 분산 저장하는 데이터 저장부
를 포함하고,
상기 사용자 할당부는,
이미 할당된 데이터 서버의 저장 공간 중 상기 사용자가 사용 중인 저장 공간 사용량을 계산하고, 상기 이미 할당된 데이터 서버의 저장 공간 중 기설정된 제2 기간 동안 사용자의 저장 공간 사용량 증가량을 계산하고, 상기 저장 공간 사용량, 상기 저장 공간 사용량 증가량, 상기 제2 기간 동안 사용자의 데이터 접근 횟수, 및 상기 제2 기간 동안 사용자의 최대 데이터 접근 횟수에 기초하여 상기 사용자 활동성 지수를 계산하는 것을 특징으로 하는 클라우드 서버. - 제9항에 있어서,
상기 사용자 할당부는,
상기 개인화된 데이터가 저장된 데이터 서버의 여유 공간을 나타내는 서버의 가용성 지수를 고려하여 상기 복수의 데이터 서버 중 어느 하나를 상기 사용자를 할당할 서버로 결정하는 것을 특징으로 하는 클라우드 서버. - 제10항에 있어서,
상기 사용자 할당부는,
상기 복수의 데이터 서버 중 서버의 가용성 지수가 가장 높은 데이터 서버를 결정하고, 결정된 데이터 서버에 사용자의 활동성 지수가 가장 높은 사용자를 재할당하는 것을 특징으로 하는 클라우드 서버. - 클라우드 서버는 복수의 사용자 별로 개인화된 데이터가 저장된 복수의 데이터 서버로 구성되며,
상기 복수의 데이터 서버 중 적어도 하나를 할당받은 사용자를 대상으로, 할당된 데이터 서버의 저장 공간 이용 가능성을 나타내는 사용자의 활동성 지수에 기초하여 상기 복수의 데이터 서버 중 선택된 어느 하나의 데이터 서버에 상기 사용자를 할당하는 사용자 할당부; 및
할당된 사용자의 개인화된 데이터를 상기 선택된 어느 하나의 데이터 서버에 분산 저장하는 데이터 저장부
를 포함하고,
상기 사용자 할당부는,
상기 개인화된 데이터가 저장된 데이터 서버의 여유 공간을 나타내는 서버의 가용성 지수를 고려하여 상기 복수의 데이터 서버 중 서버의 가용성 지수가 가장 높은 데이터 서버를 결정하고, 결정된 데이터 서버에 사용자의 활동성 지수가 가장 높은 사용자를 재할당하고,
상기 결정된 데이터 서버에 사용자의 활동성 지수가 가장 높은 사용자를 재할당한 이후, 상기 복수의 데이터 서버 각각의 가용성 지수를 재계산하고, 재계산된 가용성 지수 및 사용자의 활동성 지수에 기초하여 사용자를 재할당하는 것을 특징으로 하는 클라우드 서버. - 클라우드 서버는 복수의 사용자 별로 개인화된 데이터가 저장된 복수의 데이터 서버로 구성되며,
상기 복수의 데이터 서버 중 적어도 하나를 할당받은 사용자를 대상으로, 할당된 데이터 서버의 저장 공간 이용 가능성을 나타내는 사용자의 활동성 지수에 기초하여 상기 복수의 데이터 서버 중 선택된 어느 하나의 데이터 서버에 상기 사용자를 할당하는 사용자 할당부; 및
할당된 사용자의 개인화된 데이터를 상기 선택된 어느 하나의 데이터 서버에 분산 저장하는 데이터 저장부
를 포함하고,
상기 사용자 할당부는,
상기 사용자에게 이미 할당된 데이터 서버의 저장 공간 여유량을 계산하고, 기설정된 제1 기간 동안 상기 이미 할당된 데이터 서버의 저장 공간 사용량 증가량을 계산하고, 상기 데이터 서버의 저장 공간 여유량, 저장 공간 사용량 증가량, 상기 이미 할당된 데이터 서버를 이용하는 사용자의 수, 저장 공간 크기, 및 상기 복수의 데이터 서버에 할당된 전체 사용자의 수에 기초하여 상기 서버의 가용성 지수를 계산하고,
상기 개인화된 데이터가 저장된 데이터 서버의 여유 공간을 나타내는 상기 서버의 가용성 지수를 고려하여 상기 복수의 데이터 서버 중 어느 하나를 상기 사용자를 할당할 서버로 결정하는 것을 특징으로 하는 클라우드 서버. - 삭제
- 제9항에 있어서,
상기 데이터 저장부는,
해시 디렉토리를 이용하여 상기 선택된 어느 하나의 데이터 서버의 저장 공간에 저장하는 것을 특징으로 하는 클라우드 서버. - 제9항에 있어서,
상기 사용자 할당부는,
상기 사용자의 활동성 지수와 서버의 가용성 지수를 주기적으로 업데이트하고, 업데이트된 사용자의 활동성 지수와 서버의 가용성 지수에 기초하여 주기적으로 상기 복수의 데이터 서버 중 어느 하나를 상기 사용자에게 재할당하는 것을 특징으로 하는 클라우드 서버. - 컴퓨터 시스템인 클라우드 서버가 사용자 별로 개인화된 데이터를 분산 저장하도록 제어하는 명령(instruction)을 포함하는 컴퓨터 판독가능 매체로서,
상기 클라우드 서버는 사용자 별로 개인화된 데이터가 저장된 복수의 데이터 서버로 구성되며,
상기 명령은,
상기 복수의 데이터 서버 중 적어도 하나를 할당받은 사용자를 대상으로, 할당된 데이터 서버의 저장 공간 이용 가능성을 나타내는 사용자의 활동성 지수에 기초하여 상기 복수의 데이터 서버 중 선택된 어느 하나의 데이터 서버에 상기 사용자를 할당하는 단계; 및
할당된 사용자의 개인화된 데이터를 상기 선택된 어느 하나의 데이터 서버에 분산 저장하는 단계
를 포함하고,
상기 사용자를 할당하는 단계는,
이미 할당된 데이터 서버의 저장 공간 중 상기 사용자가 사용 중인 저장 공간 사용량을 계산하는 단계;
상기 이미 할당된 데이터 서버의 저장 공간 중 기설정된 제2 기간 동안 사용자의 저장 공간 사용량 증가량을 계산하는 단계; 및
상기 저장 공간 사용량, 상기 저장 공간 사용량 증가량, 상기 제2 기간 동안 사용자의 데이터 접근 횟수, 및 상기 제2 기간 동안 사용자의 최대 데이터 접근 횟수에 기초하여 상기 사용자 활동성 지수를 계산하는 단계
를 포함하는 방법에 의하여 상기 클라우드 서버를 제어하는, 컴퓨터 판독가능 저장 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150009359A KR101594555B1 (ko) | 2015-01-20 | 2015-01-20 | 개인화된 데이터를 분산 처리하는 방법 및 클라우드 서버 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150009359A KR101594555B1 (ko) | 2015-01-20 | 2015-01-20 | 개인화된 데이터를 분산 처리하는 방법 및 클라우드 서버 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101594555B1 true KR101594555B1 (ko) | 2016-02-16 |
Family
ID=55448162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150009359A KR101594555B1 (ko) | 2015-01-20 | 2015-01-20 | 개인화된 데이터를 분산 처리하는 방법 및 클라우드 서버 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101594555B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101883671B1 (ko) * | 2017-09-27 | 2018-07-31 | 주식회사 다누시스 | 노드 분산 방법 및 이를 수행하는 관리 서버 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110026303A (ko) * | 2009-09-07 | 2011-03-15 | (주)유앤비테크 | 분산 서버 기반의 그리드 시스템 및 동작 방법 |
KR20120053049A (ko) * | 2009-09-24 | 2012-05-24 | 알까뗄 루슨트 | 네트워크 내에서의 자원들의 할당을 관리하기 위한 방법 및 장치 |
-
2015
- 2015-01-20 KR KR1020150009359A patent/KR101594555B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110026303A (ko) * | 2009-09-07 | 2011-03-15 | (주)유앤비테크 | 분산 서버 기반의 그리드 시스템 및 동작 방법 |
KR20120053049A (ko) * | 2009-09-24 | 2012-05-24 | 알까뗄 루슨트 | 네트워크 내에서의 자원들의 할당을 관리하기 위한 방법 및 장치 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101883671B1 (ko) * | 2017-09-27 | 2018-07-31 | 주식회사 다누시스 | 노드 분산 방법 및 이를 수행하는 관리 서버 |
WO2019066101A1 (ko) * | 2017-09-27 | 2019-04-04 | 주식회사 다누시스 | 노드 분산 방법 및 이를 수행하는 관리 서버 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7127010B2 (ja) | リソースの割り当て方法、装置、電子設備、コンピュータ可読媒体およびコンピュータプログラム | |
US8590050B2 (en) | Security compliant data storage management | |
US10223368B2 (en) | Predictive object tiering based on object metadata | |
US10671606B2 (en) | Materialized query tables with shared data | |
US8312242B2 (en) | Tracking memory space in a storage system | |
US10168915B2 (en) | Workload performance in a multi-tier storage environment | |
US8756324B2 (en) | Automatic cloud template approval | |
US8549229B2 (en) | Systems and methods for managing an upload of files in a shared cache storage system | |
US9372880B2 (en) | Reclamation of empty pages in database tables | |
US20100153474A1 (en) | Discardable files | |
US20130138908A1 (en) | Storage system and pool capacity scale-down control method | |
US10684996B1 (en) | Distributing data of multiple logically independent file systems in distributed storage systems including physically partitioned disks | |
JP2012181580A (ja) | リソース制御装置、リソース制御方法、及びリソース制御プログラム | |
CN110914814B (zh) | 分布式存储环境的认知文件和对象管理 | |
US20180254999A1 (en) | Multidimensional resource allocation in data centers | |
US9716666B2 (en) | Process cage providing attraction to distributed storage | |
US20190303021A1 (en) | Rebalancing of user accounts among partitions of a storage service | |
KR101594555B1 (ko) | 개인화된 데이터를 분산 처리하는 방법 및 클라우드 서버 | |
US11455309B2 (en) | Partition key adjustment based on query workload | |
KR101901266B1 (ko) | 파일 스토리지 클러스터간 병렬 파일 전송 시스템 및 방법 | |
KR102054068B1 (ko) | 그래프 스트림에 대한 실시간 분산 저장을 위한 분할 방법 및 분할 장치 | |
US20170344586A1 (en) | De-Duplication Optimized Platform for Object Grouping | |
CN117081931B (zh) | 一种异构分布式存储系统在线扩容方法及装置 | |
US10642741B2 (en) | Accessing tables with heterogeneous partitions | |
KR101497313B1 (ko) | 클라우드 디스크 기반 개인화 데이터 검색 시스템 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190102 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20200102 Year of fee payment: 5 |