Fault-Tolerance cho Agent

Một phần của tài liệu Tìm hiểu cơ chế RMI của Java và xây dựng một môi trường hỗ trợ tính toán song song và phân bố (Trang 60 - 62)

- 2Vấn đề phân chia công việc

1)Fault-Tolerance cho Agent

Một vấn đề có thể xảy ra đối với Agent khi hệ thống đang hoạt động là nó có thể bị fail. Có nhiều phương án để giải quyết vấn đề này để hệ thống có thể hoạt động bình thường và lượng thông tin bị mất mát là ít nhất

. a

Dùng cơ chế “Backup” :

Cơ chế Backup thực hiện một bản sao của Agent đang hoạt động. Bất kỳ lúc nào có sự kiện xảy ra đối với Agent có tính chất quyết định chúng ta đều thực hiện việc cập nhật lại cho một Agent phòng hờ trên một nơi an toàn nào đó. Và khi Agent chính Fail thì Agent bị Fail đó lập tức được thay thế bằng Agent phòng hờ này. Vì vậy hoạt động hệ thống được đảm bảo diễn ra như bình thường, và độ mất mát thông tin phụ thuộc vào các sự kiện mà chúng được cập nhật vào bản sao Agent.

Cơ chế này dựa trên luận cứ là : hai Agent Object thì khả năng Fail của cả hai tại cùng một thời điểm có xác suất nhỏ hơn so với khả năng Fail của một Agent Object. Vả lại, nếu hệ thống Fail liên tục thì bản thân việc xây dựng hệ thống này đã có vấn đề. Vì vậy có thể nói xác suất Fail của Agent là nhỏ hay cũng có thể nói là chúng ta đã giải quyết được vấn đề Agent Fail với cơ chế này.

• Ưu điểm của cơ chế :

Độ ổn định về hoạt động của hệ thống cao. Kiểm soát được lượng mất mát thông tin do thời điểm Backup là do ta quyết định.

• Khuyết điểm của cơ chế :

Hao tốn nhiều tài nguyên của hệ thống do lúc nào trong hệ thống cũng tồn tại một Object dư thừa không dùng vào mục đích sử dụng mà chỉ là phòng hờ. Ngoài ra, khuyết điểm của cơ chế là hao tốn thời gian cho việc Backup một Object

. b

Dùng cơ chế “Check Point and Recovery” :

Trong quá trình hoạt động của Agent, Agent luôn cập nhật lại trạng thái của nó vào một Log File nhằm phòng hờ cho trường hợp Agent bị Fail. Và một khi Agent bị Fail chúng ta sẽ có một cơ chế “Start” lại một Agent mới và tạo cho nó một trạng thái ban đầu ứng với các trạng thái chúng ta đã lưu trong Log File. Vì vậy ta có thể bảo đảm phần nào độ ổn định về hoạt động của hệ thống.

• Ưu điểm của cơ chế :

Độ ổn định về hoạt động của hệ thống cao. Ngoài ra, với phương pháp lưu trạng thái của hệ thống như trên, thì một chương trình khác có thể dùng được các

trạng thái trung gian của hệ thống vào một mục đích khác, nếu như chương trình đó biết được format của Log File.

• Khuyết điểm của cơ chế :

Khó có thể biểu diễn hết được toàn bộ trạng thái của hệ thống, vì vậy đôi khi cũng có thể có sai sót xảy ra trong hệ thống. Bên cạnh đó với hệ thống sử dụng cơ chế này cũng khá phức tạp trong giải thuật và hiện thực hệ thống.

. c

Cơ chế bầu cử:

Khi Agent Fail, các Server trong cùng một hệ thống con của nó sẽ thực hiện bầu cử để cử ra một Server để làm Agent. Có nhiều giải thuật để bầu chọn một Server trong hệ thống để làm nhiệm vụ của một Agent, nhưng giải thuật đơn giản và dễ dùng là giải thuật Bully của Garcia-Molina(1982)[4]. Nội dung giải thuật như sau: • Các Server được đánh số theo chỉ số tăng dần và duy nhất.

• Khi một Server phát hiện Agent chết nó sẽ khởi động việc bầu cử và nó sẽ gửi một message ứng cử tới cho các Server khác trong hệ thống.

• Nếu có Server nào có chỉ số cao hơn nó sẽ trả lời cho Server đó, và lúc này ưu tiên ứng cử dành cho Server có chỉ số cao hơn.

• Về phía Server ban đầu, nếu không thấy ai trả lời sẽ tự bầu nó làm Agent. Giải thuật trên có thể biểu diễn theo sơ đồ khối như sau :

Start

Kiểm tra theo định kỳ

Agent chết ? Stop Yes Gửi Message ứng cử Có Server trả lời?

Start Agent mới

Hình 26. Lưu đồ cho cơ chế bầu cử

Để lựa chọn cơ chếcho việc hiện thực Agent của hệ thống, cần xét qua đặc tính của Agent của hệ thống. Agent của hệ thống có đặc tính là người quản lý là chính yếu, do đó một khi có sự kiện ảnh hưởng đến việc quản lý thì ta đã lưu sự ảnh hưởng của sự kiện đó xuống File Database. Do đó, cơ chế thích hợp cho việc khắc phục lỗi là cơ chế “CheckPoint and Recovery” như đã nêu ở trên. Tóm lại, giải pháp cho việc hiện thực khắc phục cho sự kiện Agent chết là theo cơ chế “CheckPoint and Recovery”.

Một phần của tài liệu Tìm hiểu cơ chế RMI của Java và xây dựng một môi trường hỗ trợ tính toán song song và phân bố (Trang 60 - 62)