CHƯƠNG 2: TỔNG QUAN VỀ DHT
2.2 Cơ sở bảng DHT
2.2.1 Quản lý dữ liệu phân tán.
Một DHT quản lý dữ liệu bằng việc phân tán nó qua một số nút và thực hiện một mô hình định tuyến mà cho phép nút tìm kiếm đạt hiệu quả dựa trên một mục dữ liệu xác định được chỉ ra vị trí. Ngược với tìm kiếm ngập lụt trong hệ thống không cấu trúc, mỗi một nút trong DHT sẽ có trách nhiệm với một khoảng các thành viên của các mục dữ liệu. Ngoài ra, mỗi nút lưu trữ một cái nhìn từng phần trong toàn bộ hệ thống phân tán mà ở đó thực sự phân tán các thông tin định tuyến. Dựa trên thông tin này, thủ tục tìm định tuyến tiêu biểu sẽ trải qua nhiều nút, lấy đích ở gần mỗi một nút, cho đến tận khi nút đích được tìm thấy.
Do đó, DHT cho phép một chiến lược thực hiện tiên phong để thu nhận dữ liệu bằng cấu trúc tìm kiếm không gian và cung cấp một mô hình định tuyến trước. Trong việc so sánh, thông tin định tuyến trong hệ thống không cấu trúc chẳng có liên quan gì đến vị trí của các mục dữ liệu xác định mà chỉ phản ánh sự kết nối giữa các nút. Các kết quả của chiến lược tác động trở lại trong các câu truy vấn bằng việc làm ngập lụt các yêu cầu thông qua mạng bởi vì việc định tuyến không thể trực tiếp tìm kiếm tới nút đích. Với một hệ thống trung tâm, chiến lược tìm kiếm bị ẩn, việc định tuyến một truy vấn là không cần thiết khi thủ tục tìm kiếm tự nó được hạn chế tới một hệ thống đơn.
2.2.2 Định địa chỉ trong DHT.
DHT giới thiệu không gian địa chỉ mới vào trong dữ liệu bằng việc ánh xạ. Không gian địa chỉ tiêu biểu bao gồm một số lớn các giá trị nguyên, … DHT
thu được chỉ số phân tán bằng việc chuyển một phần liền kề của không gian địa chỉ tới mỗi nút thành viên để đưa ra một giá trị từ không gian địa chỉ, phép toán chính đã được cung cấp bởi một hệ thống DHT là một hàm tìm kiếm, thí dụ để xác định nút có vai trò đối với giá trị này.
Hình 2.2: Một không gian địa chỉ tuyến tính với các giá trị số nguyên từ 0 đến 65.535. Các không gian địa chỉ là phân vùng trong số 8 peer.
Hướng tiếp cận DHT khác nhiều trong việc làm thế nào để quản lý và phân vùng không gian địa chỉ. Trong hầu hết các trường hợp, các mô hình này tự thêm vào các giải thích về địa lý của không gian địa chỉ. Một thí dụ đơn giản, tất cả các phép toán trong không gian địa chỉ có thể được hiện modulo với số các thành viên vòng tròn.
Trong một hệ thống DHT, mỗi mục dữ liệu được thiết kế là một ID, một giá trị duy nhất trong không gian địa chỉ. Giá trị này có thể được lựa chọn một cách tự do bởi ứng dụng, nhưng nó thông thường nhận được từ chính dữ liệu của nó thông qua một hàm băm chống và trạm, chẳng hạn như SHA-1, thí dụ, chỉ số ID của một file có thể là kết quả của việc băm tên file hay file nhị phân. Do đó, DHT có thể lưu trữ file đó tại nút tương ứng với phần chia của không gian địa chỉ mà chứa chỉ số đó.
Các giao diện ứng dụng DHT được rút từ sự kiện của chúng và đưa ra đơn giản nhưng có hoạt động chung. Dựa trên chức năng tìm kiếm, hầu hết DHT thực hiện một không gian lưu trữ như là một bảng băm. Do đó, hàm put chấp nhận một ID và dữ liệu tùy ý ( giá trị băm của một file và nội dung file) được lưu trữ
dữ liệu đó (trên nút tương ứng với ID đó). Chỉ số ID này và dữ liệu thông thường được tham khảo từ cặp (Key, value). Tương ứng, hàm get thu nhận dữ liệu liên quan với một ID cụ thể. Với giao diện chung này và mô hình địa định địa chỉ đơn giản, DHT có thể được sử dụng cho các ứng dụng rộng lớn và đa dạng. Các ứng dụng tự kết hợp tùy ý ngữ nghĩa với các định dạng ID thí dụ việc băm các từ khóa tìm kiếm, chỉ số cơ sở dữ liệu, vị trí địa lý, thư mục phân cấp tên nhị phân, Do đó, các ứng dụng khác nhau như các hệ thống file phân tán, cơ sở dữ liệu phân tán, và các hệ thống định tuyến đã được phát triển trên DHT.
Hầu hết các hệ thống DHT cố gắng trải rộng tải của các thông điệp định tuyến và dữ liệu lưu trữ trên các nút thành viên một cách bằng nhau. Tuy nhiên, có ít nhất 3 nguyên nhân mà tại sao một số nút trong hệ thống có thể thực hiên tải cao hơn các nút còn lại: một nút quản lý một phần chia lớn của không gian địa chỉ, một nút tương ứng với một phần chia không gian địa chỉ với một số lượng lớn các mục dữ liệu, hay một một nút quản lý các mục dữ liệu của các nút thành viên thông dụng. Trong những hoàn cảnh này, thì thêm vào các mô hình cân bằng tải có thể giúp cho trải tải đồng đều trên tất cả các nút.
Thí dụ, một nút có thể truyền tương ứng một phần không gian địa chỉ của nó tới các nút còn lại, hay nhiều nút có thể quản lý cùng một không gian địa chỉ.
2.2.3 Định tuyến
Việc định tuyến là chức năng chính của DHT. Dựa trên thủ tục định tuyến, các thông điệp với ID đích của nó được truyền tới nút DHT mà quản lý ID đích.
Do đó, thuật toán tìm kiếm của DHT sẽ xử lý các vấn đề tìm kiếm.
Các hệ thống DHT đang tồn tại thực hiện một hướng tiếp cận đa dạng cho định tuyến. Tuy nhiên, về nguyên lý cơ bản là mỗi nút được cung cấp với một số tầm nhìn hữu hạn trong toàn bộ hệ thống bằng việc lưu trữ trên nó một số giới hạn các đường link đến các nút khác. Khi một nút nhận được một thông điệp cho một địa chỉ ID đích trong trường hợp nó không có địa chỉ đó, thì nó sẽ chuyển thông điệp đó tới một trong những nút mà nó biết. Quá trình xử lý này được lặp lại tuần hoàn đến khi nút đích được tìm thấy.
Việc lựa chọn nút nhảy kế tiếp được xác định bởi thuật toán định tuyến và mô hình định tuyến. Một hệ mét tiêu biểu là nút gần: các thông điệp luôn được chuyển tới nút quản lý số lượng các ID gần nhất với đích của ID của thông điệp.
Ý tưởng là, chẳng hạn như một mô hình định tuyến tin cậy một thông điệp tới đích của nó với số bước nhảy nhỏ. Thì rõ ràng, nó là một thử thách để thiết kế các thuật toán định tuyến và các ma trận. Do đó, thông tin các nút lỗi và định tuyến lỗi được giới hạn hay ít xung đột trong quá trình định tuyến chính xác và co dãn hệ thống.
2.2.4 Lưu trữ dữ liệu
Có hai phương pháp lưu trữ dữ liệu trong DHT, trong DHT có sử dụng lưu trữ trực tiếp, dữ liệu sẽ được sao chép nên trên nút tương ứng của nó (hình 2.3a). Ưu điểm của mô hình này là dữ liệu được lưu trữ trực tiếp vào hệ thống P2P và nút đó thêm vào nó rồi sau đó rời khỏi DHT mà nút đó không có dữ liệu trở thành không tồn tại. Nhược điểm là quá tải trong việc lưu trữ và băng thông của mạng. Khi một nút có thể bị lỗi, dữ lệu cần phải được chuyển tới các nút khác để tăng khả năng tồn tại. Thêm vào đó, với các dữ liệu lớn thì một số lượng lớn không gian lưu trữ cho các nút.
Một khả năng khác là lưư trữ các tham chiếu tới dữ liệu. Việc chèn thêm nút chỉ là nơi một con trỏ trỏ đến dữ liệu trong DHT. Dữ liệu của nó vẫn được nằm trong nút đó, điều này dẫn đến giảm được tải trong DHT. Tuy nhiên, dữ liệu chỉ tồn tại trong khoảng thời gian nút đó tồn tại. Trong cả hai trường hợp, nút đó sử dụng DHT để cho mục đích tìm kiếm.
(a) Lưu trữ trực tiếp (b) Lưu trữ gián tiếp
Hình 2.3: Hai phương pháp lưu dữ liệu trong DHT