KR102020725B1 - 그래프 스트림에서 비용 모델을 이용한 처리 방법 및 처리 장치 - Google Patents

그래프 스트림에서 비용 모델을 이용한 처리 방법 및 처리 장치 Download PDF

Info

Publication number
KR102020725B1
KR102020725B1 KR1020180045547A KR20180045547A KR102020725B1 KR 102020725 B1 KR102020725 B1 KR 102020725B1 KR 1020180045547 A KR1020180045547 A KR 1020180045547A KR 20180045547 A KR20180045547 A KR 20180045547A KR 102020725 B1 KR102020725 B1 KR 102020725B1
Authority
KR
South Korea
Prior art keywords
processing
graph
cost
stream
graph stream
Prior art date
Application number
KR1020180045547A
Other languages
English (en)
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 KR1020180045547A priority Critical patent/KR102020725B1/ko
Application granted granted Critical
Publication of KR102020725B1 publication Critical patent/KR102020725B1/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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Fuzzy Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

그래프 스트림이 발생하면, 실제 처리된 이력을 바탕으로 재계산 비용을 예측하고, 예측한 비용에 기초하여 점진적 처리 여부를 판단한 후, 변경된 부분 만을 처리하는 점진적 처리가 이득일 경우, iGAS를 수행하여 그래프 갱신에 의해 영향을 받아 변경된 영역의 데이터를 점진적으로 처리하여, 중복된 데이터의 영역에 대한 처리를 생략하고, 반면, 점진적 처리가 이득이 아닐 경우, GAS를 수행하여 전체 데이터를 정적으로 처리하되, iGAS 수행 시 캐시 전략을 사용하여 한번 읽어온 데이터와 계산된 결과 데이터를 저장하고, 인접 정점의 데이터를 프리패치하는 기술을 개시한다.
그래프 스트림에서 비용 모델을 이용한 처리 방법은, 소셜 네트워크에서의, 사물 간의 상호 작용에 따른 그래프 스트림의 변경에 연동하여, 상기 그래프 스트림에 대한 변화량을 연산하는 단계, 상기 연산된 변화량에 기초하여, 상기 그래프 스트림을 처리하는 기법을 결정하는 단계, 및 상기 결정된 처리기법에 따라 상기 그래프 스트림을 처리하여 그래프를 갱신하는 단계를 포함할 수 있다.

Description

