Bộ lập lịch cho peer (Peer Schedulers)[1] [2]

Một phần của tài liệu Dịch vụ luồng trên mạng xếp chồng (Trang 74 - 81)

Xét quá trình chọn dữ liệu của một peer P bất kỳ, những thuật toán chọn nút đích trên P như sau:

1. Random peer : peer đích được chọn ngẫu nhiên với xác suất bằng nhau giữa tất

cả các nút hàng xóm của P, tức là không hề có sự phân biệt, ưu tiên nào giữa các peer có khác nhau về băng thông.

2. Random useful peer( RUp) : nút đích sẽ được chọn ngẫu nhiên trong số các nút

hàng xóm của P sao cho P chứa ít nhất một đoạn dữ liệu V(nút được chọn) không có. Nếu việc chọn chunk diễn ra trước( chunk C được chọn ), thì việc chọn peer đích V chỉ giới hạn các nút hàng xóm của P chưa chứa chunk C đó, tránh việc truyền lại chunk đã có tại peer đích.

3. Most deprived peer (MDp) : peer gốc sẽ được chọn ngẫu nhiên trong số các nút hàng xóm V của P thỏa mãn |C(P)\C(V)| là lớn nhất, tức là tập dữ liệu của 2 nút có sự khác biệt nhau nhất. Khi việc chọn dữ liệu diễn ra trước (chunk C được chọn), việc chọn peer đích chỉ giới hạn trong các nút hàng xóm V của P sao cho C chưa có ở V.

Nhận xét: Các thuật toán chọn peer được trình bày ở trên không hề quan tâm tới

băng thông của peer đích. Việc chọn peer đích chỉ quan tâm tới việc không gửi lặp đi lặp lại một đoạn dữ liệu nào đó tới peer đích. Điều này làm tăng trễ truyền dẫn và chính là hạn chế của các thuật toán này. Khi xây dựng những thuật toán này, người ta đã đưa ra giả thiết băng thông giữa các peer là đồng nhất, và vì thế không cần quan tâm tới băng thông.

Do vậy khi hoạt động ở điều kiện thực tế thì chất lượng sụt giảm mạnh. Rõ ràng rằng nếu muốn tối ưu các thuật toán này, thì yếu tố kênh truyền phải được tính đến, tối ưu nó, tận dụng triệt để các băng thông cao. Thêm vào đó, số kết nối giữa các máy chỉ nên phù hợp với băng thông của nó, tránh dư thừa, làm tăng số bản tin điều khiển.

Trước hết, người ta cần phải tìm cách mô hình hóa các băng thông trong thực tế, băng thông phân bố trong khoảng nào, qui luật phân bố là gì ? tỉ lệ của băng thông đó trong toàn mạng là bao nhiêu ? Và thường cố định trước giá trị trung bình của băng thông trong toàn mạng và để các giá trị băng thông trên từng đường kết nối chạy quanh gía trị đó.

Có rất nhiều mô hình mạng được đưa ra, chủ yếu là 3 mô hình : 3-class, uniform,

free-riders. [2]

Mô hình 3-class dựa trên 3 lớp: lớp băng thông thấp ( có băng thông upload là 0.5 ), lớp có băng thông trung bình ( có băng thông upload là ), và lớp có băng thông cao ( 2 ) .

Gọi h là hệ số hỗn tạp - heterogeneity factor. Hệ số lớp băng thông cao là h/3, của lớp băng thông thấp là 2h/3, hệ số của lớp băng thông trung bình là 1-h, do vậy băng thông trung bình của toàn mạng là:

Khi thay đổi giá trị của h trong [0,1] , ta sẽ được các sự phân bố băng thông khác nhau quanh giá trị trung bình đặt trước.

Trong mô hình phân bố đều Uniform, s(Pi) được phân bố đều giữa giá trị nhỏ nhất và giá trị lớn nhất , trong đó là băng thông trung bình , H là hệ số hỗn tạp heterogeneity factor. Tương tự như trường hợp trên, khi thay đổi H trong khoảng [0,1] sẽ nhận được các khoảng phân bố khác nhau của băng thông. Nếu H = 0 thì lại quay về trường hợp homogeneous bandwidth, các nút có băng thông như nhau.

Người ta dùng 2 kí hiệu H và h trong 2 trường hợp để chỉ qui luật phân bố khác nhau của băng thông trong 2 trường hợp trên ứng với cùng 1 giá trị H/h.

