KR101941583B1 - P2p 네트워크 기반 피어 관리 방법 및 피어 관리 장치 - Google Patents

P2p 네트워크 기반 피어 관리 방법 및 피어 관리 장치 Download PDF

Info

Publication number
KR101941583B1
KR101941583B1 KR1020160109343A KR20160109343A KR101941583B1 KR 101941583 B1 KR101941583 B1 KR 101941583B1 KR 1020160109343 A KR1020160109343 A KR 1020160109343A KR 20160109343 A KR20160109343 A KR 20160109343A KR 101941583 B1 KR101941583 B1 KR 101941583B1
Authority
KR
South Korea
Prior art keywords
peers
peer
subgroup
group
subgroups
Prior art date
Application number
KR1020160109343A
Other languages
English (en)
Other versions
KR20180023653A (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 KR1020160109343A priority Critical patent/KR101941583B1/ko
Publication of KR20180023653A publication Critical patent/KR20180023653A/ko
Application granted granted Critical
Publication of KR101941583B1 publication Critical patent/KR101941583B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1059Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
    • H04L67/2842
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 P2P(Peer-to-Peer) 클라우드 스토리지 시스템에서 피어들 간의 데이터 전송 시간을 줄이고 데이터 전송 성능을 향상시키기 위한 피어 관리 방법 및 피어 관리 장치를 제공한다. 본 발명의 일 실시 예에 따른 피어 관리 방법은, P2P(Peer-to-Peer) 네트워크에 접속 중인 복수 개의 피어(peer)들 중 동일한 데이터의 복사본이나 프래그먼트를 저장하고 있는 피어들을 클러스터링(clustering)하여 그룹을 생성하는 단계; 및 상기 그룹에 속하는 피어들 중에서 각 피어들의 업타임(uptime)에 기초하여 대표 피어를 결정하는 단계를 포함할 수 있다.

Description

P2P 네트워크 기반 피어 관리 방법 및 피어 관리 장치{PEER MANAGE METHOD AND PEER MANAGE DEVICE BASED ON PEER-TO-PEER NETWORK}
본 발명은 P2P(Peer-to-Peer) 네트워크에 접속 중인 피어들을 관리하는 방법 및 피어들을 관리하는 장치에 관한 것이다.
최근 컴퓨터 네트워크의 발전으로 초고속 통신망이 일반화되고, 저장 장치 등의 가격이 저렴해지면서 IT 자원을 직접 설치할 필요없이 원격으로 빌려서 사용할 수 있게 하는 서비스인 클라우드 컴퓨팅이 등장하였다. 초기에는 클라이언트/서버 구조가 일반적이었으나, 사용자 증가에 따른 서버 확장 시 발생하는 설치 및 유지비용 문제 해결을 위해 P2P 클라우드 저장 장치가 등장하였다.
P2P 클라우드는 각 사용자가 보유한 장치의 로컬 저장 공간 일부를 클라우드 상의 가상 저장 공간에 기부하는 대신 P2P 네트워크에 접속된 어느 장치에서나 클라우드의 저장 공간을 안전하게 접근할 수 있게 하는 시스템이다. P2P 클라우드에서는 각 피어가 가입과 이탈을 반복하기 때문에, 데이터의 가용성을 보장하기 위해 데이터를 중복해서 저장하는 기법을 사용하고 있다.
도 1은 P2P 클라우드 스토리지에서 데이터를 저장하기 위한 복제(replication) 기법을 나타낸다. 복제 기법은 원본 데이터에 대한 k개의 복사본(replica)을 다린 피어들에 복사하여 저장함으로써, k-1개의 피어들이 이탈되어 있더라도 원본 데이터를 확보할 수 있도록 하는 방식이며, 도 1은 k=3인 경우의 예시를 나타낸다. 이러한 복제 기법은 원본 데이터에 대한 모든 복사본이 동일하기 때문에 처리 속도가 빠른 장점이 있으나, 저장 공간이 많이 필요한 단점이 존재한다.
도 2는 P2P 클라우드 스토리지에서 데이터를 저장하기 위한 또 다른 기법인 이레이저 코딩(erasure coding) 기법을 나타낸다. 이레이저 코딩 기법은 기존의 데이터 블록을 s개의 프래그먼트(fragment)로 나누고, r개의 프래그먼트를 추가로 인코딩하여 배포하는 방식이다. 도 2는 s=3, r=6인 경우의 예시를 나타낸다. 이레이저 코딩 기법은 동일한 수준의 데이터 가용성을 제공할 때 복제 기법에 비해서 필요한 저장 공간이 적다는 장점이 있으나, 원본 데이터를 얻기 위해 디코딩을 수행하여야 하므로 처리 속도가 느려지는 단점이 존재한다.
본 발명은 P2P(Peer-to-Peer) 클라우드 스토리지에서 피어들 간의 데이터 전송 시간을 줄이고 데이터 전송 성능을 향상시키는 것을 목적으로 한다.
본 발명이 해결하고자 하는 과제는 이상에서 언급된 과제로 제한되지 않는다. 언급되지 않은 다른 기술적 과제들은 이하의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시 예에 따라 P2P(Peer-to-Peer) 네트워크에 접속 중인 복수 개의 피어(peer)들을 관리하는 방법은, 상기 복수 개의 피어들 중 동일한 데이터의 복사본이나 프래그먼트를 저장하고 있는 피어들을 클러스터링(clustering)하여 그룹을 생성하는 단계; 및 상기 그룹에 속하는 피어들 중에서 각 피어들의 업타임(uptime)에 기초하여 대표 피어를 결정하는 단계를 포함할 수 있다.
상기 방법은, 상기 그룹에 속하는 피어들을 피어들 간의 물리적 인접성에 기초하여 복수 개의 서브 그룹으로 분할하는 단계를 더 포함할 수 있다.
상기 복수 개의 서브 그룹으로 분할하는 단계는, 상기 그룹에 속하는 피어들 중 서로 간에 RTT(Round Trip Time) 값이 가장 큰 2개의 기준 피어를 선택하는 단계; 상기 2개의 기준 피어가 각각 속한 2개의 서브 그룹을 생성하는 단계; 및 상기 그룹에 속하는 피어들을 상기 기준 피어에 대한 RTT 값이 작은 순서대로 해당 기준 피어가 속하는 서브 그룹에 포함시키는 단계를 포함할 수 있다.
상기 복수 개의 서브 그룹으로 분할하는 단계는, 상기 그룹에 속하는 피어들 중 서로 간에 RTT 값이 가장 큰 2개의 기준 피어를 선택하는 단계 이전에, 상기 그룹에 속하는 피어들이 서로 RTT 정보를 포함하는 메시지를 주고받는 단계를 더 포함할 수 있다.
상기 메시지는 PING(Packet Internet Grouper) 메시지일 수 있다.
상기 복수 개의 서브 그룹으로 분할하는 단계는, 상기 서브 그룹에 포함되는 피어의 수가 기 설정된 수보다 많아지는 경우: 상기 서브 그룹 내에서 다시 2개의 기준 피어를 선택하여 각 기준 피어들이 포함되는 2개의 새로운 서브 그룹으로 해당 서브 그룹을 분할하는 단계를 더 포함할 수 있으며,
물리적 인접성이 소정의 값보다 높은 두 서브 그룹에 포함되는 피어의 수의 합이, 상기 기 설정된 수보다 적은 경우: 상기 두 서브 그룹을 병합하여 하나의 서브 그룹을 생성하는 단계를 더 포함할 수 있다.
상기 방법은, 상기 P2P 네트워크에 접속 중인 복수 개의 피어 중 하나인 요청 피어가 데이터를 요청하는 경우, 상기 요청 피어와 동일한 서브 그룹에 속하는 피어들부터 우선적으로 소스 피어로 결정하는 단계를 포함할 수 있다.
상기 방법은, 상기 요청 피어에 필요한 소스 피어의 수가 상기 요청 피어가 속하는 서브 그룹에 포함된 피어의 수보다 많은 경우: 상기 요청 피어가 속하는 서브 그룹과 물리적 인접성이 소정의 값보다 높은 서브 그룹에 포함되는 피어들 중에서 소스 피어를 추가적으로 결정하는 단계를 더 포함할 수 있다.
상기 대표 피어를 결정하는 단계는, 상기 복수 개의 피어들 중 가장 긴 업타임을 가지는 피어를 대표 피어로 결정하는 단계를 포함하며, 상기 대표 피어는 상기 그룹에 속하는 피어들에 대하여 데이터를 프리페치(prefetch)하도록 제공될 수 있다.
상기 대표 피어가 제공하는 저장 공간에 각 서브 그룹에 포함되는 피어의 수 및 각 서브 그룹 간의 물리적 인접성에 대한 정보를 저장할 수 있다.
본 발명의 일 실시 예에 따라 P2P 네트워크에 접속 중인 복수 개의 피어들을 관리하는 장치는, 상기 복수 개의 피어들 중 동일한 데이터의 복사본이나 프래그먼트를 저장하고 있는 피어들을 클러스터링하여 그룹을 생성하는 클러스터링부; 및 상기 그룹에 속하는 피어들 중에서 각 피어들의 업타임에 기초하여 대표 피어를 결정하는 대표 피어 결정부를 포함할 수 있다.
상기 피어 관리 장치는, 상기 그룹에 속하는 피어들을 피어들 간의 물리적 인접성에 기초하여 복수 개의 서브 그룹으로 분할하는 서브 그룹 관리부를 더 포함할 수 있다.
상기 서브 그룹 관리부는: 상기 그룹에 속하는 피어들 중 서로 간에 RTT 값이 가장 큰 2개의 기준 피어를 선택하고, 상기 2개의 기준 피어가 각각 속한 2개의 서브 그룹을 생성하며, 상기 그룹에 속하는 피어들을 상기 기준 피어에 대한 RTT 값이 작은 순서대로 해당 기준 피어가 속하는 서브 그룹에 포함시킬 수 있다.
상기 서브 그룹 관리부는, 상기 그룹에 속하는 피어들이 서로 주고받은 PING 메시지에 포함되는 RTT 정보에 기초하여 서브 그룹을 관리할 수 있다.
상기 서브 그룹 관리부는, 상기 서브 그룹에 포함되는 피어의 수가 기 설정된 수보다 많아지는 경우: 상기 서브 그룹 내에서 다시 2개의 기준 피어를 선택하여 각 기준 피어들이 포하되는 2개의 새로운 서브 그룹으로 해당 서브 그룹을 분할할 수 있다.
상기 서브 그룹 관리부는, 물리적 인접성이 소정의 값보다 높은 두 서브 그룹에 포함되는 피어의 수의 합이, 상기 기 설정된 수보다 적은 경우에는 상기 두 서브 그룹을 병합하여 하나의 서브 그룹을 생성할 수 있다.
상기 대표 피어 결정부는, 상기 복수 개의 피어들 중 가장 긴 업타임을 가지는 피어를 대표 피어로 결정하며, 상기 대표 피어를 상기 그룹에 속하는 피어들에 대하여 데이터를 프리페치하도록 설정할 수 있다.
상기 대표 피어 결정부는,
상기 대표 피어가 제공하는 저장 공간에 각 서브 그룹에 포함되는 피어의 수 및 각 서브 그룹 간의 물리적 인접성에 대한 정보가 저장되도록 제어할 수 있다.
본 발명의 또 다른 실시 예에 따르면, 상기 피어 관리 방법을 실행하기 위한 프로그램을 기록한 기록 매체를 제공할 수 있다.
본 발명의 실시 예에 의하면, P2P(Peer-to-Peer) 클라우드 스토리지에서 피어들 간의 데이터 전송 시간을 줄이고 데이터 전송 성능을 향상시킬 수 있는 피어 관리 방법 및 장치가 제공된다.
본 발명의 효과는 상술한 효과들로 제한되지 않는다. 언급되지 않은 효과들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확히 이해될 수 있을 것이다.
도 1은 P2P 클라우드 스토리지에서 데이터를 저장하기 위한 복제(replication) 기법을 나타내기 위한 도면이다.
도 2는 P2P 클라우드 스토리지에서 데이터를 저장하기 위한 또 다른 기법인 이레이저 코딩(erasure coding) 기법을 나타내기 위한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 피어 관리 방법으로 복수 개의 피어들을 여러 그룹으로 분류한 것을 나타낸다.
도 4는 본 발명의 일 실시 예에 따른 피어 관리 장치의 구성을 나타내는 도면이다.
도 5는 본 발명의 일 실시 예에 따른 피어 관리 방법의 예시적인 흐름도이다.
도 6은 도 5의 피어 관리 방법에 있어서 S230을 구체적으로 나타낸 예시적인 흐름도이다.
본 발명의 다른 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술하는 실시 예를 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예에 한정되지 않으며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 만일 정의되지 않더라도, 여기서 사용되는 모든 용어들(기술 혹은 과학 용어들을 포함)은 이 발명이 속한 종래 기술에서 보편적 기술에 의해 일반적으로 수용되는 것과 동일한 의미를 갖는다. 공지된 구성에 대한 일반적인 설명은 본 발명의 요지를 흐리지 않기 위해 생략될 수 있다. 본 발명의 도면에서 동일하거나 상응하는 구성에 대하여는 가급적 동일한 도면부호가 사용된다. 본 발명의 이해를 돕기 위하여, 도면에서 일부 구성은 다소 과장되거나 축소되어 도시될 수 있다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다", "가지다" 또는 "구비하다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서 전체에서 사용되는 '~부'는 적어도 하나의 기능이나 동작을 처리하는 단위로서, 예를 들어 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미할 수 있다. 그렇지만 '~부'가 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.
일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함할 수 있다. 구성요소와 '~부'에서 제공하는 기능은 복수의 구성요소 및 '~부'들에 의해 분리되어 수행될 수도 있고, 다른 추가적인 구성요소와 통합될 수도 있다.
본 발명의 실시 예에 따른 피어 관리 방법은, 피어들 사이의 물리적 거리와 각 피어의 데이터 전송 및 저장 성능을 반영하여 P2P(Peer-to-Peer) 네트워크에 접속 중인 복수 개의 피어들을 관리한다. 본 발명의 실시 예에 따르면, P2P 클라우드 스토리지에 있어서 계층적 구조를 제공할 수 있다. 본 발명은 피어들의 지역성과 각 피어의 성능을 고려하여 피어들을 관리함으로써 데이터 전송 성능을 향상시킬 수 있도록 한다.
이하, 첨부되는 도면을 참조하여 본 발명의 실시 예들을 구체적으로 설명한다.
도 3은 본 발명의 일 실시 예에 따른 피어 관리 방법에 의해 생성된 복수 개의 피어들의 오버레이 구조를 나타낸다.
본 발명의 일 실시 예에 따르면, P2P 네트워크에 접속 중인 복수 개의 피어들 중에서, 어떠한 데이터에 대해 그 데이터의 복사본이나 프래그먼트(fragment)를 저장하고 있는지 여부에 기초하여 피어들을 클러스터링(clustering)할 수 있다. 즉, 일 실시 예에 따르면 P2P 네트워크에 접속 중인 피어들 중에서 동일한 데이터의 복사본이나 프래그먼트를 저장하고 있는 피어들로 하나의 그룹을 생성할 수 있다. 도 3에 도시된 바와 같이, 클러스터링에 따라 여러 그룹이 생성될 수 있다.
상기 그룹에 속하는 피어들 중에서 해당 그룹의 대표 피어가 결정된다. 일 실시 예에 따르면, 상기 그룹에 속하는 피어들 중에서 각 피어들의 업타임에 기초하여 대표 피어를 결정할 수 있다. 바람직하게는, 상기 그룹에 속하는 피어들 중에서 가장 업타임이 긴 피어를 해당 그룹의 대표 피어로 결정할 수 있다. 피어들의 업타임이 피어의 동작에 따라 상이한 경우, 평균 업타임 값을 이용하여 대표 피어를 결정할 수 있다.
도 3을 참조하면, 상기 그룹에 속하는 피어들은 다시 복수 개의 서브 그룹으로 나뉠 수 있다. 일 실시 예에 따르면, 상기 그룹에 속하는 피어들은 피어들 간의 물리적 인접성에 기초하여 복수 개의 서브 그룹으로 분할될 수 있다.
상기 P2P 네트워크에 접속 중인 복수 개의 피어 중 하나인 요청 피어가 데이터를 요청하는 경우, 상기 요청 피어와 동일한 서브 그룹에 속하는 피어들부터 우선적으로 소스 피어로 결정할 수 있다. 이에 따라, 피어들 간의 데이터 전송에 있어서 지연 시간을 최소화할 수 있다.
만일 같은 서브 그룹내에서 소스 피어의 수가 부족하면 물리적 인접성이 가장 높은 다른 서브 그룹에 속한 피어를 소스 피어로 결정할 수 있다. 즉, 본 발명의 실시 예에 따르면 요청 피어의 위치를 고려하여 소스 피어들을 선정함으로써 네트워크 지연 시간을 최소화할 수 있다.
이하에서 본 발명의 일 실시 예에 따라 하나의 그룹을 복수 개의 서브 그룹으로 분할하는 방법에 대해 더 구체적으로 설명한다.
먼저, 상기 그룹에 속하는 피어들 중 서로 간에 RTT(Round Trip Time) 값이 가장 큰 2개의 기준 피어를 선택한다. 그리고 나서 상기 기준 피어들이 각각 속하는 2개의 서브 그룹을 생성한다. 상기 그룹에 속하는 나머지 피어들을, 각 기준 피어에 대한 RTT 값이 작은 순서대로 해당 기준 피어가 속하는 서브 그룹에 포함시킨다.
상기 RTT 값은 피어들이 서로 RTT 정보를 포함하는 메시지를 주고받음으로써 획득할 수 있다. 일 실시 예에 따라, 상기 메시지는 PING(Packet Internet Grouper) 메시지일 수 있다.
기준 피어를 기준으로 2개의 서브 그룹을 생성하고, 기준 피어와 RTT 값이 작은 순서대로 서브 그룹에 포함시킴으로써 서브 그룹을 생성하는 과정에서, 서브 그룹에 포함되는 피어의 수가 기 설정된 수보다 많아지는 경우 해당 서브 그룹을 분할할 수 있다.
일 실시 예에 따라, 서브 그룹을 분할하여 복수 개의 새로운 서브 그룹을 생성하는 과정은, 상술된 그룹을 분할하는 방법과 동일하게 수행될 수 있다.
P2P 클라우드 스토리지에서의 피어들은 가입과 이탈을 반복하므로, 피어의 이탈에 따라 서브 그룹에 속하는 피어의 수가 줄어들 수 있다. 본 발명의 일 실시 예에 따르면, 물리적 인접성이 소정의 값보다 높은 두 서브 그룹에 포함되는 피어의 수의 합을 계산하여, 상기 기 설정된 수보다 적은 경우에는 두 서브 그룹을 병합하여 하나의 서브 그룹을 생성할 수 있다.
서브 그룹간의 물리적 인접성의 판단은, 각 서브 그룹의 기준 피어 간의 RTT 값에 기초하여 수행될 수 있다.
일 실시 예에 따라, 상기 그룹의 대표 피어는 해당 그룹에 속하는 서브 그룹들에 대한 정보를 관리할 수 있다. 예를 들면, 대표 피어가 제공하는 저장 공간에는 각 서브 그룹에 포함되는 피어의 수, 각 서브 그룹 간의 물리적 인접성에 대한 정보가 저장될 수 있다. 그러나 상술한 바와 같이 P2P 클라우드 스토리지에서 피어는 가입과 이탈을 반복할 수 있기 때문에, 대표 피어에 저장되는 정보들은 트래커 서버에 전송될 수 있다. 만약 대표 피어가 이탈하고 새로운 대표 피어가 결정될 경우, 새로운 대표 피어는 트래커 서버로부터 정보를 수신할 수 있다.
상술한 바와 같이, 대표 피어는 해당 그룹에 속하는 피어들 중 가장 긴 업타임을 가지는 피어일 수 있다.
또 다른 실시 예에 있어서, 피어가 기부한 저장 공간의 크기나 피어의 업로드 대역폭에 기초하여 대표 피어를 결정할 수도 있다.
대표 피어는 그룹에 속하는 피어들에 대하여 데이터를 프리페치(prefetch)하도록 제공될 수 있다. 즉, 대표 피어는 자신의 그룹에 속한 피어들 중에서 성능이 저하되었거나 네트워크 대역폭이 부족한 피어를 위해 자신의 메모리에 데이터를 프리페치할 수 있다.
예를 들면, 요청 피어가 자신이 속한 서브 그룹이 아닌 다른 서브 그룹에 속한 피어를 소스 피어로 결정한 경우, 네트워크 지연 시간이 길어질 수 있다. 이 때, 대표 피어가 프리페치 기능을 수행하여 네트워크 지연 시간을 줄일 수 있다.
도 4는 본 발명의 일 실시 예에 따른 피어 관리 장치의 구성을 나타내는 도면이다.
도 4를 참조하면, 본 발명의 일 실시 예에 따른 피어 관리 장치(100)는 클러스터링부(110), 대표 피어 결정부(120), 및 서브 그룹 관리부(130)를 포함할 수 있다.
클러스터링부(110)는 P2P 네트워크에 접속 중인 복수 개의 피어들 중 동일한 데이터의 복사본이나 프래그먼트를 저장하고 있는지 여부를 기준으로 피어들을 클러스터링할 수 있다. 이에 따라, 동일한 데이터의 복사본이나 프래그먼트를 저장하고 있는 피어들로 하나의 그룹이 생성될 수 있다.
대표 피어 결정부(120)는 상기 그룹에 속하는 피어들 중에서 대표 피어를 결정할 수 있다. 일 실시 예에 따라, 대표 피어 결정부(120)는 그룹에 속하는 피어들 중 가장 긴 업타임을 가지는 피어를 대표 피어로 결정할 수 있다. 또 다른 실시 예에 있어서, 피어가 제공하는 저장 공간이나 피어의 업로드 대역폭에 기초하여 대표 피어를 결정할 수도 있다.
서브 그룹 관리부(130)는 상기 그룹을 복수 개의 서브 그룹으로 분할할 수 있다. 또한, 서브 그룹 관리부(130)는 서브 그룹들을 병합할 수 있다.
일 실시 예에 따라, 서브 그룹 관리부(130)는 상기 그룹에 속하는 피어들을 피어들 간의 물리적 인접성에 기초하여 복수 개의 서브 그룹으로 분할할 수 있다. 또한, 서브 그룹에 속하는 피어들의 수에 따라 서브 그룹을 다시 새로운 서브 그룹들로 분할하거나, 2 이상의 서브 그룹을 병합하여 하나의 서브 그룹으로 통합시킬 수도 있다.
대표 피어 결정부(120)는 대표 피어가 제공하는 저장 공간에 각 서브 그룹에 포함되는 피어의 수 및 각 서브 그룹간의 물리적 인접성에 대한 정보가 저장되도록 제어할 수 있다.
도 5는 본 발명의 일 실시 예에 따른 피어 관리 방법(200)의 예시적인 흐름도이다.
도 5를 참조하면, 상기 피어 관리 방법(200)은 P2P 네트워크에 접속 중인 복수 개의 피어들을 클러스터링하여 동일한 데이터에 대한 복사본이나 프래그먼트를 저장하고 있는 피어들로 그룹을 생성하는 단계(S210), 상기 그룹 내 피어들 중 가장 긴 업타임을 가지는 대표 피어를 결정하는 단계(S220), 및 상기 그룹을 피어들 간의 물리적 인접성에 기초하여 복수 개의 서브 그룹으로 분할하는 단계(S230)를 포함할 수 있다.
도 6은 도 5의 피어 관리 방법에 있어서 S230을 구체적으로 나타낸 예시적인 흐름도이다.
도 6에 도시된 바와 같이, 상기 그룹을 복수 개의 서브 그룹으로 분할하는 단계(S230)는 우선 상기 그룹에 속하는 피어들 중 서로 간에 RTT 값이 가장 큰 2개의 기준 피어를 선택하는 단계(S231)를 포함할 수 있다.
일 실시 예에 따라, 상기 기준 피어를 선택하는 단계(S231) 이전에 상기 그룹에 속하는 피어들이 서로 RTT 정보를 포함하는 메시지를 주고받는 단계를 더 포함할 수 있다. 상기 메시지는 PING 메시지일 수 있다.
기준 피어가 선택되면, 각 기준 피어가 속하는 2개의 서브 그룹을 생성하는 단계(S232)가 수행될 수 있다. 상기 그룹에 속하는 피어들은 상기 기준 피어에 대한 RTT 값이 작은 순서대로 해당 기준 피어가 속하는 서브 그룹에 포함될 수 있다(S233).
일 실시 예에 따라, 서브 그룹에 포함되는 피어의 수가 기 설정된 수(P)보다 많은지 여부를 판단할 수 있다(S234). 서브 그룹에 포함되는 피어의 수가 P보다 큰 경우, 해당 서브 그룹을 복수 개의 새로운 서브 그룹으로 분할할 수 있다(S236).
일 실시 예에 따라, 물리적으로 인접한 두 개의 서브 그룹에 포함되는 피어의 수의 합이, 기 설정된 수(P)보다 작은지 여부를 판단할 수 있다(S235). 두 개의 서브 그룹이 물리적으로 인접한지 여부는, 각 서브 그룹의 기준 피어 간의 RTT 값이 소정의 값보다 작은지 여부를 기준으로 판단할 수 있다.
물리적 인접성이 소정의 값보다 높은 두 서브 그룹에 포함되는 피어의 수의 합이 P보다 작은 경우, 두 서브 그룹을 병합하여 하나의 서브 그룹을 생성할 수 있다(S237).
서브 그룹을 분할하거나 서브 그룹을 병합하는 S233 내지 S237의 단계는 도 6에 나타난 순서로 제한되지 않는다.
이상 살펴본 바와 같이, 본 발명의 실시 예는 P2P 클라우드 저장 시스템에 있어서 피어들을 오버레이 구조로 관리함으로써 데이터 전송 성능을 향상시킬 수 있다. 각 피어의 물리적 위치에 기반하여 서브 그룹을 생성하고 관리함으로써, 네트워크 지연 시간을 최소화할 수 있다. 또한 대표 피어가 해당 그룹 내의 서브 그룹들을 관리하고, 자신의 그룹에 속한 피어들에 프리페치 기능을 지원함으로써 네트워크 지연 시간을 더 줄일 수 있다.
본 발명의 실시 예에 따른 데이터 관리 방법은 예를 들어 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 컴퓨터로 읽을 수 있는 기록매체는 SRAM(Static RAM), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM) 등과 같은 휘발성 메모리, ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Electrically Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), 플래시 메모리 장치, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM)과 같은 불휘발성 메모리, 플로피 디스크, 하드 디스크 또는 광학적 판독 매체 예를 들어 시디롬, 디브이디 등과 같은 형태의 저장매체일 수 있으나, 이에 제한되지는 않는다.
이상의 실시 예들은 본 발명의 이해를 돕기 위하여 제시된 것으로, 본 발명의 범위를 제한하지 않으며, 이로부터 다양한 변형 가능한 실시 예들도 본 발명의 범위에 속하는 것임을 이해하여야 한다. 본 발명의 기술적 보호범위는 특허청구범위의 기술적 사상에 의해 정해져야 할 것이며, 본 발명의 기술적 보호범위는 특허청구범위의 문언적 기재 그 자체로 한정되는 것이 아니라 실질적으로는 기술적 가치가 균등한 범주의 발명에 대하여까지 미치는 것임을 이해하여야 한다.
100 : 피어 관리 장치
110 : 클러스터링부
120 : 대표 피어 결정부
130 : 서브 그룹 관리부
200 : 피어 관리 방법

Claims (20)

  1. P2P(Peer-to-Peer) 네트워크에 접속 중인 복수 개의 피어(peer)들을 관리하는 방법으로,
    상기 복수 개의 피어들 중 동일한 데이터의 복사본이나 프래그먼트를 저장하고 있는 피어들을 클러스터링(clustering)하여 그룹을 생성하는 단계; 및
    상기 그룹에 속하는 피어들을 피어들 간의 물리적 인접성에 기초하여 복수 개의 서브 그룹으로 분할하는 단계를 포함하고,
    상기 복수 개의 서브 그룹으로 분할하는 단계는,
    상기 그룹에 속하는 피어들 중 서로 간에 RTT(Round Trip Time) 값이 가장 큰 2개의 기준 피어를 선택하는 단계;
    상기 2개의 기준 피어가 각각 속한 2개의 서브 그룹을 생성하는 단계;
    상기 그룹에 속하는 피어들을 상기 기준 피어에 대한 RTT 값이 작은 순서대로 해당 기준 피어가 속하는 서브 그룹에 포함시키는 단계; 및
    상기 서브 그룹에 포함되는 피어의 수가 기 설정된 수보다 많아지는 경우, 상기 서브 그룹 내에서 다시 2개의 기준 피어를 선택하여 각 기준 피어들이 포함되는 2개의 새로운 서브 그룹으로 해당 서브 그룹을 분할하는 단계를 포함하는 피어 관리 방법.
  2. 삭제
  3. 삭제
  4. 제1 항에 있어서,
    상기 복수 개의 서브 그룹으로 분할하는 단계는,
    상기 그룹에 속하는 피어들 중 서로 간에 RTT 값이 가장 큰 2개의 기준 피어를 선택하는 단계 이전에, 상기 그룹에 속하는 피어들이 서로 RTT 정보를 포함하는 메시지를 주고받는 단계를 더 포함하는 피어 관리 방법.
  5. 제4 항에 있어서,
    상기 메시지는 PING(Packet Internet Grouper) 메시지인 피어 관리 방법.
  6. 삭제
  7. 제1 항에 있어서,
    물리적 인접성이 소정의 값보다 높은 두 서브 그룹에 포함되는 피어의 수의 합이, 상기 기 설정된 수보다 적은 경우: 상기 두 서브 그룹을 병합하여 하나의 서브 그룹을 생성하는 단계를 더 포함하는 피어 관리 방법.
  8. 제1 항에 있어서,
    상기 P2P 네트워크에 접속 중인 복수 개의 피어 중 하나인 요청 피어가 데이터를 요청하는 경우, 상기 요청 피어와 동일한 서브 그룹에 속하는 피어들부터 우선적으로 소스 피어로 결정하는 단계를 포함하는 피어 관리 방법.
  9. P2P(Peer-to-Peer) 네트워크에 접속 중인 복수 개의 피어(peer)들을 관리하는 방법으로,
    상기 복수 개의 피어들 중 동일한 데이터의 복사본이나 프래그먼트를 저장하고 있는 피어들을 클러스터링(clustering)하여 그룹을 생성하는 단계; 및
    상기 그룹에 속하는 피어들을 피어들 간의 물리적 인접성에 기초하여 복수 개의 서브 그룹으로 분할하는 단계를 포함하고,
    상기 복수 개의 서브 그룹으로 분할하는 단계는,
    상기 그룹에 속하는 피어들 중 서로 간에 RTT(Round Trip Time) 값이 가장 큰 2개의 기준 피어를 선택하는 단계;
    상기 2개의 기준 피어가 각각 속한 2개의 서브 그룹을 생성하는 단계; 및
    상기 그룹에 속하는 피어들을 상기 기준 피어에 대한 RTT 값이 작은 순서대로 해당 기준 피어가 속하는 서브 그룹에 포함시키는 단계를 포함하고,
    상기 P2P 네트워크에 접속 중인 복수 개의 피어 중 하나인 요청 피어가 데이터를 요청하는 경우, 상기 요청 피어와 동일한 서브 그룹에 속하는 피어들부터 우선적으로 소스 피어로 결정하는 단계; 및
    상기 요청 피어에 필요한 소스 피어의 수가 상기 요청 피어가 속하는 서브 그룹에 포함된 피어의 수보다 많은 경우, 상기 요청 피어가 속하는 서브 그룹과 물리적 인접성이 소정의 값보다 높은 서브 그룹에 포함되는 피어들 중에서 소스 피어를 추가적으로 결정하는 단계를 더 포함하는 피어 관리 방법.
  10. 제1 항에 있어서,
    상기 그룹에 속하는 피어들 중에서 각 피어들의 업타임(uptime)에 기초하여 대표 피어를 결정하는 단계를 더 포함하고,
    상기 대표 피어를 결정하는 단계는,
    상기 복수 개의 피어들 중 가장 긴 업타임을 가지는 피어를 대표 피어로 결정하는 단계를 포함하며,
    상기 대표 피어는 상기 그룹에 속하는 피어들에 대하여 데이터를 프리페치(prefetch)하도록 제공되는 피어 관리 방법.
  11. 제1 항에 있어서,
    상기 그룹에 속하는 피어들 중에서 각 피어들의 업타임(uptime)에 기초하여 대표 피어를 결정하는 단계를 더 포함하고,
    상기 대표 피어가 제공하는 저장 공간에 각 서브 그룹에 포함되는 피어의 수 및 각 서브 그룹 간의 물리적 인접성에 대한 정보를 저장하는 피어 관리 방법.
  12. P2P 네트워크에 접속 중인 복수 개의 피어들을 관리하는 장치로,
    상기 복수 개의 피어들 중 동일한 데이터의 복사본이나 프래그먼트를 저장하고 있는 피어들을 클러스터링하여 그룹을 생성하는 클러스터링부; 및
    상기 그룹에 속하는 피어들을 피어들 간의 물리적 인접성에 기초하여 복수 개의 서브 그룹으로 분할하는 서브 그룹 관리부를 포함하고,
    상기 서브 그룹 관리부는:
    상기 그룹에 속하는 피어들 중 서로 간에 RTT 값이 가장 큰 2개의 기준 피어를 선택하고;
    상기 2개의 기준 피어가 각각 속한 2개의 서브 그룹을 생성하고;
    상기 그룹에 속하는 피어들을 상기 기준 피어에 대한 RTT 값이 작은 순서대로 해당 기준 피어가 속하는 서브 그룹에 포함시키고;
    상기 서브 그룹에 포함되는 피어의 수가 기 설정된 수보다 많아지는 경우, 상기 서브 그룹 내에서 다시 2개의 기준 피어를 선택하여 각 기준 피어들이 포하되는 2개의 새로운 서브 그룹으로 해당 서브 그룹을 분할하는 피어 관리 장치.
  13. 삭제
  14. 삭제
  15. 제12 항에 있어서,
    상기 서브 그룹 관리부는,
    상기 그룹에 속하는 피어들이 서로 주고받은 PING 메시지에 포함되는 RTT 정보에 기초하여 서브 그룹을 관리하는 피어 관리 장치.
  16. 삭제
  17. 제12 항에 있어서,
    상기 서브 그룹 관리부는,
    물리적 인접성이 소정의 값보다 높은 두 서브 그룹에 포함되는 피어의 수의 합이, 상기 기 설정된 수보다 적은 경우에는 상기 두 서브 그룹을 병합하여 하나의 서브 그룹을 생성하는 피어 관리 장치.
  18. 제12 항에 있어서,
    상기 그룹에 속하는 피어들 중에서 각 피어들의 업타임에 기초하여 대표 피어를 결정하는 대표 피어 결정부를 더 포함하고,
    상기 대표 피어 결정부는,
    상기 복수 개의 피어들 중 가장 긴 업타임을 가지는 피어를 대표 피어로 결정하며,
    상기 대표 피어를 상기 그룹에 속하는 피어들에 대하여 데이터를 프리페치하도록 설정하는 피어 관리 장치.
  19. 제18 항에 있어서,
    상기 대표 피어 결정부는,
    상기 대표 피어가 제공하는 저장 공간에 각 서브 그룹에 포함되는 피어의 수 및 각 서브 그룹 간의 물리적 인접성에 대한 정보가 저장되도록 제어하는 피어 관리 장치.
  20. 컴퓨터로 판독 가능한 기록 매체로,
    제1 항, 제4 항, 제5 항, 제7 항 내지 제11 항 중 어느 한 항에 기재된 피어 관리 방법을 실행하기 위한 프로그램을 기록한 기록 매체.
KR1020160109343A 2016-08-26 2016-08-26 P2p 네트워크 기반 피어 관리 방법 및 피어 관리 장치 KR101941583B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160109343A KR101941583B1 (ko) 2016-08-26 2016-08-26 P2p 네트워크 기반 피어 관리 방법 및 피어 관리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160109343A KR101941583B1 (ko) 2016-08-26 2016-08-26 P2p 네트워크 기반 피어 관리 방법 및 피어 관리 장치

Publications (2)

Publication Number Publication Date
KR20180023653A KR20180023653A (ko) 2018-03-07
KR101941583B1 true KR101941583B1 (ko) 2019-01-23

Family

ID=61689162

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160109343A KR101941583B1 (ko) 2016-08-26 2016-08-26 P2p 네트워크 기반 피어 관리 방법 및 피어 관리 장치

Country Status (1)

Country Link
KR (1) KR101941583B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014068283A (ja) * 2012-09-27 2014-04-17 Nippon Telegr & Teleph Corp <Ntt> ネットワーク障害検出システムおよびネットワーク障害検出装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8656017B2 (en) * 2007-05-16 2014-02-18 Microsoft Corporation Peer-to-peer collaboration system with edge routing
US9219782B2 (en) * 2012-12-11 2015-12-22 Microsoft Technology Licensing, Llc Identifying seed computing devices using estimates in peer-to-peer networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014068283A (ja) * 2012-09-27 2014-04-17 Nippon Telegr & Teleph Corp <Ntt> ネットワーク障害検出システムおよびネットワーク障害検出装置

