0
Tải bản đầy đủ (.pdf) (62 trang)

Một số giải pháp về tìm kiếm tài nguyên trên mạng ngang hàng có cấu trúc

Một phần của tài liệu NGHIÊN CỨU GIẢI PHÁP TÌM KIẾM TÀI NGUYÊN HIỆU QUẢ THEO TÊN MIỀN TRÊN MẠNG NGANG HÀNG CÓ CẤU TRÚC (Trang 28 -28 )

cu trúc.

Tính hiệu quả của các hệ thống mạng ngang hàng có cấu trúc là không còn phải bàn cãi, chính vì vậy việc thực hiện tìm kiếm tài nguyên mạng một cách hiệu quả hiện nay đa số đều được thực hiện trên các hệ thống ngang hàng có cấu trúc. Trong phần

24

này chúng ta sẽ giới thiệu một số những hệ thống tiêu biểu, đồng thời cũng là nền tảng cho ý tưởng chính được đề ra trong khóa luận này.

2.3.1. H thng INS/TWINE

INS/Twine[3] là hệ thống tìm kiếm tài nguyên dựa trên nền tảng chính từ INS. Hệ thống cải tiến so với INS[2] trong việc phân tầng thực hiện các công việc đểđạt hiệu quả cao hơn, và cho phép thực hiện các truy vấn theo khoảng phù hợp hơn với các nhu cầu tìm kiếm tài nguyên. Trong phần này ta sẽ tìm hiểu chi tiết hơn về hệ thống này.

Mô t tài nguyên

Tài nguyên trong hệ thống được mô tả với một như một hệ thống thứ bậc của các cặp thuộc tính – giá trị. Cách tiếp cận là chuyển chúng về dạng chính tắc atributes-value tree(Avtre). Tài nguyên được chú thích bằng mô tả meta-data và được biểu diễn dưới dạng cây

Hình 11: Ví d v mô t tài nguyên trong INS/TWINE

Trong INS/Twine, 1 tài nguyên d là kết quả trả về cho 1 câu truy vấn q nếu cây AVTree được thiết lập từ q là khớp với AVTree sinh ra bởi đặc tả của d, ngoài ra hệ thống được hộ trợ cho phép tìm kiếm theo truy vấn từng phần (partial query). Điều này cho phép các truy vấn có dạng q=<res>camera</res> vẫn có thể tìm kiếm được tài nguyên có mô tả như hình vẽ.

Kiến trúc h thng

Hệ thống INS được phân chia làm 3 tầng thực hiện các công việc riêng biệt giúp hệ thống hoạt động một cách hiệu quả hơn.

25

Hình 12: Kiến trúc ca h thng INS/TWINE

Các tầng trong hệ thống:

Tng phân tích (resolver)

Tầng trên cùng Resolvers ,tương tác với cây lưu trữ avtree cục bộ và bộ truy vấn, nắm giữ các mô tả tài nguyên và xử lí các truy vấn.

Sử dụng thuật toán phân chia các thành phần của mô tả , mục đích là để tách mô tả ra thành các phấn có ý nghĩa mà các máy phân tích có thểđưa vào một tập con của các mô tả.

Hình 13: Ví d v vic chia nhánh t cây avtree

Hình trên thể hiện việc trích AVTree thành các nhánh. Số nhánh được tính theo công thức: s = 2a – t, với a là số cặp thuộc tính - giá trị, t là độ cao của AVTree.

26

Tính toán yêu cầu lưu trữ tại mỗi node được cho bởi công thức:

Trong đó:

R: số node trong hệ thống

S: số trand trung bình cho mỗi đặc tả tài nguyên.

N: số resolver trong mạng

K: mức độ sao chép thông tin tài nguyên, K được chọn sao cho S*K<<N.

Trong hệ thống INS/Twine 1 giá trị ngưỡng nhằm giới hạn số tài nguyên tối đa liên quan đến một khóa được sự dụng để tránh trường hợp nút phụ trách khóa do nhánh sinh ra có thể bị quá tải, giá trị này phụ thuộc vào khả năng của node có thể là khả năng lưu trữ, tính toán,... . Khi ngưỡng này bị vượt quá, các tài nguyên nào liên quan đến khóa tương ứng sẽ không được tiếp nhận.

Trong quá trình giải quyết truy vấn, nếu một nút trả về kết quả không hoàn chỉnh do ngưỡng gây ra, một nhánh khác sẽđược chọn để tìm tiếp. Việc này được lặp lại cho đến khi danh sách tất cả tài nguyên có đặc tả phù hợp được tìm thấy hoặc khi đã duyệt hết tất cả các nhánh. Thêm vào đó, nếu gặp trường hợp một truy vấn quá ngắn hoặc chỉ gồm thông tin đặc tả phổ biến, để trách cho nút chịu trách nhiệm quản lý nhánh phổ biến bị quá tải, những nút hàng xóm sẽ duy trì cơ chế caching để lưu một số kết quả nhằm hỗ trợ các truy vấn dạng này.

