DHT(분산 해시 테이블)은 해시 테이블 자료구조를 사용해 분산형 데이터베이스를 구축하는 방식입니다. DHT는 P2P 네트워크에서 데이터를 분산 저장할 때 사용됩니다. 키~값 쌍으로 데이터가 분산 저장되고, 검색 할 수 있습니다.
DHT에 데이터 저장 방식
① 0 부터 7 까지 해시 테이블이 존재합니다.
② 해시 테이블을 사용하는 유저는 4명 입니다. 각 사용자들은 공유할 데이터를 가지고 있습니다.
③ 호스트의 IP 주소를 해싱한 결과값을 얻습니다. 해시값을 8로 나눈 나머지 값을 인덱스로 지정합니다.
④ 각 호스트들은 본인 다음에 위치한 호스트 중 가장 근처에 위치한 호스트 주소를 알게 됩니다.
⑤ 각 호스트들이 공유해야 할 데이터의 위치를 지정합니다. 파일을 해싱한 결과값을 8로 나눠 데이터 위치를 지정하게 됩니다. 예를 들어 기획서.hwp는 주소 5를 가지고, 카카오톡.exe는 주소 7을 가집니다.
⑥ 주소 5에 있던 789.0.5.4는 기획서.hwp가 주소 5에 있다는 사실을 알게 됩니다. 카카오톡.exe는 주소 7이지만 주소 7에는 호스트가 없기 때문에 가장 가까운 101.0.234.5 호스트가 카카오톡.exe는 주소 7에 있다는 사실을 기억하게 됩니다.
위 과정을 통해 DHT에 데이터가 분산 저장됩니다.
DHT 데이터 검색 방식
① 456.0.13.2 호스트가 카카오톡.exe 데이터를 찾습니다.
② 456.0.13.2 호스트는 가장 가까운 다음 호스트인 123.0.20.8 호스트에게 카카오톡.exe가 어딨냐고 물어봅니다.
③ 123.0.20.8 호스트는 가계부.csv 파일의 위치는 알고 있지만 카카오톡.exe 파일의 저장 위치는 알지 못합니다. 다음 호스트에 파일 저장 위치를 물어봅니다.
④ 789.0.5.4 호스트는 기획서.hwp 주소는 알고 있지만 카카오톡.exe 주소는 알지 못합니다. 다음 호스트에 파일 저장 위치를 물어봅니다.
⑤ 101.0.234.5는 카카오톡.exe가 주소 7에 위치해있다는 것을 알고 있습니다. 이제 파일을 검색한 456.0.13.2 호스트에게 카카오톡.exe가 저장된 위치를 알려줍니다.
※ 사진 및 영상 저작권은 원작자에 있습니다. 문제시 삭제 예정입니다.
'Blockchain' 카테고리의 다른 글
[Blockchain] 프루닝(Pruning)이란? (0) | 2022.06.29 |
---|---|
[Blockchain] IPFS(InterPlanetary File System)란? (0) | 2022.06.29 |
[Blockchain] 해시 테이블(Hash Table)이란? (0) | 2022.06.29 |
[Blockchain] DAG(Directed Acyclic Grpah) 란? (0) | 2022.06.28 |
[Blockchain] 블룸 필터(Bloom Filter)란? (0) | 2022.06.28 |
댓글