都市情報学専攻 情報基盤研究分野 M04UC513 藤田昭人
PA PA P2P Overlay Network PA PA PA PA PA Personal Archive System
Bitstream Storage Manager Statistics Tools Web UI OAI-PMH Data Provider Simple Importer/ Exporter Media Filter METS Exporter Application Layer DSpace Public API Core Tools (Configuration, Logging) Search (Lucene Wrapper) History Recorder E-person/ Group Manager Browse Tools Content Management Administration Toolkit Business Logic Layer Handle Server Storage Plug-in Handle Manager Submission Workflow Manager Authorisation Storage API RDBMS Wrapper Bitstream Storage Manager JDBC Storage Layer File System SRB (Storage Resource Broker) PostgreSQL Oracle
SFS Read-only File System sfsrosd Replica Database Private key User Program sfsrocd sfsrosd sfsrodb NFS 3 Replica Database System Call Signed Database File System Kernel NFS Client sfsrosd Replica Database
Cooperative File System (CFS) ファイル参照系 DHash User Program chordcd DHash Chord Chord System Call NFS 3 Kernel NFS Client Chord Ring DHash Private key Chord CFS sfsrodb DHash Chord File System DHash ファイル登録系 Chord
Ivy: Read/Write P2P Filesystem DHash User Program Ivy Server (cfsrwcd) DHash Chord Chord Ivy agent Private key System Call NFS 3 Chord Ring Kernel NFS Client DHash Chord DHash Chord DHash Chord
P2P Overlay Network PC PC PC PC PC PC Web Archival Browser System P2P Web Server Web Browser Server-Side Script Language Archival System Filesystem DBMS P2P Data Sharing System Chord/DHash
B1 B2 D F H(B1) H(D) H(F) H(B2) data block directory block inode block root-block public key Signature data block H(B2) B2
log-head view block log-head log records
D E F B1 B2 directory inode directory inode block H(E) name n i-number γ snapshot block meta-data i-number α H(D) file map i-number γ H(F) file inode data block F B1 H(B1) H(B2) data block B2
M M AGUID VGUID VGUID , , i i+1 d d d d d d d d d root block backpointer M M copy on write indirect blocks copy on write , , data blocks d d d d d d d d 1 2 3 4 5 6 7 6 d 7
SQLiteのアーキテクチュア Core Backend Interface Tokenizer SQL Command Processor Parser Virtual Machine Code Generator Backend B-Tree Pager Utilities OS Interface Test Code
SQLiteによるP2Pデータベース SQLiteはデータベース・ファイルを1KBページで管理 各ページごとコンテント・ハッシュ化して複数ノードに分散配置 マスターデータベースのノードはページリストを管理 Consistent-Hashed Master Database Content-Hashed Page Master Database PC PC Content-Hashed Page P2P Overlay Network Local Database PC PC Local Database Content-Hashed Page Content-Hashed Page PC PC
Page 0 Page 1 Page 2 Page N H(Page0) H(Page1) H(Page2) H(PageN) Page List (Consistent-Hash) Page Block (Content-Hash) H(Page0) Page 0 Master Database H(Page1) H(Page2) Page 1 H(PageN) Page 2 Page N
マスターからローカルへの同期操作 マスターノードよりページリストを取得 ページリストを元に古くなったページを探索 古くなったページについて各ノードから最新ページを取得 Consistent-Hashed Master Database Content-Hashed Page PC ③ ① PC Content-Hashed Page ② ③ PC PC Local Database ③ ③ Content-Hashed Page Content-Hashed Page PC PC
ローカルからマスターへの同期操作 トランザクション内の更新コマンドを一括して転送 マスターデータベースを一括更新 更新されたページのコンテンツ・ハッシュ化して各ノードに転送 Consistent-Hashed Master Database Content-Hashed Page ② ③ PC PC ③ Content-Hashed Page ① PC ③ PC Local Database ③ Content-Hashed Page Content-Hashed Page PC PC
P2Pデータベースのソフトウェア構成(1) SQLite Database Daemon DHash Chord btree btree ジャーナリング pager pager ページ内容 同期化 コンテンツ ハッシュ化 OS OS DHash Chord Local Database Master Database