Tng ánh x (strandMapper)

Chịu trách nhiệm tương tác với các khóa ánh xạđến các thành phần của mô tả.

Thực hiện bằng cách móc nối các bộ thuộc tính – giá trị vào trong một xâu duy nhất và thực hiện băm giá trị bằng hàm băm 128- bit MD5.

27

Input strand: res-camera-man-ACompany h1 = hash(res-camera)

h2 = hash(res-camera-man)

h3 = hash(res-camera-man-ACompany)

Tng định tuyến khóa (keyRoute)

Trực tiếp thực hiện việc định tuyến các khóa trong hệ thống, sử dụng hệ thống Chord[1] làm tầng phủ cho công việc định tuyến

Quyết định máy phân tích nào nên lưu thông tin về tài nguyên hoặc tham gia giải quyết truy vấn.

Qun lý trng thái

Với mục tiêu của hệ thống là khi một node tham gia vào, hoặc rời mạng, hoặc sửa đổi thông tin vềđặc tả tài nguyên, thông tin update sẽđược chuyển tới các nút cần thiết.

Các máy phân tích coi thông tin tài nguyên luôn có trạng thái mềm (soft – state), yêu cầu tài nguyên phải định kì refresh lại thông tin. Đểđảm bảo thông tin là cập nhật thì điều hướng tới là làm cho chu kỳ cập nhật nhỏ, tuy nhiên sẽ làm tốn băng thông của mạng. Mô hình lai ghép mà INS/Twine sử dụng như mô hình dưới là sự kết hợp giữa việc quản lý soft – state và yêu cầu về băng thông nhỏ hard – state.

Hình 14: Vic qun lý trng thái trong h thông INS/Twine.

Mỗi tài nguyên R gửi thông tin cập nhật của nó tới một máy phân tích theo chu kỳδ. Các máy phân tích cập nhật thông tin trong mạng với chu kỳ

28

∆ dài hơn. Nếu một tài nguyên ra khỏi mạng mà không thông báo thì máy phân tích gần nhất sẽ nắm được thông tin này trong khoảng thời gian δ và sẽ thông báo cho các máy phân tích khác. Tương tự với việc cập nhật thông tin của tài nguyên. Khi một máy phân tích gặp sự cố phải rời mạng, thông tin về tài nguyên liên quan tồn tại trên mạng không quá thời gian ∆.

2.3.2. Data Indexing[4]

Tương tự INS/TWINE hệ thống cũng sử dụng Chord làm tầng phủ, trong hệ thống mỗi một item sẽđược ánh xạđến 1 hay nhiểu nút. Data Indexing[4] sử dụng hệ thống dữ liệu cây thư mục chứa các bài báo khoa học làm ví dụ, các file được mô tả bởi các thuộc tính mà con người có thể hiểu được như : tên tác giả, năm công bố, hội thảo công bố,… Các đặc tả sau đó được xử lý qua hàm băm để ánh xạđến khóa k: k = h(d). Tiếp theo, khóa k sẽđược sử dụng để xác định nút chịu trách nhiệm quản lý file f . Để tìm được f, node n cần biết khóa hoặc đặc tảđầy đủ của f.

Đặc t d liu và truy vn

Dữ liệu được mô tả dưới dạng semi-structure(tương tự mô tả XML) một mô

tả d sẽ đại diện cho tài nguyên f tương ứng.

Hình 15 Ví d vềđặc t file trong h thng Indexing

Đặc tả chứa thuộc tính của file (chẳng hạn các thông tin về tác giả, tiêu đề tài liệu, …).

Đặc tả truy vấn có khác biệt so với đặc tả tài nguyên. Data Indexing dùng ngôn ngữ Xpath XML để mô tả truy vấn. Một biểu diễn Xpath chứa nhiều phần

29

nhỏ phân tách bởi dấu “/”. Mỗi phần chỉđịnh 1 phần tử với 0 hay nhiều tính chất khác nhau hay chính là thuộc tính của tài nguyên muốn tìm kiếm.

Với mỗi đặc tả d luôn tồn tại một truy vấn q tương ứng một – một với nó. Truy vấn này được gọi là truy vấn đặc trưng nhất của d (the most specific query).

Trong hệ thống truy vấn ta định nghĩa khái niệm truy vấn là “phủ” của một truy vấn khác: Giả sử tồn tại 2 truy vấn q và q’, ta hiểu q’ chứa q (q’ là phủ của q) nếu như mọi đặc tả d phù hợp với q thì cũng phù hợp với q’. Ví dụ: q1 =/article[author[first/John][last/Smith]] _ _ _ [title/TCP][conf/SIGCOMM][year/1989][size/315635] q2 =/article[author[first/John][last/Smith]][conf/INFOCOM] q3 =/article/author[first/John][last/Smith] q4 =/article/title/TCP q5 =/article/conf/INFOCOM q6 =/article/author/last/Smith

