KR102583957B1 - 데이터베이스 서버 할당 방법 및 장치 - Google Patents
데이터베이스 서버 할당 방법 및 장치 Download PDFInfo
- Publication number
- KR102583957B1 KR102583957B1 KR1020200040085A KR20200040085A KR102583957B1 KR 102583957 B1 KR102583957 B1 KR 102583957B1 KR 1020200040085 A KR1020200040085 A KR 1020200040085A KR 20200040085 A KR20200040085 A KR 20200040085A KR 102583957 B1 KR102583957 B1 KR 102583957B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- database server
- data generator
- generator
- database
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000007616 round robin method Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 16
- 238000004458 analytical method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 7
- 238000003860 storage Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036314 physical performance Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
- H04L47/783—Distributed allocation of resources, e.g. bandwidth brokers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/1827—Management specifically adapted to NAS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/822—Collecting or measuring resource availability data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/826—Involving periods of time
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/828—Allocation of resources per group of connections, e.g. per group of users
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
데이터베이스 서버 할당 방법 및 장치가 개시된다. 본 발명의 일 실시예에 따라 각각이 하나 이상의 데이터 생성기로부터 데이터를 수집하는 복수의 데이터베이스 서버와 연동하는 할당 서버에 의해 수행되는 데이터베이스 서버 할당 방법은, 각 데이터 생성기 별로 초기 데이터베이스 서버를 할당하는 단계; 상기 복수의 데이터베이스 서버를 통해 각 데이터 생성기별 데이터 생성량에 대한 정보를 수신하는 단계; 상기 데이터 생성기별 데이터 생성량을 분석하여 데이터 생성기별 데이터 생성 패턴을 파악하는 단계; 및 상기 데이터 생성기별 데이터 생성 패턴에 따라 데이터 생성기를 그룹핑하고 각 데이터 생성기에 대해 데이터베이스 서버를 재할당하는 단계를 포함할 수 있다.
Description
본 발명은 데이터베이스 서버 할당 방법 및 장치에 관한 것으로, 더욱 상세하게는 분산 데이터베이스 시스템에서 데이터 생성기에 데이터베이스 서버를 할당하는 방법 및 장치에 관한 것이다.
IoT(Internet of Things), IoE(Internet of Everything), CPS(Cyber-Physical System(CPS) 등 정보통신 기술의 비약적인 발전은 산업 시스템 구조와 생활 습관의 변화를 불러일으켰다. 제조/금융/의료/교육 등 전반적인 산업 시스템에서는 다양한 종류의 센서(예를 들어, 온도, 습도, 초음파, 가속도, 적외선, 바이오, 이미지, 위치 등)와 전자 기기들(예를 들어, 업무용 태블릿, AR/VR 기기 등)이 사용되고 있고, 개인들에게는 스마트폰을 필두로 한 AI 스피커와 같은 스마트 기기들이 업무와 생활의 필수품으로 자리잡았다.
이처럼 네트워크에 연결되는 기기들이 급격하게 증가하면서 이에 따라 매일매일 생성, 수집 및 저장되는 데이터의 양도 폭발적으로 증가하게 되었다. 2017년 기준 하루 생성 데이터 양은 2.5 엑사바이트에 달했다. 생성되는 데이터에는 현상을 분석 혹은 예측하기 위한 패턴 내지는 의미가 내포되어 있는 경우가 많다. 과거에는 이렇게 생성되는 데이터가 버려지는 경우가 많았다. 데이터 수집 및 저장을 위해 많은 비용이 필요했을 뿐만 아니라 많은 양의 데이터 속에서 의미를 찾아내기 위한 기술이 부족하였기 때문이다.
최근 들어서는, 하드웨어/소프트웨어 측면에서의 성능 향상과 비용 저하가 함께 이뤄지며, 데이터의 수집, 저장, 처리 및 분석을 아우르는 빅데이터 기술이 빠르게 발전하고 있다. 이에 따라 산업계, 학계, 연구계 및 지역자치 단체는 서로 협업하여 쌓여가는 데이터 속에서 기존 시스템의 효율성 증대, 성장을 위한 새로운 동력 마련, 지속 가능한 지역 사회 구축 등을 위한 해결책을 찾기 위한 연구들을 수행하고 있다. 따라서, 다량의 데이터를 보다 효율적으로 수집, 저장, 처리 및 분석하기 위한 방법이 요구되고 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 각각이 하나 이상의 데이터 생성기로부터 데이터를 수집하는 복수의 데이터베이스 서버와 연동하는 할당 서버에 의해 수행되는 데이터베이스 서버 할당 방법을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 각각이 하나 이상의 데이터 생성기로부터 데이터를 수집하는 복수의 데이터베이스 서버와 연동하는 데이터베이스 서버 할당 장치를 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 또 다른 목적은 하나 이상의 데이터 생성기로부터 데이터를 수집하는 데이터베이스 서버를 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 방법은, 각각이 하나 이상의 데이터 생성기로부터 데이터를 수집하는 복수의 데이터베이스 서버와 연동하는 할당 서버에 의해 수행되는 데이터베이스 서버 할당 방법으로서, 각 데이터 생성기 별로 초기 데이터베이스 서버를 할당하는 단계; 상기 복수의 데이터베이스 서버를 통해 각 데이터 생성기별 데이터 생성량에 대한 정보를 수신하는 단계; 상기 데이터 생성기별 데이터 생성량을 분석하여 데이터 생성기별 데이터 생성 패턴을 파악하는 단계; 및 상기 데이터 생성기별 데이터 생성 패턴에 따라 데이터 생성기를 그룹핑하고 각 데이터 생성기에 대해 데이터베이스 서버를 재할당하는 단계를 포함할 수 있다.
상기 데이터 생성량에 대한 정보는 데이터 생성기로부터 수집된 데이터에 대한 메타 데이터를 포함할 수 있다.
상기 메타 데이터는 데이터 생성기의 식별자, 데이터의 타임스탬프, 및 데이터 크기 중 하나 이상의 정보를 포함할 수 있다.
상기 데이터 생성 패턴은, 상기 데이터 생성기로부터 수신하는 데이터 생성량의 시간에 따른 변화 패턴을 포함할 수 있다.
한편, 상기 데이터 생성기를 그룹핑하고 각 데이터 생성기에 대해 데이터베이스 서버를 재할당하는 단계는, 일정 시간 구간에서 각 그룹에 속한 모든 데이터 생성기에서 발생하는 데이터 양에 대한 피크 값이 해당 데이터베이스 서버의 용량을 초과하지 않도록 그룹핑 및 데이터베이스 서버의 재할당을 수행하는 단계를 포함할 수 있다.
상기 데이터베이스 서버 할당 방법은, 데이터베이스 서버 재할당에 대한 정보를 각 데이터 생성기로 제공하는 단계를 더 포함할 수 있다.
상기 각 데이터 생성기 별로 초기 데이터베이스 서버를 할당하는 단계는, 근거리 할당 방식 또는 라운드 로빈 방식을 이용해 데이터베이스 서버의 할당을 수행하는 단계를 포함할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 일 실시예에 따른 데이터베이스 서버 할당 장치는 각각이 하나 이상의 데이터 생성기로부터 데이터를 수집하는 복수의 데이터베이스 서버와 연동하는 데이터베이스 서버 할당 장치로서, 프로세서; 및 상기 프로세서를 통해 실행되는 적어도 하나의 명령을 저장하는 메모리를 포함하고, 상기 적어도 하나의 명령은, 각 데이터 생성기 별로 초기 데이터베이스 서버를 할당하도록 하는 명령; 상기 복수의 데이터베이스 서버를 통해 각 데이터 생성기별 데이터 생성량에 대한 정보를 수신하도록 하는 명령; 상기 데이터 생성기별 데이터 생성량을 분석하여 데이터 생성기별 데이터 생성 패턴을 파악하도록 하는 명령; 및 상기 데이터 생성기별 데이터 생성 패턴에 따라 데이터 생성기를 그룹핑하고 각 데이터 생성기에 대해 데이터베이스 서버를 재할당하도록 하는 명령을 포함할 수 있다.
상기 데이터 생성량에 대한 정보는 데이터 생성기로부터 수집된 데이터에 대한 메타 데이터를 포함할 수 있다.
상기 메타 데이터는 데이터 생성기의 식별자, 데이터의 타임스탬프, 및 데이터 크기 중 하나 이상의 정보를 포함할 수 있다.
상기 데이터 생성 패턴은, 상기 데이터 생성기로부터 수신하는 데이터 생성량의 시간에 따른 변화 패턴을 포함할 수 있다.
상기 데이터 생성기를 그룹핑하고 각 데이터 생성기에 대해 데이터베이스 서버를 재할당하도록 하는 명령은, 일정 시간 구간에서 각 그룹에 속한 모든 데이터 생성기에서 발생하는 데이터 양에 대한 피크 값이 해당 데이터베이스 서버의 용량을 초과하지 않도록 그룹핑 및 데이터베이스 서버의 재할당을 수행하도록 하는 명령을 포함할 수 있다.
상기 또 다른 목적을 달성하기 위한 본 발명의 일 실시예에 따른 데이터베이스 서버는 하나 이상의 데이터 생성기로부터 데이터를 수집하는 데이터베이스 서버로서, 프로세서; 및 상기 프로세서를 통해 실행되는 적어도 하나의 명령을 저장하는 메모리를 포함하고, 상기 적어도 하나의 명령은, 상기 하나 이상의 데이터 생성기로부터 데이터 생성량에 대한 정보를 수신하도록 하는 명령; 상기 하나 이상의 데이터 생성기의 데이터 생성량에 대한 정보를 할당 서버로 제공하도록 하는 명령; 상기 할당 서버로부터 데이터 생성기별 데이터 생성 패턴에 따라 재할당된 하나 이상의 데이터 생성기에 대한 정보를 수신하도록 하는 명령; 및 데이터베이스 서버 재할당에 대한 정보를 재할당된 하나 이상의 데이터 생성기로 제공하도록 하는 명령을 포함할 수 있다.
상기 데이터 생성량에 대한 정보는 데이터 생성기로부터 수집된 데이터에 대한 메타 데이터로서, 데이터 생성기의 식별자, 데이터의 타임스탬프 및 데이터 크기 중 하나 이상의 정보를 포함할 수 있다.
상기 데이터 생성 패턴은, 상기 데이터 생성기로부터 수신하는 데이터 생성량의 시간에 따른 변화 패턴을 포함할 수 있다.
상기 데이터베이스 서버 재할당에 대한 정보는, 일정 시간 구간에서 각 그룹에 속한 모든 데이터 생성기에서 발생하는 데이터 양에 대한 피크 값이 해당 데이터베이스 서버의 용량을 초과하지 않도록 그룹핑 및 데이터베이스 서버의 재할당을 수행한 결과로서 상기 할당 서버에 의해 생성될 수 있다.
상기와 같은 본 발명의 실시예들에 따르면 분석된 시계열 패턴에 기반하여 동적으로 데이터베이스 서버를 할당하므로, 다수의 데이터 생성기에서 생성되는 데이터를 수집 및 저장하기 위해 필요한 컴퓨팅 자원의 양을 효과적으로 줄일 수 있다.
또한, 데이터 생성기가 데이터베이스 서버로 직접 데이터를 전송하는 시스템이기 때문에 별도의 라우터 장비가 필요 없다.
추가적으로, 데이터베이스 서버 외에 라우터 등의 장비로 인한 성능 저하를 고려할 필요가 없다.
도 1은 하이엔드(high end) CPU에 대한 벤치마크(benchmark) 점수 및 가격을 나타낸 도면이다.
도 2는 몽고 DB를 이용한 수평적 스케일링의 개념도이다.
도 3은 몽고 DB의 성능 평가 결과로서 전송 데이터 개수에 따른 처리 소요시간을 나타낸 도면이다.
도 4는 도 3의 데이터를 로그 스케일의 그래프로 나타낸 도면이다.
도 5는 본 발명에서 고려하는 시스템 환경의 일 예이다.
도 6은 본 발명의 일 실시예에 따른 데이터베이스 서버 할당 방법의 동작 순서도이다.
도 7은 본 발명의 일 실시예에 따라 초기에 데이터 생성기 별로 데이터베이스 서버를 할당한 예를 나타낸다.
도 8a및 도 8b는 본 발명의 일 실시예에 따른 서버 할당 방법에 기반하여 시간에 따라 데이터 생성기 별로 할당되는 데이터베이스 서버의 변화를 나타낸다.
도 9는 본 발명에 대한 성능 분석에 활용된 7개의 데이터 생성기별 데이터 생성량의 추세를 나타낸 그래프이다.
도 10a 및 10b는 본 발명에 따른 시스템을 적용하기 전 및 후의 성능 분석 결과를 보여주는 도면이다.
도 11은 본 발명의 일 실시예에 따른 데이터베이스 서버 할당 장치의 블록 구성도이다.
도 2는 몽고 DB를 이용한 수평적 스케일링의 개념도이다.
도 3은 몽고 DB의 성능 평가 결과로서 전송 데이터 개수에 따른 처리 소요시간을 나타낸 도면이다.
도 4는 도 3의 데이터를 로그 스케일의 그래프로 나타낸 도면이다.
도 5는 본 발명에서 고려하는 시스템 환경의 일 예이다.
도 6은 본 발명의 일 실시예에 따른 데이터베이스 서버 할당 방법의 동작 순서도이다.
도 7은 본 발명의 일 실시예에 따라 초기에 데이터 생성기 별로 데이터베이스 서버를 할당한 예를 나타낸다.
도 8a및 도 8b는 본 발명의 일 실시예에 따른 서버 할당 방법에 기반하여 시간에 따라 데이터 생성기 별로 할당되는 데이터베이스 서버의 변화를 나타낸다.
도 9는 본 발명에 대한 성능 분석에 활용된 7개의 데이터 생성기별 데이터 생성량의 추세를 나타낸 그래프이다.
도 10a 및 10b는 본 발명에 따른 시스템을 적용하기 전 및 후의 성능 분석 결과를 보여주는 도면이다.
도 11은 본 발명의 일 실시예에 따른 데이터베이스 서버 할당 장치의 블록 구성도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. "및/또는"이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
다량의 데이터를 수집, 저장, 처리 및 분석하기 위해서는 데이터베이스 서버의 확장성이 필수적으로 요구된다. 데이터베이스의 확장성을 증가시키기 위한 방법은 크게 두 가지로 분류할 수 있다. 수직적 스케일링(vertical scaling)과 수평적 스케일링(horizontal scaling)이 그것이다.
수직적 스케일링은 한 데이터베이스 서버의 물리적인 성능을 증가시키는 방법으로, 더 좋은 CPU, 더 많은 양의 RAM 그리고 더 많은 양의 저장장치를 서버에 장착하는 방법이다. 이 방법은 인프라를 구축하기 단순하고 유지/보수가 편하다는 장점이 있지만, 기술적 한계 및 가격적인 부담 등으로 인해 수직적 한계가 존재한다.
도 1은 하이엔드(high end) CPU에 대한 벤치마크(benchmark) 점수 및 가격을 나타낸다.
도 1을 살펴보면, 최상위로 갈수록 가격 대비 성능 비가 급격히 감소함을 알 수 있다.
반면, 수평적 스케일링(horizontal scaling)은 데이터 및 서버 부하를 여러 서버에 분산시키는 방법이다. 수평적 스케일링의 경우, 필요할 때마다 서버를 추가함으로써 데이터베이스의 용량 및 성능을 확장할 수 있다. 수직적 스케일링보다 낮은 비용으로 확장성을 높일 수 있기에 대부분의 시스템이 채택하고 있는 방법이다.
하지만 이를 위해서는 분산 서버 인프라 구조가 필요할 뿐만 아니라 이들 서버들을 유지 및 관리해야 한다는 단점이 존재한다. 또한, 데이터베이스 작업 요청들을 여러 서버들에 분산시키거나 서버들에 분산되어 있는 정보들을 관리하기 위한 장비나 소프트웨어가 별도로 요구된다.
도 2는 몽고 DB를 이용한 수평적 스케일링의 개념도이다.
도2에 도시된 바와 같이, 수평적 스케일링에서는 통상적으로 데이터베이스 서버 앞단에 라우터라는 장비 내지 소프트웨어를 두고 작업 요청들을 뒷단에 위치한 실제 데이터베이스 서버들에 전달하는 방식을 활용한다. 이 방식의 단점은 너무 많은 연결이 한꺼번에 몰리게 되는 경우 라우터에 부하가 발생하여 요청을 제대로 처리하지 못한다는 것이다. 추가적으로, 수평적 스케일링에서는 라우터와 데이터베이스 서버들 간 설정 정보(예를 들어, 주소, 접속 코드 등) 및 데이터베이스 서버의 상태를 관리하기 위한 설정 서버도 필요하다.
수직적/수평적 스케일링의 한계를, 수집되는 데이터 양에 따른 데이터베이스 처리 속도에 대한 성능 실험을 통해 살펴보았다. 성능 실험에는 MongoDB를 사용하였다. MongoDB는 전세계적으로 많이 사용되는 무료 DB로 인기도 기반으로 랭킹을 정하는 DB-engines에 의하면 2019년 10월 기준으로 데이터베이스 관리 시스템 중 랭킹 5위에 해당하며, 비관계형 데이터베이스 부분에서는 1위에 해당한다. 하지만, MongoDB는 쓰기 작업 시 단일 코어만 지원하기 때문에 멀티 코어 서버를 사용하더라도 DB 쓰기 성능 제약이 존재한다. 성능 평가에 사용한 PC의 CPU는 인텔 i9-9900K @ 3.6 GHz (16 Core) 이며, RAM은 64 GB이다.
도 3은 몽고 DB의 성능 평가 결과로서 전송 데이터 개수에 따른 처리 소요시간을 나타내며, 도 4는 도 3의 데이터를 로그 스케일의 그래프로 나타낸 것이다.
도 3에서는 데이터 1개, 10개, 100개, 1000개 및 10000개를 저장할 때 소요되는 시간을 측정한 결과를 표로 보여준다다. 총 5회 측정하였으며, 각 측정 회차에 대해 측정 결과와 그 평균을 도시하고 있다.
도 3의 데이터를 로그 스케일의 그래프로 표현한 도 4를 살펴보면, 저장하는 데 소요되는 시간이 저장하고자 하는 데이터 양에 비례해서 증가함을 알 수 있다. 뿐만 아니라. 10000개의 데이터 수집이 완료되기까지 26분(1552.7초) 가량이 소요되었음을 알 수 있다.
이러한 수치는, 대규모 데이터가 실시간으로 수집되고 분석되어야 하는 상황 (예를 들어, 스마트시티 플랫폼을 통해 데이터가 수집되고 분석되어 결과가 공유되어야 하는 상황)에서 큰 제약 요소이며, 이를 해결하기 위해서는 분산 데이터 수집 시스템이 필수적이다.
예를 들어, 지능형 CCTV 한 대에서 발생하는 데이터 개수를 아래 조건에 따라 계산하게 되면 초당 평균 600 개가 된다.
- 초당 프레임 속도: 30 fps
- 화면당 객체(사람 + 차량) 수: 20 건
- 이벤트(무단횡단, 약자 보행) 수: 0.1건/초
이런 CCTV 가 지역에 20대 있는 경우 전송 데이터 개수는 초당 12000건이 된다. 이러한 데이터는 위 결과상 고성능 서버 한 대로는 감당할 수 없는 양이며, 수직적 스케일링의 한계를 잘 보여준다. 게다가 이렇게 실시간으로 데이터 처리 요청이 많이 발생하게 되면, 뒷 단에 위치하는 데이터베이스 서버들로 라우팅하기 위해 앞 단의 라우터에서 많은 부하가 발생할 수 밖에 없고 이는 곧 성능 저하로 이어지게 된다. 따라서, 데이터 수집 작업을 라우터 기반의 수평적 스케일링과는 다른 방법을 통해 여러 데이터베이스 서버들에 효율적으로 분산시키기 위한 시스템 및 방법이 필요하다.
본 발명에서는 데이터 자체에 내재되어 있는 패턴이 아니라 데이터 생성 양에 있어서의 시계열 패턴을 분석하여 이를 기반으로 데이터 생성기가 데이터를 전송할 데이터베이스 서버를 할당하는 시스템 및 방법을 제안한다.
시계열 데이터 생성 패턴을 가지는 대표적인 예로서, 지능형 CCTV에서 발생하는 사람/차량에 대한 메타데이터 및 도로 보행 안전 이벤트 데이터가 있다. 이들이 시계열 데이터 생성 패턴을 띄는 이유는 메타데이터 및 이벤트 데이터 생성 양이 대표적인 시계열 데이터인 사람 및 차량의 유동량에 비례하기 때문이다
도 5는 본 발명에서 고려하는 시스템 환경의 일 예이다.
도 5는 본 발명에서 고려하는 분산 데이터베이스 시스템 환경의 일 예를 도시하는데, 다수의 데이터 생성기(100)와 데이터베이스 서버(200)가 지역에 퍼져 분포하는 형태를 보여준다.
데이터 생성기(100)는 데이터를 생성하는 모든 소프트웨어 및 장치를 지칭하는 단어로 지능형 CCTV, IoT 센서 등을 포함할 수 있다. 도 5를 참조하면, 데이터 생성기마다 하나의 데이터베이스 서버가 할당되며, 데이터 생성기에서 생성된 데이터는 할당된 데이터베이스 서버로 전송되어 데이터의 수집 및 저장이 이루어지는 구조이다.
본 발명에서는 최소한의 데이터베이스 서버를 사용하여 다수의 데이터 생성기에서 생성되는 데이터를 수집 및 저장하기 위해 시계열 데이터 생성 패턴 분석 정보를 이용하고자 한다.
데이터 생성기의 일 예인 지능형 CCTV는 지능형 영상 분석 기능을 내장한 CCTV를 의미할 수 있다. 지능형 CCTV는 촬영한 영상뿐 아니라, 내장된 영상 분석 기능을 이용해 도로 보행 안전 이벤트 (예를 들어, 무단횡단, 약자 보행, 화재, 투기 등)와 영상 내 사람/차량에 대한 메타 데이터를 생성하여 데이터베이스 서버로 전송한다. 지능형 CCTV에서 생성되는 이러한 메타 데이터의 양은 시계열 패턴을 가진다. 그 이유는 메타 데이터의 양은 촬영 영상 내 포함된 사람/차량의 수에 비례하는데, 사람/차량 유동량이 시계열 패턴을 띄는 경우가 많기 때문이다. 회사가 몰려 있는 지역의 유동량은 출/퇴근 시간에, 관광지 인근의 유동량은 주말이나 공휴일에 많을 수 있다.
지능형 CCTV가 위치한 지역의 사람/차량 유동량이 많아지면 생성되는 데이터의 양도 많아지고, 유동량이 적어지면 생성되는 데이터의 양도 적어지게 된다. 본 발명에서는 이러한 데이터 발생량 패턴을 이용해 데이터 생성기들을 효율적으로 그룹핑하여 데이터베이스 서버에 할당하는 방법을 제안하고자 한다.
도 6은 본 발명의 일 실시예에 따른 데이터베이스 서버 할당 방법의 동작 순서도이다.
본 발명의 일 실시예에 따라 시계열 데이터 생성 패턴에 기반하여 데이터베이스 서버를 할당하는 방법은, 데이터 생성기 별로 데이터베이스 서버를 초기 할당하는 단계(S610), 데이터 생성기 별 데이터 생성량을 기록하는 단계(S620), 데이터 생성기 별 데이터의 생성 패턴을 분석하는 단계(S630), 데이터 생성 패턴에 기반하여 데이터 생성기를 그룹핑하고 각 데이터 생성기에 데이터베이스 서버를 재할당하는 단계(S640)를 포함할 수 있다.
보다 구체적으로, 데이터 생성기 별로 데이터베이스 서버를 초기 할당하는 단계(S610)에서는, 통상적인 방식으로 데이터 생성기에 생성된 데이터를 전송할 데이터베이스 서버를 할당한다. 여기서, 통상적인 방식으로는, 데이터 생성기를 가장 가까운 위치의 서버에 할당하거나 라운드로빈 방식으로 데이터 생성기를 데이터베이스 서버에 할당하는 방법이 있다.
도 7은 본 발명의 일 실시예에 따라 초기에 데이터 생성기 별로 데이터베이스 서버를 할당한 예를 나타낸다.
도 7의 예에서는 데이터 생성기(100)와 가장 가까운 곳에 위치하는 데이터베이스 서버(200)가 각 데이터 생성기에 할당된 형태를 확인할 수 있다. 또한, 본 발명의 일 실시예에 따른 각 데이터베이스 서버는 본 발명에 따른 할당 서버(300)와 연동할 수 있다.
본 발명에서 데이터베이스 서버(200)는 하나 이상의 데이터 생성기로부터 데이터 생성량에 대한 정보를 수신하여 할당 서버로 제공하며, 할당 서버로부터 데이터 생성기별 데이터 생성 패턴에 따라 재할당된 하나 이상의 데이터 생성기에 대한 정보를 수신하여 재할당된 하나 이상의 데이터 생성기로 제공한다.
이를 위해 데이터베이스 서버는 프로세서 및 프로세서를 통해 실행되는 적어도 하나의 명령을 저장하는 메모리를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따른 할당 서버(300)는 각 데이터 생성기에 데이터베이스 서버를 할당하는 장치로서, 각각이 하나 이상의 데이터 생성기로부터 데이터를 수집하는 복수의 데이터베이스 서버와 연동하여, 데이터베이스 서버를 통해 수신한 데이터 생성기별 데이터 생성량을 분석하여 데이터 생성 패턴을 파악하고, 데이터 생성 패턴에 따라 데이터 생성기를 그룹핑하여 각 데이터 생성기에 대해 데이터베이스 서버를 재할당한다.
보다 구체적으로, 도 6을 참조하여 설명하면, 데이터 생성기 별 데이터 생성량을 기록하는 단계(S620)에서는 데이터 생성기 별로 생성된 데이터의 양을 기록한다. 본 발명에서는 데이터 생성기에 할당되는 데이터베이스 서버가 시간에 따라 바뀔 수 있다. 각 데이터베이스 서버는 주기적으로 수집된 데이터에 대한 메타 데이터를 할당 서버로 전송한다. 여기서, 메타 데이터는 데이터 생성기 ID, 타임스탬프, 데이터 크기 등의 정보를 포함할 수 있다.
데이터 생성기 별 데이터의 생성 패턴을 분석하는 단계(S630)에서는 할당 서버가 각 데이터베이스 서버로부터 수집된 메타 데이터를 분석하여 데이터 생성기 별 시계열 데이터 생성 패턴을 모델링하는 작업을 수행한다.
데이터 생성기 그룹핑 및 서버 할당 단계(S640)에서는 데이터 생성기별 시계열 패턴 분석을 통해 모델링된 시계열 패턴을 이용하여 데이터 생성기 그룹핑과 데이터베이스 서버 할당 작업이 수행된다. 데이터 생성기 그룹핑과 데이터베이스 서버 할당 작업이 함께 수행하는 이유는 데이터베이스 서버 별로 처리 성능이 다를 수 있기 때문에 데이터 생성기 그룹핑 시 이를 함께 고려하기 위함이다.
아래 표 1, 수학식 1 및 수학식 2는 데이터 생성기 그룹핑 및 서버 할당의 일 실시예를 나타낸다. 아래 일 실시예는 모든 데이터베이스 서버가 동일한 처리 능력을 갖는 상황에 해당한다.
아래 표 1은 데이터 생성기 그룹핑 및 서버 할당을 위한 아래 수학식에서 사용된 약어를 나타낸다.
표 1에서 n은 데이터 생성기(Device)를, m은 그룹을, 그리고 l은 시점을 나타내는 변수이며, N은 전체 데이터 생성기 개수, M은 전체 그룹 개수, 그리고 L은 그룹핑 및 서버 할당 단위를 의미한다. 단위가 하루라면 L은 하루를, 일주일 단위라면 L은 일주일이 될 수 있다.
아래 수학식 1은 데이터 생성기 그룹핑 및 서버 할당을 위한 가정을 나타낸다.
수학식 1에서 gi 및 gj는 서로 다른 그룹을, M은 전체 그룹 개수를, 그리고 D는 전체 데이터 생성기 집합을 나타낸다. 수학식 1은 서로 다른 그룹 간 교집합이 공집합인 조건 하에서 모든 그룹들의 합집합이 전체 데이터 생성기 집합이어야 함을 나타낸다. 이 가정에 따라 모든 데이터 생성기는 최소한 하나의 그룹에는 그리고 최대한 하나의 그룹에만 속해야 한다.
아래 수학식 2는 본 발명의 일 실시예에 따른 데이터 생성기 그룹핑 및 서버 할당 관련 수식을 나타낸다.
수학식 2에서 fi(t)는 i시점에서 데이터 생성기에서 발생하는 데이터 양이고, P는 데이터베이스 서버의 처리 용량을 나타낼 수 있다. fi(t)는 시계열 데이터 생성 패턴 분석에 기반한다.
수학식2에 기반한 본 발명의 일 실시예에 따른 그룹핑 및 데이터베이스 서버의 할당은, 일정 시간 구간 동안 각 그룹에 속한 모든 데이터 생성기에서 발생하는 데이터 양에 대한 피크 값이 해당 데이터베이스 서버의 처리 용량을 초과하지 않도록 수행될 수 있으며, 전체 그룹 개수 M, 즉, 데이터베이스 서버의 개수가 최소가 되도록 한다.
본 발명에 따르면, 시계열 패턴 특성상 시간에 따라 데이터 생성기에 할당되는 서버 정보가 변경된다. 즉, 데이터 생성기 1의 경우, 9시부터 18시까지는 서버 1에 데이터를 전송하다가 18시부터 9시까지는 서버 2에 데이터를 전송하는 경우가 발생할 수 있다. 따라서, 시계열 데이터 생성 패턴 분석 작업이 수행되어, 데이터 생성기 그룹핑 및 서버 할당 정보가 갱신될 수 있다. 해당 정보는 각 데이터 생성기로 제공되며, 데이터 생성기는 업데이트된 데이터베이스 서버 할당 정보에 따라, 생성된 데이터를 할당된 데이터베이스 서버로 전송할 수 있다.
도 8a및 도 8b는 본 발명의 일 실시예에 따른 서버 할당 방법에 기반하여 시간에 따라 데이터 생성기 별로 할당되는 데이터베이스 서버의 변화를 나타낸다.
도 8a의 경우는 특정 시스템 환경에서 낮 시간에 이루어지는 할당 형태를 나타내고, 도 8b의 경우는 도 8a와 동일한 시스템 환경에서 밤 시간에 이루어지는 할당 형태를 나타낸다. 동일한 시스템 환경에서 낮과 밤의 할당 형태가 다르게 나타남을 알 수 있다. 또한, 도 8a 및 도 8b의 경우 모두, 서버마다 동일한 수의 데이터 생성기가 할당되는 것이 아니라, 시계열 데이터 생성 패턴에 기반해 생성 데이터 양을 기준으로 데이터 생성기에 서버가 할당되어 있는 모습을 보여준다.
본 발명에 따른 서버 할당 방법에 대해 기존 방법 대비 성능 분석을 수행하였다. 성능 분석 시나리오는 7개의 데이터 생성기를 그룹핑하여 3개의 데이터베이스 서버에 할당하는 상황으로 설정하였다.
도 9는 본 발명에 대한 성능 분석에 활용된 7개의 데이터 생성기 별 데이터 생성량의 추세를 나타낸 그래프이다.
도 9에서 Gen1 내지 Gen7은 각 데이터 생성기를 나타내며, 가로 축은 시간을, 세로축은 시간에 따른 데이터 생성량을 나타낸 그래프이다.
도 10a 및 10b는 본 발명에 따른 시스템을 적용하기 전 및 후의 성능 분석 결과를 보여주고 있다.
보다 구체적으로, 도 10a는 데이터 생성기들을 그룹핑할 때, 임의의 그룹핑 방법을 사용한 경우의 결과, 즉 본 발명에 따른 서버 할당 방법을 적용하지 않은 시스템에서의 각 서버 별 수집 데이터량을 나타낸다. 도 10b는 본 발명에 따라 시계열 패턴을 이용해서 그룹핑한 시스템에서의 서버 별 수집 데이터 추세를 나타내는 그래프이다.
도 10a 및 10b를 살펴보면, 서버 1 내지 3을 망라하여 총 처리해야 하는 데이터의 양은 동일하지만, 서버별 피크 데이터의 양이 다르다는 것을 알 수 있다. 본 발명이 적용되지 않은 시스템의 경우인 도 10a의 경우 서버 3에서의 데이터 처리 요구량에 대한 피크 값이 2.93인 반면, 본 발명을 적용했을 경우인 도 10b의 경우에는 서버 1에서의 피크 값이 2.41이다. 즉, 피크 값을 기준으로 17.8%의 성능 향상을 보이고 있다.
피크 값이 중요한 이유는, 서버의 처리 용량보다 피크 값이 더 크게 되면 피크 구간에서 데이터 처리 지연 혹은 데이터 유실 등이 발생할 수 있기에 추가 서버 설치가 필요한 상황이 발생하기 때문이다. 예를 들어, 도 10a 및 10b의 예에서 서버의 처리 용량을 2.5라고 한다면, 도 10a의 경우, 서버 3에서 수집되는 데이터는 2.93으로 서버 처리 용량을 넘어선다. 즉, 본 발명이 적용되지 않은 시스템의 경우 추가적인 서버의 설치가 필요한 상황이고, 따라서, 필요한 컴퓨팅 자원의 양이 증가하게 된다.
도 11은 본 발명의 일 실시예에 따른 데이터베이스 서버 할당 장치의 블록 구성도이다.
본 발명의 일 실시예에 따른 데이터베이스 서버 할당 장치는, 적어도 하나의 프로세서(310), 상기 프로세서를 통해 실행되는 적어도 하나의 명령을 저장하는 메모리(320) 및 네트워크와 연결되어 통신을 수행하는 송수신 장치(330)를 포함할 수 있다.
서버 할당 장치(300)는 또한, 입력 인터페이스 장치(340), 출력 인터페이스 장치(350), 저장 장치(360) 등을 더 포함할 수 있다. 데이터베이스 서버 할당 장치 (300)에 포함된 각각의 구성 요소들은 버스(bus)(370)에 의해 연결되어 서로 통신을 수행할 수 있다.
프로세서(310)는 메모리(320) 및 저장 장치(360) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(310)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서를 포함할 수 있다. 메모리(320) 및 저장 장치(360) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(320)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나로 구성될 수 있다.
여기서, 상기 적어도 하나의 명령은, 상기 프로세서로 하여금, 각 데이터 생성기 별로 초기 데이터베이스 서버를 할당하도록 하는 명령; 상기 복수의 데이터베이스 서버를 통해 각 데이터 생성기별 데이터 생성량에 대한 정보를 수신하도록 하는 명령; 상기 데이터 생성기별 데이터 생성량을 분석하여 데이터 생성기별 데이터 생성 패턴을 파악하도록 하는 명령; 및 상기 데이터 생성기별 데이터 생성 패턴에 따라 데이터 생성기를 그룹핑하고 각 데이터 생성기에 대해 데이터베이스 서버를 재할당하도록 하는 명령을 포함할 수 있다.
상기 데이터 생성량에 대한 정보는 데이터 생성기로부터 수집된 데이터에 대한 메타 데이터를 포함할 수 있다.
상기 메타 데이터는 데이터 생성기의 식별자, 데이터의 타임스탬프, 및 데이터 크기 중 하나 이상의 정보를 포함할 수 있다.
상기 데이터 생성 패턴은, 상기 데이터 생성기로부터 수신하는 데이터 생성량의 시간에 따른 변화 패턴을 포함할 수 있다.
상기 데이터 생성기를 그룹핑하고 각 데이터 생성기에 대해 데이터베이스 서버를 재할당하도록 하는 명령은, 일정 시간 구간에서 각 그룹에 속한 모든 데이터 생성기에서 발생하는 데이터 양에 대한 피크 값이 해당 데이터베이스 서버의 용량을 초과하지 않도록 그룹핑 및 데이터베이스 서버의 재할당을 수행하도록 하는 명령을 포함할 수 있다.
본 발명의 실시예에 따른 방법의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
본 발명의 일부 측면들은 장치의 문맥에서 설명되었으나, 그것은 상응하는 방법에 따른 설명 또한 나타낼 수 있고, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게, 방법의 문맥에서 설명된 측면들은 또한 상응하는 블록 또는 아이템 또는 상응하는 장치의 특징으로 나타낼 수 있다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇몇의 실시예에서, 가장 중요한 방법 단계들의 하나 이상은 이와 같은 장치에 의해 수행될 수 있다.
실시예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그머블 게이트 어레이는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.
이상 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
Claims (18)
- 각각이 하나 이상의 데이터 생성기가 생성하는 데이터를 수집, 저장하는 복수의 데이터베이스 서버와 연동하는 할당 서버에 의해 수행되는 데이터베이스 서버 할당 방법으로서,
각 데이터 생성기 별로 초기 데이터베이스 서버를 할당하는 단계;
상기 복수의 데이터베이스 서버로부터 각 데이터 생성기별 데이터 생성량에 대한 정보를 수신하는 단계;
상기 데이터 생성기별 데이터 생성량을 분석하여 데이터 생성기별 데이터 생성 패턴을 파악하는 단계; 및
상기 데이터 생성기별 데이터 생성 패턴에 따라 데이터 생성기를 그룹핑하고 각 데이터 생성기에 대해 데이터베이스 서버를 재할당하는 단계를 포함하는, 데이터베이스 서버 할당 방법. - 청구항 1에 있어서,
상기 데이터 생성량에 대한 정보는 데이터 생성기로부터 수집된 데이터에 대한 메타 데이터를 포함하는, 데이터베이스 서버 할당 방법. - 청구항 2에 있어서,
상기 메타 데이터는 데이터 생성기의 식별자, 데이터의 타임스탬프, 및 데이터 크기 중 하나 이상의 정보를 포함하는, 데이터베이스 서버 할당 방법. - 청구항 1에 있어서,
상기 데이터 생성 패턴은,
상기 데이터 생성기로부터 수신하는 데이터 생성량의 시간에 따른 변화 패턴을 포함하는, 데이터베이스 서버 할당 방법. - 청구항 1에 있어서,
상기 데이터 생성기를 그룹핑하고 각 데이터 생성기에 대해 데이터베이스 서버를 재할당하는 단계는,
일정 시간 구간에서 각 그룹에 속한 모든 데이터 생성기에서 발생하는 데이터 양에 대한 피크 값이 해당 데이터베이스 서버의 용량을 초과하지 않도록 그룹핑 및 데이터베이스 서버의 재할당을 수행하는 단계를 포함하는, 데이터베이스 서버 할당 방법. - 청구항 1에 있어서,
데이터베이스 서버 재할당에 대한 정보를 각 데이터 생성기로 제공하는 단계를 더 포함하는, 데이터베이스 서버 할당 방법. - 청구항 1에 있어서,
상기 각 데이터 생성기 별로 초기 데이터베이스 서버를 할당하는 단계는,
근거리 할당 방식 또는 라운드 로빈 방식을 이용해 데이터베이스 서버의 할당을 수행하는 단계를 포함하는, 데이터베이스 서버 할당 방법. - 각각이 하나 이상의 데이터 생성기가 생성하는 데이터를 수집, 저장하는 복수의 데이터베이스 서버와 연동하는 데이터베이스 서버 할당 장치로서,
프로세서; 및
상기 프로세서를 통해 실행되는 적어도 하나의 명령을 저장하는 메모리를 포함하고,
상기 적어도 하나의 명령은,
각 데이터 생성기 별로 초기 데이터베이스 서버를 할당하도록 하는 명령;
상기 복수의 데이터베이스 서버로부터 각 데이터 생성기별 데이터 생성량에 대한 정보를 수신하도록 하는 명령;
상기 데이터 생성기별 데이터 생성량을 분석하여 데이터 생성기별 데이터 생성 패턴을 파악하도록 하는 명령; 및
상기 데이터 생성기별 데이터 생성 패턴에 따라 데이터 생성기를 그룹핑하고 각 데이터 생성기에 대해 데이터베이스 서버를 재할당하도록 하는 명령을 포함하는, 데이터베이스 서버 할당 장치. - 청구항 8에 있어서,
상기 데이터 생성량에 대한 정보는 데이터 생성기로부터 수집된 데이터에 대한 메타 데이터를 포함하는, 데이터베이스 서버 할당 장치. - 청구항 9에 있어서,
상기 메타 데이터는 데이터 생성기의 식별자, 데이터의 타임스탬프 및 데이터 크기 중 하나 이상의 정보를 포함하는, 데이터베이스 서버 할당 장치. - 청구항 9에 있어서,
상기 데이터 생성 패턴은,
상기 데이터 생성기로부터 수신하는 데이터 생성량의 시간에 따른 변화 패턴을 포함하는, 데이터베이스 서버 할당 장치. - 청구항 8에 있어서,
상기 데이터 생성기를 그룹핑하고 각 데이터 생성기에 대해 데이터베이스 서버를 재할당하도록 하는 명령은,
일정 시간 구간에서 각 그룹에 속한 모든 데이터 생성기에서 발생하는 데이터 양에 대한 피크 값이 해당 데이터베이스 서버의 용량을 초과하지 않도록 그룹핑 및 데이터베이스 서버의 재할당을 수행하도록 하는 명령을 포함하는, 데이터베이스 서버 할당 장치. - 청구항 8에 있어서,
상기 적어도 하나의 명령은,
데이터베이스 서버 재할당에 대한 정보를 각 데이터 생성기로 제공하도록 하는 명령을 더 포함하는, 데이터베이스 서버 할당 장치. - 청구항 8에 있어서,
상기 각 데이터 생성기 별로 초기 데이터베이스 서버를 할당하도록 하는 명령은,
근거리 할당 방식 또는 라운드 로빈 방식을 이용해 데이터베이스 서버의 할당을 수행하도록 하는 명령을 포함하는, 데이터베이스 서버 할당 장치. - 삭제
- 삭제
- 삭제
- 삭제
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200040085A KR102583957B1 (ko) | 2020-04-02 | 2020-04-02 | 데이터베이스 서버 할당 방법 및 장치 |
US17/219,258 US20210311795A1 (en) | 2020-04-02 | 2021-03-31 | Method and apparatus for allocating database server |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200040085A KR102583957B1 (ko) | 2020-04-02 | 2020-04-02 | 데이터베이스 서버 할당 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210122989A KR20210122989A (ko) | 2021-10-13 |
KR102583957B1 true KR102583957B1 (ko) | 2023-09-27 |
Family
ID=77921865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200040085A KR102583957B1 (ko) | 2020-04-02 | 2020-04-02 | 데이터베이스 서버 할당 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20210311795A1 (ko) |
KR (1) | KR102583957B1 (ko) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101633891B1 (ko) * | 2009-10-16 | 2016-06-27 | 삼성전자주식회사 | 사용자 단말에 신속한 데이터 액세스를 지원하는 중개 서버, 중개 서버의 동작 방법, 사용자 단말, 사용자 단말의 동작 방법 |
KR101337078B1 (ko) * | 2011-12-14 | 2013-12-06 | 충북대학교 산학협력단 | 무선 센서 네트워크를 위한 상황 인지 데이터 중심 저장 방법 |
KR102127116B1 (ko) * | 2014-03-12 | 2020-06-26 | 삼성전자 주식회사 | 분산 데이터 저장 장치 및 분산 데이터 저장 방법 |
US9965336B2 (en) * | 2014-04-30 | 2018-05-08 | International Business Machines Corporation | Delegating iterative storage unit access in a dispersed storage network |
KR101922659B1 (ko) * | 2016-12-07 | 2018-11-28 | 주식회사 케이티 | 시간대별 데이터 집중도 기반의 게이트웨이 재할당 방법 및 그 장치 |
-
2020
- 2020-04-02 KR KR1020200040085A patent/KR102583957B1/ko active IP Right Grant
-
2021
- 2021-03-31 US US17/219,258 patent/US20210311795A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
KR20210122989A (ko) | 2021-10-13 |
US20210311795A1 (en) | 2021-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102667724B (zh) | 用于动态管理加速器资源的方法和*** | |
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
Chaczko et al. | Availability and load balancing in cloud computing | |
US8424059B2 (en) | Calculating multi-tenancy resource requirements and automated tenant dynamic placement in a multi-tenant shared environment | |
CN104050042B (zh) | Etl作业的资源分配方法及装置 | |
US20180198855A1 (en) | Method and apparatus for scheduling calculation tasks among clusters | |
US10425313B2 (en) | Tuple traffic management | |
CN112667376A (zh) | 任务调度处理方法、装置、计算机设备及存储介质 | |
CN107925612A (zh) | 网络监视***、网络监视方法和程序 | |
CN104298550A (zh) | 一种面向Hadoop的动态调度方法 | |
CN108920153A (zh) | 一种基于负载预测的Docker容器动态调度方法 | |
CN105491329B (zh) | 一种基于流式计算的大规模监控视频流汇聚方法 | |
CN114416352A (zh) | 算力资源分配方法、装置、电子设备及储存介质 | |
CN109062697A (zh) | 一种提供空间分析服务的方法和装置 | |
CN106131227A (zh) | 负载平衡方法、元数据服务器***及负载平衡*** | |
CN112148468A (zh) | 一种资源调度方法、装置、电子设备及存储介质 | |
CN103488538B (zh) | 云计算***中的应用扩展装置和应用扩展方法 | |
CN104580194A (zh) | 面向视频应用的虚拟化资源管理方法及装置 | |
KR101656706B1 (ko) | 고성능 컴퓨팅 환경에서의 작업 분배 시스템 및 방법 | |
TW201327239A (zh) | 分散式資源管理系統及其分散式資源管理方法 | |
CN107301094A (zh) | 面向大规模动态事务查询的动态自适应数据模型 | |
CN116012067A (zh) | 资源分配方法、装置、计算机、可读存储介质及程序产品 | |
KR102583957B1 (ko) | 데이터베이스 서버 할당 방법 및 장치 | |
Samant et al. | Towards quality-assured data delivery in cloud-based iot platforms for smart cities | |
CN116225694A (zh) | 负载均衡方法、装置、***及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |