KR20090037426A - 자기조직화 네트워크들을 위한 분산 해싱 메커니즘 - Google Patents

자기조직화 네트워크들을 위한 분산 해싱 메커니즘 Download PDF

Info

Publication number
KR20090037426A
KR20090037426A KR1020097000301A KR20097000301A KR20090037426A KR 20090037426 A KR20090037426 A KR 20090037426A KR 1020097000301 A KR1020097000301 A KR 1020097000301A KR 20097000301 A KR20097000301 A KR 20097000301A KR 20090037426 A KR20090037426 A KR 20090037426A
Authority
KR
South Korea
Prior art keywords
node
nodes
subsequent
data
new
Prior art date
Application number
KR1020097000301A
Other languages
English (en)
Other versions
KR101183050B1 (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 알까뗄 루슨트
Publication of KR20090037426A publication Critical patent/KR20090037426A/ko
Application granted granted Critical
Publication of KR101183050B1 publication Critical patent/KR101183050B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • 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 
    • H04L67/1046Joining mechanisms
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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/2471Distributed queries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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
    • 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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • 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 
    • H04L67/1048Departure or maintenance mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Telephone Function (AREA)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
  • Automatic Disk Changers (AREA)

Abstract

본 발명은 방향성 링 토폴로지(directed ring topology)로 배열된 복수의 노드들(900,..., 2200)을 포함하는 전기통신 시스템의 분산 디렉토리(directory)의 콘텐트(content)를 검색하는 방법에서, 상기 방법은 요소를 노드에 맵핑하는 분산 해싱 함수(distributed hashing function)에 의해 상기 콘텐트의 저장 위치를 식별하는 단계를 포함하고, 상기 노드(1300)는 상기 노드와 후속 노드 간의 해시값과 함께 요소들을 전달해야 하는, 방법에 관한 것이다. 본 발명은 또한, 대응하는 컴퓨터 소프트웨어 제품, 전기통신 디바이스, 및 전기통신 시스템에 관한 것이다.
Figure P1020097000301
분산 해싱 메커니즘, 분산 해싱 함수, 리던던시 링크, 선행 노드, 후속 노드

Description

자기조직화 네트워크들을 위한 분산 해싱 메커니즘{Distributed Hashing Mechanism for self-organizing networks}
본 발명은 분산된 디렉토리(directory)의 콘텐트(content)를 검색(retrieve)하기 위한 방법, 컴퓨터 소프트웨어 제품, 전기통신 디바이스 및 전기통신 시스템에 관한 것이다.
최소 중앙집중된 기반구조를 갖는 저 운영비(operating expenditures; OPEX)의 통신 시스템들은 흔히 오버레이 네트워크들(overlay network)(예를 들면, 피어투피어(peer-to-peer) 네트워크들)에서 고 분산된 데이터베이스들을 이용한다. 이들은 강건한 토폴로지(topology)를 생성하고 저장된 데이터의 일관성을 보증하기 위해서 자기조직화(self-organizing) 메커니즘들을 구현한다. 부하 균형(load balancing), 백업 전략들 및 데이터베이스 조회들의 지능형 라우팅(intelligent routing)의 이용이 증가하고 서비스 호출들이 이들 네트워크들의 전체 효율에 영향을 미친다.
I.Stoica, R.Morris, D.Liben-Nowell, D.Karger, M.F.Kaashoek, F.Dabek, 및 H.Balakrishnan은 "CHORD:A Scalable Peer-to-peer Lookup Protocol for Internet Applications", IEEE/ACM Transactions on Networking, Vol 11, No 1 (Feb 2003), pp.17 ~ 32에서, 오버레이 링(ring) 토폴로지를 형성하고 후속되는 네트워크 노드들로 리던던트 링크들을 생성하는 솔루션을 기술하였다. 리던던트 링크들은 네트워크가 노드의 불능(failure)에도 지속할 수 있게 한다. 각 노드는 룩업 문제들에 이용되는 분산 데이터베이스의 일부이며 따라서 완전한 저장된 데이터의 특정 부분을 맡는다. 데이터베이스로의 조회들(queries)은 담당하는 노드에 도달할 때까지, 링을 따라 또는 핑거들(finger)이라고 하는 어떤 단축로들(shortcut)을 따라 후속 노드들(successor nodes)로 라우팅된다. 노드 불능(failure)의 경우 백업을 위해 각 노드들은 자신의 데이터를 후속 노드(들)로 보낸다.
코드 프로토콜은 키들(key)을 찾는 방법, 새로운 노드들이 시스템에 결합하는 방법, 및 현존 노드들의 불능(또는 계획된 이탈)로부터 복구하는 방법을 명시한다. 핵심으로, 코드는 키들을 맡고 있는 노드들에 이들 키들을 맵핑하는 해시함수(hash function)의 고속 분산 계산을 제공한다. 이것은 일관된 해싱을 이용한다. 높은 확률로 해시함수는 부하의 균형을 맞추는데, 즉 모든 노드들은 거의 동일 수의 키들을 수신한다. 또한, 높은 확률로, 노드가 네트워크에 결합할 때(또는 떠날 때), 키들 중 제한된 소부분만이 다른 위치로 이동된다.
코드는 모든 노드가 모든 다른 노드에 관하여 알아야 한다는 요구조건을 회피함으로써 일관된 해싱의 확장성(scalability)을 개선한다. 코드 노드는 단지 몇 개의 라우팅 정보만을 필요로 한다. 이 정보는 분산되기 때문에, 노드는 몇 개의 다른 노드들과 통신함으로써 해시함수를 해결한다. 룩업 메시지들은 O(log n)개의 홉들(hop)을 필요로 한다. 코드는 노드가 네트워크에 결합하거나 떠날 때 라우팅 정보를 업데이트해야 하는데, 결합 또는 이탈은 O(log2 n) 메시지들을 필요로 한다.
일관된 해시함수는 베이스(base) 해시함수를 이용하여 식별자를 각 노드 및 키에 할당한다. 노드의 식별자는 노드의 IP 주소를 해싱함으로써 선택되고, 반면 키 식별자는 키를 해싱함으로써 생성된다. 일관된 해싱은 다음과 같이 키들을 노드들에 할당한다: 식별자들은 식별자 원(circle)으로 배열된다, 즉 어떤 모듈로 연산(modulo arithmetic)에 관하여 (선형 순서로) 배열된다. 키는 식별자가 동일하거나 상기 식별자를 따르는 제 1 노드에 할당된다. 이 노드는 키의 후속 노드라고 한다. 일관된 해싱은 노드들이 최소의 중단으로 네트워크로 들어가고 나가도록 설계된다. 노드가 네트워크에 결합할 때 일관된 해싱 맵핑을 유지하기 위해서, 후속 노드에 이전에 할당된 특정 키들은 이제, 결합된 노드에 할당되게 된다. 노드가 네트워크를 떠날 때, 이의 모든 할당된 키들은 후속 노드에 재할당된다.
코드는 백업 및 라우팅 문제들을 위해서 후속 노드들로의 링크들을 이용한다. 그러므로, 요청이 뒤에서 담당 노드로 다가지만, 백업 데이터가 링을 따라 앞쪽에 저장되기 때문에, 백업 데이터는 부하 균형에 영향을 줄 수 없다.
새롭게 결합하는 노드들은 이들의 선행 노드에 의해 네트워크에 통합될 때까지 수동적으로 기다려야 한다. 이것은 결합 시간이 확정적(deterministic)이지 않고 통계적으로 분산되는 효과를 가져온다. 미리 데이터베이스 요청들을 라우팅하는 것이 개선될 수 있다.
본 발명은 부하 균형, 즉각적 결합을 할 수 있고 보다 효율적인 개선된 분산 데이터베이스를 구비한 분산 계산 시스템을 제공하는 문제에 초점을 맞춘다.
이것은 방향성 링 토폴로지(directed ring topology)로 배열된 복수의 노드들을 포함하는 전기통신 시스템의 분산 디렉토리의 콘텐트를 검색하는 방법으로서, 상기 방법은 요소를 노드에 맵핑하는 분산 해싱 함수에 의해 상기 콘텐트의 저장 위치를 식별하는 단계를 포함하고, 상기 노드는 상기 노드와 후속 노드 간의 해시값과 함께 요소들을 전달해야 하는, 상기 방법에 의해 해결된다.
바람직하게, 리던던시 후속 링크는 노드 불능의 경우 이웃 노드들에서 백업들을 발생하도록 데이터 복제를 위해 상기 이웃 노드들을 식별하기 위해, 반대되는 방향으로, 즉 상기 링 방향에 역으로 이용된다.
사전에, 백업을 위해 데이터를 룩 업의 라우팅에 거의 수반되는 노드들 상에 복제하는 것이 바람직하다.
또한, 선행 노드가 후속 노드에 완전히 접속된 상태에 있는 동안, 먼저 선행 노드에 새로운 노드를 바인딩시키는 것을 확립하고, 이어서 후속 및 리던던시 링크들이 선행 노드에서 새로운 노드로 전송된 후에 선행 노드에서 새로운 노드로 요소들을 전송하고, 마지막으로 새로운 노드를 링 토폴로지에 결합하고, 이어서 리던던시 링크들을 후속 노드로의 링크를 가진 선행 노드에 의해 업데이트함으로써 새로운 노드를 즉시 삽입하는 것이 바람직하다.
상기 문제는, 특히, 상기 방법을 수행하도록 구성된 프로그래밍 수단을 포함하는 컴퓨터 소프트웨어 제품에 의해 해결된다. 이 프로그램은 통상 전기통신 디바이스에서 또는 이러한 전기통신 디바이스들을 노드들로서 포함하는 전체 전기통신 시스템 내에서 실행된다.
본 발명은 몇가지 잇점들을 갖는다. 균등 분산된 (실제) 룩업에서 현저한 부하 감소가 달성될 수 있다. 어떤 자원들이 다른 것들보다 더 자주 요청되는 이종(heterogeneous) 시나리오들, 즉 노드에 관한 요청 집중에서 개선은 훨씬 더 낫다.
본 발명에 따라 배열된 백업 데이터는 부하 균형에 영향을 줄 수 있다. 마지막 불필요한 '디어-점프(deer jump)'가 회피된다. 메시지 라우팅은 조회 당 한 홉 미만을 요구한다. 코드에서 선행 노드로 안정화 핑(ping)은 필요하지 않다. 새로운 방법은 결합하는 노드가 최종으로 및 즉각적으로 링 토폴로지에 결합하기 전에, 맡은 모든 데이터를 먼저 인계(take over)하기 때문에, 더 높은 데이터 일관성 레벨을 제공한다. 미리, 결합 시간은 결합 노드로 전송될 데이터량에만 좌우되고 랜덤하게 분산되지 않는다. 노드들이 매우 높은 속도(이탈율(churn rate))로 떠나고 결합하는 경우들에 있어서, 안정성은 더 빠르게 저하한다. 이것은 실제 시스템들의 이탈율들이 낮기 때문에 이론적인 문제이다. 본 발명은 노드들에 대한 데이터 일관성 및 피크 요청 처리 부하 면에서 현저한 잇점들에 이르게 하는, 코드 유사 시스템의 3가지 변형들을 기술한다.
본 발명은 도면들을 이용하여 상세히 기술된다.
도 1은 본 발명에 따른 방법에서 노드의 의무를 도시한 도면.
도 2는 종래 기술에 따른 코드 방법에서 노드의 의무를 도시한 도면.
도 3은 본 발명에 따른 방법에서 리던던시 관리를 도시한 도면.
도 4는 본 발명에 따른 방법에서 복제를 도시한 도면.
도 5는 본 발명에 따른 방법에서 리던던시와 복제의 결합을 도시한 도면.
도 6은 본 발명에 따른 방법에서 결합 노드를 도시한 도면.
도 7은 본 발명에 따른 방법에 따라 노드가 결합할 때 데이터 전송을 도시한 도면.
도 8은 본 발명에 따른 방법에서 떠나는 노드를 도시한 도면.
본 발명은 오버레이 네트워크, 및 이 네트워크를 운영하기 위한 분산 데이터베이스 및 메커니즘들로서 네트워크 요소들을 포함한다. 상기 오버레이 네트워크 토폴로지는 공지된 종래기술의 피어-투-피어 네트워크 코드와 매우 유사한 링이다. 메시지들의 라우팅, 데이터 의무(data responsibility) 및 데이터 백업을 위한 몇가지 새롭고 잇점이 있는 메커니즘들이 도입된다.
오버레이 네트워크는 기본적으로 확장성(scalability)를 제한시키고 OPEX를 증가시키는(일부 부트스트랩 지원은 제외하고) 중앙제어유닛을 이용하지 않고, 임의의 수의 노드들로 형성된다. 노드들 각각은 고유 식별자를 가지며 후속 상위 식별자들을 갖는 노드들로의 링크들을 생성한다. 이 메커니즘은 링 토폴로지로 이끄는데, 여기서 이웃한 노드들은 노드(I)의 선행 노드(predecessor)(P)로서 또는 후속 노드(successor)(S)로서 작용한다.
도 1은 노드들(900, 1200, 1300, 1500, 1900, 2200)을 포함하는 링의 한 부 분을 도시한 것이다. 각 노드는 분산 데이터베이스에 저장되어야 하는 키/값 쌍들을 맡는다. 공지된 해시함수는 데이터를 키들에 맵핑한다. 각 노드는 자신과 이의 후속 노드 간에 위치된 키들을 저장할 책임을 맡는다.
노드들간의 메시지들은 목적지 식별자(재이용되는 키와 동일한)에 비해 더 작은 식별자를 갖는 다음 알려진 노드에 메시지를 보냄으로써 라우팅된다.
도 1은 키(1400)의 룩업을 도시하고 있다. 도시된 핑거 테이블(finger table)을 구비한 제 1 노드(900)부터 시작하여, 라우팅 경로는 목적지 노드(1300)에서 끝나는 핑거를 따라가야 한다. 이 노드가 키(1400)를 맡는다. 핑거는 화살표로 나타내었다. 목적지 노드(1300)에서 링을 따라 다음 노드(1500)로 디어 점프(deer jump)는 없는 것에 유의한다.
링을 따라서(후속 노드들을 거쳐) 또는 어떤 단축로 링크들(핑거들이라 함)을 따라 알려진 노드들에 이르게 된다. 메커니즘은 데이터베이스에 저장된 데이터가 선행 노드들 상에 복제됨을 보장한다. 부하 균형은 데이터베이스 조회들이 선행 노드들에 의해 이미 응답되었을 경우 달성된다. 결합 노드는 토폴로지에 통합되기 전에 이것이 맡을 데이터를 그의 새로운 선행 노드로부터 수신한다. 링으로의 상기 노드의 통합은 다른 노드들과는 무관하게, 데이터 전송 후 즉시 종료된다. 노드가 데이터베이스의 자신의 일부와 함께 링에서 이탈한다면, 상기 노드의 선행 노드가 데이터를 맡게 된다.
본 발명은 공지된 코드 알고리즘에 대한 차이들을 따라 기술된다. 동일 부분을 형성함으로써 링 토폴로지를 생성하는 코드 오버레이 네트워크가 도 2에 도시되 었다. 차이는 키(1400)를 찾을 때, 목적지 노드(1300)가 핑거에 의해 방문되나, 코드에서 최종 목적지 노드(1500)가 상기 키(1400)를 맡기 때문에 상기 노드로의 점프가 더 필요하다는 것이다. 코드에서 노드는 키가 자신의 식별자와 같거나 작고 선행 노드들의 식별자들보다 크다면 키/값 쌍을 저장할 책임이 있다고 한다.
각 노드는 노드 불능들의 경우에 링 토폴로지가 닫혀진 채 유지되고 있음을 보증하기 위해서 후속 노드들의 리스트를 최신으로 유지해야 한다. 백업을 위해 상기 후속 노드들은 이들의 모든 선행 노드들로부터 데이터베이스 콘텐트들을 복제한다. 간단한(straight forward) 분할 정복 알고리즘(divide and conquer algorithm)을 이용하여 메시지는 최대 O(log n) 홉들 내의 목적지에 도착한다.
부하 균형은 데이터 복제와 토폴로지 리던던시 메커니즘을 결합함으로써 개선된다. 개선된 것뿐만 아니라 코드에서, 링 토폴로지는 추가의 리던던시 후속 링크들을 추가함으로써 노드 불능에 대해 견고해진다.
도 3은 도 5의 리던던시 팩터의 경우의 원리를 도시한 것이다. 코드에서 이들 링크들은 데이터 복제를 위해 이용되는데: 노드(900)는 자신의 데이터를 후속 노드들(1200, 1300, 1500,...)에도 저장한다(리던던시 팩터에 따라). 노드(900)가 네트워크를 떠난다면, 노드(1200)가 상기 데이터를 맡게 된다. 링을 따른 라우팅 방향이 하위 식별자들에서 고위 식별자들로의 방향이라면, 어떠한 데이터베이스 요청이든 자동으로 노드(1200)로 라우팅될 것이다.
본 발명에 따른 방법에서 상기 리던던트 후속 링크들은 노드 불능의 경우 이웃 노드들에 백업들을 생성하기 위한 데이터 복제를 위해 반대 방향으로 재이용된 다.
도 4 및 도 5는 신규한 백업 전략을 도시한 것이다. 코드와는 반대로, 데이터는 하위 식별자들을 갖는 노드들에 복제된다. 백업을 위해 이용되는 복제된 데이터는 룩업의 라우팅에 거의 수반될 노드들 상에 위치된다. 그러므로, 이들 노드들은 이들이 데이터의 유효한 카피(copy)를 갖고 있기 때문에 룩업 조회들에 곧 응답할 수도 있다. 이와 함께 조회들을 분산시키고 심지어 트래픽 피크들(traffic peeks)을 감소시키는 부하-균형 동작이 달성된다.
일관된 즉각적 결합 및 데이터 복제는 통신 시스템들에 대한 추가의 요구사항이다. 발명된 시스템은 결합 노드가 링 토폴로지에 완전히 결합하기 전에 선행 노드로부터 맡게 될 모든 데이터를 이 노드가 인계받는 점에서 코드와는 다르다.
기본 결합 프로세스는 결합 노드 및 선행 노드의 메시지들 및 상태머신들(state machine)에만 의존한다. 데이터의 전송 후에, 결합 노드는 제 3 노드에 추가됨이 없이 라우팅 토폴로지에 즉각 통합될 수 있다. 복제 링크들과 함께 리던던시 링크들은 즉시 검증된다.
도 6은 링에 새로운 노드(1300)의 초기 결합을 도시한 것이다. 도 7은 선행 노드(1200) 뒤에서 링에 결합하는 새로운 노드(1300)의 결합 시나리오를 도시한 것이다. 결합 프로세스 동안 상기 노드들은 다음 단계들을 수행한다: 먼저, 결합 프로세스 동안 상기 선행 노드(1200)가 후속 노드(1500)에 완전히 접속된 상태에 있는 동안, 상기 선행 노드(1200)에 새로운 노드(1300)에 바인딩한다. 후에 상기 선행 노드(1200)로부터 상기 새로운 노드(1300)로 분산 해싱 테이블 정보를 전송한 다. 후속 및 리던던시 링크들이 상기 선행 노드(1200)로부터 상기 새로운 노드(1300)로 전송된다. 마지막으로, 상기 새로운 노드(1300)가 상기 후속 노드(1500)에 접촉함으로써 상기 링에 완전히 결합한다. 상기 선행 노드(1200)는 후속 노드(1500)로의 링크의 유형을 후속 모드로부터 리던던시 모드로 변경한다. 새로운 노드(1300)로부터 복제 링크들은 새로운 선행 노드들로부터 요청시 연속적으로 구축된다.
반대로, 코드에서, 결합 노드는 먼저 토폴로지를 닫는 것을 종료하고 상기 데이터를 인계한다. 결합은 후속되는 노드에 의해 처리된다. 링 토폴로지 및 일관된 데이터 백업은 결합 노드(I)와 그 선행 노드(P1) 간에 안정된 선행 링크에 의존한다. 이 링크는 새로운 노드가 새로운 후속 노드를 갖는다는 P1의 선행 노드의 정보를 상기 P1이 수신하기 전에는 확립되지 않는다.
이 절차는 안정화 알고리즘에서 주기적으로 수행되기 때문에, 결합 노드는 토폴로지에 통합되기 전에 안정화 알고리즘을 수동적으로 기다려야 한다.
수정된 코드에서, 데이터 무결성은 노드들이 불능이 되고 노드의 결합이 즉각적으로 일어나 임의의 안정화 기간들을 기다릴 필요없이 참가하는 노드들에 의해 능동적으로 종료될 수 있다면, 결합 절차 동안 훨씬 더 높다.
도 7은 각 노드가 2개의 선행 노드들을 추적하고 따라서 이들 노드들이 맡고 있는 데이터에 대한 백업 노드로서 작용함을 나타내는 두 개의 리던던시 팩터를 가진 토폴로지에 노드(1300)가 결합하는 경우 영향받는 노드들에 의해 이동되어야 하는 데이터를 도시한 것이다. 상기 선행 노드(1200)는 결합 프로세스를 처리한다. 이것은 새로운 노드(1300)가 키들(1300 ~ 1500)을 맡게 되므로 이들 키들에 대한 데이터를 전송한다. 또한, 새로운 노드(1300)가 키들(1500 ~ 2200)에 대한 데이터에 대한 백업으로서 기능하기 때문에, 이들 데이터가 전송된다. 노드들(500, 900, 1200)은 이들의 백업 간격이 감소되었기 때문에 데이터를 폐기한다. 후속 노드(1500)는 상기 프로세스에 의해 영향을 받지 않는다.
노드를 자신의 아이덴티티(identity)와 같거나 크지만 후속 노드의 아이덴티티보다는 낮은 모든 키/값 쌍들을 맡게 함으로써, 시프트된(Shifted) 데이터 의무에 의해 감소된 라우팅에 도달된다. 이에 따라 메시지들에 대한 라우팅은 약간 변한다. 종래 기술의 코드 라우팅 알고리즘에서 요청은 담당하는 노드의 바로 앞 선행 노드에 도달해야 하는데, 상기 선행 노드만이 요청된 키가 자신과 상기 담당 노드 간에 위치된 것을 명확히 알고 있기 때문이다. 상기 선행 노드는 아이덴티티가 목적지 키보다 큰 노드로 요청을 보내는 것이 허용되는 유일한 노드이다. 이것은 항상 최종 홉을 초래하며(여기에서는 "디어 점프"라 함), 도 2에 도시되었다.
본원에 기술된 발명된 시스템에서 메시지의 목적지는 선행 노드이다. "디어 점프" 문제는 사라진다. 그러므로 목적지까지의 평균 홉 수는 1만큼 감소되고 따라서 팩터만큼 전체 성능을 개선한다.
도 8은 이 새로운 노드(1300)를 제거하는 절차를 도시한 것이다. 이 노드(1300)에 의해 전달되는 요소들은 화살표들로 도시된 바와 같이, 역 링 방향으로 전파되어야 한다. 나중에 이 노드(1300)와의 링크 연관은 제거되어야 하고 이 노드의 후속 노드와 선행 노드 간의 링 연관은 유지되어야 한다, 즉 링은 닫혀야 하고 이에 따라 복구 링크들은 유지되어야 한다.
다음에 의사-코드(pseudo-code) 표기로 알고리즘들로서 수정예들이 개시된다.
Nid를 현재 노드, Fi는 핑거 i, Nlist,succ를 후속 노드들의 리스트라 놓는다. 두 알고리즘들은 표준 코드 및 향상된 코드 시스템의 라우팅 알고리즘들 간의 차이들을 보여준다. 두 시스템들은 이들의 메시지들을 목적지 아이덴티티보다 가능한 한 크지만 이보다 작거나 같은 아이덴티티를 갖는 노드까지의 최종 목적지를 향해 보낸다.
향상된 코드에 있어서 단일 절차가 최종 목적지에 이미 이르고 있는 반면, 표준 코드는 최종 홉("디어 점프")을 위한 추가의 절차를 필요로 한다. 이에 대한 이유는 노드가 맡는 서로 다른 범위들인데, 향상된 코드 시스템에서 노드는 자신과 다음 후속 노드 간의 영역을 맡는다. 표준 코드에서 노드는 자신의 선행 노드와 자신 간의 영역을 맡는다. 이에 따라 상기 메시지는 실제 목적지 아이덴티티 뒤로 한번 라우팅되어야 한다. 이것은 담당 노드가 선행 노드의 후속 노드이므로 상기 담당 노드와 목적지 아이덴티티 간에 더 이상의 피어들(peer)이 없음을 배제할 수 있는 유일한 피어이기 때문에 선행 노드에 의해 행해질 수 있을 뿐이다. 이 디어 점프는 다음 절차에 기술된다.
Procedure 1.2 N.Find (key: identifier to find)
/* Find the next hop node for key */
if key ∈ (Npred; Nid] then
node <= Nid
else
if key ∈ (Nid; Nsucc] then
node <= Nid
else
node <= closest-preceding-finger(key) /* procedure 1.1 */
if node = Nid then
/* deer jump */
node <= Nsucc
return node
유지관리 절차들은 두 시스템들에서 유사하다.
Procedure 1.3 N.receive (msg)
/* process message */
node = N.find(msg.dest) /* procedure 1.2 */
if node = Nid
/* Nid is responsible for this message */
doSomething(msg)
else
forward(msg, node)
Procedure 2.2 N.receive(msg)
/* process message */
node = N.getNextHop(msg.dest) /* procedure 2.1 */
if node = Nid
/* Nid is responsible for this message */
doSomething(msg)
else
forward(msg, node)
디어-점프 회피 절차는 다음과 유사하다.
Procedure 1.1 N. closest-preceding-finger(key)
/* Find the closest preceding finger for the key */
node < = Nid
for i <- m down to 1 do
if Fi is alive and Fi ∈ (Nid; key) then
node <= Fi
break
for all s in Nlist,succ do
if s is alive and s ∈ (node; key) then
node <= s
break
return node
Procedure 2.1 N.getNextHop (key)
/* Find the next hop node for the key */
node <= Nid
for i <- m down to 1 do
if Fi is alive and Fi ∈ (Nid; key) then
node <= Fi
break
for all s in Nlist,succ do
if s is alive and s ∈ (node; key) then
node <= s
break
return node
전기통신 디바이스의 기능의 50% 이상이 예를 들면 서버로부터 미디어(e-메일, 메시지들, 멀티미디어,...)를 검색하는 것, 주소들(전화, 인터넷, 미디어 액세스 제어, 사용자 정보, 연락지점들)을 찾는 것, 등, 데이터베이스 검색들에 관계됨 에 유의한다. 이에 따라 룩업을 위한 효율적인 데이터 구조의 관련성은 전기통신 시스템에 있어 매우 중요하다.

Claims (7)

  1. 방향성 링 토폴로지(directed ring topology)로 배열된 복수의 노드들(900,..., 2200)을 포함하는 전기통신 시스템의 분산 디렉토리의 콘텐트를 검색하는 방법으로서, 상기 방법은 요소를 노드에 맵핑하는 분산 해싱 함수에 의해 상기 콘텐트의 저장 위치를 식별하는 단계를 포함하고, 상기 노드(1300 - 도 1)는 상기 노드와 후속 노드(successor node) 간의 해시값을 갖는 요소들을 전달해야 하는 것을 특징으로 하는, 콘텐트 검색 방법.
  2. 제 1 항에 있어서,
    리던던시 후속 링크(redundancy successor link; 도 4)는 노드 불능의 경우 이웃 노드들에서 백업들을 발생하도록 데이터 복제를 위해 상기 이웃 노드들을 식별하기 위해, 반대되는 방향으로, 즉 링 방향에 역으로 이용되는 것을 특징으로 하는, 콘텐트 검색 방법.
  3. 제 2 항에 있어서,
    백업의 이유들을 위해 이용되는 상기 복제된 데이터는 바람직하게는 룩업(lookup)의 라우팅에 거의 수반되는 노드들 상에 위치되는 것을 특징으로 하는, 콘텐트 검색 방법.
  4. 제 2 항에 있어서,
    새로운 노드(1300)를 삽입하기 위해서, 먼저, 선행 노드(predecessor node)가 후속 노드에 완전히 접속된 상태에 있는 동안, 상기 선행 노드(1200)에 상기 새로운 노드를 바인딩(binding)하는 단계(도 6), 이어서 상기 후속 및 상기 리던던시 링크들이 상기 선행 노드에서 상기 새로운 노드로 전송된 후에 상기 선행 노드에서 상기 새로운 노드로 상기 요소들을 전송하는 단계(도 7), 및 마지막으로 상기 새로운 노드를 상기 링 토폴로지에 결합하고, 이어서 리던던시 링크들을 상기 후속 노드로의 상기 링크를 갖는 상기 선행 노드에 의해 업데이트하는 단계를 더 포함하는 것을 특징으로 하는, 콘텐트 검색 방법.
  5. 컴퓨터 소프트웨어 제품에 있어서, 제 1 항에 따른 방법을 수행하도록 구성된 프로그래밍 수단을 포함하는 것을 특징으로 하는, 컴퓨터 소프트웨어 제품.
  6. 전기통신 디바이스에 있어서, 제 5 항에 따른 컴퓨터 소프트웨어 제품을 포함하는 것을 특징으로 하는, 전기통신 디바이스.
  7. 노드들로서 전기통신 디바이스들을 포함하는 전기통신 시스템에 있어서, 제 5 항에 따른 컴퓨터 소프트웨어 제품을 포함하는 것을 특징으로 하는, 전기통신 시스템.
KR1020097000301A 2006-07-07 2007-06-21 자기조직화 네트워크들을 위한 분산 해싱 메커니즘 KR101183050B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP06300773.6 2006-07-07
EP06300773A EP1876788B1 (en) 2006-07-07 2006-07-07 Distributed Hashing Mechanism for self-organizing networks
PCT/EP2007/056200 WO2008003596A1 (en) 2006-07-07 2007-06-21 Distributed hashing mechanism for self-organizing networks

Publications (2)

Publication Number Publication Date
KR20090037426A true KR20090037426A (ko) 2009-04-15
KR101183050B1 KR101183050B1 (ko) 2012-09-20

Family

ID=38119447

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097000301A KR101183050B1 (ko) 2006-07-07 2007-06-21 자기조직화 네트워크들을 위한 분산 해싱 메커니즘

Country Status (8)

Country Link
US (1) US7738466B2 (ko)
EP (1) EP1876788B1 (ko)
JP (1) JP5227955B2 (ko)
KR (1) KR101183050B1 (ko)
CN (1) CN101102250B (ko)
AT (1) ATE413765T1 (ko)
DE (1) DE602006003546D1 (ko)
WO (1) WO2008003596A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190069722A (ko) * 2017-12-12 2019-06-20 루이테크놀로지 주식회사 스마트 디바이스 간 실시간 장애 처리 및 연결 복구를 위한 링 네트워크 통신 방법 및 그 시스템

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2139202B1 (en) 2008-06-27 2012-03-28 Alcatel Lucent Method of providing a successor list
US7990943B2 (en) * 2008-07-01 2011-08-02 Telefonaktiebolaget Lm Ericsson Establishing channels between a domain manager and managed nodes
CN101729277B (zh) 2008-10-27 2015-07-08 华为技术有限公司 设备池的管理方法、节点设备和通信系统
MY149719A (en) * 2008-11-11 2013-10-14 Mimos Berhad A method of self organized communication
EP2377294B1 (en) * 2008-12-18 2017-05-17 Scality, SA Multipurpose storage system based upon a distributed hashing mechanism with transactional support and failover capability
JP2010191690A (ja) * 2009-02-18 2010-09-02 Fujitsu Ltd 伝送装置データベースのバックアップ管理方法およびリストア管理方法
CN105373613B (zh) 2009-04-16 2019-05-14 泰必高软件公司 基于策略的储存结构分布
US10929401B2 (en) 2009-04-16 2021-02-23 Tibco Software Inc. Policy-based storage structure distribution
CN101587453B (zh) * 2009-06-18 2012-01-04 成都市华为赛门铁克科技有限公司 数据备份处理方法、数据存储节点设备及数据存储装置
US20120252440A1 (en) * 2009-11-11 2012-10-04 Nec Corporation Radio communication system, self-optimizing system, radio base station, and radio parameter setting method
US9400799B2 (en) * 2010-10-04 2016-07-26 Dell Products L.P. Data block migration
US8874505B2 (en) * 2011-01-11 2014-10-28 Hitachi, Ltd. Data replication and failure recovery method for distributed key-value store
US8930320B2 (en) * 2011-09-30 2015-01-06 Accenture Global Services Limited Distributed computing backup and recovery system
CN102662793A (zh) * 2012-03-07 2012-09-12 江苏引跑网络科技有限公司 一种可保证数据一致性的分布式数据库热备份与恢复方法
JP2013210698A (ja) * 2012-03-30 2013-10-10 Hitachi Solutions Ltd ファイル検索システム及びプログラム
JP2014044553A (ja) * 2012-08-27 2014-03-13 Fujitsu Ltd プログラム、情報処理装置および情報処理システム
US9210219B2 (en) 2013-07-15 2015-12-08 Red Hat, Inc. Systems and methods for consistent hashing using multiple hash rings
EP2947579A1 (en) * 2014-05-22 2015-11-25 Deutsche Telekom AG Method for generating a backup copy of a distributed data structure, system for generating a backup copy of a distributed data structure, program and computer program product
WO2016187452A1 (en) * 2015-05-19 2016-11-24 Morgan Stanley Topology aware distributed storage system
US10255288B2 (en) 2016-01-12 2019-04-09 International Business Machines Corporation Distributed data deduplication in a grid of processors
US10261946B2 (en) 2016-01-12 2019-04-16 International Business Machines Corporation Rebalancing distributed metadata
US10242021B2 (en) 2016-01-12 2019-03-26 International Business Machines Corporation Storing data deduplication metadata in a grid of processors
US10802749B2 (en) * 2016-08-05 2020-10-13 Nutanix, Inc. Implementing hierarchical availability domain aware replication policies
US10698780B2 (en) * 2016-08-05 2020-06-30 Nutanix, Inc. Implementing availability domain aware replication policies
US10678457B2 (en) 2016-11-22 2020-06-09 Nutanix, Inc. Establishing and maintaining data apportioning for availability domain fault tolerance
US10616321B2 (en) * 2017-12-22 2020-04-07 At&T Intellectual Property I, L.P. Distributed stateful load balancer
US11496395B2 (en) * 2021-01-19 2022-11-08 Drivenets Ltd. Method for implementing a consistent hashing in a communication network
WO2024081140A1 (en) * 2022-10-12 2024-04-18 Oracle International Corporation Configuration and management of replication units for asynchronous database transaction replication

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4527270A (en) * 1983-05-04 1985-07-02 Allen-Bradley Company Communications network with stations that detect and automatically bypass faults
US7613703B2 (en) * 2004-09-30 2009-11-03 Microsoft Corporation Organizing resources into collections to facilitate more efficient and reliable resource access
US20080130516A1 (en) * 2004-12-21 2008-06-05 Electronics And Telecommunications Research Institute P2p Overplay Network Construction Method and Apparatus
US7881223B2 (en) * 2006-03-31 2011-02-01 Panasonic Corporation Method for on demand distributed hash table update

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190069722A (ko) * 2017-12-12 2019-06-20 루이테크놀로지 주식회사 스마트 디바이스 간 실시간 장애 처리 및 연결 복구를 위한 링 네트워크 통신 방법 및 그 시스템

Also Published As

Publication number Publication date
DE602006003546D1 (de) 2008-12-18
EP1876788A1 (en) 2008-01-09
KR101183050B1 (ko) 2012-09-20
US20080123664A1 (en) 2008-05-29
EP1876788B1 (en) 2008-11-05
JP2009543237A (ja) 2009-12-03
US7738466B2 (en) 2010-06-15
CN101102250A (zh) 2008-01-09
WO2008003596A1 (en) 2008-01-10
CN101102250B (zh) 2010-11-03
ATE413765T1 (de) 2008-11-15
JP5227955B2 (ja) 2013-07-03

Similar Documents

Publication Publication Date Title
KR101183050B1 (ko) 자기조직화 네트워크들을 위한 분산 해싱 메커니즘
Zhao et al. Tapestry: A resilient global-scale overlay for service deployment
JP4358581B2 (ja) 効率的な分散データ構造を備えた改良されたオーバレイネットワークを生成するシステムおよび方法
US8255736B2 (en) Consistent and fault tolerant distributed hash table (DHT) overlay network
Wang et al. Peer-to-peer overlay networks: A survey
US20070230468A1 (en) Method to support mobile devices in a peer-to-peer network
KR20090034322A (ko) 랑데뷰 연합 내에서의 근접지간 통신을 위한 방법, 컴퓨터 판독가능 저장 매체 및 컴퓨터 프로그램 제품
KR20090034829A (ko) 랑데뷰 연합 내에서의 근접지간 통신을 위한 방법, 컴퓨터 판독가능 매체 및 컴퓨터 프로그램 제품
El-Ansary et al. An overview of structured overlay networks
Galluccio et al. Georoy: A location-aware enhancement to Viceroy peer-to-peer algorithm
Singh et al. Finger forwarding scheme to reduce lookup cost in structured P2P networks
Gu et al. ContextPeers: scalable peer-to-peer search for context information
Tiendrebeogo et al. Virtual connections in p2p overlays with dht-based name to address resolution
Galluccio et al. Willage: A Two-Tiered Peer-to-Peer Resource Sharing Platform for Wireless Mesh Community Networks
Zhao Decentralized Object Location and Routing: A New Networking Paradigm
Qiu et al. Final Year Project
Serbu et al. Improving the dependability of prefix-based routing in dhts
Kimura et al. A semi-structured overlay network for large-scale peer-to-peer systems
Ktari et al. Structured flooding search in Chord Overlays
Xie A decentralized redundant peer-to-peer system based on chord: Routing, scalability, robustness
Pecka et al. Content localization for non-overlay content-aware networks
Santoro Université d'Ottawa-University of Ottawa
Shuqiao et al. Survey on Structured Peer-to-Peer Networks
Amrou et al. Node Discovery in Freelib, a Peer-to-peer-based Digital Library
Malkhiy et al. Viceroy: Scalable Emulation of Butter y Networks For Distributed Hash Tables

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150828

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160902

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170901

Year of fee payment: 6