Hình dưới là đồ thị biểu diễn các câu truy vấn được đưa ra trong hình Với ký hiệu qi qj tức là qi chứa qj.

Hình 16: Đồ th biu din các câu truy vn được đưa ra trong ví d

30

Hình 17 : Lược đồ ch mc cho d liu cây thư mc (bibliographic database)

Như trong hình vẽ ta có thể thấy dữ liệu được xây dựng thành dạng cây, cây sẽ mô tả một tập hợp các tài nguyên. Trong hình trên, cuối của mỗi mũi tên lưu ánh xạ giữa khóa của chỉ mục của nó và khóa của chỉ mục được lưu ởđầu mũi tên. Các danh sách chỉ mục khác lưu ánh xạ query-to-query(từ truy vấn đến truy vấn) và cho phép người sử dụng có thể thực hiện lặp lại việc tìm kiếm dữ liệu và xác định được file mong muốn.

Cây thư mục sẽđược xây dựng trước bởi người thiết lập hệ thống, các tài nguyên khi được thêm vào hệ thống sẽđược phân bổ vào các nút trên hệ thống, việc tìm kiếm các nút này sẽ dựa vào cấu trúc của cây thư mục.

Để thực hiện quá trình đánh chỉ mục cho dữ liệu, hệ thống sử dụng 2 hàm

chính là insert(q,qi) với q bao hàm qi để thêm liên kết giữa q và qi vào nút phụ trách q. Và hàm lookup(q) đểtrả về danh sách các qi bao hàm bởi q trong nút

phụ trách q.

Khi thực hiện đánh chỉ mục hệ thống sẽ lần lượt làm các công việc sau : Với tài nguyên f có mô tả d tương ứng với nó là truy vấn tối ưu q thì

lưu f tại node phụ trách k = h(q)

Sinh tập hợp các truy vấn (q1,q2,...) có thể đc sinh ra bời người dùng qi bao hàm q và lưu trữ liên kết (qi,q) tại các nút phụ trách ki=h(qi) Lặp lại quá trình thực hiên sinh truy vấn với các truy vấn q1,q2,... Đến

31

Hình 18 : Ví d v index d liu

Tìm kiếm d liu

Giả sử cần tìm kiếm tài nguyên f sử dụng 1 truy vấn q, các bước được thực hiện để tìm kiếm sẽ là

Gửi truy vấn đến nút phụ trách h(q) để nhận đc danh sách các truy vấn gần tối ưu hơn q.

Chọn một hoặc nhiều trong số các truy vấn và lặp lại 1 cách đệ quy đến khi nhận được kết quả mong muốn.

Ngoài ra để tiện cho việc tìm kiếm các dữ liệu phổ biến hệ thống sử dụng “shortcut” để truy vấn. Các shortcut sẽđược ánh xạ trực tiếp đế dữ liệu hay tài nguyên mà không cần thông quá nhiều bước lặp để tìm kiếm. Để làm được điều này hệ thống sẽ hộ trợ thêm cơ chế cache tại các nút để lưu ánh xạ khi cần thiết

32

Chương 3. Ý tưởng và gii pháp cho vn đề “Tìm kiếm

tài nguyên trên h thng tên min trong mng ngang hàng

Chương hai cho chúng ta thấy được tổng quan những vấn đề, ưu điểm trong việc tìm kiếm tài nguyên trên mạng ngang hàng có cấu trúc. Đó là lí do để nhiều hệ thống tìm kiếm đã được xây dựng sử dụng mạng ngang hàng có cấu trúc làm tầng phủ cho hệ thống. Việc trình bày một số giải pháp đã được thực hiện cũng đem lại nhiều ý tưởng cho giải pháp được để xuất sau đây.

Trong chương ba, giải pháp về một hệ thống tìm kiếm tài nguyên sẽđược đề xuất và làm rõ tính hiệu quả của nó trên phương diện lý thuyết. Giải pháp này dựa trên một số ý tưởng là ưu điểm của các giải pháp đã để ra đồng thời thêm vào những ý tưởng mới để khắc phục các tồn tại trong các giải pháp nói trên cũng như trong các hệ thống tìm kiếm tài nguyên mạng nói chung.

3.1. Vn đề gii quyết

Qua một số giải pháp đã nêu ở chương 2. Đã cho ta cái nhìn tổng thể về một hệ thống tìm kiếm tài nguyên, những công việc phải làm khi xây dựng hệ thống, các vấn đề tồn tại trong một hệ thống tìm kiếm tài nguyên

Vn đề tn ti