Mô hình free-riders dựa trên sự phân bố của 2 lớp, trong đó có 1 lớp gồm các nút “free riders”, có băng thông upload bằng 0. Kịch bản này rất cần thiết vì cho phép ta hiểu được điều gì xảy ra nếu có một số nút không chịu chia sẻ băng thông của nó, hoặc là những nút đã rời khỏi mạng, mà các nút hàng xóm không hề biết, vẫn gửi dữ liệu tới. Những thuật toán về nhận biết băng thông vẫn đang được phát triển, sau đây là một số ý tưởng:

1. Nhn biết băng thông trong vic chn peer (Bandwidth-Aware Peer Selection (BA)[ 25]

Ý tưởng chính của phương pháp Bandwidth-aware (BA) là chọn peer với xác suất tỉ lệ thuận với băng thông upload.

Gọi πp(ni) là xác suất Pi chọn một peer Ni để truyền chunk j.

Để tránh lặp lại việc truyền chunk j cho peer ni đã có chunk này rồi, thì Pi sử dụng thông tin danh sách tập các dữ liệu đã nhận của tất cả các nút hàng xóm Ni . Giả sử Pi chọn chunk Cj với chỉ số j lớn nhất trong số các chunks mà nó có và tìm trong số các nút hàng xóm của nó, các nút không có chunk j , kí hiệu tập đó là:

Ta có

Công thức tính πp(ni) như sau:

Trong các thuật toán chọn ngẫu nhiên peer, thì xác suất chọn ra 1 peer bằng nhau và là:

Nhằm đánh giá hoạt động của phương pháp ưu tiên băng thông, người ta xây dựng một kịch bản như sau:

9 Giả sử các máy trong mạng đều có hiểu biết đầy đủ về tập dữ liệu đang có của các máy khác.

9 Các máy chọn đoạn dữ liệu ( chunk) có chỉ số j lớn nhất ( tức là chunk mà nguồn phát ra muộn nhất trong số các chunk mà peer đó có).

9 Nguồn có băng thông gửi dữ liệu lên mạng là 1Mb/s, nguồn phát dữ liệu tốc độ 0.3Mb/s

9 Các peer trong mạng chia thành 3 nhóm. Nhóm P1 gồm các peer có băng thông phân bố đều trong khoảng [0.18, 0.22] Mbps. Nhóm P2 có băng thông trong khoảng [0.3,0.4] Mbps và các nhóm P3 có băng thông trong khoảng [3,4] Mbps. Chú ý các băng thông ở đây đều là băng thông gửi dữ liệu đi( upload bandwidth).

9 Các peer có băng thông tải dữ liệu đủ lớn để coi là vô hạn.

9 Kịch bản xây dựng mạng có 1000 máy ( bao gồm cả nguồn). Trong đó 270 máy lớp P1, 660 máy lớp P2, 69 máy lớp P3.

9 Tiến hành so sánh phương pháp lựa chọn peer theo 2 cách: phát hiện băng thông( phương pháp đang trình bày- BA) và phương pháp lựa chọn ngẫu nhiên các peer. Chạy kịch bản nhiều lần. Do sự chọn lựa mang tính ngẫu nhiên hoặc có xác suất nên kết quả ở các lần có thể khác nhau. Gọi overlay A là trường hợp xấu nhất, B là trường hợp tốt nhất.

Hình 3.1: So sánh độ trễ

Hình 3.2: So sánh độ trễ 99%

Quan sát hình 3.2, ta thấy thời gian trễ của dữ liệu khi tới các máy lớp 3 khi ở trường hợp lựa chọn ngẫu nhiên cao hơn rất nhiều so với trường hợp có nhận biết băng thông. Hình3.2 , trục tung là tỉ lệ số máy trên mạng, trục hoành là thời gian trễ của một gói tin từ lúc phát ra khỏi nguồn tới lúc có 99% các máy trong mạng nhận được.Qua cả 2 hình vẽ… có thể thấy khi có tính đến băng thông, độ trễ của gói tin đã giảm hẳn.

Như vậy, trong trường hợp này, việc chọn peer đã ưu tiên cho các peer có băng thông cao. Tuy nhiên chưa nói rõ làm sao để nhận biết ra băng thông của các peer.

2. Xây dựng lớp overlay thích ứng (Adaptive Overlay Topology for Mesh- Based P2P-TV Systems) [6]

Hầu hết các thuật toán đưa ra đều giả thiết các peer có mọi hiểu biết về mạng, điều này rất khó thực hiện trong mạng p2p lớn. Các kịch bản trên đều có số nút hàng xóm cố định, không hề thay đổi trong suốt quá trình hoạt động ( chỉ trừ khi có nút ngừng hoạt động thì số lượng nút hàng xóm mới thay đổi). Ở thuật toán này, số lượng và thành phần các nút hàng xóm sẽ được thay đổi thích nghi phù hợp với khả năng phục vụ của nút đó.

Ý tưởng chính của phương pháp này là các nút có băng thông upload lớn hơn thì sẽ được nối với nhiều nút hàng xóm hơn, và ưu tiên chọn những nút hàng xóm có băng thông cao hơn để kết nối trước, và ngược lại.Các nút băng thông cao sẽ được kết nối về gần nguồn, và giúp thời gian trễ truyền của dữ liệu giảm đáng kể. Qua đó sử dụng tối ưu hơn băng thông của mạng. Cứ sau 1 khoảng thời gian, thuật toán lại được thực hiện lại, và nó chính là phương pháp tự động cấu thành kiến trúc mạng overlay.

Khi p gửi dữ liệu tới q, thì q được gọi là out-neighbour của p, và p là in-neighbour của q. Gọi No(p) là tập hợp các out-neighbours của p. Và gọi L(p) = card(No(p)) là số phần tử của No(p) ( card: cardinality ). L(p) chính là số kết nối có thể dùng để gửi dữ liệu đi của nút p.

Cứ sau mỗi δc số chunks nhận được ( khoảng thời gian tương ứng với δc chunks này gọi là time window), nút p sẽ thực hiện việc rà soát lại số nút hàng xóm của nó, để tăng lên hoặc giảm số nút hàng xóm đi.

Gọi U(p) và lần lượt là tập hợp các link được dùng và các link không được dùng trong suốt thời gian time window.

, lần lượt là số kết nối được dùng và không được dùng. Vì vậy ta có biểu thức sau:

Số nút hàng xóm được sử dụng, và không sử dụng phải thay đổi để luôn thỏa mãn biểu thức sau:

Trong đó αL và αH lần lượt là các hệ số do người thiết kế lựa chọn trước. Mục đích của việc này là hạn chế cho một peer P không có quá nhiều kết nối không sử dụng và không có ít hơn số nút hàng xóm có thể phục vụ được.

Gọi n+, n- lần lượt là số kết nối một peer sẽ thêm vào hoặc bớt đi sau quá trình ra soát lại số nút hàng xóm của mình.

Trong đó n+ và n- được tính như sau:

n+ = k.L(p) ; k gọi là hệ số tăng trưởng ( growth rate factor) ; khi khởi tạo k =ki, và giảm tuyến tính tới kf (kf < ki) sau N chunk đầu tiên.

n- được tính bằng công thức :

Gọi N(c,p) là tập hợp các nút chưa có chunk c (chunk được chọn để gửi đi). Peer đích q N(c,p) với xác suất chọn là :

Trong đó D(q) (desirability function) là hàm được tính bằng công thức :

Người ta cho rằng, trong một khoảng thời gian cố định, một nút nếu phục vụ được nhiều nút thì băng thông của nó cao. Vì vậy, D(q) là giá trị để gián tiếp đánh giá băng thông upload của 1 peer, qua đó không cần dùng tới các đo đạc trực tiếp.

Các nút được thêm vào được chọn từ các nút hàng xóm của các nút hàng xóm của p, với xác suất chọn tỉ lệ thuận với hàm D(q).

Các nút được bớt đi khỏi tập các nút hàng xóm của peer p được chọn từ tập các link không sử dụng , cũng dựa vào hàm D(q).

Mục đích của việc chọn nút theo xác suất như trên là đưa các nút có băng thông cao về gần nguồn, và có nhiều nút hàng xóm hơn, ưu tiên kết nối với các nút có băng thông upload cao trước. Nhờ đó sẽ làm giảm đáng kể thời gian trễ do sự hạn chế băng thông upload.

Khả năng tự cấu hình và lựa chọn các nút hàng xóm của thuật toán này rất hữu ích khi thiết lập 1 mạng p2p mới, hay khi xảy ra hiện tượng churn, cấu trúc mạng bị thay đổi thì vẫn có thể tự động tối ưu. Sau 1 khoảng thời gian nhỏ ban đầu, cấu trúc của mạng sẽ tốt hơn.

Một phần của tài liệu Dịch vụ luồng trên mạng xếp chồng (Trang 74 - 81)