Also Published As

Publication number Publication date
KR20180023653A (ko) 2018-03-07

Similar Documents

Publication Publication Date Title
CN108810041B (zh) 一种分布式缓存系统的数据写入及扩容方法、装置
US10095581B2 (en) Transmission time refinement in a storage system
JP5214472B2 (ja) 信頼性のある効率的ピアツーピアストレージ
US10165048B2 (en) Data copy storage method, terminal apparatus, and server apparatus
US11076181B2 (en) Systems and methods for resolving manifest file discontinuities
KR20060047899A (ko) 웹 컨텐츠 분배 방법
US20110119327A1 (en) System and Method for Efficiently Uploading Data Into A Content Addressable Storage System
Halalai et al. Agar: A caching system for erasure-coded data
KR102098415B1 (ko) 캐시 관리 기법
US11611615B1 (en) Decentralized edge storage network with flexible file sharding
KR101371202B1 (ko) 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템 및 이를 이용한 데이터 처리 방법
CN112699094A (zh) 文件存储方法、数据检索方法、相应装置及系统
US20150106468A1 (en) Storage system and data access method
US11645233B2 (en) Distributed file cache
US20180129425A1 (en) Data management system and method for processing distributed data
KR101941583B1 (ko) P2p 네트워크 기반 피어 관리 방법 및 피어 관리 장치
US9866647B2 (en) Hierarchical cost based caching for online media
KR101664188B1 (ko) P2p 네트워크 기반 데이터 관리 장치 및 데이터 관리 방법
US10254980B1 (en) Scheduling requests from data sources for efficient data decoding
JP2013004067A (ja) ストレージシステム、ストレージ制御方法、プログラム
US20160219120A1 (en) Methods for providing a staging area for objects prior to erasure coding and devices thereof
US20160112534A1 (en) Hierarchical caching for online media
Poon et al. Comparison of data replication strategies for peer-to-peer video streaming
US11586595B1 (en) Space-efficient techniques for generating unique instances of data objects
US11971902B1 (en) Data retrieval latency management system

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