KR102054070B1 - 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 방법 및 그래프 저장 관리 장치 - Google Patents

변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 방법 및 그래프 저장 관리 장치 Download PDF

Info

Publication number
KR102054070B1
KR102054070B1 KR1020180051197A KR20180051197A KR102054070B1 KR 102054070 B1 KR102054070 B1 KR 102054070B1 KR 1020180051197 A KR1020180051197 A KR 1020180051197A KR 20180051197 A KR20180051197 A KR 20180051197A KR 102054070 B1 KR102054070 B1 KR 102054070B1
Authority
KR
South Korea
Prior art keywords
graph
data
snapshot
coordinate information
storage management
Prior art date
Application number
KR1020180051197A
Other languages
English (en)
Other versions
KR20190127076A (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 KR1020180051197A priority Critical patent/KR102054070B1/ko
Publication of KR20190127076A publication Critical patent/KR20190127076A/ko
Application granted granted Critical
Publication of KR102054070B1 publication Critical patent/KR102054070B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

동적 그래프의 중복 데이터 관리를 위해 중복 스냅샷에 저장된 중복 데이터를 공통으로 관리하여 중복 저장을 감소시켜 공간의 소모를 줄이고, 특정 시점의 그래프를 탐색하기 위해서 중복 스냅샷과 델타 스냅샷을 연결하여, 이력데이터를 중복 저장하지 않기 때문에 공간적 효율을 높이는 스냅샷을 활용한 효율적인 이력 그래프 저장 관리 기법을 개시한다.
변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 방법은, 연속되는 주기 간에 발생한 복수의 그래프 스트림을 추출하는 단계, 상기 복수의 그래프 스트림으로부터, 중점 사이를 연결하는 간선의 방향을 확인하여 중복 데이터를 식별하는 단계, 및 상기 중복 데이터를 중복 스냅샷에 저장하는 단계를 포함할 수 있다.

Description

변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 방법 및 그래프 저장 관리 장치{GRAPH STORAGE MANAGEMENT METHOD AND GRAPH STORAGE MANAGEMENT DEVICE FOR CHANGING TRACKING AND HISTORICAL GRAPH RETRIEVAL}
본 발명은 동적 그래프의 중복 데이터 관리를 위해 중복 스냅샷에 저장된 중복 데이터를 공통으로 관리하여 중복 저장을 감소시켜 공간의 소모를 줄이고, 특정 시점의 그래프를 탐색하기 위해서 중복 스냅샷과 델타 스냅샷을 연결하여, 이력데이터를 중복 저장하지 않기 때문에 공간적 효율을 높이는 스냅샷을 활용한 효율적인 이력 그래프 저장 관리 기법에 관한 것이다.
본 발명의 배경이 되는 기술은 다음의 문헌에 개시되어 있다.
1) 등록번호 제10-1719714호(2017.03.20) "동적 환경 소셜 네트워크 그래프에서 다중 제약 조건 그래프 패턴 매칭을 위한 효율적인 인덱스 갱신 방법 및 장치"
2) 공개번호 제10-2015-0084892호(2015.07.22) "동적 그래프 퍼포먼스 모니터링"
그래프 데이터는, 객체들 사이의 관계 또는 상호 작용의 표현을 위해 오랜 기간 동안 연구되어 왔다. 그래프는 객체 정보를 정점으로 하고, 정점 간의 연결성을 표현하는 간선으로 구성되어 있다. 각 정점과 간선은 각각의 정보를 포함할 수 있다.
예를 들어, 도로망에서 하나의 정점은 교차로를 표현할 수 있고, 정점과 정점의 연결인 간선은 교차로에서 다른 교차로까지 연결된 도로 정보를 포함할 수 있다. 도로망과 같이 급격한 변화가 일어나지 않는 그래프 데이터는 정적인 그래프 데이터로 정의할 수 있다. 정적인 그래프 데이터는 시간의 흐름에 따른 변화가 존재하지 않기 때문에, 새로운 데이터에 대해서는 별도로 고려하지 않는다.
최근 소셜 네트워크, 인용 네트워크, IoT 등의 분야에서는 새로운 정보가 지속적으로 생성되고 있어, 기존의 정보들은 급격히 변화하고 있다. 정보의 변화 정도를 표현하는 그래프 데이터는 시간에 따라 지속적으로 변화하는 동적 그래프 데이터 형태로 생성될 수 있다.
이러한 동적 그래프 데이터는, 대표적으로 facebook의 친구관계, twitter의 팔로우, 리트윗 등이 있다. 소셜 네트워크 서비스 중 하나인 facebook은 분당 약 330만 건의 데이터를 생성한다. 그래프의 형태가 지속적으로 변화하는 동적 그래프는 많은 양의 과거 이력데이터를 발생시킨다. 동적 그래프에서 시간의 흐름에 따라 발생한 과거 이력데이터는 과거 그래프에 대한 분석에 필요하다.
과거의 데이터 분석은 이력데이터의 접근을 필요로 한다. 이력데이터의 접근이 필요한 분석의 예로는, 예컨대 "시간의 흐름에 따른 정보의 확산이 어떻게 되었는가?", "2013년에 소셜 네트워크에서 가장 영향력이 높은 사용자는 누구인가?", "2010년부터 2015년까지의 기간 중 네트워크 범위가 가장 작은 해는 언제인가?"등과 같은 상황을 예시할 수 있다.
이와 같은 상황을 분석하기 위해서는, 새롭게 생성된 이력데이터와 기존의 이력데이터에 대한 효율적인 접근과 저장을 위한 기법이 필요하다.
이력데이터를 관리하기 위해서는, 각 시간의 과거 그래프를 저장하는 방법과 과거 시점의 데이터에 접근하는 방법이 필요하다.
그래프 데이터의 저장을 위한 기존의 일반적인 저장 구조는, 각 시간에 따른 그래프의 상태를 개별적으로 저장하는 방식이다. 이때 시간에 따른 많은 변화가 발생하는 동적 그래프 데이터의 경우에는 일부 데이터를 변경한다. 일부 데이터가 변경되는 상태에서는 모든 시간의 그래프 데이트를 유지 함에 따라 많은 양의 중복 데이터를 저장하게 된다.
이로 인해, 같은 정보가 중복되면, 같은 정보의 중복 데이터 저장은 저장 공간 낭비의 원인이 된다. 예를 들어, 소셜 네트워크에서 한 사용자의 친구 관계 그래프는 전체 친구관계의 변화가 아닌 일부 친구 관계의 변화에서 만 존재한다.
기존의 연구에서는 그래프의 이력데이터를 효율적으로 저장하고 접근하기 위해 크게 복사 기법(Copy)과 이력 기법(Log)의 두 가지 유형의 연구가 진행되어 왔다. 복사 기법과 이력 기법 각각은, 모든 데이터를 복사하여 유지하는 방법과 데이터의 변화이력 추적하여 해당 시점의 데이터를 생성하는 방법이다.
복사 기법은 데이터를 복사하는 방법으로, 시간의 변화에 따른 데이터를 모두 보존하는 방법이다. 복사 기법은 모든 데이터가 저장되어 있기 때문에, 해당 시점에 대해 빠른 접근을 가능하게 할 수 있다. 하지만 복사 기법에서는 중복되는 데이터를 모두 저장하기 때문에 공간적 비용 소모가 크다. 예컨대, VERSION GRAPH는 데이터 보존 기간을 설정하여 데이터를 지정된 기간 동안 보존하는 기법이다.
과거의 모든 이력데이터를 저장하기 위해서는, 데이터 보존 기간을 무기한으로 늘리고 모든 과거 데이터를 저장해야 한다. 이를 해소하고자 이력 기법은 변화 이력을 추적하는 방법으로, 모든 데이터를 저장하지 않고 변화 이력 만을 저장하고 있기 때문에 공간적 좋은 공간 효율을 보인다.
하지만 이력 기법은 원하는 시점의 그래프 데이터를 확인하기 위해 최초의 그래프에서 변화 이력을 순차적으로 접근하기 때문에 접근속도가 느린 단점이 있다. 예컨대, DeltaGraph는 불필요한 데이터의 저장을 줄이기 위해, 데이터의 변화 이력을 활용하여 저장 공간의 효율을 높일 수 있다. 하지만, 이러한 이력 기법은 변화이력을 순차적으로 접근하고 있기 때문에 그래프 데이터의 접근에는 비효율적이다.
이상과 같이, 기존의 복사 기법과 이력 기법은 상호 반비례 관계로 저장과 접근 관점에서 각각 좋지 않은 결과를 보인다.
이에 따라, 모든 상황을 고려하여 보다 효율적인 이력 그래프 데이터의 저장과 접근을 위해 두 방법을 모두 적절히 고려한 기법의 등장이 절실히 요청된다.
상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명은 스냅샷을 활용한 효율적인 그래프 이력데이터의 저장 관리 기법을 제안하는 것을 목적으로 한다.
또한, 본 발명은 동적 그래프의 중복 데이터 관리를 위해 중복 스냅샷에 저장된 중복 데이터를 공통으로 관리하여 중복 저장을 감소 시켜 공간의 소모를 줄이는 것을 다른 목적으로 한다.
또한, 본 발명은 특정 시점의 그래프를 탐색하기 위해서 중복 스냅샷과 델타 스냅샷을 연결하여, 이력데이터를 중복 저장하지 않기 때문에 공간적 효율을 높이는 것을 목적으로 한다.
상기의 목적을 이루기 위한, 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 방법은, 연속되는 주기 간에 발생한 복수의 그래프 스트림을 추출하는 단계, 상기 복수의 그래프 스트림으로부터, 중점 사이를 연결하는 간선의 방향을 확인하여 중복 데이터를 식별하는 단계, 및 상기 중복 데이터를 중복 스냅샷에 저장하는 단계를 포함할 수 있다.
또한, 상기 목적을 달성하기 위한 기술적 구성으로서, 연속되는 주기 간에 발생한 복수의 그래프 스트림을 추출하는 추출부, 상기 복수의 그래프 스트림으로부터, 중점 사이를 연결하는 간선의 방향을 확인하여 중복 데이터를 식별하는 식별부, 및 상기 중복 데이터를 중복 스냅샷에 저장하는 처리부를 포함하는 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 장치를 구성할 수 있다.
본 발명에 따르면, 동적 그래프에 대한 효과적인 이력 관리를 위한 그래프 관리 기법을 제안 함으로써, 시간에 따라 변화하는 동적 그래프를 중복 스냅샷과 델타 스냅샷으로 관리하여 중복되는 데이터를 최소화할 수 있다.
또한, 본 발명에 따르면, 변형된 CSR 표현 기법을 활용하여 이력 관리 정보량을 감소시킬 수 있다.
또한, 본 발명에 따르면, 그래프 이력데이터의 검색 시 중복을 제외한 변화 이력만을 접근하여 검색 성능을 향상시킬 수 있다.
또한, 본 발명에 따르면, 그래프 이력데이터를 효율적으로 저장하기 위한 구조로 인해, 소셜 네트워크와 같은 동적 그래프 데이터의 통계 분석을 위한 그래프 이력데이터의 접근에 효율적으로 활용할 수 있다.
도 1는 본 발명의 일실시예에 따른 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 장치의 구체적인 구성을 나타내는 도면이다.
도 2는 본 발명에 따른 그래프 이력데이터의 저장 관리 구조를 설명하기 위한 도면이다.
도 3은 본 발명에 따른 전체 스냅샷의 생성 과정을 설명하기 위한 도면이다.
도 4는 중복 스냅샷의 생성을 설명하기 위한 도면이다.
도 5는 기존의 CSR 기법을 설명하기 위한 도면이다.
도 6은 본 발명에 따라 수정되어 개선한 CSR 기법을 설명하기 위한 도면이다.
도 7은 그래프 데이터에 대한, 기존의 희소행렬을 표현하는 설명하는 도면이다.
도 8은 본 발명에 따른 수정된 CSR 표현을 설명하기 위한 도면이다.
도 9는 본 발명에 따른 이력 그래프의 탐색을 설명하기 위한 도면이다.
도 10은 본 발명의 일실시예에 따른 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 방법을 구체적으로 도시한 작업 흐름도이다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1는 본 발명의 일실시예에 따른 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 장치의 구체적인 구성을 나타내는 도면이다.
본 발명의 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 장치(100)는, 추출부(110), 식별부(120), 처리부(130), 및 구성부(140)를 포함하여 구성될 수 있다.
우선, 추출부(110)는 연속되는 주기 간에 발생한 복수의 그래프 스트림을 추출한다. 즉, 추출부(110)는 소셜 네트워크에서의, 사물 간의 상호 작용에 따른 그래프 스트림을 주기적으로 수집하여 획득하되, 그래프 스트림의 주기별 변경 정도를 인식할 수 있게, 연속되는 2 주기 이상에서 발생한 복수의 그래프 스트림을 추출하는 역할을 할 수 있다. 상기 주기는, 일정 기간으로 도래하는 시간격일 수 있고, 예컨대, T0, T1, T2 ? 등일 수 있다. 여기서, 그래프 스트림은, 이벤트일 수 있는 사건의 정점과, 정점과 정점을 연결하는 간선으로 구성될 수 있다.
또한, 식별부(120)는 상기 복수의 그래프 스트림으로부터, 중점 사이를 연결하는 간선의 방향을 확인하여 중복 데이터를 식별한다. 즉, 식별부(120)는 동일 중점 간에 이벤트 흐름을 보여주는 간선의 방향이, 서로 다른 주기 동안에 그대로 유지된다면, 이를 중복 데이터로서 식별할 수 있다. 예컨대, 후술하는 도 2에서, 식별부(120)는 T0에서 T1로 경과하는 동안에 간선의 방향이 그대로 유지되는, 정점 (A.B), (A.C), (B.D)를 중복 데이터로 식별할 수 있다.
또한, 처리부(130)는 상기 중복 데이터를 중복 스냅샷에 저장한다. 즉, 처리부(130)는 식별된 중복 데이터를 별도의 저장 공간인 중복 스냅샷에 저장할 수 있다.
다른 실시예에서, 그래프 저장 관리 장치(100)의 식별부(120)는, 상기 연속되는 주기 중에서, n(상기 n은 자연수) 주기에 발생한 그래프 스트림으로부터, 상기 중복 데이터를 제외한 비중복 데이터를 식별할 수 있다. 즉, 식별부(120)는 시간의 흐름에 따라 중점 간의 간선 방향이 변경되는, 그래프 데이터를, 비중복 데이터로서 식별할 수 있다.
예컨대, 후술하는 도 2에서, 식별부(120)는 T0에서 T1로 경과하는 동안에 그래프 데이터를 구성하는 간선의 방향이 변경되는, T0에서의 정점 (B.E), (F.B)와, T1에서의 정점 (B.A), (E.C), (E,F)를 비중복 데이터로 식별할 수 있다.
이후, 처리부(130)는, 상기 비중복 데이터를, 상기 n에 대응하는 제n 델타 스냅샷에 저장할 수 있다. 예컨대, 처리부(130)는 T0에서의 비중복 데이터 정점 (B.E), (F.B)를, T0에 대응하는 델타 스냅샷 S0에 저장하고, T1에서의 비중복 데이터 정점 (B.A), (E.C), (E,F)를, T1에 대응하는 델타 스냅샷 S1에 저장할 수 있다.
본 발명의 그래프 저장 관리 장치(100)는, 상기 제n 델타 스냅샷을, 상기 중복 스냅샷과 연결하여 데이터 저장 구조체를 구성하는 구성부(140)를 포함할 수 있다.
즉, 구성부(140)는 그래프 스트림을 중복 데이터와 비중복 데이터로 구분하여 개별적으로 저장하는, 중복 스냅샷과 델타 스냅샷을 연결하여 새로운 데이터 저장 구조체를 구성 함으로써, 저장 공간을 줄이면서도, 추후 검색시에 빠른 검색 결과의 도출이 가능하도록 하는 역할을 한다.
중복 스냅샷과 델타 스냅샷을 통한 그래프 저장 관리의 일 실시예에 있어서, 처리부(130)는, 상기 복수의 그래프 스트림 각각에 대해 희소 행렬을 작성한다.
희소행렬(sparse matrix)은 행렬의 값이 대부분 0인 경우를 가리키는 표현일 수 있다. 개념적으로 희소성은 시스템들이 약하게 연결된 것에 해당할 수 있다. 예컨대, 한 줄로 나열된 공과 공이 스프링으로 양 옆으로 하나씩 연결되었을 때 이것은 희소 시스템으로, 희소의 개념은 조합론과 네트워크 이론 등과 같은 응용분야에서 유용할 수 있다.
또한, 처리부(130)는 상기 희소 행렬을, 제1 로우 포인터 배열과 제1 컬럼 인덱스 배열을 포함하는 CSR로 표현할 수 있다. CSR(Compressed sparse row)은 가로의 순서대로 재정렬하는 방법으로 행에 관여하여 정리 압축한 것으로 정의할 수 있다.
CSR로의 표현에 있어, 우선 처리부(130)는, 상기 희소 행렬 내 그래프 데이터 각각으로 가상의 좌표 정보를 할당할 수 있다. 예컨대, 처리부(130)는 4x4 희소 행렬 내의, 좌상의 그래프 데이터에 좌표 정보 (0.0)을, 우하의 그래프 데이터에 좌표 정보 (3.3)을 할당할 수 있다.
또한, 처리부(130)는 상기 그래프 데이터가 '1'로 존재하는 제1 좌표 정보를 독출할 수 있다. 후술하는 도 5에서의 예시일 경우, 처리부(130)는 시간 G(T0)에서, 그래프 데이터 '1'인 제1 좌표 정보 (0.0), (1.0), (1.2), (2.1), (3.3)를 독출할 수 있다. 또한, 시간 G(T1)에서, 처리부(130)는 그래프 데이터 '1'인 제1 좌표 정보 (0.0), (0.3), (1.0), (1.2), (2.3), (3.1)를 독출할 수 있다.
이후, 처리부(130)는 상기 제1 좌표 정보 중 시작행 번호, 시작행에서의 상기 제1 좌표 정보를 독출한 횟수, 상기 시작행에서부터 u행까지(상기 u는 2번째행 번호에서 마지막행 번호)의 상기 제1 좌표 정보를 독출한 누적 횟수를 순차적으로 기재하여, 제1 로우 포인터 배열을 표현할 수 있다.
후술하는 도 5에서의 예시일 경우, 처리부(130)는 시간 G(T0)에서, 제1 좌표 정보 (0.0), (1.0), (1.2), (2.1), (3.3) 중 시작행 번호 '0', 시작행에서의 상기 제1 좌표 정보를 독출한 횟수 '1', 상기 시작행에서부터 2행, 3행, 4행까지의 상기 제1 좌표 정보를 독출한 누적 횟수 '3', '4', '5'를 순차적으로 기재하여, 제1 로우 포인터 배열 '0 1 3 4 5'을 표현할 수 있다.
또한, 시간 G(T1)에서, 처리부(130)는 제1 좌표 정보 (0.0), (0.3), (1.0), (1.2), (2.3), (3.1) 중 시작행 번호 '0', 시작행에서의 상기 제1 좌표 정보를 독출한 횟수 '2', 상기 시작행에서부터 2행, 3행, 4행까지의 상기 제1 좌표 정보를 독출한 누적 횟수 '4', '5', '6'을 순차적으로 기재하여, 제1 로우 포인터 배열 '0 2 4 5 6'을 표현할 수 있다.
또한, 처리부(130)는, 상기 제1 좌표 정보에서, 열에 해당하는 값을 순차적으로 기재하여 제1 컬럼 인덱스 배열을 표현할 수 있다.
후술하는 도 5에서의 예시일 경우, 처리부(130)는 시간 G(T0)에서, 제1 좌표 정보 (0.0), (1.0), (1.2), (2.1), (3.3)에서 열에 해당하는 값 '0 0 2 1 3'을 순차적으로 기재하여 제1 컬럼 인덱스 배열을 표현할 수 있다.
또한, 시간 G(T1)에서, 처리부(130)는 제1 좌표 정보 (0.0), (0.3), (1.0), (1.2), (2.3), (3.1)에서 열에 해당하는 값 '0 3 0 2 3 1'을 순차적으로 기재하여 제1 컬럼 인덱스 배열을 표현할 수 있다.
또한, 본 발명에 따른 개선된 CSR 표현에 있어, 처리부(130)는, 상기 희소 행렬을 비교하여, 상기 제1 좌표 정보 중에서, 중복 데이터가 있는 제2 좌표 정보를 독출할 수 있다.
상술한 예시에서, 처리부(130)는 시간 G(T0)에서의 독출된 제1 좌표 정보 (0.0), (1.0), (1.2), (2.1), (3.3)와, 시간 G(T1)에서의 독출된 제1 좌표 정보 (0.0), (0.3), (1.0), (1.2), (2.3), (3.1) 사이의, 중복 데이터가 있는 제2 좌표 정보로서 (0.0), (1.0), (1.2)을 독출할 수 있다.
이후, 처리부(130)는 상기 제2 좌표 정보 중 시작행 번호, 시작행에서의 상기 제2 좌표 정보를 독출한 횟수, 상기 시작행에서부터 v행까지(상기 v는 2번째행 번호에서 마지막행 번호)의 상기 제2 좌표 정보를 독출한 누적 횟수를 순차적으로 기재하여 제2 로우 포인터 배열을 표현할 수 있다.
예컨대, 독출된 제2 좌표 정보 (0.0), (1.0), (1.2)에 대해, 제2 로우 포인터 배열은, '0 1 3'으로 표현할 수 있다.
또한, 처리부(130)는 상기 제2 좌표 정보에서, 열에 해당하는 값을 순차적으로 기재하여 제2 컬럼 인덱스 배열을 표현할 수 있다.
예컨대, 독출된 제2 좌표 정보 (0.0), (1.0), (1.2)에 대해, 제2 컬럼 인덱스 배열은, '0 0 2'를 표현할 수 있다.
이후, 처리부(130)는 상기 제2 로우 포인터 배열과 상기 제2 컬럼 인덱스 배열을 중복 스냅샷에 저장할 수 있다. 상기 예시에서, 처리부(130)는 제2 로우 포인터 배열 '0 1 3'와, 제2 컬럼 인덱스 배열 '0 0 2'를 중복 스냅샷에 저장할 수 있다.
또한, 처리부(130)는, 상기 제1 컬럼 인덱스 배열 내, 상기 제2 좌표 정보와 연관되는 일부를 상기 중복 스냅샷을 지정하는 식별자로 대체하여, 델타 스냅샷에 저장할 수 있다.
예컨대, 중복 스냅샷을 지정하는 식별자로서 (1.3)이 설정되는 경우, 처리부(130)는 시간 G(T0)에서의 제1 컬럼 인덱스 배열 '0 0 2 1 3'에 대해, 식별자 (1.3)로 중복되는 '0 2'를 대체한, 제2 컬럼 인덱스 배열 '0 (1.3) 1 3'를 델타 스냅샵에 저장할 수 있다.
또한, 처리부(130)는 시간 G(T1)에서 제1 컬럼 인덱스 배열 '0 3 0 2 3 1'에 대해, 식별자 (1.3)로, 중복되는 '0 2'를 대체하여 제2 컬럼 인덱스 배열 ''0 3 (1.3) 3 1''를 델타 스냅샵에 저장할 수 있다.
마지막으로, 처리부(130)는 상기 제1 로우 포인터 배열을 상기 델타 스냅샷에 더 저장할 수 있다. 즉, 처리부는 시간 G(T0)에서의, 제1 로우 포인터 배열 '0 1 3 4 5'을 그대로 유지하여, 델타 스냅샷에 저장할 수 있고, 시간 G(T1)에서의, 제1 로우 포인터 배열 '0 2 4 5 6'을 그대로 유지하여, 델타 스냅샷에 저장할 수 있다.
본 발명에 따르면, 동적 그래프에 대한 효과적인 이력 관리를 위한 그래프 관리 기법을 제안 함으로써, 시간에 따라 변화하는 동적 그래프를 중복 스냅샷과 델타 스냅샷으로 관리하여 중복되는 데이터를 최소화할 수 있다.
또한, 본 발명에 따르면, 변형된 CSR 표현 기법을 활용하여 이력 관리 정보량을 감소시킬 수 있다.
또한, 본 발명에 따르면, 그래프 이력데이터의 검색 시 중복을 제외한 변화 이력만을 접근하여 검색 성능을 향상시킬 수 있다.
또한, 본 발명에 따르면, 그래프 이력데이터를 효율적으로 저장하기 위한 구조로 인해, 소셜 네트워크와 같은 동적 그래프 데이터의 통계 분석을 위한 그래프 이력데이터의 접근에 효율적으로 활용할 수 있다.
동적 그래프 데이터 분석하기 위해서는 그래프 이력데이터의 저장과 접근이 필요하다. 동적 그래프 데이터는 중복되는 데이터가 많이 발생하기 때문에 중복 저장으로 인한 공간 낭비를 초래할 수 있다.
본 발명에서는 그래프 데이터의 중복 저장을 최소화하기 위해 새로운 그래프 저장 관리 기법을 제안한다. 즉, 본 발명에서는 중복되는 그래프 데이터를 최소화하여, 과거 그래프 데이터에 접근을 위한 중복 스냅샷과, 델타 스냅샷으로 데이터를 분할하여 관리할 수 있다.
중복 스냅샷은 각 시간의 그래프 데이터 중에서 사용자가 설정한 중복 임계치 이상의 중복되는 그래프 데이터로서 생성될 수 있다. 중복된 그래프 데이터를 제외한 나머지 서브 그래프 데이터는 델타 스냅샷에 저장될 수 있다. 이를 통해, 본 발명에서는 중복되는 데이터를 중복 스냅샷에서 공통으로 관리하기 때문에 저장 공간의 낭비를 감소시킬 수 있다.
하나의 스냅샷은 출발 정점과 도착 정점 테이블을 포함할 수 있다. 출발 정점은 도착 정점 테이블의 시작 위치를 나타내는 오프셋과 연결된 정점과, 이 정점을 이웃하는 다른 정점을 연결하는 간선으로 표현할 수 있다. 사용자는 중복 스냅샷과 델타 스냅샷에 대한 접근을 통해, 특정 지점의 그래프 데이터(이력데이터)에 접근할 수 있다. 또한 본 발명에서는 그래프 데이터의 정보량을 줄이기 위해 CSR 기법을 활용할 수 있다.
도 2는 본 발명에 따른 그래프 이력데이터의 저장 관리 구조를 설명하기 위한 도면이다.
도 2에서는 CSR(Compressed Sparse Row) 기법을 제외하여 제안되는, 그래프 이력데이터의 저장 관리 구조를 나타내고 있다.
도 2의 (C)에 도시한 바와 같이, 저장 관리 구조는, 상단의 중복 스냅샷(intersection snapshot)과 하단의 각 시간별 변화 데이터를 갖는 델타 스냅샷(delta snapshot)으로 구성될 수 있다. 중복 스냅샷은, 시간별 그래프의 중복되는 데이터를 공통적으로 저장할 수 있다. 델타 스냅샷은 중복된 데이터에서 변화된 데이터 만을 저장하여 공간 효율을 높일 수 있다. 스냅샷 접근을 위해서, 중복 스냅샷과 연결되어 있는 델타 스냅샷은 시간정보를 유지할 수 있다.
도 2의 (a)에는 시간 T0의 그래프 데이터 G(T0)가 예시되어 있고, 도 2의 (b)에는 시간 T1의 그래프 데이터 G(T1)이 예시되어 있다.
시간 T0의 그래프 데이터 G(T0)와, 시간 T0으로부터 임의 시간이 경과된 시간 T1의 그래프 데이터 G(T1)와의 사이에는, 중복되는 서브 그래프 G(A,B,C,D)가 존재한다.
중복되는 서브 그래프 G(A,B,C,D)는 도 2의 (c)의 구조에서 중복 스냅샷 I0에 저장된다. 또한, 도 2의 (a)에서 중복되는 서브 그래프를 제외한 서브 그래프 G(B,E,F)는 델타 스냅샷 S0에 저장되고, 도 2의 (b)에서 중복되는 서브 그래프를 제외한 서브 그래프 G(A,B)와 G(C,E,F)는 델타 스냅샷 S1에 저장된다. 본 발명의 그래프 저장 관리 장치는 중복 스냅샷 I0와 델타 스냅샷 S0, S1을 연결하여 시간 T0과 시간 T1의 그래프 G(T0)와 G(T1)을 표현할 수 있다.
스냅샷은 최초의 그래프 데이터로부터 시간에 따라 순차적으로 중복되는 서브 그래프가 있는 경우에 이를 검출하여 스캔 함으로써 생성할 수 있다. 그래프 저장 관리 장치는, 검출된 서브 그래프의 중복률이 임계값 보다 큰 시간까지의 그래프를 하나의 중복 스냅샷으로 생성할 수 있다.
그래프 저장 관리 장치는 중복 스냅샷으로 생성한 시간까지의 그래프 데이터에서 중복되지 않는 각 시간의 서브 그래프를 델타 스냅샷으로 생성하여 중복 스냅샷과 연결할 수 있다.
예컨대, 도 2에서는 시간 T0에서 시간 T1까지의 중복되는 서브 그래프 G(A,B,C,D)를 중복 스냅샷 I0에 저장하고, 시간 T0에서의 중복되지 않는 서브 그래프 G(B,E,F)를 델타 스냅샷 S0에 저장하며, 시간 T1에서의 중복되지 않는 서브 그래프 G(A,B)와 G(C,E,F)를 델타 스냅샷 S1에 저장하는 것이 예시되고 있다.
그래프 저장 관리 장치는 위와 같은 과정을 반복하여 제안하는 기법의 전체 구조를 구축할 수 있다.
도 3은 본 발명에 따른 전체 스냅샷의 생성 과정을 설명하기 위한 도면이다.
도 3의 단계 301에서, k, i, n은 중복 그래프와 델타 그래프의 생성을 위한 카운트 값이다.
단계 302는 선정된 그래프 G(Ik)가 최초의 그래프 G(Tn)와 일치 함에 따라, 최초의 그래프 G(Tn)이 중복 그래프로 선정되고, 스냅샷이 생성되는 과정일 수 있다.
단계 303 내지 306은, 선정된 그래프 G(Ik)와, 다음 시점의 그래프인 G(Tn + 1)과의 중복률을 비교하고, 중복률이 중복 임계치인 θ보다 클 경우(Y 방향), 두 그래프의 중복 서브 그래프를 G(Ik)로 갱신하는 과정일 수 있다.
단계 307은 중복 서브 그래프를 갱신한 후, 다음 시점의 그래프 G(Tn + 2)와 반복적으로 비교하여 새로운 중복 서브 그래프를 갱신한다.
만약, 그래프 G(Ik)와 G(Tn + 1)과의 중복률이, 상기 임계치 θ와 같거나 작을 경우(N 방향), 단계 311 내지 316의 그래프 저장 관리 장치는 G(Ik)를 중복 스냅샷으로 생성하고, G(Ti) 부터 G(Tn)까지의 그래프를 델타 스냅샷으로 생성하여 중복 스냅샷과 연결할 수 있다.
이후 그래프 저장 관리 장치는 단계 302 이하를 반복적으로 수행하여 제안하는 기법의 전체 구조를 구성할 수 있다.
동적 그래프는 데이터의 전체가 변경되지 않고 시간에 따라 부분적인 변화만 발생한다. 변경되지 않은 나머지 데이터는 중복하게 된다. 이러한 중복되는 데이터는 개별 관리로 인해 저장 공간의 낭비를 초래한다. 이를 해소하고자 본 발명은 저장 공간을 낭비시키는 중복 데이터를 공통으로 관리하여 공간 효율을 높이기 위해 중복 스냅샷을 구비한다.
중복 스냅샷은 기존 기법에서 사용하는 스냅샷과 다르게, 범위 시간의 중복 데이터 만을 저장한다. 생성된 중복 스냅샷으로 인해, 전체 시스템적으로는, 중복되는 데이터를 중복 저장하지 않기 때문에 저장 공간의 낭비를 최소화 할 수 있다. 중복 스냅샷은 각 시간별 그래프에서 중복되는 서브 그래프의 정점과 간선의 정보와 연결되어 있는 델타 스냅샷의 시간 정보를 포함한다.
도 4는 중복 스냅샷의 생성을 설명하기 위한 도면이다.
중복 스냅샷은 각 시간별 그래프 데이터의 중복되는 데이터를 저장한다. 각 그래프 데이터에서 도 4와 같이 시간의 흐름에 따라 변화된 그래프의 중복된 정점과 간선을 검출한다. 중복 스냅샷의 생성 방법은 다음과 같다.
먼저, 그래프 저장 관리 장치는 시간별 그래프의 중복검사를 순차적으로 진행한다. 그래프 저장 관리 장치는 중복 검사를 진행한 그래프의 중복이 임계값 이하가 되면 그 이전의 중복이 임계값을 초과하는 n개의 그래프에 대한 중복 스냅샷을 생성한다. 중복 스냅샷이 생성되면, 그래프 저장 관리 장치는 각 시간별 그래프의 변화를 델타 스냅샷으로 만들어 연결한다. 그래프 저장 관리 장치는 그 후의 그래프 데이터에 대해 동일 작업을 반복한다. 하나의 중복 스냅샷은 표 1과 같이 다수의 델타 스냅샷과 연결되어 있다.
도 4와 같이 시간의 흐름에 따라 (a), (b), (c)순서로 변경된 그래프가 존재한다고 가정한다.
그래프 (a)와 (b)는 간선 (A,B), (A,C), (B,D)가 중복되고 간선 (B,E), (F,B)가 변경되었다. 그래프 (b)에서 그래프 (c)로 변경되는 상황에서도, 그래프 (a)와 (b)에서 중복된 그래프 데이터가 그대로 유지되는 것을 확인할 수 있다.
중복 스냅샷과 델타 스냅샷에 관한 표 1에서 확인한다면, 시간 T0에 대해, 중복되는 간선 (A,B), (A,C), (B,D)는 I0에 표현되고, 변경된 간선 (B,E), (F,B)는 (S0, T0)로 테이블에 유지된다. 이렇게 지속적으로 중복이 유지되는 상황에서 검출된 중복 데이터를 중복 스냅샷으로 생성한다.
그래프 저장 관리 장치는, 중복 스냅샷과의 연결을 통해 하나의 전체 그래프의 표현을 위한 델타 스냅샷을 생성한다. 델타 스냅샷은 각 시간별 데이터에서 중복 스냅샷에 저장되는 중복되는 서브 그래프를 제외한 나머지 서브 그래프를 저장한다. 델타 스냅샷은 중복 스냅샷의 생성에 사용된 그래프의 수만큼 생성되어, 하나의 중복 스냅샷에 연결된다.
델타 스냅샷은, 중복 스냅샷이 생성된 후, 해당 중복 스냅샷의 중복 검사 후 검출된 중복되는 서브 그래프를 제외한 나머지 서브 그래프를 저장한다. 이를 통해, 그래프 저장 관리 장치는, 모든 중복 데이터를 저장하지 않고 따로 저장하여 관리할 수 있기 때문에 공간의 효율을 높일 수 있다.
저장된 서브 그래프의 출발 정점 정보가 중복 스냅샷의 출발 정점과 같은 경우, 그래프 저장 관리 장치는, 테이블 오프셋 정보로 중복 스냅샷과 연결한다. 연결된 델타 스냅샷은 중복 스냅샷과 중복되지 않는 각 그래프의 추가 정보를 포함할 수 있다.
델타 스냅샷의 내부 구조는 중복 스냅샷과 비슷하다. 즉, 델타 스냅샷은 출발정점 테이블과 도착정점 테이블, 시간 정보를 갖을 수 있다.
출발정점 테이블은, 간선이 출발하는 모든 정점의 데이터를 유지할 수 있다. 도착정점 테이블에는 추가된 간선의 도착 정점 정보를 갖는다. 중복 스냅샷과 중복되는 간선의 도착정점은 중복 스냅샷의 도착정점 테이블의 오프셋과 연결된 정점의 수로 중복되는 그래프 데이터의 위치정보를 갖는다.
도 4에는 중복된 간선 (A,B), (A,C), (B,D)를 제외한 나머지 부분이 델타 스냅샷으로 생성된다. 도 4의 (a)에서 간선 (B,E)와 (F,B)는 하나의 서브 그래프로서 델타 스냅샷에 생성되고, 도 4의 (b)에서는 간선 (B,A), (B,F), (D,F), (E,C), (E,F)가 델타 스냅샷으로 생성된다.
최종적으로 시간 T0의 그래프 G(T0)의 델타 스냅샷은 간선 (B,E), (F,B)으로 생성하고, 시간 T1의 그래프 G(T1)의 델타 스냅샷은 간선 (B,A), (B,F), (D,F), (E,C), (E,F)으로 생성하며, 시간 T2의 그래프 G(T2)의 델타 스냅샷은 간선 (A,G), (B,E), (C,G), (F,A)로 생성할 수 있다.
그래프 데이터는 일반적으로 행렬로 표현된다. 실제 그래프 데이터를 행렬로 표현하면 희소행렬로 표현되고, 이에 따라 많은 양의 불필요한 공간을 필요로 한다. 희소행렬이 실제 의미있는 데이터를 저장하기 위해서는 도 4를 예로 들면, 정점 A와 간선이 직접 연결되지 않는 정점 E 등을 0으로 표현하게 되어, 무의미한 공간이 필수적으로 존재하게 된다.
그래프 데이터의 표현에서 불필요한 정보량을 축소하기 위해 본 발명에서는 CSR(Compressed Sparse Row) 표현 기법을 수정하여 사용한다. 즉, 본 발명에서는 중복 스냅샷과 델타 스냅샷의 연결을 위해서 수정된 CSR 기법을 활용하였다.
일반적으로 그래프 데이터는 정점과 정점을 연결하는 간선의 유무를 희소 행렬로 표현한다. 하지만 희소행렬로 그래프 데이터를 표현하는 것은, 모든 정점의 수를 포함할 수 있는 크기의 행렬을 필요로 한다. 또한, 희소행렬에서는 간선이 존재하지 않는 대부분의 행렬 값을 0으로 표현한다.
그래서, 본 발명에서는 그래프 데이터에 대한 희소행렬의 표현을 보다 효율적으로 하기 위해서 CSR 형태의 표현 방법을 사용한다.
CSR 표현은 간선이 존재하지 않는 불필요한 행렬을 표현하지 않는 방법으로, 행의 순서대로 실제 존재하는 데이터 만을 연결하여 표현하는 방법이다
즉, 본 발명에서는 스냅샷 간의 연결을 위해 CSR 기법을 수정하였다.
도 5는 기존의 CSR 기법을 설명하기 위한 도면이다.
도 5의 (a)는 기존의 동적 그래프를 희소행렬로 표현한 것이다. 도 5의 (a)에 도시한 바와 같이, 대부분의 행렬의 값은 0으로 표시되어 불필요한 데이터를 가지고 있는 것을 확인할 수 있다.
도 5의 (b)는 도 5의 (a)의 시간 T0, T1의 희소행렬을 각각의 CSR 표현 기법으로 나타낸 것이다. Row pointer array는 각각의 열을 표현하고 Column indices array는 위치를 가리킨다.
Column indices array에서는 실제 데이터가 존재하는 행의 위치정보를 갖고 희소행렬을 표현한다. 이렇게 불필요한 공간을 표현하지 않음으로써, 기존의 CSR은 공간 효율을 높일 수 있었다.
도 5의 (a)의 G(T0)에서, 좌상을 좌표 (0.0)으로, 또한 우하를 좌표 (3.3)으로 할당하는 경우, 도 5의 (b)의 Column indices array은 희소행렬에서 데이터가 존재하는 좌표의 열의 값 만을 위치정보로 취해, 순차적으로 '0 0 2 1 3'으로 표현할 수 있다. 또한, 도 5의 (b)의 Row pointer array은 시작행 번호와, 각 행까지의 누적된 데이터 개수를 카운트하여, 순차적으로 '0 1 3 4 5'로 표현할 수 있다.
유사하게, 도 5의 (a)의 G(T1)에서, 좌상을 좌표 (0.0)으로, 또한 우하를 좌표 (3.3)으로 할당하는 경우, 도 5의 (b)의 Column indices array은 희소행렬에서 데이터가 존재하는 좌표의 열의 값 만을 위치정보로 취해, 순차적으로 '0 3 0 2 3 1'로 표현할 수 있다. 또한, 도 5의 (b)의 Row pointer array은 시작행 번호와, 각 행까지의 누적된 데이터 개수를 카운트하여, 순차적으로 '0 2 4 5 6'으로 표현할 수 있다.
이에 더해 본 발명에서는 CSR의 표현 방법을 수정하여 각각의 스냅샷 내부에서 그래프 데이터를 표현하였다. 기존의 CSR표현 기법은 동적인 환경에서의 중복 데이터를 모두 표현하는 문제를 가지고 있다.
본 발명에서는 동적인 환경에서 중복되는 그래프 데이터를 정보량을 줄이고 계층구조의 스냅샷으로 연결하기 위해서 CSR 기법을 변경하였다.
도 6은 본 발명에 따라 수정되어 개선한 CSR 기법을 설명하기 위한 도면이다.
도 6은 변경된 CSR기법으로 도 5의 희소행렬을 표현한 것이다. 중복되는 데이터를 I0로 표현하고, S0, S1에 중복 데이터를 제외한 그래프 데이터를 표현하였다.
I0와 S0, S1의 연결을 위하여 column indices array를 수정하였다. 중복되는 데이터는 하단의 S0, S1의 내부에 I0의 column indices array의 오프셋을 저장하여 연결하였다.
도 5에서 중복되는 데이터의 좌표는 (0.0), (1.0), (1.2)이므로, 도 6에서 중복 스냅샷 I0에는 Column indices array '0 0 2'와 Row pointer array '0 1 3'이 저장될 수 있다.
또한, 델타 스냅샷 S0, S1 각각에 대해서는, 도 5의 Column indices array 중에서 중복되는 '0 2'를 I0의 인덱스인 (1.3)으로 대체하여 공간을 줄일 수 있다. 즉, 델타 스냅샷 S0는 기존 Column indices array '0 0 2 1 3'의 5공간을 '0 (1.3) 1 3'의 4공간으로 줄일 수 있고, 델타 스냅샷 S1은 기존 Column indices array '0 3 0 2 3 1'의 6공간을, '0 3 (1.3) 3 1'의 5공간으로 줄여 표현할 수 있다.
도 7은 그래프 데이터에 대한, 기존의 희소행렬을 표현하는 설명하는 도면이다.
스냅샷의 내부 구조에는 정점과 간선의 정보가 표현된다.
도 7에서는, 하나의 그래프를 표현한 희소행렬을 예시한다. 각각의 정점의 속성 정보와 간선의 정보는 도 7에서와 같이 표현할 수 있다.
도 7의 예시에서는, 예컨대 정점 B를 기준으로, 정점 A 방향의 간선에 가치 0.4의 간선이 연결되고, 정점 C 방향의 간선에 가치 0.8의 간선이 연결되며, 정점 D 방향의 간선에 가치 0.5의 간선이 연결되는 것을 표현하고 있다. 또한, 도 7에서는, 정점 C와 D를 기준으로 연결되는 간선이 없음을 표현한다.
도 7을 통해 알 수 있듯이, 기존의 희소행렬에서는 그래프 데이터의 표현을 위해 많은 양의 불필요한 공간이 소비되는 것을 확인할 수 있다.
도 8은 본 발명에 따른 수정된 CSR 표현을 설명하기 위한 도면이다.
도 8은 도 7의 희소행렬을 수정한 CSR 기법으로 표현한 것이다.
도 8에서는 희소행렬의 각 정점의 ID와 정점에서 출발하는 간선들의 가중치 정보를 하나의 중복 스냅샷과 델타 스냅샷으로 표현하고 있다.
예컨대, 개선된 CSR 기법에서는, 정점 A의 출발 정점 ID인 1124를 key값으로 활용하여 데이터베이스에 실제 데이터를 찾아 갈 수 있고, 정점과 연결된 간선의 가중치인 0.1 또한 더욱 다양한 데이터를 넣기 원할 경우 key-value형 저장구조를 활용하여 다양한 크기의 정보를 저장할 수 있다.
본 발명의 그래프 탐색은 중복되는 데이터를 공통으로 관리함으로써 일정 기간의 이력을 검색하는 경우 보다 효율적이다. 그래프 탐색은 해당하는 중복 스냅샷에 접근하여 중복 그래프를 읽고 하단의 델타 스냅샷을 읽어 전체 그래프에 접근한다. 예컨대, 본 발명에서는 k번째 중복 스냅샷을 Ik, n번째 델타 스냅샷을 Sn으로 표현했을 때 시간 Tn의 그래프는 수학식 1과 같다.
Figure 112018043898038-pat00001
도 9는 본 발명에 따른 이력 그래프의 탐색을 설명하기 위한 도면이다.
도 9는 본 발명의 전체 구조를 통해 G(T0)를 접근한 예시이다.
표 1과 같은 테이블에서 T0에 해당하는 S0가 중복 스냅샷 I0와의 연결을 확인한다. 해당 시간의 델타 스냅샷과 연결된 I0의 접근이 완료되면 델타 스냅샷 S0에 접근하여 중복 스냅샷과 마찬가지로 각 정점에 접근한다.
여기서 델타 스냅샷의 출발정점 A와 연결된 간선 중 새롭게 생성된 간선의 정보가 없으므로 I0의 출발정점 테이블에 정점 A와 연결된 간선의 정보를 표현하는 I0의 도착정점 테이블의 오프셋(0, 2)가 저장되어 중복된 데이터를 읽는다.
I0는 출발 정점 테이블의 A와 연결된 도착 정점 테이블 B와 C를 가리키는 오프셋 (0, 2)로 두 정점의 연결인 간선을 표현한다.
여기서 오프셋 0은 도착정점 테이블의 위치이고, 2는 출발정점 A와 연결된 도착정점의 개수이다. 델타 스냅샷의 다음 출발정점인 B의 경우 새로운 간선 (B,F)가 생성되었다. 그래서 정점 B가 가리키는 도착정점 테이블에는 새로운 연결 정보를 나타내는 정점 F를 표현하고 나머지 중복되는 정보는 I0의 도착정점 테이블 오프셋으로 표시하여 접근한다.
최종적으로 위와 같은 절차를 통해 델타 스냅샷의 모든 정보를 읽어 해당 시간에 대한 그래프 이력데이터의 질의에 응답할 수 있다.
이하, 본 발명의 실시예에 따른 그래프 스트림에 대한 실시간 분산 저장을 위한 분할 방법의 작업 흐름을 상세히 설명한다.
도 10은 본 발명의 일실시예에 따른 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 방법을 구체적으로 도시한 작업 흐름도이다.
본 실시예에 따른 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 (100)에 의해 수행될 수 있다.
우선, 그래프 저장 관리 장치(100)는 연속되는 주기 간에 발생한 복수의 그래프 스트림을 추출한다(1010). 단계(1010)는 소셜 네트워크에서의, 사물 간의 상호 작용에 따른 그래프 스트림을 주기적으로 수집하여 획득하되, 그래프 스트림의 주기별 변경 정도를 인식할 수 있게, 연속되는 2 주기 이상에서 발생한 복수의 그래프 스트림을 추출하는 과정일 수 있다. 상기 주기는, 일정 기간으로 도래하는 시간격일 수 있고, 예컨대, T0, T1, T2 ? 등일 수 있다. 여기서, 그래프 스트림은, 이벤트일 수 있는 사건의 정점과, 정점과 정점을 연결하는 간선으로 구성될 수 있다.
또한, 그래프 저장 관리 장치(100)는 상기 복수의 그래프 스트림으로부터, 중점 사이를 연결하는 간선의 방향을 확인하여 중복 데이터를 식별한다(1020). 단계(1020)는 동일 중점 간에 이벤트 흐름을 보여주는 간선의 방향이, 서로 다른 주기 동안에 그대로 유지된다면, 이를 중복 데이터로서 식별하는 과정일 수 있다. 예컨대, 그래프 저장 관리 장치(100)는 상술한 도 2의, T0에서 T1로 경과하는 동안에 간선의 방향이 그대로 유지되는, 정점 (A.B), (A.C), (B.D)를 중복 데이터로 식별할 수 있다.
또한, 그래프 저장 관리 장치(100)는 상기 중복 데이터를 중복 스냅샷에 저장한다(1030). 단계(1030)는 식별된 중복 데이터를 별도의 저장 공간인 중복 스냅샷에 저장하는 과정일 수 있다.
본 단계(1030)에서, 그래프 저장 관리 장치(100)는, 상기 연속되는 주기 중에서, n(상기 n은 자연수) 주기에 발생한 그래프 스트림으로부터, 상기 중복 데이터를 제외한 비중복 데이터를 식별할 수 있다. 즉, 그래프 저장 관리 장치(100)는 시간의 흐름에 따라 중점 간의 간선 방향이 변경되는, 그래프 데이터를, 비중복 데이터로서 식별할 수 있다.
예컨대, 도 2에서, 그래프 저장 관리 장치(100)는 T0에서 T1로 경과하는 동안에 그래프 데이터를 구성하는 간선의 방향이 변경되는, T0에서의 정점 (B.E), (F.B)와, T1에서의 정점 (B.A), (E.C), (E,F)를 비중복 데이터로 식별할 수 있다.
이후, 그래프 저장 관리 장치(100)는 상기 비중복 데이터를, 상기 n에 대응하는 제n 델타 스냅샷에 저장한다(1040). 예컨대, 그래프 저장 관리 장치(100)는 T0에서의 비중복 데이터 정점 (B.E), (F.B)를, T0에 대응하는 델타 스냅샷 S0에 저장하고, T1에서의 비중복 데이터 정점 (B.A), (E.C), (E,F)를, T1에 대응하는 델타 스냅샷 S1에 저장할 수 있다.
또한, 그래프 저장 관리 장치(100)는 상기 제n 델타 스냅샷을, 상기 중복 스냅샷과 연결하여 데이터 저장 구조체를 구성한다(1050). 단계(1050)는 그래프 스트림을 중복 데이터와 비중복 데이터로 구분하여 개별적으로 저장하는, 중복 스냅샷과 델타 스냅샷을 연결하여 새로운 데이터 저장 구조체를 구성 함으로써, 저장 공간을 줄이면서도, 추후 검색시에 빠른 검색 결과의 도출이 가능하도록 하는 과정일 수 있다.
중복 스냅샷과 델타 스냅샷을 통한 그래프 저장 관리의 일 실시예에 있어서, 그래프 저장 관리 장치(100)는, 상기 복수의 그래프 스트림 각각에 대해 희소 행렬을 작성할 수 있다.
희소행렬은 행렬의 값이 대부분 0인 경우를 가리키는 표현일 수 있다. 개념적으로 희소성은 시스템들이 약하게 연결된 것에 해당할 수 있다. 예컨대, 한 줄로 나열된 공과 공이 스프링으로 양 옆으로 하나씩 연결되었을 때 이것은 희소 시스템으로, 희소의 개념은 조합론과 네트워크 이론 등과 같은 응용분야에서 유용할 수 있다.
또한, 그래프 저장 관리 장치(100)는 상기 희소 행렬을, 제1 로우 포인터 배열과 제1 컬럼 인덱스 배열을 포함하는 CSR로 표현할 수 있다. CSR(Compressed sparse row)은 가로의 순서대로 재정렬하는 방법으로 행에 관여하여 정리 압축한 것으로 정의할 수 있다.
CSR로의 표현에 있어, 그래프 저장 관리 장치(100)는, 상기 희소 행렬 내 그래프 데이터 각각으로 가상의 좌표 정보를 할당할 수 있다. 예컨대, 그래프 저장 관리 장치(100)는 4x4 희소 행렬 내의, 좌상의 그래프 데이터에 좌표 정보 (0.0)을, 우하의 그래프 데이터에 좌표 정보 (3.3)을 할당할 수 있다.
또한, 그래프 저장 관리 장치(100)는 상기 그래프 데이터가 '1'로 존재하는 제1 좌표 정보를 독출할 수 있다. 5에서의 예시일 경우, 그래프 저장 관리 장치(100)는 시간 G(T0)에서, 그래프 데이터 '1'인 제1 좌표 정보 (0.0), (1.0), (1.2), (2.1), (3.3)를 독출할 수 있다. 또한, 시간 G(T1)에서, 그래프 저장 관리 장치(100)는 그래프 데이터 '1'인 제1 좌표 정보 (0.0), (0.3), (1.0), (1.2), (2.3), (3.1)를 독출할 수 있다.
이후, 그래프 저장 관리 장치(100)는 상기 제1 좌표 정보 중 시작행 번호, 시작행에서의 상기 제1 좌표 정보를 독출한 횟수, 상기 시작행에서부터 u행까지(상기 u는 2번째행 번호에서 마지막행 번호)의 상기 제1 좌표 정보를 독출한 누적 횟수를 순차적으로 기재하여, 제1 로우 포인터 배열을 표현할 수 있다.
도 5에서의 예시일 경우, 그래프 저장 관리 장치(100)는 시간 G(T0)에서, 제1 좌표 정보 (0.0), (1.0), (1.2), (2.1), (3.3) 중 시작행 번호 '0', 시작행에서의 상기 제1 좌표 정보를 독출한 횟수 '1', 상기 시작행에서부터 2행, 3행, 4행까지의 상기 제1 좌표 정보를 독출한 누적 횟수 '3', '4', '5'를 순차적으로 기재하여, 제1 로우 포인터 배열 '0 1 3 4 5'을 표현할 수 있다.
또한, 시간 G(T1)에서, 그래프 저장 관리 장치(100)는 제1 좌표 정보 (0.0), (0.3), (1.0), (1.2), (2.3), (3.1) 중 시작행 번호 '0', 시작행에서의 상기 제1 좌표 정보를 독출한 횟수 '2', 상기 시작행에서부터 2행, 3행, 4행까지의 상기 제1 좌표 정보를 독출한 누적 횟수 '4', '5', '6'을 순차적으로 기재하여, 제1 로우 포인터 배열 '0 2 4 5 6'을 표현할 수 있다.
또한, 그래프 저장 관리 장치(100)는 상기 제1 좌표 정보에서, 열에 해당하는 값을 순차적으로 기재하여 제1 컬럼 인덱스 배열을 표현할 수 있다.
도 5에서의 예시일 경우, 그래프 저장 관리 장치(100)는 시간 G(T0)에서, 제1 좌표 정보 (0.0), (1.0), (1.2), (2.1), (3.3)에서 열에 해당하는 값 '0 0 2 1 3'을 순차적으로 기재하여 제1 컬럼 인덱스 배열을 표현할 수 있다.
또한, 시간 G(T1)에서, 그래프 저장 관리 장치(100)는 제1 좌표 정보 (0.0), (0.3), (1.0), (1.2), (2.3), (3.1)에서 열에 해당하는 값 '0 3 0 2 3 1'을 순차적으로 기재하여 제1 컬럼 인덱스 배열을 표현할 수 있다.
또한, 본 발명에 따른 개선된 CSR 표현에 있어, 그래프 저장 관리 장치(100)는 상기 희소 행렬을 비교하여, 상기 제1 좌표 정보 중에서, 중복 데이터가 있는 제2 좌표 정보를 독출할 수 있다.
상술한 예시에서, 그래프 저장 관리 장치(100)는 시간 G(T0)에서의 독출된 제1 좌표 정보 (0.0), (1.0), (1.2), (2.1), (3.3)와, 시간 G(T1)에서의 독출된 제1 좌표 정보 (0.0), (0.3), (1.0), (1.2), (2.3), (3.1) 사이의, 중복 데이터가 있는 제2 좌표 정보로서 (0.0), (1.0), (1.2)을 독출할 수 있다.
이후, 그래프 저장 관리 장치(100)는 상기 제2 좌표 정보 중 시작행 번호, 시작행에서의 상기 제2 좌표 정보를 독출한 횟수, 상기 시작행에서부터 v행까지(상기 v는 2번째행 번호에서 마지막행 번호)의 상기 제2 좌표 정보를 독출한 누적 횟수를 순차적으로 기재하여 제2 로우 포인터 배열을 표현할 수 있다.
예컨대, 독출된 제2 좌표 정보 (0.0), (1.0), (1.2)에 대해, 제2 로우 포인터 배열은, '0 1 3'으로 표현할 수 있다.
또한, 그래프 저장 관리 장치(100)는 상기 제2 좌표 정보에서, 열에 해당하는 값을 순차적으로 기재하여 제2 컬럼 인덱스 배열을 표현할 수 있다.
예컨대, 독출된 제2 좌표 정보 (0.0), (1.0), (1.2)에 대해, 제2 컬럼 인덱스 배열은, '0 0 2'를 표현할 수 있다.
이후, 그래프 저장 관리 장치(100)는 상기 제2 로우 포인터 배열과 상기 제2 컬럼 인덱스 배열을 중복 스냅샷에 저장할 수 있다. 상기 예시에서, 그래프 저장 관리 장치(100)는 제2 로우 포인터 배열 '0 1 3'와, 제2 컬럼 인덱스 배열 '0 0 2'를 중복 스냅샷에 저장할 수 있다.
또한, 그래프 저장 관리 장치(100)는, 상기 제1 컬럼 인덱스 배열 내, 상기 제2 좌표 정보와 연관되는 일부를 상기 중복 스냅샷을 지정하는 식별자로 대체하여, 델타 스냅샷에 저장할 수 있다.
예컨대, 중복 스냅샷을 지정하는 식별자로서 (1.3)이 설정되는 경우, 그래프 저장 관리 장치(100)는 시간 G(T0)에서의 제1 컬럼 인덱스 배열 '0 0 2 1 3'에 대해, 식별자 (1.3)로 중복되는 '0 2'를 대체한, 제2 컬럼 인덱스 배열 '0 (1.3) 1 3'를 델타 스냅샵에 저장할 수 있다.
또한, 그래프 저장 관리 장치(100)는 시간 G(T1)에서 제1 컬럼 인덱스 배열 '0 3 0 2 3 1'에 대해, 식별자 (1.3)로, 중복되는 '0 2'를 대체하여 제2 컬럼 인덱스 배열 ''0 3 (1.3) 3 1''를 델타 스냅샵에 저장할 수 있다.
또한, 그래프 저장 관리 장치(100)는 상기 제1 로우 포인터 배열을 상기 델타 스냅샷에 더 저장할 수 있다. 즉, 그래프 저장 관리 장치(100)는 시간 G(T0)에서의, 제1 로우 포인터 배열 '0 1 3 4 5'을 그대로 유지하여, 델타 스냅샷에 저장할 수 있고, 시간 G(T1)에서의, 제1 로우 포인터 배열 '0 2 4 5 6'을 그대로 유지하여, 델타 스냅샷에 저장할 수 있다.
본 발명에 따르면, 동적 그래프에 대한 효과적인 이력 관리를 위한 그래프 관리 기법을 제안 함으로써, 시간에 따라 변화하는 동적 그래프를 중복 스냅샷과 델타 스냅샷으로 관리하여 중복되는 데이터를 최소화할 수 있다.
또한, 본 발명에 따르면, 변형된 CSR 표현 기법을 활용하여 이력 관리 정보량을 감소시킬 수 있다.
또한, 본 발명에 따르면, 그래프 이력데이터의 검색 시 중복을 제외한 변화 이력만을 접근하여 검색 성능을 향상시킬 수 있다.
또한, 본 발명에 따르면, 그래프 이력데이터를 효율적으로 저장하기 위한 구조로 인해, 소셜 네트워크와 같은 동적 그래프 데이터의 통계 분석을 위한 그래프 이력데이터의 접근에 효율적으로 활용할 수 있다.
본 발명의 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. 
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
100 : 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 장치
110 : 추출부 120 : 식별부
130 : 처리부 140 : 구성부

