Chương 2. CÂN BẰNG TẢI TRONG MẠNG NGANG HÀNG CÓ CẤU TRÚC
2.2. Các nghiên cứu liên quan
Thuật toán cân bằng tải theo ngưỡng [3] luôn duy trì tải của mỗi nút dưới một ngưỡng nào đó. Một nút trong mạng sẽ cố gắng chuyển tải cho các nút khác khi tải của nó tăng quá ngưỡng . Xét một dãy các ngưỡng 𝑇𝑖 = ⌊𝑐𝑖⌋ với i ≥ 1 và c là một hằng số nào đó. Khi tải của một nút vượt quá ngưỡng Tj, nút đó sẽ khởi tạo thuật toán cân bằng tải theo ngưỡng.
Hình 2.1. Chuyển tải giữa các nút láng giềng.
42
Hình 2.1.(a) mô tả nút n1 chuyển tải cho nút láng giềng n2 và hình 2.1.(b) mô tả việc chuyển định danh của nút n3 vào giữa n1 và n2. Độ cao của mỗi hình tương ứng là biểu diễn tải của các nút.
Ý tưởng của thuật toán cân bằng tải theo ngưỡng được mô tả như sau:
khi tải của một nút n trong mạng vượt quá một ngưỡng Tj thì đầu tiên nó cố gắng chuyển tải cho một trong hai nút láng giềng có tải nhỏ. Nếu cả hai nút láng giềng đều có tải lớn và không thể nhận được tải nữa thì nó tìm một nút nhẹ tải trong mạng và có tải nhỏ nhất, nhờ nút này nhận tải hộ bằng cách dịch chuyển định danh của nút nhẹ tải vừa tìm được vào giữa nút n và predecessor của n. Để tìm một nút nhẹ tải, nút n lựa chọn ngẫu nhiên p nút trong mạng để thử. Với mỗi nút n' được chọn để thử, nút n' hỏi nút successor của nó xem khi nút n' dịch chuyển định danh sang vị trí khác có gây nặng tải cho nút successor của n' hay không. Nếu nút n' có thể di chuyển được, nút n ghi nhận nút n' là một ứng cử viên để thực hiện di chuyển. Nếu nút n' không di chuyển được, nút n chọn các nút tiếp theo trong p nút để thử. Khi toàn bộ p nút được chọn để thử, nút n sẽ tìm được nút tốt nhất để di chuyển hoặc không tìm được nút nào để dịch chuyển định danh.
Thuật toán cân bằng tải theo ngưỡng hoạt động hiệu quả khi trong mạng có tỷ lệ số nút nặng tải so với số nút nhẹ tải là thấp. Trong trường hợp này nút nặng tải thường chuyển tải ngay cho các nút láng giềng, do đó tải truy vấn để tìm nút nhẹ tải giảm đáng kể.
Ngược lại, khi tỷ lệ trên cao, các nút trong mạng hầu như đều quá tải, khả năng chuyển tải của nút quá tải cho láng giềng hầu như không xảy ra, chính vì vậy tải truy vấn tìm nút nhẹ tải tăng rất nhanh. Điều này làm cho hệ thống đạt độ cân bằng chậm, thuật toán không hiệu quả trong trường hợp này.
43
Một nhược điểm nữa của thuật toán này là nó giả sử rằng khả năng xử lý câu truy vấn của các nút tham gia hệ thống là như nhau, trong thực tế khả năng này là không đồng đều nhau, có nút mạnh, có nút yếu. Do đó, thuật toán cũng không hiệu quả trong trường hợp này.
2.2.2. Cân bằng tải dựa trên server ảo.
Khái niệm server ảo do Rao [42] đề xuất và được sử dụng cho vấn đề cân bằng tải trong mạng ngang hàng có cấu trúc. Mỗi server ảo có vai trò như một nút trong mạng DHT. Một nút vật lý có thể quản lý một hoặc nhiều server ảo. Trong mạng Chord, mỗi server ảo chịu trách nhiệm quản lý một vùng không gian định danh liên tục nhau. Tuy nhiên, mỗi nút vật lý có thể quản lý các vùng không gian định danh không liên tục nhau. Ưu điểm chính của việc chia tải cho các server ảo là có thể chuyển một server ảo từ một nút vật lý bất kỳ sang một nút vật lý khác. Thao tác này giống như một nút rời hệ thống và một nút khác tham gia vào hệ thống.
Gọi Li là tải của nút ni, Li bằng tổng tải của tất cả các server ảo của nút ni. Giả sử mỗi nút có một ngưỡng tải Ti (tải mà một nút mong muốn nhận được). Một nút được gọi là nặng tải nếu Li > Ti, ngược lại nút đó được gọi là nhẹ tải. Mục đích của các thuật toán cân bằng tải dựa trên server ảo là làm giảm các nút nặng tải trong hệ thống bằng việc di chuyển server ảo từ các nút nặng tải sang các nút nhẹ tải.
Có nhiều thuật toán cân bằng tải được đề xuất dựa trên khái nhiệm server ảo như Log(N) virtual server [43], Proportion [28], Transfer [42].
Thuật toán Log(N) virtual server căn cứ vào khả năng xử lý truy vấn của nút vật lý để tạo ra số lượng server ảo phù hợp khi một nút tham gia mạng. Thuật toán Proportion căn cứ vào tình trạng tải xử lý truy vấn của một nút để điều chỉnh số lượng server ảo. Khi tải của một nút ở mức thấp, nút đó tạo thêm
44
một số server ảo để nhận thêm tải cho hệ thống. Khi một nút quá tải, nó thực hiện việc xóa bớt một số server ảo để làm giảm tải cho nút đó. Trong thuật toán Transfer, một nút tạo ra một số lượng server ảo phù hợp khi tham gia hệ thống và dịch chuyển server ảo giữa các nút để đảm bảo cân bằng tải. Có ba sơ đồ dịch chuyển server ảo được đưa ra đó là: sơ đồ One-to-One, One-to- Many và Many-to-Many.
2.2.3. Một số nghiên cứu khác về cân bằng tải
Ngoài hai hướng nghiên cứu trên, một số tác giả cũng đã đề xuất một số thuật toán khác cho vấn đề cân bằng tải trong mạng ngang hàng có cấu trúc, cụ thể như:
- Konstantinou et al. [69] đề xuất thuật toán cân bằng tải NIXMIG sử dụng cả hai thao tác chèn và xóa. Thuật toán NIXMIG kiểm tra tải của các nút láng giềng và cân bằng tải theo cách thức tương tự sóng (wave-like). Sau đó một nhóm các nút ở xa chuyển tải của chúng cho một nút cụ thể và sau đó chia sẻ tải của nút cuối cùng của sóng. Thuật toán NIXMIG được so sánh với thuật toán [38]. Tuy nhiên, NIXMIG phức tạp hơn và có nhiều nút bị ảnh hưởng hơn trong mỗi thao tác chèn và xóa.
- Crainiceanu et al. [70] giới thiệu cấu trúc chỉ mục P2P, với tên là P- Ring. Thuật toán cân bằng tải này có chi phí thấp hơn chi phí của [3]. Tuy nhiên, nó sử dụng các nút trợ giúp là các nút đặc biệt dùng để trợ giúp các thao tác cân bằng trong cấu trúc. Việc sử dụng các nút trợ giúp làm giảm chi phí của thao tác cân bằng tải tuy nhiên nó lại mâu thuẫn với tính đối xứng của hệ thống.
Trong nghiên cứu [71], một cơ chế khuyến khích được đề xuất để gán ưu tiên hoặc hình phạt để tăng các nút tham gia vào cân bằng tải. Tuy nhiên, cơ chế khuyến khích này chỉ khuyến khích các nút tham gia cân bằng tải mà
45
không bắt buộc chúng. Do đó, nhiều nút vẫn miễn cưỡng tham gia cân bằng tải và làm giảm hiệu năng cân bằng tải.
- Nghiên cứu [72], đề xuất thuật toán cân bằng tải khuếch tán áp dụng cho hệ thống tính toán song song, sử dụng cơ chế điều chỉnh và khuyến khích tự động. Mỗi nút thu thập trạng thái tải của các nút láng giềng và quyết định chuyển tải giữa các nút láng giềng. Ngưỡng tải của mỗi nút được điều chỉnh thông qua giá trị trung bình của các ngưỡng của các nút láng giềng. Hơn nữa, bằng cách khuyến khích các nút tích cực tham gia cân bằng tải hoặc phạt đối với các nút tham gia miễn cưỡng dựa trên so sánh với ngưỡng tải trung bình của tất cả các nút, nút không muốn tham gia cân bằng tải được chủ động hơn để tham gia cân bằng tải.
2.2.4. So sánh các thuật toán cân bằng tải
Để đánh giá các thuật toán cân bằng tải đã đề xuất, chúng tôi xây dựng bảng 2.1 với một số tiêu chí để so sánh một cách định tính các chi phí cho các thuật toán. Các tiêu chí đánh giá của chúng tôi bao gồm:
- Chi phí quản lý nút: là thông tin về các nút khác trong mạng mà một nút phải quản lý. Trong thuật toán cân bằng tải sử dụng Server ảo, một nút phải quản lý nhiều Server ảo, do đó chi phí quản lý nút sẽ cao. Thuật toán Threshold không sử dụng Server ảo, do đó chi phí quản lý của nút là thấp.
- Chi phí di chuyển dữ liệu: là chi phí di chuyển các khóa từ một nút sang một nút khác. Với các thuật toán cân bằng tải sử dụng Server ảo, khi thực hiện cân bằng tải luôn phải dịch chuyển hai lần khóa, lần thứ nhất khi Server ảo chuyển đi vị trí mới thì toàn bộ khóa nó quản lý sẽ chuyển cho nút successor của nó. Khi đến vị trí mới, lại phải chuyển một phần khóa của nút predecessor cho Server ảo. Trường hợp này giống với kịch bản dịch chuyển
46
nút nhẹ tải trong thuật toán Threshold. Còn kịch bản dịch chuyển biên trong thuật toán Threshold thì số lượng khóa phải di chuyển ít hơn.
- Chi phí tìm kiếm nút nhẹ tải: là số thông báo trong mạng phát đi để tìm kiếm nút nhẹ tải. Thuật toán cân bằng tải sử dụng Server ảo dùng thư mục để lưu trữ các nút nhẹ tải, do đó chi phí để tìm kiếm nút nhẹ tải là thấp. Trong thuật toán Threshold, thông báo tìm kiếm nút nhẹ tải được chuyển tiếp trong mạng từ nút thực hiện cân bằng tải cho đến khi tìm thấy nút nhẹ tải, cho nên chi phí tìm kiếm nút nhẹ tải sẽ cao.
Chi phí Thuật toán
Chi phí quản lý nút
Chi phí di chuyển dữ liệu
Chi phí tìm kiếm nút nhẹ tải Sử dụng server ảo
[27], [28], [37], [38]
Cao Cao Thấp
Threshold [3] Thấp Trung bình Cao
ThredholdPlus Thấp Trung bình Thấp
Bảng 2.1. So sánh các thuật toán cân bằng tải
Phần tiếp theo sẽ trình bày về thuật toán cân bằng tải do chúng tôi đề xuất. Thuật toán chúng tôi đề xuất được cải tiến từ thuật toán Theshold và đặt tên là ThresholdPlus. Thuật toán đề xuất kế thừa những ưu điểm của thuật toán Threshold và đạt tỷ lệ truy vấn thành công cao hơn trong khi chi phí tìm kiếm nút nhẹ tải được giảm xuống như so sánh trong Bảng 2.1.