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 tốn khơng hiệu quả trong trường hợp này.
Một nhược điểm nữa của thuật tố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 tố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 tố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 tố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
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 tố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 tố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 tố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ơ
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 tố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 tố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ì tồ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
nút nhẹ tải trong thuật tốn Threshold. Cịn kịch bản dịch chuyển biên trong thuật tố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 tố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 tố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 tốn cân bằng tải do chúng tôi đề xuất. Thuật tố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.
2.3. Cải tiến thuật toán cân bằng tải theo ngưỡng
2.3.1. Một số khái niệm
Xét hệ thống gồm n nút vật lý (các máy tính hoặc các thành phần trong một hệ thống mạng ngang hàng có cấu trúc). Nút ni có khả năng cố định là Ci, tương ứng với số lượng tối đa các câu truy vấn mà nút đó có thể xử lý trong
Tải xử lý truy vấn: tại một thời điểm cụ thể, tải xử lý truy vấn Wi, của
nút ni là số câu truy vấn mà nút ni phải xử lý trong một đơn vị thời gian.
Hệ số sử dụng của một nút ui là tỷ lệ giữa tải làm việc trên khả năng của
nó: ui = Wi / Ci.
Hệ số sử dụng của hệ thống bằng tỷ lệ của tổng tải làm việc của các
nút trên tổng khả năng của các nút:
𝜇 = ∑𝑁−1𝑖=0 𝑊𝑖
∑𝑁−1𝑖=0 𝐶𝑖
với N là tổng số nút trong hệ thống, Wi, Ci lần lượt là tải làm việc và khả năng của nút ni.
Mỗi nút có một giá trị ngưỡng tải trên Ui, một ngưỡng tải dưới Li và
khoảng giá trị U sao cho Ui = Ci - U.
Nút nặng tải: nếu một nút ni nhận được nhiều câu truy vấn hơn Ui thì nó
được coi là nặng tải.
Nút nhẹ tải: nếu một nút ni nhận được số câu truy vấn ít hơn Li thì nó được coi
là nhẹ tải.
Nút quá tải: nút ni được gọi là quá tải khi Wi > Ci. Một nút q tải sẽ
khơng có khả năng xử lý thêm các câu truy vấn.
Định tuyến: Các thơng điệp được định tuyến đến đích theo cơ chế định
tuyến của mạng Chord. Định danh đến của một thông điệp là một số nguyên trong không gian định danh D của mạng phủ, ví dụ D = 2160. Các thông điệp di chuyển qua các nút trong mạng phủ từ nút nguồn đến nút đích.