Trong một số hệ thống, việc lưu trữ số lượng lớn các bản sao của tài nguyên làm lãng phí tài nguyên của hệ thống, tài nguyên trong hệ thống ở đây có thể hiểu là khả năng lưu trữ của các nút tham gia mạng. Có thể kểđến hệ thống INS/TWINE như một ví dụđiển hình cho trường hợp này. Để có thể hỗ trợ tìm kiếm tài nguyên theo yêu cầu bằng việc sử dụng các truy vấn tổng quát (partial query) thông tin về tài nguyên sẽ được lưu trữ trong tất cả các nhánh được trích ra từ cây thuộc tính – giá trị (avtree) mô tả tài nguyên. Khi số lượng các nhánh tăng lên số lượng các bản sao sẽ tăng lên rất nhiều lần. Trên thực tế các nút chứa dữ liệu của một nhánh bao hàm hoàn toàn có thể ánh xạ đến các nút chứa nhánh con của nó để lấy thông tin cho truy vấn mà không cần phải tạo ra một bản sao riêng để lưu trữ. Việc lưu trữ nhiều bản sao tài nguyên trong hệ thống không chỉ đơn thuần làm lãng phí tài nguyên của hệ thống mà còn làm ảnh hưởng đến quá trình truy vấn tìm kiếm cũng như phân bổ tài nguyên trong hệ thống. Trong trường hợp tìm kiếm truy vấn sẽ được gửi đi nhiều nút chuyển tiếp để trả lời cho người dùng, và kết quả sẽ có thể mang nhiều giá trị trùng lặp làm hệ thống mất nhiều thời gian để tổng hợp các kết quả trước khi trả lời yêu cầu tìm kiếm.

33

Các hệ thống được ta xem xét và nghiên cứu đều được sử dụng cấu trúc cây để lưu trữ mô tả của toàn bộ tài nguyên trong hệ thống và hiệu quả của nó là rất rõ ràng. Tuy nhiên, việc giảm tải cho các nút phía gần gốc của cây mô tả tài nguyên là vô cùng quan trọng, vì các nút này luôn phải chịu tải rất lớn mỗi khi truy vấn vào hệ thống, đặc biệt là nút gốc nơi được duyệt qua bởi toàn bộ các truy vấn cũng như khi cập nhật tài nguyên mới.

Việc xử lý hiệu quả đối với các cặp thuộc tính - giá trị phổ biến cũng là vấn đề đối với các hệ thống tìm kiếm tài nguyên mạng. Trong thực tế, các truy vấn của người dùng sẽ thường chứa các thuộc tính phổ biến, trong nhiều trường hợp có thể là 1 cặp thuộc tính – giá trị. Ví dụ như trường hợp tìm kiếm tài nguyên là một tài liệu

(document) là một bài báo khoa học thuộc tính phổ biến có thể kể đến như : article, author, confference… một cặp thuộc tính - giá trị phổ biến có thể là confference – SIGCOMM. Truy vấn nhiều đến các cặp phổ biến có thể làm cho nút chứa dữ liệu phổ biến bị quá tải và bịđánh sập.

Ngoài ra việc chỉ sử dụng một ID duy nhất để ánh xạ tài nguyên lưu trong một nút mạng tương ứng sẽ là không hiệu quả vì khi gặp hỏng hóc trên nút này sẽ làm mất dữ liệu lưu trữ

Mc tiêu hướng ti

Mục tiêu chính của hệ thống mà chúng ta xây dựng chính là việc tận dụng tối đa các ưu điểm có được trong ý tưởng của các hệ thống đã được xây dựng đồng thời khác phục những nhược điểm của các hệ thống tìm kiếm tài nguyên. Những mục tiêu đó bao gồm :

Sử dụng một phương pháp mô tả tài nguyên có khả năng diễn đạt mềm dẻo và hiệu quả để có thể diễn đạt được lượng tài nguyên lớn phong phú và đa dạng mà vẫn đảm bảo sự tương ứng một – một giữa một tài nguyên với một mô tả. Duy trì cấu trúc cây trong việc lưu trữ tài nguyên chung của hệ thống. Cấu trúc

cây làm cho việc tìm kiếm nhanh và hiệu quả hơn. Khi trong cấu trúc của cây thuộc tính – giá trị các cặp thuộc tính – giá trịđược sắp xếp theo thứ bậc thì các yêu cầu chi tiết trong truy vấn có thể được đáp ứng một cách chính xác và cụ thể.

Tăng cường khả năng cần bằng tải của hệ thống ở mức tốt nhất có thể. Có hai

Một phần của tài liệu NGHIÊN CỨU GIẢI PHÁP TÌM KIẾM TÀI NGUYÊN HIỆU QUẢ THEO TÊN MIỀN TRÊN MẠNG NGANG HÀNG CÓ CẤU TRÚC (Trang 28 -28 )

×