그래프 스트림에서 비용 모델을 이용한 처리 방법 및 처리 장치{PROCESSING METHOD AND PROCESSING DEVICE USING COST MODEL IN GRAPH STREAM}
본 발명은 그래프 스트림이 발생하면, 실제 처리된 이력을 바탕으로 재계산 비용을 예측하고, 예측한 비용에 기초하여 점진적 처리 여부를 판단한 후, 변경된 부분 만을 처리하는 점진적 처리가 이득일 경우, iGAS(incremental-Gather-Apply-Scatte)를 수행하여 그래프 갱신에 의해 영향을 받아 변경된 영역의 데이터를 점진적으로 처리하여, 중복된 데이터의 영역에 대한 처리를 생략하고, 반면, 점진적 처리가 이득이 아닐 경우, GAS(Gather-Apply-Scatte)를 수행하여 전체 데이터를 정적으로 처리하되, iGAS 수행 시 캐시 전략을 사용하여 한번 읽어온 데이터와 계산된 결과 데이터를 저장하고, 인접 정점의 데이터를 프리패치하는 기술에 관한 것이다.
근래에는, 소셜 네트워크에서 사용자 간의 관계 및 정보의 흐름을 표현하거나 IoT(Internet of Things)에서 각종 사물들 사이에 상호 작용을 표현하기 위해, 그래프 데이터를 활용하고 있다. 그래프는 G = (V, E)로 나타내며, V는 정점(vertex) 집합을 나타내고, E는 간선(edge) 집합을 나타낸다. 각 정점에는 정점의 특징이나 정보가 포함될 수 있으며, 이와 유사하게 간선에는 간선의 정보와 정점 간의 관계 같은 정보가 있을 수 있다.
최근 다양한 분야에서는 그래프 데이터를 분석하여 중요한 비즈니스 가치를 창출하기 위해 연구를 진행하고 있다. 예를 들어, IoT나 재난안전 분야에서는 센서 간 상호 관계를 그래프 스트림으로 나타내고, 실시간으로 분석하여 위험 발생을 감지하고 예측하는 데에 활용하고 있다.
소셜 네트워크 분야에서는 사용자 간의 상호작용을 실시간으로 트렌드 분석을 수행하여 광고주의 전략에 맞는 정확한 광고를 제공할 수 있다.
소셜 네트워크에서 신규 가입한 사용자가 기존 사용자와 팔로우 관계가 형성되었을 경우, 정점과 간선이 새롭게 삽입되는 것처럼, 그래프 스트림은 정점의 삽입과 삭제, 간선의 삽입과 삭제가 그래프의 시간에 따라 계속적으로 발생하는 그래프 이벤트의 흐름일 수 있다.
그래프 데이터는 지속적으로 발생하며 크기가 점차 증가하기 때문에 재난 모니터링과 같은 다양한 서비스에 있어서는 실시간 데이터 수집 및 처리 기법이 요구되고 있다.
예컨대, 소셜 네트워크의 대표적인 페이스북은 추천이나 댓글과 같은 정보를 분당 약 330만 건 정도 생성하고 있으며, 트위터의 경우 분당 약 35만 건 정도의 트윗을 생성하고 있다. 또한, 구글은 분당 약 410만 건의 질의를 처리하고 있다.
최근 들어, 이러한 대용량 그래프 처리를 위한 분산 처리 기법은 보다 활발하게 연구되고 있다.
그래프 병렬 처리 시스템은 거대한 양의 데이터를 분산 저장하고 병렬 처리하여 빠르게 분석하기 위해 개발되었다.
가장 대표적인 연구로는, PowerGraph가 있다. PowerGraph는 그래프 분산 데이터 처리 시스템으로 단일 서버의 한계를 극복하기 위해 여러 서버에 데이터를 분산 저장하고 병렬 처리한다. 또한, PowerGraph는 정점 기반의 절단 기법(vertex-cut)과 GAS(Gather-Apply-Scatter) 모델을 도입하여, 저장 및 통신 비용을 크게 절감한다.
대부분의 그래프 데이터는 끊임없이 변화하고 점차 증가하지만, 그래프 병렬 처리 시스템의 대다수는 정적인 환경에서 계산을 지원한다. 그래프를 정적으로 처리하는 데에는, 처리한 시점과 현재 시점 사이의 차이가 생기게 되며, 실시간성을 보장할 수 없다.
또한, 그래프 갱신에 의해 그래프가 변경되면 정적인 처리 기법은, 변하지 않은 영역까지 전체를 계산하기 때문에 자주 변경되는 그래프에서 불필요한 중복 처리를 하게 되고, 이러한 중복 처리가 매 수행 시마다 누적되어 더욱 악화하게 된다. 정적 처리의 불필요한 중복 계산 문제로 인해 실시간 분석 결과를 제공하는 데에 어려움이 있어, 이를 해결하기 위해 변경되는 부분 만을 처리하는 점진적 처리 기법이 도입되었다.
점진적인 처리 기법은 지속적인 그래프 갱신을 처리하기 위해 그래프에 대한 변경 사항을 수집하여 변경된 부분 만을 처리하고 기존 결과와 병합함으로써 기존 그래프 병렬 처리 기법의 중복 계산 문제점을 해결한다. 그래프 분석 작업의 상당 부분은 이미 이전 작업에서 완료되었으므로 작은 변화에서 전체를 처리하는 기법보다 효율적인 성능을 나타낼 수 있다.
점진적인 처리 기법은, 그래프의 변경되는 부분만을 재계산하는 것으로, 이를 통해 불필요한 중복 계산을 제거할 수 있다. 하지만, 재계산이 필요한 정점에 많은 정점이 연결된 경우에는, 재계산되기 위해 수많은 정점을 다시 탐색하여 연결된 정점의 수만큼 디스크 I/O 비용이 생기는 문제점이 있다.
이를 해소하고자 다른 점진적 처리 기법에서는 맵리듀스 모델에서 계산 단위를 작게 나누고 변화한 부분 만을 재계산하는 방식을 사용한다. 하지만, 다른 점진적 처리 기법은, 계산 단위를 나눌 때 너무 작은 단위로 분할되면, 복잡도가 증가하는 문제로 인해, 높은 처리 비용과 네트워크 오버헤드를 초래할 수 있다.
iGraph는 그래프 스트림을 여러 배치 단위로 나누어 처리하는 방식을 사용한다. 하지만, iGraph는 그래프 갱신이 발생할 때, 배치에 포함되는 변하지 않은 영역까지 재계산하여 부분적인 중복 계산이 발생된다.
이에 따라, 데이터 재사용을 통한 점진적인 그래프 스트림 처리 기법의 등장이 절실히 요청된다.
상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명은 변경되는 영역이 큰 경우, 그래프 데이터에 대한 재계산 영역을 탐색하여 처리하는 점진적 처리 기법 보다, 그래프 데이터의 전체를 일괄적으로 처리하는 기법을 선택하는, 그래프 변화량에 따라 점진적인 처리와 정적인 처리를 선택적으로 수행하기 위한 비용 모델을 제안하는 것을 목적으로 한다.
또한, 본 발명은 실제 처리된 이력을 바탕으로 탐색 비용과 처리 비용의 예측 값을 계산하고, 점진적 처리가 이득인 경우 점진적 처리를 선택적으로 수행하는 비용 모델을 제공하는 것을 목적으로 한다.
또한, 본 발명은, 그래프 스트림 환경에서 실시간 분석 결과를 제공해주기 위해 PowerGraph의 GAS 모델을 점진적으로 처리되도록 변형하는 점진적 처리 기법을 제공하는 것을 목적으로 한다.
또한, 본 발명은, 그래프의 변경되는 부분만을 처리하고 이전 결과 데이터를 재사용함으로써 데이터를 탐색하는 비용을 감소시키는 것을 목적으로 한다.
또한, 본 발명은 이전 결과를 재사용하는 점진적 처리 기법의 효율성을 높이기 위해 캐시 전략을 사용 함으로써, 캐시로부터 읽어온 데이터와 인접 정점의 데이터를 프리패치하여 반복적인 계산을 효율적으로 가속화하는 것을 목적으로 한다.
상기의 목적을 이루기 위한 그래프 스트림에서 비용 모델을 이용한 처리 방법은, 소셜 네트워크에서의, 사물 간의 상호 작용에 따른 그래프 스트림의 변경에 연동하여, 상기 그래프 스트림에 대한 변화량을 연산하는 단계, 상기 연산된 변화량에 기초하여, 상기 그래프 스트림을 처리하는 기법을 결정하는 단계, 및 상기 결정된 처리기법에 따라 상기 그래프 스트림을 처리하여 그래프를 갱신하는 단계를 포함할 수 있다.
또한, 상기 목적을 달성하기 위한 기술적 구성으로서, 소셜 네트워크에서의, 사물 간의 상호 작용에 따른 그래프 스트림의 변경에 연동하여, 상기 그래프 스트림에 대한 변화량을 연산하는 연산부와, 상기 연산된 변화량에 기초하여, 상기 그래프 스트림을 처리하는 기법을 결정하는 결정부, 및 상기 결정된 처리기법에 따라 상기 그래프 스트림을 처리하여 그래프를 갱신하는 갱신부를 포함하는 그래프 스트림에서 비용 모델을 이용한 처리 장치를 구성할 수 있다.
본 발명에 따르면, 스트림 환경에서 데이터 재사용을 고려한 효율적인 그래프 스트림 처리 기법을 제안 함으로써, 점진적 처리를 통해 변경된 영역 만을 처리하여 연산량을 감소시키며, 이전 결과 데이터를 재사용하여 계산되는 정점의 탐색 비용 및 디스크 I/O 비용을 감소시킬 수 있다.
또한, 본 발명에 따르면, 점진적 처리 시 그래프 많은 변경으로 인해 탐색 비용 및 처리 비용이 증가할 수 있기 때문에 점진적 처리와 정적인 처리를 선택적으로 수행하기 위한 비용 모델을 제안 함으로써, 실제 처리된 이력을 바탕으로 재계산 영역의 탐색 비용 및 처리 비용의 예측 값을 계산하여 점진적 처리가 정적인 처리보다 이득인 경우 점진적 처리를 수행할 수 있게 한다.
또한, 본 발명에 따르면, 캐시를 사용하여 읽어온 데이터와 인접 정점의 데이터를 저장하였다가 처리 시 메모리 매핑만을 수행하여 처리의 효율성을 높일 수 있다.
도 1는 본 발명의 일실시예에 따른 그래프 스트림에서 비용 모델을 이용한 처리 장치의 구체적인 구성을 나타내는 도면이다.
도 2는 본 발명에 따른, 그래프 스트림에서 비용 모델을 이용한 처리 방법에 관한 처리 구조를 설명하는 도면이다.
도 3은 본 발명에 따른 재계산 비용 예측에 사용되는 파라미터를 설명하는 도면이다.
도 4는 본 발명에 따른 재계산 영역을 설명하기 위한 도면이다.
도 5는 GAS 모델에서의 Vertex-Program을 예시한 도면이다.
도 6은 본 발명에 따른 iGAS 모델에서의 Vertex-Program을 예시한 도면이다.
도 7은 본 발명에 따른 iGAS의 재계산 영역을 탐색하는 일례를 설명하기 위한 도면이다.
도 8은 본 발명의 iGAS에서, 이전 결과를 재사용하는 일례를 설명하기 위한 도면이다.
도 9는 본 발명에 따른, 점진적 처리 시 수집되는 정점을 설명하기 위한 도면이다.
도 10 및 도 11은 GAS에서의 PageRank 계산과, 본 발명에 따른 iGAS에서의 PageRank 계산을 비교하기 위한 도면이다.
도 12는 본 발명에 따른 캐시 관리 정책을 설명하기 위한 도면이다.
도 13은 본 발명의 일실시예에 따른 그래프 스트림에서 비용 모델을 이용한 처리 방법을 구체적으로 도시한 작업 흐름도이다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1는 본 발명의 일실시예에 따른 그래프 스트림에서 비용 모델을 이용한 처리 장치의 구체적인 구성을 나타내는 도면이다.
본 발명의 그래프 스트림에서 비용 모델을 이용한 처리 장치(100)는, 연산부(110), 결정부(120), 및 갱신부(130)를 포함하여 구성될 수 있다. 또한, 처리 장치(100)는 실시예에 따라, 처리부(140)를 추가적으로 포함하여 구성할 수 있다.
우선, 연산부(110)는 소셜 네트워크에서의, 사물 간의 상호 작용에 따른 그래프 스트림의 변경에 연동하여, 상기 그래프 스트림에 대한 변화량을 연산한다. 즉, 연산부(110)는, 그래프에 대한 변경 요인이 발생함에 따라, 관련된 그래프 스트림을 입력받아, 그 변화 정도를 수치적으로 산출하는 역할을 한다.
여기서, 사물 간의 상호 작용은, 예컨대 소셜 네트워크에서 사용자가 신규로 가입하고, 이 신규 가입자가 기존 사용자와 팔로우 관계를 형성 함에 따른 관계 구도의 변경 등을 지칭할 수 있다.
또한, 그래프 스트림은 소녈 네트워크 상에서 사용자(정점)와, 사용자(정점) 사이의 연결(간선)을 표현하는 그래프를, 실시간으로 변화시키는 데이터/정보를 지칭할 수 있다.
변화량의 연산에 있어, 연산부(110)는, 그래프 스트림을 처리하는 데에 소요되는 비용을 예측할 수 있다. 즉, 연산부(110)는 그래프 갱신의 발생 횟수(θλ), 그래프 갱신시 영향을 받는 정점의 개수(σλ), 실제 재계산되는 영역의 탐색 비용(γλ), 및 실제 처리비용(δλ) 중 적어도 하나를 이용하여, 상기 비용을 예측할 수 있다. 연산부(110)는 이들 파라미터를 후술하는 수학식 1 내지 수학식 8에 순차적으로 대입하여 소요되는 비용을 예측할 수 있다.
연산부(110)는 상기 예측된 비용에 비례하여 상기 변화량을 높게 연산할 수 있다. 즉, 연산부(110)는 예측된 비용이 높을수록, 그래프 스트림에 대한 변화량이 높은 것으로 판단하고, 반면 예측된 비용이 낮을수록, 그래프 스트림에 대한 변화량이 낮은 것으로 판단할 수 있다.
결정부(120)는, 상기 연산된 변화량에 기초하여, 상기 그래프 스트림을 처리하는 기법을 결정한다. 즉, 결정부(120)는 변화량이 많아 그에 따른 탐색 비용 및 처리 비용이 증가하는지를 고려하여, 그래프 스트림에 대한 처리 방식을, 점진적 처리 기법(iGAS)으로 할지, 정적 처리 기법(GAS)으로 할지를 결정할 수 있다.
상기 변화량이, 선정된 수치 보다 큰 경우, 결정부(120)는, 상기 그래프 스트림의 변경에 따라 영향을 받는 그래프의 부분을 탐색하고, 상기 탐색된 부분과 관련한 그래프 스트림의 일부를 처리하는 점진적 처리 기법(iGAS)을 결정할 수 있다.
반면, 상기 변화량이, 선정된 수치보다 같거나 작은 경우, 결정부(120)는, 상기 그래프 스트림의 전체를 처리하는 정적 처리 기법(GAS)을 결정할 수 있다.
여기서 수치는, 본 발명의 발명자가 반복된 실험과 연구를 통해, 적정하다고 판단하여 선정한 값일 수 있고, 본 발명을 구현하는 데에 있어서의 전체 운영비를 고려하여 주변 환경에 따라 유연하게 변경할 수 있는 값일 수 있다.
만약, 결정부(120)에 의해 점진적 처리 기법(iGAS)을 결정한 경우, 처리 장치(100)는, 처리부(140)를 더 포함하여 구성될 수 있다.
처리부(140)는 상기 그래프 스트림으로부터 프리패치 데이터를 읽어, 캐시에 저장하고, 상기 캐시에 저장된 프리패치 데이터를 추출하여 상기 점진적 처리 기법으로 처리하고, 상기 처리에 따른 결과 데이터를 상기 캐시에 다시 저장할 수 있다.
이러한 캐시에 의한 그래프 스트림의 처리에 의해서는, 캐시를 사용하여 읽어온 데이터와 인접 정점의 데이터를 저장하였다가 처리 시 메모리 매핑 만을 수행할 수 있게 함으로써, 처리의 효율성을 높일 수 있다.
또한, 갱신부(130)는, 상기 결정된 처리기법에 따라 상기 그래프 스트림을 처리하여 그래프를 갱신한다. 즉, 갱신부(130)는 상기 사물을 정점으로 하고, 상기 정점 간을 연결하는 간선으로 구성되는 그래프를, 상기 그래프 스트림의 처리에 기초하여 시간에 흐름에 따라 변화시켜 상기 그래프를 갱신할 수 있다.
본 발명에 따르면, 스트림 환경에서 데이터 재사용을 고려한 효율적인 그래프 스트림 처리 기법을 제안 함으로써, 점진적 처리를 통해 변경된 영역 만을 처리하여 연산량을 감소시키며, 이전 결과 데이터를 재사용하여 계산되는 정점의 탐색 비용 및 디스크 I/O 비용을 감소시킬 수 있다.
또한, 본 발명에 따르면, 점진적 처리 시 그래프 많은 변경으로 인해 탐색 비용 및 처리 비용이 증가할 수 있기 때문에 점진적 처리와 정적인 처리를 선택적으로 수행하기 위한 비용 모델을 제안 함으로써, 실제 처리된 이력을 바탕으로 재계산 영역의 탐색 비용 및 처리 비용의 예측 값을 계산하여 점진적 처리가 정적인 처리보다 이득인 경우 점진적 처리를 수행할 수 있게 한다.
또한, 본 발명에 따르면, 캐시를 사용하여 읽어온 데이터와 인접 정점의 데이터를 저장하였다가 처리 시 메모리 매핑만을 수행하여 처리의 효율성을 높일 수 있다.
각종 센서 또는 사용자들이 실시간으로 생성하는 그래프 스트림 환경에서 그래프는 점차 증가하고 동적으로 변화한다. 새로운 그래프 스트림이 발생했을 때 전체를 계산하는 것보다 변경된 일부분 만을 계산하는 것이 더욱 효율적일 수 있다.
본 발명에서는 기존 점진적 처리 기법의 문제점인 계산되는 정점에 연결된 인접 정점들을 다시 탐색하는 비용과 디스크 I/O 비용을 감소시키기 위하여 이전 결과 데이터를 재사용하는 기법과 점진적 처리를 가속화하는 캐시 전략을 제안한다.
또한, 그래프 변화에 따라 재계산 영역에 대한 탐색 및 처리 비용이 증가하기 때문에 정적 처리와 점진적 처리를 선택적으로 수행하는 비용 모델을 제안한다.
비용 모델은 점진적 처리가 이득인 경우, 그래프 갱신에 의해 영향을 받는 영역을 탐색하고, 그 영역에 대해 점진적인 처리를 수행하여 결과를 생성하는 모델일 수 있다.
도 2는 본 발명에 따른, 그래프 스트림에서 비용 모델을 이용한 처리 방법에 관한 처리 구조를 설명하는 도면이다.
단계 210에서는, 각종 센서나 사용자들로부터 생성되는 그래프 스트림을 수집할 수 있다.
단계 220에서는, 상기 수집된 그래프 스트림을 실제 처리된 이력을 바탕으로 통계치를 계산 함으로써, 재계산 비용 예측을 수행할 수 있다.
단계 230에서는, 각 처리 기법의 예측 값을 계산하여 점진적 처리 여부를 판별하는 비용 모델을 구성할 수 있다.
상기 비용 모델을 이용한 점진적 처리 여부의 판별 결과, 점진적 처리가 비용적으로 이득인 경우, 단계 240에서는, iGAS(Incremental Gather-Apply-Scatter)를 수행하여 그래프 갱신에 의해 영향을 받은 영역을 점진적으로 처리할 수 있다.
반면, 점진적 처리가 비용적으로 이득을 보지 못하는 경우, 단계 250에서는, GAS를 수행하여 그래프 스트림의 전체 데이터를 정적으로 처리할 수 있다.
또한, 본 발명의 처리 방법에서는, 점진적 처리 기법(iGAS)을 수행할 시 캐시 전략을 사용(단계 260)하여, 한번 읽어온 데이터와 계산된 결과 데이터를 저장하고, 인접하는 정점의 데이터를 프리패치하여 점진적 처리 수행 시 효율성을 높이고 디스크 I/O 비용을 감소시킬 수 있다.
또한, 본 발명의 처리 방법에서는, 그래프 스트림의 갱신이 발생하면, 전체 그래프에서 얼마만큼의 변화가 일어나는지 파악 함으로써, 그래프 처리 시 소요되는 비용을 예측할 수 있다.
재계산 비용 예측은, 비용 모델을 계산하기 위해 필요한 인자를 수집 및 계산하여 비용 모델로 전달하는 과정일 수 있다. 비용 모델에서 점진적 처리 비용의 예측 값은, 탐색 비용 및 처리 비용을 고려하여 산출할 수 있다. 이러한 탐색 비용 및 처리 비용은, 재계산 영역의 데이터가 많을수록 증가하는 경향이 있다.
재계산 비용 예측에 있어, 비용 모델에서 수집되는 파라미터는, 평균적으로 재계산 되어야 하는 정점의 개수(μ), 탐색 비용의 과거 통계치(α), 처리 비용의 과거 통계치(β)일 수 있고, 이러한 파라미터는 수학식 1, 수학식 2, 수학식 3에 의해 계산되어 비용 모델로 전달 될 수 있다.
Figure 112018038995377-pat00001
Figure 112018038995377-pat00002
Figure 112018038995377-pat00003
수학식 1, 수학식 2, 수학식 3에 공통적으로 들어가는 λ는 그래프 갱신 발생 횟수를 의미할 수 있다. 예를 들어 과거에 3번의 그래프 갱신이 발생하였다고 가정한다면, 재계산 비용 예측에서는, 각 파라미터로서 θ1, θ2, θ3, σ1, σ2, σ3, γ1, γ2, γ3, δ1, δ2, δ3의 값을 수집하여 평균적인 예측 값들을 계산할 수 있다.
도 3은 본 발명에 따른 재계산 비용 예측에 사용되는 파라미터를 설명하는 도면이다.
본 발명에 따른 처리 방법에 있어, 수집 영역은, 그래프 스트림의 업데이트 로그(Update log), 점진적 처리 기법(iGAS), 정적 처리 기법(GAS) 등일 수 있다.
또한, 수집되는 파라미터로는, 그래프 갱신의 발생 횟수(θλ), 그래프 갱신시 영향을 받는 정점의 개수(σλ), 실제 재계산되는 영역의 탐색 비용(γλ), 및 실제 처리비용(δλ) 일 수 있다. 여기서, 그래프 갱신의 발생 횟수(θλ)는, 상기 업데이트 로그(Update log)와 관계되고, 영향을 받는 정점의 개수(σλ)와, 실제 재계산되는 영역의 탐색 비용(γλ)은 점진적 처리 기법(iGAS)과 관계될 수 있다. 또한, 실제 처리비용(δλ)은 정적 처리 기법(GAS)과 관계될 수 있다.
평균적으로 재계산 되어야 하는 정점의 개수(μ)는, 하나의 데이터가 입력되었을 때 전체 그래프에서 영향을 받아 재계산되어야 하는 정점들의 평균적인 개수일 수 있다. 이 때, 많은 연결이 있는 정점의 경우에는, 영향을 받는 정점의 개수(μ)가 증가하기 때문에 비례적으로 재계산 되어야 하는 정점의 개수도 증가된다.
도 2와 같은 그래프 스트림에서, 평균적으로 재계산 되어야 하는 정점의 개수(μ)는, 그래프 갱신의 발생 횟수(θλ)와 iGAS에서 실제 처리된 이력을 바탕으로 그래프 갱신시 영향을 받는 정점의 개수(σλ)를 수집하여 계산될 수 있다.
또한, 탐색 비용의 과거 통계치(α)는 하나의 정점을 탐색하는데 발생하는 비용을 의미하며, 변화량이 큰 경우 탐색 비용이 증가하여 이에 비례하여 증가할 수 있다. 탐색 비용의 과거 통계치(α)는 그래프 갱신의 발생 횟수(θλ)와 실제 재계산되는 영역의 탐색 비용(γλ)을 수집하여 계산할 수 있다.
처리 비용의 과거 통계치(β)는 하나의 정점을 처리하는데 발생하는 비용을 의미하며, 시스템 부하에 따라 값이 유동적으로 변할 수 있다. 처리 비용의 과거 통계치(β)는 그래프 갱신의 발생 횟수(θλ)와 실제 처리비용(δλ)을 수집하여 계산할 수 있다.
예를 들어, 그래프 갱신에 의한 입력과 영향을 받는 데이터가 각각 θ1 = 2, σ1 = 8, θ2 = 5, σ2 = 15, θ3 = 20, σ3 = 20으로 세 번 발생했다고 가정한다.
이때 μ는 수학식 1에 의하여 (8/2 + 15/5 + 20/4_) / 3 = 4가 되며, 이는 1개의 입력이 발생할 때 평균적으로 4개를 처리해야 하는 의미가 된다.
그래프 갱신에 의해 영향을 받는 정점의 개수(σλ)는 앞선 예제와 동일하고, 실제 재계산되는 영역의 탐색 비용(γλ)과, 실제 처리비용(δλ)이 각각 γ1 = 0.02, γ2 = 0.03, γ3 = 0.04, δ1 = 0.02, δ2 = 0.03, δ3 = 0.04로 발생하였다고 가정한다.
이때, 탐색 비용(γλ)과, 실제 처리비용(δλ)의 과거 통계치는 수학식 2와 3에 의하여, (0.02/8 + 0.03/15 + 0.04/20)/3 = 0.002가 되며, 이는 하나의 정점을 탐색하거나 처리하는 데에 0.002의 비용이 발생하게 되는 것을 의미한다.
본 발명에서는, 그래프 갱신에 따라, 탐색 비용(γλ)과, 실제 처리비용(δλ)이 증가하기 때문에 정적 처리 기법(GAS)과 점진적 처리 기법(iGAS)의 예측 값을 계산하여, 선택적인 처리 기법을 수행한다.
점진적인 처리를 통해 변경되는 부분 만을 처리 한다면, 처리량과 디스크 I/O 비용을 감소시킬 수 있지만, 그래프 갱신에 의해 그래프의 대부분을 재계산해야 하는 경우 점진적 처리 기법(iGAS)은 재계산 영역을 탐색하는 비용이 포함되기 때문에 정적 처리 기법(GAS) 보다 이점을 얻을 수 없다.
변화량이 많은 경우에는 재계산 영역을 탐색하지 않고 일괄적으로 처리하는 정적 처리 기법(GAS)이 이득일 것이며, 반면 변화량이 작은 경우에는 그래프 갱신에 의해 영향을 받는 영역만을 탐색한 후 처리하는 점진적 처리 기법(iGAS)이 이득일 것으로 예상된다.
따라서, 처리의 효율성을 높이기 위해, 본 발명에서는, 그래프 변화량에 따라 점진적 처리 기법(iGAS)과 정적 처리 기법(GAS)을 선택적으로 수행할 수 있다.
제안하는 비용 모델은 재계산 비용 예측에서 계산된 파라미터들을 바탕으로 그래프 갱신에 의해 앞으로 발생할 정적 처리 비용과 점진적 처리 비용의 예측 값을 계산하고, 점진적 처리 기법(iGAS)이 이득인 경우 선택적으로 수행한다.
비용 모델은 예상 정적 처리 비용과 예상 점진적 처리 비용의 차로서, 수학식 4를 나타낸다.
Figure 112018038995377-pat00004
이때, Cost(static)는 정적 처리 기법(GAS)을 수행하였을 때 예상되는 비용이고, Cost(incremental)는 점진적 처리 기법(iGAS)의 예측 값을 의미할 수 있다.
수학식 4의 계산 결과, 점진적 처리 기법(iGAS)이 이득인 경우에는, 양수로 나타날 것이다.
예상 정적 처리 비용(Cost(static))은 수학식 5에 의해 계산되며, 도 2의 그래프에서 수집한 전체 그래프 데이터의 개수(τ)와 재계산 비용 예측에서 계산된 처리 비용의 과거 통계치(β)의 곱으로 계산된다.
Figure 112018038995377-pat00005
예상 점진적 처리 비용(Cost(incremental)은 수학식 6과 같이 재계산 영역을 탐색하는 비용(detection cost)과, 재계산 영역을 처리하는 비용(processing cost)이 모두 반영한다.
Figure 112018038995377-pat00006
예상 점진적 처리 비용(Cost(incremental)에서 고려되는 탐색 비용과 처리 비용은, 재계산 할 그래프 영역에 있는 데이터의 개수가 많을수록 증가할 수 있다. 탐색 비용과 처리 비용은, 각각 수학식 7과 8로 나타낸다. 이때, 수학식 7 및 8에서 사용되는 파라미터는, 재계산 비용 예측에서 계산된 그래프 갱신에 의해 영향을 받아 평균적으로 재계산 되어야 하는 정점의 개수(μ), 탐색 비용의 과거 통계치(α), 처리 비용의 과거 통계치(β)를 사용한다.
Figure 112018038995377-pat00007
Figure 112018038995377-pat00008
전체 그래프의 데이터(τ)가 40개이고, β = 0.002로 가정할 때 예상 정적 처리 비용은 수학식 5에 의하여 0.08이 되고, α = 0.002, β = 0.002, μ = 4, θ = 3으로 가정할 때 예상 점진적 처리 비용은 수학식 6에 의하여 0.048이 된다. 이를 수학식 4에 따라 계산하여 도출된 값은 양수(0.08-0.048)이고, 이를 통해 점진적 처리가 이득임을 판단하여 iGAS를 수행할 수 있다.
비용 모델의 결과로 그래프의 변화량이 많아 점진적 처리 기법이 이득을 보지 못하는 경우에는 기존의 GAS를 통해 정적으로 처리할 수 있다. 반면, 그래프의 변화량이 작아 점진적 처리 기법이 이득을 볼 수 있다고 판단되면, 비용 모델은 iGAS를 통해 점진적으로 수행할 수 있다.
본 발명에서는 실시간으로 분석 결과를 제공하기 위해, 기존의 PowerGraph에서 제안된 GAS 모델을 점진적으로 처리되도록 변형한 iGAS 모델을 제안한다.
GAS 모델은 그래프 병렬처리 시스템으로 단일 서버의 한계를 극복하기 위해 여러 서버에 데이터를 분산 저장하고 병렬 처리한다. 제안하는 iGAS 모델은 변경되는 부분만을 처리함으로써 중복 계산을 하지 않는다. 또한, iGAS 모델은 이전에 생성된 결과 데이터를 재사용함으로써 데이터를 다시 탐색하는 비용을 감소시킨다.
도 4는 본 발명에 따른 재계산 영역을 설명하기 위한 도면이다.
PowerGraph는 정적 처리 기법으로 데이터를 처리하기 때문에 도 4의 모든 영역(a)을 계산하여 영향을 받지 않는 부분까지 재계산 하게 된다.
기존의 제안된 점진적인 처리 기법은 도 4의 영역(b)에서 정점 B가 삽입되는 경우 직접적으로 영향을 받는 정점 A와, 그로 인해 영향을 받는 정점 C, D, E는 재계산 영역에 포함한다. 하지만, 정점 A에 영향을 주는 정점 F, G, H, I, J 역시 정점 A가 계산되기 위해 재계산 영역에 포함되어야 한다.
기존의 제안된 점진적인 처리 기법은 영역(b)와 같이 정점 A가 계산되어야 할 때 많은 수의 연결이 있는 경우 정점 A에 연결된 정점 수만큼 데이터를 다시 탐색하여 계산해야 하는 문제점이 발생한다.
본 발명에서는 기존 점진적 처리 기법의 문제점을 개선하고자 GAS 모델에 이전에 생성된 결과 데이터를 재사용하여 다시 탐색하는 비용을 줄일 수 있도록 하였다. 이를 통해 그래프 갱신에 의해 영향을 받는 영역(c) 만을 처리하여 데이터 처리 시간을 감소시킨다.
GAS 모델은 그래프를 처리하기 위한 계산 모델로서, Gather-Apply-Scatter 세 단계로 구분될 수 있다.
Gather 단계는 분산 환경에서 Pregel과 같이 서버에서 처리되는 정보를 중간 취합하여 메시지를 받는 방식을 사용하며, 연결된 정점의 정보를 수집한다. Apply 단계는 수집된 정보를 계산하고, GraphLab의 Ghosting 방식을 적용하여 계산된 결과를 공유메모리를 통해 서버 간 공유한다. Scatter 단계는 계산된 결과를 주변 정점으로 전파하는 과정이다. GAS 모델은 이들 세 가지 단계를 반복적으로 수행한다.
도 5는 GAS 모델에서의 Vertex-Program을 예시한 도면이다.
대부분의 데이터 마이닝 또는 머신러닝 알고리즘과 같이, 복잡하고 반복적인 형태를 갖는 그래프 작업들은, 해당 정점의 값이 계산되기 위하여 주변 정점들의 정보를 반복적으로 요청하는 형태를 갖고 있기 때문에, GAS 모델은 그래프 분석 알고리즘의 구조적인 측면에서 효율적이다. 또한, PowerGraph는 인접 정점을 이용하여 계산하는 복잡한 알고리즘에서 기존 그래프 병렬처리 시스템들 중 가장 빠른 분석 결과를 제공해주는 것으로 나타났기 때문에 제안하는 기법에서 정적 처리 시 GAS 모델을 사용한다.
도 6은 본 발명에 따른 iGAS 모델에서의 Vertex-Program을 예시한 도면이다.
본 발명의 iGAS 모델에서는 기존의 GAS 모델을 점진적으로 변형하여 변경되는 영역만을 재계산한다.
iGAS 모델에서 Gather 단계는 인접한 정점들 중 변경되는 정점의 이전 값과 현재 값을 수집하고 캐시된다. Gather 단계에서는, 캐시 정책에 의해 이전 값이 캐시에 존재하는 경우에 캐시에서 수집하고, 만약 이전 값이 캐시에 존재하지 않는 경우에 디스크에서 읽어온 뒤 캐시에 저장한다.
Gather 단계에서의 수집 단계가 완료된 후, Apply 단계에서는 변경되는 정점의 데이터를 이용하여 정점의 새로운 값을 계산한다. PageRank 알고리즘의 경우, Apply 단계에서는 역함수를 취해 남은 인접 정점들로부터 수집된 값에서 변경된 부분의 정점 값만을 수정하여 새로운 값을 계산한다.
Scatter 단계는 인접한 정점으로 해당 정점이 변경되었음을 기록하고 계산된 새로운 값을 전파한다.
도 7은 본 발명에 따른 iGAS의 재계산 영역을 탐색하는 일례를 설명하기 위한 도면이다.
도 7에 도시한 바와 같이, iGAS는 그래프 갱신이 발생하면 그래프 갱신에 의해 영향을 받는 부분을 탐색하여 계산한다.
예컨대, 변화하는 그래프 스트림 (4, 1)이고 영향을 받는 부분으로 1을 찾는 경우, iGAS는 그래프에서 기존 그래프 스트림 1에 관한 (1, 0)과 (1, 5)를 탐색할 수 있다. 이어서, 탐색된 (1, 0)과 (1, 5)에서 영향을 받는 부분으로, iGAS는 기존 그래프 스트림 0과 5에 관해 존재하는 (0, 5)를 탐색할 수 있다. 계속해서 탐색된 (0, 5)에서 영향을 받는 부분을 탐색하지만, iGAS는 기존 그래프 스트림 5에 관해 존재하는 데이터가 없어 더 이상의 탐색을 하지 않는다. 이에 따라, 재개산영역으로 iGAS는 그래프 스트림 (4, 1), (1, 0), (1, 5), (0, 5)을 탐색할 수 있다.
이때, 그래프 알고리즘의 대부분은 비교 연산이 많은 특성을 갖기 때문에 연결 리스트나 배열로 구현한다면 재계산 영역 탐색 비용은 큰 오버헤드를 갖게 될 것이다. 따라서, iGAS에서는 해시 맵으로 구현하여 데이터에 접근함으로써, 재계산 영역 탐색 비용을 감소시켜야 한다.
도 8은 본 발명의 iGAS에서, 이전 결과를 재사용하는 일례를 설명하기 위한 도면이다.
도 8에서는 본 발명에서 제안하는 기법의 이전 결과 데이터를 반복적으로 재사용하는 것을 보여준다.
예컨대, 발생한 그래프 스트림 (0, 1), (2, 3), (4, 5), ? 에 대해, 본 발명의 iGAS에서는, 우선 input (0, 8), (16, 24), (32, 40), ? 를 node에 담아 처리하여, 그 결과를 result 1로 유지할 수 있다.
다음으로, 본 발명의 iGAS에서는, 유지된 result 1의 결과를, node로 가져와, 다음 input인 (1, 9), (17, 25), (33, 41), ? 에 대한 처리시 함께 처리하여, 그 결과를 result 2로 유지할 수 있다.
이후, 본 발명의 iGAS에서는, 도 8에서와 같이, 이전 결과 데이터를 반복적으로 재사용하여, input에 대해 신속한 처리를 수행할 수 있다.
이에 따라, 본 발명의 iGAS에 의해서는, 연결되어 있는 전체 데이터를 수집할 필요가 없이, 변경되는 정점의 이전 결과 데이터 만을 수집 함으로써, 기존에 제안된 점진적인 처리 기법 보다 디스크 I/O 비용을 감소시킬 수 있다.
도 9는 본 발명에 따른, 점진적 처리 시 수집되는 정점을 설명하기 위한 도면이다.
도 9에는 iGAS 수행 시 수집되는 정점이 도시되어 있다.
정점 v1이 그래프 갱신에 의해 변경되었다면, 본 발명의 iGAS에서는 계산되는 해당 정점 u에 인접한 정점들 중 변경되는 정점 v1의 이전 결과 데이터와 현재 결과 데이터를 수집하고, 적용 단계에서 정점 u의 새로운 값을 계산한다.
또한, 본 발명의 iGAS에서는 새로 계산된 정점 u의 값을 인접한 정점 v4에게 전파하고, 정점 v4에 대해, 정점 u의 값만을 수집하여 새로운 값을 계산한다.
이에 따라, 제안하는 점진적 처리 기법을 통해서는, 그래프 스트림 처리 시 데이터의 중복 처리가 감소하고 연결된 정점의 재탐색 비용을 감소시켜 데이터의 처리 속도를 향상시킬 수 있다.
도 10 및 도 11은 GAS에서의 PageRank 계산과, 본 발명에 따른 iGAS에서의 PageRank 계산을 비교하기 위한 도면이다.
PageRank 계산 알고리즘의 경우, 일반적인 GAS는 도 10에서의 newval(0)과 같이, 모든 정점 '0, 5, 1, 2, 3'을 대상으로 처리되는 모든 루트에 대해 계산되지만, iGAS에서는 도 11과 같이 우선, 변경되는 정점 '1'의 이전 결과 값(정점 4의 결과값)을 수집하여 정점 '1에 대해 계산한다. 이후, iGAS에서는 정점 '1'에서 분기되는 정점 '0'과 정점 '5'에 대해, 정점 '1'에 대한 결과값을 사용하여, 계산할 수 있다. 즉, iGAS에서는 인접 정점들 중 변경된 정점의 이전 결과 값을 수집하여 계산함으로써 디스크 I/O 비용을 줄일 수 있다.
효율적인 점진적 처리 기법을 수행하기 위해서는, 데이터 처리 결과의 재사용이 필요하다. 캐시는, 컴퓨터 시스템의 성능을 향상시키기 위해 주로 CPU 안에 포함되는 메모리의 일종이다. 데이터 처리 시 한번 사용한 데이터는, 다시 사용할 가능성이 높고, 그 주변의 데이터도 곧 사용할 가능성이 높은 데이터로서의 지역성을 가지고 있기 때문에 처리의 성능을 높일 수 있다.
본 발명에서는 iGAS 수행 시 캐시 전략을 사용하여 한번 읽어온 데이터와 계산된 결과 데이터를 저장하고, 인접 정점의 데이터를 프리패치하여 점진적 처리 수행 시 효율성을 높이고 디스크 I/O비용을 감소시킨다.
만약, 메모리가 가득 차게 되면, 본 발명에서는 LRU(least recently used) 기법을 사용하여 가장 오래된 데이터를 퇴출함으로써 메모리를 관리할 수 있다.
Gather 단계에서 변경되는 데이터의 이전 값과 현재 값이 캐시에 없는 경우, 본 발명에서는 캐싱 되고 이후 연산에서 해당 정점의 값을 읽어올 때 캐시에 있는 데이터를 사용하여 데이터 처리 속도를 감소시킬 수 있다.
캐시는 한번 읽어온 데이터 외에도 정점이 iGAS 모델에 의해 처리되는 동안 인접한 정점의 데이터를 미리 캐시에 저장하였다가 그래프 처리 시 메모리 매핑만을 수행하게 함으로써, 효율을 향상시킬 수 있다.
캐시에 데이터가 누적되다가 가득 차게 되면 더 이상 데이터를 저장할 수 없기 때문에 효율적인 메모리 관리는 필수적이다. 일반적으로 실시간 그래프 분석에 사용되는 데이터는 최신의 데이터를 중심으로 이루어지므로 LRU 기법을 사용하여 메모리 관리를 할 수 있다. LRU 기법은 사용한 지 가장 오래된 데이터를 퇴출시키는 알고리즘으로서, 메모리 공간이 부족한 경우 최저 사용 빈도를 갖는 데이터를 디스크로 저장하는 기법이다.
도 12는 본 발명에 따른 캐시 관리 정책을 설명하기 위한 도면이다.
도 12에는 캐시의 관리 정책을 나타낸다.
그래프 스트림이 입력되면, 해시-맵을 이용하여 데이터의 해시키 값이 생성된다. 이때 키는 정점의 번호가 해시함수를 통해 구해진 값이며, 값에는 변화 유무, 이전 값, 현재 값, 출력 간선 수(out-degree)와 같은 정보들이 저장된다.
이후 iGAS가 수행되며, iGAS에 의해서는 캐시에 있는 해시키 값과 일치하는 정점이 계산될 때 변화한 인접 정점의 데이터를 수집하여 처리하는데 이용될 수 있다. iGAS에 의해 처리된 새로운 결과는 다시 캐시에 저장되어, 인접한 정점이 계산될 때 캐시에서 처리 결과를 불러와 재사용할 수 있게 한다.
예컨대, 도 12에는, 업데이트되는 정점 v1의 해쉬 키 'asgd45fd...'의 결과 값 '0.2775'와, 정점 v1에 의해 영향을 받는 정점 u의 해쉬 키 'f5g45ds2...'의 이전 결과 값 '0.361575'를 이용하여, 새로운 결과를 도출해내는 'iGAS Vertex-Program'이 예시되고 있다.
이하, 본 발명의 실시예에 따른 그래프 스트림에서 비용 모델을 이용한 처리 방법의 작업 흐름을 상세히 설명한다.
도 13은 본 발명의 일실시예에 따른 그래프 스트림에서 비용 모델을 이용한 처리 방법을 구체적으로 도시한 작업 흐름도이다.
본 실시예에 따른 그래프 스트림에서 비용 모델을 이용한 처리 방법은 상술한 처리 장치(100)에 의해 수행될 수 있다.
처리 장치(100)는 소셜 네트워크에서의, 사물 간의 상호 작용에 따른 그래프 스트림의 변경에 연동하여, 상기 그래프 스트림에 대한 변화량을 연산한다(1310). 단계(1310)는, 그래프에 대한 변경 요인이 발생함에 따라, 관련된 그래프 스트림을 입력받아, 그 변화 정도를 수치적으로 산출하는 과정일 수 있다.
여기서, 사물 간의 상호 작용은, 예컨대 소셜 네트워크에서 사용자가 신규로 가입하고, 이 신규 가입자가 기존 사용자와 팔로우 관계를 형성 함에 따른 관계 구도의 변경 등을 지칭할 수 있다.
또한, 그래프 스트림은 소녈 네트워크 상에서 사용자(정점)와, 사용자(정점) 사이의 연결(간선)을 표현하는 그래프를, 실시간으로 변화시키는 데이터/정보를 지칭할 수 있다.
변화량의 연산에 있어, 처리 장치(100)는, 그래프 스트림을 처리하는 데에 소요되는 비용을 예측할 수 있다. 즉, 처리 장치(100)는 그래프 갱신의 발생 횟수(θλ), 그래프 갱신시 영향을 받는 정점의 개수(σλ), 실제 재계산되는 영역의 탐색 비용(γλ), 및 실제 처리비용(δλ) 중 적어도 하나를 이용하여, 상기 비용을 예측할 수 있다.
처리 장치(100)는 상기 예측된 비용에 비례하여 상기 변화량을 높게 연산할 수 있다. 즉, 처리 장치(100)는 예측된 비용이 높을수록, 그래프 스트림에 대한 변화량이 높은 것으로 판단하고, 반면 예측된 비용이 낮을수록, 그래프 스트림에 대한 변화량이 낮은 것으로 판단할 수 있다.
또한, 처리 장치(100)는, 상기 연산된 변화량에 기초하여, 상기 그래프 스트림을 처리하는 기법을 결정한다(1320). 단계(1320)는 변화량이 많아 그에 따른 탐색 비용 및 처리 비용이 증가하는지를 고려하여, 그래프 스트림에 대한 처리 방식을, 점진적 처리 기법(iGAS)으로 할지, 정적 처리 기법(GAS)으로 할지를 결정하는 과정일 수 있다.
상기 변화량이, 선정된 수치 보다 큰 경우, 처리 장치(100)는, 상기 그래프 스트림의 변경에 따라 영향을 받는 그래프의 부분을 탐색하고, 상기 탐색된 부분과 관련한 그래프 스트림의 일부를 처리하는 점진적 처리 기법(iGAS)을 결정할 수 있다.
반면, 상기 변화량이, 선정된 수치보다 같거나 작은 경우, 처리 장치(100)는, 상기 그래프 스트림의 전체를 처리하는 정적 처리 기법(GAS)을 결정할 수 있다.
여기서 수치는, 본 발명의 발명자가 반복된 실험과 연구를 통해, 적정하다고 판단하여 선정한 값일 수 있고, 본 발명을 구현하는 데에 있어서의 전체 운영비를 고려하여 주변 환경에 따라 유연하게 변경할 수 있는 값일 수 있다.
점진적 처리 기법(iGAS)이 결정됨에 따라, 처리 장치(100)는 상기 그래프 스트림으로부터 프리패치 데이터를 읽어, 캐시에 저장하고, 상기 캐시에 저장된 프리패치 데이터를 추출하여 상기 점진적 처리 기법으로 처리하고, 상기 처리에 따른 결과 데이터를 상기 캐시에 다시 저장할 수 있다.
이러한 캐시에 의한 그래프 스트림의 처리에 의해서는, 캐시를 사용하여 읽어온 데이터와 인접 정점의 데이터를 저장하였다가 처리 시 메모리 매핑 만을 수행할 수 있게 함으로써, 처리의 효율성을 높일 수 있다.
또한, 처리 장치(100)는, 상기 결정된 처리기법에 따라 상기 그래프 스트림을 처리하여 그래프를 갱신한다(1330). 단계(1330)는 상기 사물을 정점으로 하고, 상기 정점 간을 연결하는 간선으로 구성되는 그래프를, 상기 그래프 스트림의 처리에 기초하여 시간에 흐름에 따라 변화시켜 상기 그래프를 갱신하는 과정일 수 있다.
본 발명에 따르면, 스트림 환경에서 데이터 재사용을 고려한 효율적인 그래프 스트림 처리 기법을 제안 함으로써, 점진적 처리를 통해 변경된 영역 만을 처리하여 연산량을 감소시키며, 이전 결과 데이터를 재사용하여 계산되는 정점의 탐색 비용 및 디스크 I/O 비용을 감소시킬 수 있다.
또한, 본 발명에 따르면, 점진적 처리 시 그래프 많은 변경으로 인해 탐색 비용 및 처리 비용이 증가할 수 있기 때문에 점진적 처리와 정적인 처리를 선택적으로 수행하기 위한 비용 모델을 제안 함으로써, 실제 처리된 이력을 바탕으로 재계산 영역의 탐색 비용 및 처리 비용의 예측 값을 계산하여 점진적 처리가 정적인 처리보다 이득인 경우 점진적 처리를 수행할 수 있게 한다.
또한, 본 발명에 따르면, 캐시를 사용하여 읽어온 데이터와 인접 정점의 데이터를 저장하였다가 처리 시 메모리 매핑만을 수행하여 처리의 효율성을 높일 수 있다.
본 발명의 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. 
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
100 : 처리 장치 110 : 연산부
120 : 결정부 130 : 갱신부
140 : 처리부

Claims (14)

  1. 소셜 네트워크에서의, 사물 간의 상호 작용에 따른 그래프 스트림의 변경에 연동하여,
    상기 그래프 스트림을 처리하는 데에 소요되는 비용을 예측하는 단계;
    상기 예측된 비용에 비례하여 상기 그래프 스트림에 대한 변화량을 높게 연산하는 단계;
    상기 연산된 변화량에 기초하여, 상기 그래프 스트림을 처리하는 기법을 결정하는 단계; 및
    상기 결정된 처리기법에 따라 상기 그래프 스트림을 처리하여 그래프를 갱신하는 단계로서, 상기 사물을 정점으로 하고, 상기 정점 간을 연결하는 간선으로 구성되는 그래프를, 상기 그래프 스트림의 처리에 기초하여 시간에 흐름에 따라 변화시켜 상기 그래프를 갱신하는 단계
    를 포함하는 그래프 스트림에서 비용 모델을 이용한 처리 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 변화량이, 선정된 수치 보다 큰 경우,
    상기 처리하는 기법을 결정하는 단계는,
    상기 그래프 스트림의 변경에 따라 영향을 받는 그래프의 부분을 탐색하는 단계; 및
    상기 탐색된 부분과 관련한 그래프 스트림의 일부를 처리하는 점진적 처리 기법(iGAS)을 결정하는 단계
    를 포함하는 그래프 스트림에서 비용 모델을 이용한 처리 방법.
  4. 제3항에 있어서,
    상기 처리 방법은,
    상기 그래프 스트림으로부터 프리패치 데이터를 읽어, 캐시에 저장하는 단계; 및
    상기 캐시에 저장된 프리패치 데이터를 추출하여 상기 점진적 처리 기법으로 처리하고, 상기 처리에 따른 결과 데이터를 상기 캐시에 다시 저장하는 단계
    를 더 포함하는 그래프 스트림에서 비용 모델을 이용한 처리 방법.
  5. 제1항에 있어서,
    상기 변화량이, 선정된 수치보다 같거나 작은 경우,
    상기 처리하는 기법을 결정하는 단계는,
    상기 그래프 스트림의 전체를 처리하는 정적 처리 기법(GAS)을 결정하는 단계
    를 포함하는 그래프 스트림에서 비용 모델을 이용한 처리 방법.
  6. 삭제
  7. 제1항에 있어서,
    상기 비용을 예측하는 단계는,
    그래프 갱신의 발생 횟수(θλ), 그래프 갱신시 영향을 받는 정점의 개수(σλ), 실제 재계산되는 영역의 탐색 비용(γλ), 및 실제 처리비용(δλ) 중 적어도 하나를 이용하여, 상기 비용을 예측하는 단계
    를 포함하는 그래프 스트림에서 비용 모델을 이용한 처리 방법.
  8. 소셜 네트워크에서의, 사물 간의 상호 작용에 따른 그래프 스트림의 변경에 연동하여,
    상기 그래프 스트림을 처리하는 데에 소요되는 비용을 예측하고, 상기 예측된 비용에 비례하여 상기 그래프 스트림에 대한 변화량을 높게 연산하는 연산부;
    상기 연산된 변화량에 기초하여, 상기 그래프 스트림을 처리하는 기법을 결정하는 결정부; 및
    상기 결정된 처리기법에 따라 상기 그래프 스트림을 처리하여 그래프를 갱신하는 갱신부
    를 포함하고,
    상기 갱신부는,
    상기 사물을 정점으로 하고, 상기 정점 간을 연결하는 간선으로 구성되는 그래프를, 상기 그래프 스트림의 처리에 기초하여 시간에 흐름에 따라 변화시켜 상기 그래프를 갱신하는
    그래프 스트림에서 비용 모델을 이용한 처리 장치.
  9. 삭제
  10. 제8항에 있어서,
    상기 변화량이, 선정된 수치 보다 큰 경우,
    상기 결정부는,
    상기 그래프 스트림의 변경에 따라 영향을 받는 그래프의 부분을 탐색하고, 상기 탐색된 부분과 관련한 그래프 스트림의 일부를 처리하는 점진적 처리 기법(iGAS)을 결정하는
    그래프 스트림에서 비용 모델을 이용한 처리 장치.
  11. 제10항에 있어서,
    상기 처리 장치는,
    상기 그래프 스트림으로부터 프리패치 데이터를 읽어, 캐시에 저장하고, 상기 캐시에 저장된 프리패치 데이터를 추출하여 상기 점진적 처리 기법으로 처리하고, 상기 처리에 따른 결과 데이터를 상기 캐시에 다시 저장하는 처리부
    를 더 포함하는 그래프 스트림에서 비용 모델을 이용한 처리 장치.
  12. 제8항에 있어서,
    상기 변화량이, 선정된 수치보다 같거나 작은 경우,
    상기 결정부는,
    상기 그래프 스트림의 전체를 처리하는 정적 처리 기법(GAS)을 결정하는
    그래프 스트림에서 비용 모델을 이용한 처리 장치.
  13. 삭제
  14. 제8항에 있어서,
    상기 연산부는,
    그래프 갱신의 발생 횟수(θλ), 그래프 갱신시 영향을 받는 정점의 개수(σλ), 실제 재계산되는 영역의 탐색 비용(γλ), 및 실제 처리비용(δλ) 중 적어도 하나를 이용하여, 상기 비용을 예측하는
    그래프 스트림에서 비용 모델을 이용한 처리 장치.
KR1020180045547A 2018-04-19 2018-04-19 그래프 스트림에서 비용 모델을 이용한 처리 방법 및 처리 장치 KR102020725B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180045547A KR102020725B1 (ko) 2018-04-19 2018-04-19 그래프 스트림에서 비용 모델을 이용한 처리 방법 및 처리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180045547A KR102020725B1 (ko) 2018-04-19 2018-04-19 그래프 스트림에서 비용 모델을 이용한 처리 방법 및 처리 장치

Publications (1)

Publication Number Publication Date
KR102020725B1 true KR102020725B1 (ko) 2019-09-10

Family

ID=67950980

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180045547A KR102020725B1 (ko) 2018-04-19 2018-04-19 그래프 스트림에서 비용 모델을 이용한 처리 방법 및 처리 장치

Country Status (1)

Country Link
KR (1) KR102020725B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220170226A (ko) * 2021-06-22 2022-12-29 포항공과대학교 산학협력단 그래프 데이터 처리 방법 및 그래프 데이터 처리 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
High Performance Computing: 32nd International Conference, ISC High, Julian M. Kunkel, Rio Yokota, Pavan Balaji, David Keyes (2017.06.22.)* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220170226A (ko) * 2021-06-22 2022-12-29 포항공과대학교 산학협력단 그래프 데이터 처리 방법 및 그래프 데이터 처리 장치
KR102651832B1 (ko) * 2021-06-22 2024-03-29 포항공과대학교 산학협력단 그래프 데이터 처리 방법 및 그래프 데이터 처리 장치

Similar Documents

Publication Publication Date Title
US9383944B2 (en) Data access analysis using entropy rate
US11410063B2 (en) Self-intelligent improvement in predictive data models
US20140325151A1 (en) Method and system for dynamically managing big data in hierarchical cloud storage classes to improve data storing and processing cost efficiency
US11204935B2 (en) Similarity analyses in analytics workflows
US20150007176A1 (en) Analysis support method, analysis supporting device, and recording medium
JP2015225656A (ja) 分散型データグラフ記憶システム及び方法
US20130151536A1 (en) Vertex-Proximity Query Processing
CN110058958B (zh) 用于管理数据备份的方法、设备和计算机程序产品
US10915533B2 (en) Extreme value computation
US20170199895A1 (en) Sampling-based deduplication estimation
CN110062922A (zh) 流处理系统和方法
Gorbunova et al. The estimation of probability characteristics of cloud computing systems with splitting of requests
KR102020725B1 (ko) 그래프 스트림에서 비용 모델을 이용한 처리 방법 및 처리 장치
EP3242209A1 (en) A computer-implemented method of executing a query in a network of data centres
Deypir et al. An Efficient Sliding Window Based Algorithm for Adaptive Frequent Itemset Mining over Data Streams.
JP2017027296A (ja) 性能評価方法、性能評価プログラム及び情報処理装置
US20160189026A1 (en) Running Time Prediction Algorithm for WAND Queries
Farley Memory-aware fusing and tiling of neural networks for accelerated edge inference
US20230216865A1 (en) Bias mitigation in threat disposition systems
US11526561B2 (en) System and method for determining temporal citation count
JP5555238B2 (ja) ベイジアンネットワーク構造学習のための情報処理装置及びプログラム
Naeem et al. SSCJ: A semi-stream cache join using a front-stage cache module
KR20210137772A (ko) 양자 계산 최적화 장치 및 방법
Cicirello Optimizing the Modified Lam Annealing Schedule
JP3449129B2 (ja) 情報処理装置

Legal Events

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