Claims (14)

  1. 그래프 저장 관리 장치에 의해 구현되는 그래프 저장 관리 방법에 있어서,
    상기 그래프 저장 관리 장치에서, 연속되는 주기 간에 발생한 복수의 그래프 스트림을 추출하는 단계;
    상기 그래프 저장 관리 장치에서, 상기 복수의 그래프 스트림으로부터, 중점 사이를 연결하는 간선의 방향을 확인하여 중복 데이터를 식별하는 단계;
    상기 그래프 저장 관리 장치에서, 상기 중복 데이터를 중복 스냅샷에 저장하는 단계; 및
    상기 그래프 저장 관리 장치에서, 상기 연속되는 주기 중에서, n(상기 n은 자연수) 주기에 발생한 그래프 스트림으로부터, 상기 중복 데이터를 제외한 비중복 데이터를 식별하는 단계;
    상기 그래프 저장 관리 장치에서, 상기 비중복 데이터를, 상기 n에 대응하는 제n 델타 스냅샷에 저장하는 단계; 및
    상기 그래프 저장 관리 장치에서, 상기 제n 델타 스냅샷을, 상기 중복 스냅샷과 연결하여 데이터 저장 구조체를 구성하는 단계
    를 포함하는 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 그래프 저장 관리 장치에서, 상기 복수의 그래프 스트림 각각에 대해 희소 행렬을 작성하는 단계; 및
    상기 그래프 저장 관리 장치에서, 상기 희소 행렬을, 제1 로우 포인터 배열(Row pointer array)과 제1 컬럼 인덱스 배열(column indices array)을 포함하는 CSR(Compressed Sparse Row)로 표현하는 단계
    를 더 포함하는 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 방법.
  4. 제3항에 있어서,
    상기 CSR로 표현하는 단계는,
    상기 희소 행렬 내 그래프 데이터 각각으로 가상의 좌표 정보를 할당하는 단계;
    상기 그래프 데이터가 '1'로 존재하는 제1 좌표 정보를 독출하는 단계; 및
    상기 제1 좌표 정보 중 시작행 번호, 시작행에서의 상기 제1 좌표 정보를 독출한 횟수, 상기 시작행에서부터 u행까지(상기 u는 2번째행 번호에서 마지막행 번호)의 상기 제1 좌표 정보를 독출한 누적 횟수를 순차적으로 기재하여, 제1 로우 포인터 배열을 표현하는 단계
    를 포함하는 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 방법.
  5. 제4항에 있어서,
    상기 CSR로 표현하는 단계는,
    상기 제1 좌표 정보에서, 열에 해당하는 값을 순차적으로 기재하여 제1 컬럼 인덱스 배열을 표현하는 단계
    를 더 포함하는 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 방법.
  6. 제5항에 있어서,
    상기 CSR로 표현하는 단계는,
    상기 희소 행렬을 비교하여, 상기 제1 좌표 정보 중에서, 중복 데이터가 있는 제2 좌표 정보를 독출하는 단계;
    상기 제2 좌표 정보 중 시작행 번호, 시작행에서의 상기 제2 좌표 정보를 독출한 횟수, 상기 시작행에서부터 v행까지(상기 v는 2번째행 번호에서 마지막행 번호)의 상기 제2 좌표 정보를 독출한 누적 횟수를 순차적으로 기재하여 제2 로우 포인터 배열을 표현하는 단계;
    상기 제2 좌표 정보에서, 열에 해당하는 값을 순차적으로 기재하여 제2 컬럼 인덱스 배열을 표현하는 단계; 및
    상기 제2 로우 포인터 배열과 상기 제2 컬럼 인덱스 배열을 중복 스냅샷에 저장하는 단계
    를 더 포함하는 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 방법.
  7. 제6항에 있어서,
    상기 CSR로 표현하는 단계는,
    상기 제1 컬럼 인덱스 배열 내, 상기 제2 좌표 정보와 연관되는 일부를 상기 중복 스냅샷을 지정하는 식별자로 대체하여, 델타 스냅샷에 저장하는 단계; 및
    상기 제1 로우 포인터 배열을 상기 델타 스냅샷에 더 저장하는 단계
    를 더 포함하는 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 방법.
  8. 연속되는 주기 간에 발생한 복수의 그래프 스트림을 추출하는 추출부;
    상기 복수의 그래프 스트림으로부터, 중점 사이를 연결하는 간선의 방향을 확인하여 중복 데이터를 식별하고, 상기 연속되는 주기 중에서, n(상기 n은 자연수) 주기에 발생한 그래프 스트림으로부터, 상기 중복 데이터를 제외한 비중복 데이터를 식별하는 식별부;
    상기 중복 데이터를 중복 스냅샷에 저장하고, 상기 비중복 데이터를, 상기 n에 대응하는 제n 델타 스냅샷에 저장하는 처리부; 및
    상기 제n 델타 스냅샷을, 상기 중복 스냅샷과 연결하여 데이터 저장 구조체를 구성하는 구성부
    를 포함하는 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 장치.
  9. 삭제
  10. 제8항에 있어서,
    상기 처리부는,
    상기 복수의 그래프 스트림 각각에 대해 희소 행렬을 작성하고,
    상기 희소 행렬을, 제1 로우 포인터 배열과 제1 컬럼 인덱스 배열을 포함하는 CSR로 표현하는
    그래프 저장 관리 장치.
  11. 제10항에 있어서,
    상기 처리부는,
    상기 희소 행렬 내 그래프 데이터 각각으로 가상의 좌표 정보를 할당하고,
    상기 그래프 데이터가 '1'로 존재하는 제1 좌표 정보를 독출하며,
    상기 제1 좌표 정보 중 시작행 번호, 시작행에서의 상기 제1 좌표 정보를 독출한 횟수, 상기 시작행에서부터 u행까지(상기 u는 2번째행 번호에서 마지막행 번호)의 상기 제1 좌표 정보를 독출한 누적 횟수를 순차적으로 기재하여, 제1 로우 포인터 배열을 표현하는
    그래프 저장 관리 장치.
  12. 제11항에 있어서,
    상기 처리부는,
    상기 제1 좌표 정보에서, 열에 해당하는 값을 순차적으로 기재하여 제1 컬럼 인덱스 배열을 표현하는
    그래프 저장 관리 장치.
  13. 제12항에 있어서,
    상기 처리부는,
    상기 희소 행렬을 비교하여, 상기 제1 좌표 정보 중에서, 중복 데이터가 있는 제2 좌표 정보를 독출하고,
    상기 제2 좌표 정보 중 시작행 번호, 시작행에서의 상기 제2 좌표 정보를 독출한 횟수, 상기 시작행에서부터 v행까지(상기 v는 2번째행 번호에서 마지막행 번호)의 상기 제2 좌표 정보를 독출한 누적 횟수를 순차적으로 기재하여 제2 로우 포인터 배열을 표현하며,
    상기 제2 좌표 정보에서, 열에 해당하는 값을 순차적으로 기재하여 제2 컬럼 인덱스 배열을 표현하고,
    상기 제2 로우 포인터 배열과 상기 제2 컬럼 인덱스 배열을 중복 스냅샷에 저장하는
    그래프 저장 관리 장치.
  14. 제13항에 있어서,
    상기 처리부는,
    상기 제1 컬럼 인덱스 배열 내, 상기 제2 좌표 정보와 연관되는 일부를 상기 중복 스냅샷을 지정하는 식별자로 대체하여, 델타 스냅샷에 저장하고,
    상기 제1 로우 포인터 배열을 상기 델타 스냅샷에 더 저장하는
    그래프 저장 관리 장치.
