Quy trình xử lý một nút rời khỏi mạng.

Một phần của tài liệu đồ án tối ưu hóa truyenf multicast trogn giải thuật truyền dữ liệu video stream ming (Trang 31 - 36)

Chương 4: Xây dựng cây cân bằng.

4.2.3. Quy trình xử lý một nút rời khỏi mạng.

23

Sau khi phát hiện nút cha ông của mình đã rời khỏi mạng do không còn nhận luồng dữ liệu đẩy từ nút đó nữa, nút dó sẽ gửi recovery_message đến nút cha ông bên trên và việc tái cầu trúc lại cây sẽ do nút nhận được recovery_message đảm nhiệm.

Khi một nút nhận được recovery_message , nút đó sẽ phải chịu trách nhiệm tìm một nút thay thế trong danh sách nút lá, để gửi yêu cầu di chuyển lên vị trí nút con đã rời mạng của nó. Vậy nên, đầu tiên nó sẽ xem xét trong danh sách các nút lá của mình, danh sách mà chúng sẽ được cập nhật mỗi khi có sự thay đổi nào đó, và chọn ra một nút lá có băng thông cao nhất.

Hình 4.4: quy trình xử lý nút rời khỏi mạng.

Đến đây, chúng ta có thêm một số trường hợp khá đặc biệt cần phải giải quyết. Thứ nhất, nếu như nút lá đươc chọn và nút rời đi có cùng nút cha (như mô tả ở hình 4.5)

24

Hình 4.5: Trường hợp nút lá và nút rời đi có cùng nút cha. Ở đây, nút số 2 là nút đã rời khỏi mạng và nút số 1 là nút đang chọn nút số 3 (vì nút số 3 là nút là có băng thông cao nhất)thế vào vị trí của nút số 2. Vậy nhưng, nếu trường hợp này xảy ra, nút số 3 sẽ thế vào vị trí của nút số 2, thì cấu trúc cây của chúng ta đang xây dựng sẽ bị mất cân bằng ở cây có gốc là nút số 1 (hình 4.6). Bởi vì, lúc này, nhánh cây của nút số 3 cũ sẽ không còn một nút nào trong khi nhánh cây của nút số 2 không hề mất nút, cho nên level ở hai nhánh cây trên sẽ có độ chênh lệch là hai. Như vậy, không đảm bảo được tính chất cây cân bằng như trong định nghĩa của chúng ta.

25

Hình 4.6: sau khi nút số 3 chuyển sang vị trí nút số 2

Để giải quyết vấn đề trên, chúng tôi đã thay đổi cơ chế chọn nút là để thay thế một nút rời khỏi mạng. Chúng tôi không chỉ quan tâm đến băng thông của các nút lá mà chúng tôi còn lưu ý đến level của chúng. Trong công việc chọn các nút lá để thay thế một nút rời khỏi mạng, chúng tôi sẽ nâng độ ưu tiên cho nút là mà chúng ở level thấp hơn, dù chúng có băng thông thấp hơn so với nút lá khác ở những level trên. Như vậy chúng ta có thể hoàn toàn giải quyết được vấn đề nút rời khỏi mạng mà vẫn duy trì được sự cân bằng của cây.

Một trường hợp khác, nếu như nút lá được chọn có ít nhất một con. Trường hợp này hoàn toàn có thể xảy ra, vì trong thời gian nút cha gửi yêu cầu chuyển đổi vị trí cho nút lá, nút là này bất ngờ được di chuyển lên trên, hay nhận thêm nút mới tham gia vào mạng. Vì thế trong trường hợp này, nút lá không thể chuyển đổi vị trí như yêu câu của nút cha vì việc có thêm một con không thể đảm bảo rằng chúng sẽ có đủ băng thông để nhận tất cả các con của nút rời đi kia làm con của mình. Vì thế, nếu trường hợp này xảy ra, nút lá được chọn sẽ từ chối dịch chuyển và gửi thông báo cho nút cha. Nút cha sẽ phải chọn một nút lá khác trong danh sách của mình và tiếp tục gửi yêu cầu cho đến khi tìm được một nút thay thế cho nút con rời đi của nó.

Sau khi đã tìm được nút lá thay thế phù hợp với vị trí của nút con rời đi, nút lá sẽ được di chuyển lên vị trí mới. Đến đây, tất cả những công việc còn lại là cập nhật lại toàn bộ thông tin, về nút cha, nút con, danh sách các nút kéo dữ liệu của các nút bị ảnh

26

hưởng. Và đây cũng là công việc cuối cùng trong cơ chế giải quyết khi một nút bất kỳ rời khỏi mạng.

4.3. Tối ưu hóa cây cân bằng.

