2.3.1Dẫn nhập
Trong mô hình mạng client (hay còn gọi MU) – base station (hay còn gọi là BS) – server, các client thường xuyên truy vấn dữ liệu đến server làm tăng chi phí truyền thông, băng thông tăng, thời gian hồi đáp dài. Vì vậy, người ta muốn các thiết bị di
động cộng tác chia sẻ kho lưu trữ để giảm thời gian chờ và tăng khả năng lấy được dữ liệu trong một môi trường ít kết nối. Về mặt năng lượng, các kiến trúc cũng cần có một cơ chế truy vấn, tổng hợp dữ liệu hiệu quả hơn.
Trong mô hình cộng tác chia sẻ dữ liệu, các MU là thiết bị di động có thể truyền thông và trao đổi chia sẻ dữ liệu với nhau. Tuy nhiên các thiết bị di động này có một số hạn chế như: bộ nhớ lưu trữ thấp, năng lượng thấp, tốc độ xử lý chậm. Bên cạnh đó, các thiết bị di động có khả năng di chuyển dẫn đến khả năng thay đổi mô hình mạng và khả năng mất kết nối giữa các thiết bị thường xuyên xảy ra. Vì thế đã có nhiều công trình nghiên cứu đề ra các kỹ thuật lưu trữ, truy vấn hiệu quả trong mô hình cộng tác trên hệ thống di động, chúng tôi sẽ trình bày trong phần tiếp theo.
Trong hệ thống thông tin di động ngày nay, các nhà khoa học đã đưa ra một mô hình cộng tác chia sẻ dữ liệu được ứng dụng cho các thiết bị di động. Các thiết bị di động thường có bộ nhớ thấp, điều này đã làm cho khả năng lưu trữ của các MU bị hạn chế.
Nhóm tác giả của bài báo [J.Li_2005] [7] đề ra chiến lược xử lý truy vấn dựa trên cơ chế quản lý dữ liệu theo nhóm để rút ngắn thời gian truy xuất dữ liệu giữa các MU. Với chiến lược này thì chi phí giao tiếp giữa các MU được rút ngắn và hiệu quả hơn. Trong môi trường di động, các MU thường xuyên di chuyển, khả năng mất kết nối xảy ra cao, do đó nhóm tác giả của bài báo [N.Chand_2007][9], [G.AnandHaraj_2009] [3] đã nghiên cứu các vấn đề về quản lý kho lưu trữ với bốn vấn đề chính: lưu trữ, khám phá, thay thế và nhất quán kho lưu trữ. Việc thay thế kho lưu trữ dựa vào các tham số tần suất truy cập, khoảng cách, kích thước mục dữ liệu,…để tăng hiệu quả quản lý kho lưu trữ.
2.3.2Kiến trúc MIX
Để giải quyết hiệu quả việc chia sẻ dữ liệu giữa các MUs trong vùng cộng tác nhằm hỗ trợ việc truy xuất dữ liệu, hai sinh viên Phạm Minh Tú – Hồ Lê Thị Kim Nhung đã đề xuất kiến trúc MIX trong luận văn cử nhân tháng 03/2010 [12]. Trong quá trình tìm nghiên cứu để đề xuất kiến trúc MIX, nhóm tác giả đã tìm hiểu các công trình “Caching and Query Processing in MANETs” của tác giả Jinbao Li, đưa ra giải pháp lưu trữ và thay thế dữ liệu theo nhóm, công trình “Improving On-Demand Data
Access Efficiency in MANETs with Cooperative Caching” của tác giả Yu Du, đề xuất ra một lược đồ cộng tác cho các ứng dụng truy xuất dữ liệu trong mạng P2P, chia các MU theo vùng, từ đó sẽ tìm kiếm dữ liệu yêu cầu theo vùng…
Kiến trúc gồm các phần chính như sau: máy chủ (server), base station (BS), và các thiết bị di động (MU).
Server: là nơi quản lý toàn bộ dữ liệu của hệ thống và cung cấp dữ liệu cho các BSs.
BS: là nơi lưu trữ và cung cấp dữ liệu cho các thiết bị di động trong phạm vi của nó. Phạm vi của BS là vùng diện tích mà BS có thể giao tiếp được với thiết bị di động thông qua mạng vô tuyến. Dữ liệu của BS được cung cấp bởi Server thông qua mạng hữu tuyến.
MU: là các thiết bị di động có khả năng xử lý thông tin như PDA, Laptop… Hoạt động của các MU được chia thành nhiều vùng, mỗi vùng chứa một số MU, mỗi MU có thể trao đổi thông tin, dữ liệu với MU khác trong cùng vùng hoạt động của nó. Các MU có thể truy xuất dữ liệu từ BSs nó kết nối được hoặc từ các MUs khác thông qua đường định tuyến (routing). Liên lạc giữa các BSs và MUs cũng như giữa các MUs thông qua mạng vô tuyến.
2.3.2.1Phương thức hoạt động
Nguyên lý hoạt động của kiến trúc được minh họa ở Hình 2-1: Người dùng sử dụng các thiết bị di động (MU) để tìm kiếm dữ liệu. Khi yêu cầu được phát ra, việc tìm kiếm dữ liệu sẽ được thực hiện tìm kiếm cục bộ tại chính kho dữ liệu cục bộ, nếu dữ liệu không được tìm thấy tại kho lưu trữ cục bộ mới được gởi yêu cầu đến các MUs khác trong vùng hoặc đến BS để được hồi đáp. Nếu dữ liệu không được tìm thấy tại MUs lân cận thì yêu cầu sẽ được gửi đến BS. Tất cả các MUs liên lạc đều thông qua mạng vô tuyến.
Hình 2-2 Nguyên lý hoạt động của kiến trúc
Trong Hình 2-2, tác giả định nghĩa các thành phần trong kiến trúc đề xuất như sau: Nút vùng là các MUs giao tiếp với nhau trong phạm vi bán kính truyền thông của MU, nút mạng là các MUs giao tiếp với nhau thông qua MU trung gian(getways). Ví dụ như trong Hình 2-2, MU2 có các nút vùng là MU3, MU4, MU9, MU6, các nút mạng là MU1, MU11,MU5,MU7
2.3.2.2Kiến trúc và nguyên lý hoạt động
Trong kiến trúc các MUs có thể liên lạc với nhau thông qua mạng vô tuyến và mỗi MU gồm có ba lớp xử lý chính: User Application, Middleware và Network Protocol được thể hiện ở Hình 2-3.
Hình 2-3 Kiến trúc tại MU
Lớp User Application có nhiêm vụ nhận yêu cầu dữ liệu của người dùng, chuyển yêu cầu đến lớp Middleware xử lý, sau đó trả kết quả về cho người dùng. Người dùng không cần biết về kiến trúc mạng, trạng thái mô hình mạng, phương thức xử lý của lớp Middleware, người dùng nhận kết quả trả về như là một MU cục bộ. Lớp Middleware có nhiệm vụ nhận yêu cầu dữ liệu từ lớp User Application, lớp này được chia thành ba lớp con: Caching Process, Zone Process, Routing Process. Lớp Network Protocol có nhiệm vụ giao tiếp và truyền thông tin, dữ liệu giữa các thành phần trong hệ thống. Kiến trúc chi tiết của các lớp được minh họa ở Hình 2-4.
Hình 2-4 Mô hình kiến trúc MIX
Trong Hình 2-4, nguyên lý hoạt động của kiến trúc này được thể hiện: trước tiên MU sẽ tìm dữ liệu tại bộ nhớ cục bộ được xử lý tại lớp Caching Process, nếu dữ liệu
được tìm thấy, kết quả sẽ trả về cho người dùng. Ngược lại, MU này gởi yêu cầu đến các MUs trong vùng được xử lý tại lớp Zone Process. Nếu dữ liệu được tìm thấy tại các MUs trong vùng của nó, nó sẽ nhận kết quả trả về từ các MUs trong vùng của nó, nó sẽ nhận kết quả trả về từ người dùng. Nếu dữ liệu không được tìm thấy, nó sẽ gửi yêu cầu dữ liệu đến các MUs xa hơn, được gọi là các nút mạng.
Lớp Caching Process: Mỗi MU có một bộ nhớ cục bộ (Local Cache - LC) để lưu trữ dữ liệu, khi một hạng mục dữ liệu được thêm vào LC, lớp này xử lý thay thế dữ liệu khi cache bị đầy dựa trên thuật toán LRU1. Trong LC, tác giả chia thành hai loại đơn vị dữ liệu được lưu trữ: dữ liệu chính (Primary Data - PD) và dữ liệu phụ(Secondary Data - SD), trong đó PD có độ ưu tiên cao, SD có độ ưu tiên thấp hơn. Khi có một hạng mục dữ liệu mới được thêm vào cache, SD có độ ưu tiên thấp nhất sẽ bị loại bỏ và hạng mục dữ liệu mới sẽ được thêm vào. PD được thay thế giá trị mới khi giá trị TTL2 của nó không còn hợp lệ.
Lớp Zone Process: Nếu dữ liệu không được tìm thấy trong LC, MU sẽ gởi yêu cầu tìm dữ liệu đến các MUs khác trong vùng. Lớp Zone Process có hai module “RRT” và “IDNeighs”. Mục tiêu của bảng RRT là cho biết MU nào có dữ liệu yêu cầu, khi đó MU nguồn sẽ truy xuất đến MU đó để lấy dữ liệu, tránh tình trạng loang hết (loang mù) đến các MUs khác trong vùng. Trong bảng IDNeighs ghi nhận các MUs trong vùng của MU nguồn. Khi dữ liệu yêu cầu không có trong RRT của MU nguồn thì MU nguồn sẽ gửi dữ liệu yêu cầu đến các nút trong vùng của nó.
Lớp Routing Process: Khi MU không tìm thấy dữ liệu yêu cầu (Request Data - RD) tại các MUs khác trong vùng, MU sẽ gởi yêu cầu đến các MUs trong mạng. Trong kỹ thuật định tuyến, để một MU có thể đi đến các MUs khác trong mạng, đường định tuyến sẽ chọn và lưu lại trong MU trung gian nào có nhiều MU khác trong vùng của nó nhất trong đường định tuyến. Kỹ thuật này làm tăng khả năng tìm thấy dữ liệu với số bước nhảy ít nhất. Trong quá trình dựa vào định tuyến để đến các MUs để lấy dữ liệu, nếu tổng số bước nhảy lớn hơn R (R là bán kính ràng buộc số bước nhảy
1
LRU (Least Recently Used): Ý tưởng của thuật toán là chọn và thay thế các đơn vị dữ liệu lâu nhất chưa được truy xuất
2
TTL (Time to live): Giá trị TTL được sử dụng để thay thế giá trị mới khi chu kì sống của giá trị đó không hợp lệ
cho mỗi MU) thì việc tìm dữ liệu sẽ được dừng lại và yêu cầu của MU sẽ được gởi đến BS để yêu cầu dữ liệu. Quá trình xử lý được minh họa ở Hình 2-5.
Hình 2-5 Xử lý Routing Process
Tại mỗi MUj sẽ giải quyết yêu cầu dữ liệu dựa vào kiến trúc MIX. Lớp Routing Process có 2 module: Route Discovery Phase, Route Selection Phase.
Trong giai đoạn Route Discovery Phase: Nhiệm vụ của module này là tìm các MUs có nhiều nút mạng nhất trong vùng bán kính r của một MUi bất kỳ. Trong vùng bán kính giao tiếp r, mỗi MUi đều có thông tin profile của các MU trong vùng. Profile này cho biết thông tin ID của MU, số lượng nút mạng nó có thể liên kết và các ID nút mạng cụ thể. Quá trình xử lý được minh họa như Hình 2-6.
Trong giai đoạn Route Selection Phase: Nhiệm vụ của module này là tìm MUj có số nút mạng lớn nhất và gửi yêu cầu dữ liệu dựa vào những thông tin lưu tại Route Cache.
2.3.3Kỹ thuật lưu trữ theo nhóm và truy vấn tổng hợp dữ liệu phân tán
Bài báo [7] - [Group-Caching] của nhóm tác giả J.Li trình bày năm 2005 đã được được đề cập trong luận văn [12] – [MIX_2010]. Nếu như luận văn [12] chỉ quan tâm đến các kỹ thuật gom nhóm và chiến lược lưu trữ nhóm thì chúng tôi muốn đề cập thêm về kỹ thuật truy xuất dữ liệu dựa trên chiến lược lưu trữ nhóm. Kỹ thuật này giúp hệ thống có thể truy vấn dữ liệu phân tán và tối ưu hóa về thời gian, tốc độ xử lý. Các MU có thể đưa ra kế hoạch truy vấn dựa trên việc quản lý chi phí truy vấn. Chi tiết về kỹ thuật này, chúng tôi sẽ trình bày phần tiếp theo sau đây.
2.3.3.1Kế hoạch truy vấn dữ liệu tại một MU dựa trên chiến lược lưu trữ nhóm
Dựa vào chiến lược lưu trữ nhóm – đã được trình bày trong hiện trạng của tài liệu [12], các MU đưa ra kế hoạch truy vấn giữa các kho dữ liệu chia sẻ trong và ngoài nhóm. Một truy vấn đơn giản tại một bảng trong MU được thể hiện như sau:
SELECT Node.Table.Attr1, Node.Table.Attr2,.. FROM Node.Table
WHERE <Điều kiện>
Sau khi nhận một lệnh truy vấn từ người dùng, MU được yêu cầu – được gọi là MU truy vấn sẽ tiến hành phân tích câu truy vấn và khởi tạo một kế hoạch truy vấn. Dựa trên chiến lược lưu trữ nhóm, kết quả trả về có thể là dữ liệu cục bộ của chính MU truy vấn, dữ liệu từ MU khác được lưu trữ tại MU truy vấn hoặc tại kho lưu trữ nhóm, hoặc dữ liệu phải lấy trực tiếp từ MU khác.
Chi tiết thuật toán được nhóm tác giả đề cập theo Bảng 2-1 như sau: 1. Nếu MU truy vấn nhận được một truy vấn
o NẾU là truy vấn cục bộ, MU sẽ tìm kiếm trong kho
dữ liệu cục bộ o NGƯỢC LẠI
dữ liệu thỏa điều kiện truy vấn (tập so khớp)
Chuyển đến MU chủ câu truy vấn mà tập so khớp
không tồn tại trong kho lưu trữ cục bộ.
2. NẾU MU chủ nhận được truy vấn
o NẾU MU có lưu trữ dữ liệu (MU dữ liệu) thuộc nhóm thì gửi truy vấn đến MU dữ liệu
o NGƯỢC LẠI, tìm kiếm chỉ mục trong kho lưu trữ
nhóm, xác định tập con dữ liệu thỏa điều kiện truy vấn và được lưu trữ trong những MU thuộc nhóm
o Khởi tạo một truy vấn con từ truy vấn ban đầu và tương ứng với tập con dữ liệu trong bước trên
o Gửi truy vấn con vừa khởi tạo đến MU thành viên lưu trữ tập dữ liệu con trong truy vấn
3. NẾU MU dữ liệu nhận được truy vấn
o Thực thi câu truy vấn trong dữ liệu cục bộ hoặc trong chỉ mục lưu trữ cục bộ của nó
o Gửi kết quả của truy vấn con này đến MU truy vấn
4. MU truy vấn nhận được tất cả kết quả của các truy vấn con từ những MU khác và lấy kết quả cuối cùng.
Bảng 2-1 Thuật toán truy vấn tại một MU trong Group-Caching based Query Processing
Trong thuật toán này, bài báo [7] – [Group-Caching] trình bày công thức để tính thời gian đáp ứng cho một truy vấn. Công thức được trình bày như sau:
Gọi S là kích thước của một đơn vị dữ liệu trong bảng truy vấn, D là số bước nhảy giữa MU truy vấn và MU chứa dữ liệu, r là tỉ lệ truy xuất kho lưu trữ, Vdisk là tốc độ đọc của đĩa, Vnet là tốc độ đường truyền không dây.
Xem r . S là kích thước dữ liệu có thể lấy từ kho lưu trữ nhóm cho một truy vấn, r . S . Vdisk là thời gian để đọc dữ liệu từ đĩa. Trong chiến lược lưu trữ nhóm của bài báo này, khoảng cách tối đa giữa hai MU trong cùng nhóm là hai bước nhảy. Do đó nếu kết quả truy vấn được lấy từ chỉ mục trong kho lưu trữ nhóm, thì thời gian tối đa để truyền dữ liệu giữa hai MU cùng nhóm là 2 . r . S . Vnet. Tương tự với việc truyền kết quả giữa MU dữ liệu và MU truy vấn, xem (1 – r) .S là kích thước tập kết quả có thể lấy từ MU dữ liệu, (1 – r) .S .Vdisklà thời gian để đọc dữ liệu từ đĩa và (1 – r) . S . Vnet .
D là thời gian truyền dữ liệu. Như vậy thời gian đáp ứng cho truy vấn tại một MU được tính như sau:
r . S . Vdisk + 2 . r . S . Vnet + (1 – r) . S . Vdisk + (1 – r) . S . Vnet . D
Với giả thiết là tốc độ đọc đĩa rất nhanh so với tốc độ truyền, công thức trên được thu gọn thành:
2 . r . S . Vnet + (1 – r) . S . Vnet . D
Nếu không sử dụng chiến lược lưu trữ lại những dữ liệu từ MU khác, thời gian đáp ứng truy vấn sẽ là S . Vnet . D. Vậy tỉ lệ giữa việc có và không sử dụng kho lưu trữ sẽ là (1 – r + (2r/D))
Trong bài báo [7] – [Group-Caching], các tác giả đã đưa ra các phép toán so sánh hiệu quả của việc sử dụng kho lưu trữ theo nhóm so với việc không sử dụng kho lưu trữ. Tuy nhiên nhóm tác giả chưa đưa ra cấu trúc cụ thể cho kỹ thuật này, cũng như các biện pháp giải quyết lỗi phát sinh (nếu có), như là dữ liệu không tìm thấy trong nhóm và ở các nhóm khác thì sẽ giải quyết như thế nào... Hơn nữa, các MU trong nhóm phụ thuộc vào MU chủ nhưng với môi trường mạng không dây tùy biến cao, rất dễ xảy ra các trường hợp MU chủ bị mất kết nối hoặc có mức năng lượng thấp làm ảnh hưởng đến lưu trữ của các nhóm. Tác giả vẫn chưa đưa ra cách thức để tái cấu trúc các nhóm khi cấu trúc mạng thay đổi. Phần tiếp theo, nhóm tác giả đề xuất vấn đề truy vấn dữ liệu tại nhiều MU dựa trên chiến lược lưu trữ nhóm.
2.3.3.2Xây dựng kế hoạch truy vấn dữ liệu tại nhiều MU dựa trên chiến lược lưu trữ nhóm
Trong chiến lược lưu trữ nhóm, nhóm tác giả bài báo [7] – [Group-Caching] quan