KR1020180051197A 2018-05-03 2018-05-03 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 방법 및 그래프 저장 관리 장치 KR102054070B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180051197A KR102054070B1 (ko) 2018-05-03 2018-05-03 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 방법 및 그래프 저장 관리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180051197A KR102054070B1 (ko) 2018-05-03 2018-05-03 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 방법 및 그래프 저장 관리 장치

Publications (2)

Publication Number Publication Date
KR20190127076A KR20190127076A (ko) 2019-11-13
KR102054070B1 true KR102054070B1 (ko) 2019-12-09

Family

ID=68534852

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180051197A KR102054070B1 (ko) 2018-05-03 2018-05-03 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 방법 및 그래프 저장 관리 장치

Country Status (1)

Country Link
KR (1) KR102054070B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115905266A (zh) * 2022-12-29 2023-04-04 支付宝(杭州)信息技术有限公司 图结构数据的处理方法和用于图结构数据的存储引擎

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101719714B1 (ko) 2015-12-04 2017-03-24 경희대학교 산학협력단 동적 환경 소셜 네트워크 그래프에서 다중 제약 조건 그래프 패턴 매칭을 위한 효율적인 인덱스 갱신 방법 및 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9507682B2 (en) * 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US20130232433A1 (en) * 2013-02-01 2013-09-05 Concurix Corporation Controlling Application Tracing using Dynamic Visualization

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101719714B1 (ko) 2015-12-04 2017-03-24 경희대학교 산학협력단 동적 환경 소셜 네트워크 그래프에서 다중 제약 조건 그래프 패턴 매칭을 위한 효율적인 인덱스 갱신 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
김기훈 등, "이력 검색을 위한 효율적인 그래프 저장 관리 기법", 한국컴퓨터종합학술대회논문집 (2017.06.18.)