Với mục đích làm giảm độ cao trung bình và tăng độ rộng của cấu trúc cây cân bằng, chúng tôi sẽ đưa ra một giải pháp rằng những nút có băng thông cao hơn sẽ được đẩy lên trên(level bên trên) thay vì để những nút đó ở gần đáy. Với cơ chế này, những nút có thể nhận được nhiều con hơn sẽ được chuyển lên trên, những nút có băng thông thấp hơn sẽ được đưa xuống dưới. Như vậy, với tổng số nút như nhau, một cấu trúc cây áp dụng cơ chế này sẽ có độ cao trung bình giảm xuống so với với câu trúc cây không được áp dụng, vì thế thời gian truyền dữ liệu toàn mạng sẽ được giảm xuống, những nút ở đáy sẽ chịu độ trễ thời gian thấp hơn. Cuối cùng, hiệu quả truyền dữ liệu toàn mạng sẽ được tăng cao.

Trong phần này, chúng tôi sẽ giới thiệu về phương pháp Switching, nhằm để giải quyêt vấn đề đã nêu ở trên, tối ưu cấu trúc cây mà chúng tôi đang xây dựng.

4.3.1. Điều kiện trước.

Như đã đề cập ở trên, để tận dụng tối đa băng thông của tất cả các nút trong mạng, chúng tôi sẽ chuyển những nút có băng thông lớn lên trên. Tuy nhiên, khi một nút mới tham gia vào mạng, chúng ta không thể đảm bảo được rằng xác suất nút đó sẽ ở trong mạng trong thời gian dài là lớn, việc nút đó có thể rời khỏi mạng ngay lập tức là việc hoàn toàn có thể xảy đến. Và khi đó, chúng ta lại phải chuyển đổi nút, tái cấu trúc lại cây cân băng của chúng ta thêm một lần nữa. Việc phải tái cấu trúc cây nhiều lần sẽ dẫn đến hậu quả rằng, việc truyền dữ liệu trong cây bị trì trệ rất lớn, nhiều nút sẽ phải chịu độ trễ cao, do đó sẽ làm giảm hiểu quả truyền dữ liệu một cách rõ rệt.

Bằng trực giác, độ ổn định của một nút sẽ tỷ lệ thuận với thời gian nút đó ở trong mạng của chúng ta, nhưng chúng ta lại không thể biết được thời điểm mà một nút sẽ rời khỏi mạng hay khoảng thời gian mà nút đố tồn tại trong mạng là bao nhiêu khi nút đó mới tham gia vào mạng. Vì thế, chúng tôi sẽ đưa ra một dự đoán thực tế dựa vào thời gian mà nút đó tồn tại trong mạng, tính từ thời điểm nút đó được tham gia vào mạng của chúng ta. Như đã nhắc đến trước đây, một nghiên cứu đã chỉ ra rằng những nút có thời gian tồn tại trong mạng cao hơn sẽ có xu hướng ở trong mạng lâu hơn. Do vậy, tuổi đời của một nút trong mạng sẽ phản ánh phần nào độ ổn định của nút đó.

Kết luận, chúng tôi sẽ để một nút mới tham gia vào mạng ở một vị trí tại level dưới trong một khoảng thời gian nhất định trước khi dịch chuyển nó lên trên nhằm đảm bảo xác suất rằng cây cân bằng của chúng ta sẽ không phải tái cấu trúc lại nhiều lần như phân tích bên trên.

27

Điều thứ hai chúng tôi muốn nói đến ở đây, là cơ chế để một nút có thể nhận biết được rằng liệu có nút nào đó trong các nút con cháu của mình có băng thông lớn hơn băng thông của chính nó hay không. Để làm được điều này, giống như cơ chế đã giới thiệu ở phần xử lý một nút rời khỏi mạng, mỗi nút sẽ giữ danh sách các nút có băng thông cao trong số con cháu của chính nó, danh sách này gọi là danh sách các nút ứng viên. Ở phần xử lý một nút rời khỏi mạng, danh sách các nút lá là để chọn ra một nút có thể thay thế nút con của nó trong trường hợp nút con đó rời khỏi mạng, nhưng trong phần này danh sách các nút ứng viên được dùng để tìm các nút có băng thông cao hơn băng thông của nó. Thật vậy, nếu có một nút có băng thông lớn, nó nghiễm nhiên sẽ được thêm vào danh sách đó, bởi vì rằng danh sách đó được chọn theo tiêu chí băng thông và thời gian nút đó ở trong mạng. Tiếp sau đó, thông tin của các nút ứng viên này sẽ được chuyển lên cho nút cha của nó, nút cha dựa vào thông tin của các nút con gửi cho sẽ chọn ra một danh sách các nút ứng viên mới làm danh sách riêng của mình và tiếp tục chuyển tiếp lên trên. Quá trình sẽ dừng lại đến khi nút gốc của cây cân bằng chọn được sanh sách nút ứng viên cho chính nó.

Một phần của tài liệu đồ án tối ưu hóa truyenf multicast trogn giải thuật truyền dữ liệu video stream ming (Trang 31 - 36)

Tải bản đầy đủ (PDF)

(48 trang)