Also Published As

Publication number Publication date
KR20190127076A (ko) 2019-11-13

Similar Documents

Publication Publication Date Title
JP6032467B2 (ja) 時空間データ管理システム、時空間データ管理方法、及びそのプログラム
CN110502509B (zh) 一种基于Hadoop与Spark框架的交通大数据清洗方法及相关装置
CN105122243B (zh) 用于半结构化数据的可扩展分析平台
US11226963B2 (en) Method and system for executing queries on indexed views
KR101696338B1 (ko) 컬럼-인덱스 데이터 포맷을 이용하여 빅데이터를 효율적으로 처리 및 분석하는 시스템 및 방법
US20150032680A1 (en) Parallel tree based prediction
CN103473256B (zh) 用于内容管理的方法和***
CN109213752A (zh) 一种基于cim的数据清洗转换方法
CN104750826B (zh) 一种结构化数据资源元数据自动甄别与动态注册方法
CN105630934A (zh) 一种数据统计方法及***
Zhang et al. Periodic pattern mining for spatio-temporal trajectories: a survey
Azri et al. Dendrogram clustering for 3D data analytics in smart city
CN109308290B (zh) 一种基于cim的高效数据清洗转换方法
Sakr et al. Group spatiotemporal pattern queries
Hassani et al. I-hastream: density-based hierarchical clustering of big data streams and its application to big graph analytics tools
KR102054070B1 (ko) 변경 추적 및 이력 그래프 검색을 위한 그래프 저장 관리 방법 및 그래프 저장 관리 장치
Belcastro et al. Parallel extraction of Regions‐of‐Interest from social media data
Fan et al. A hierarchical contraction scheme for querying big graphs
CN108182230B (zh) 基于位向量四叉树的移动对象汇聚模式挖掘方法
CN106649636A (zh) 一种基于移动终端的人员流动性分析方法及装置
CN109656929A (zh) 一种雕复关系型数据库文件的方法及装置
CN112765288A (zh) 知识图谱的构建方法及***、信息查询方法及***
Mao et al. Comprehensive comparison of LSM architectures for spatial data
KR102354343B1 (ko) 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치
Wu et al. NEIST: A neural-enhanced index for spatio-temporal queries

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant