2.2 Các mô-đun xử lý trong mơ hình
2.2.6 Mô-đun xử lý Nhất quán dữ liệu
2.2.6.1 Mơ tả bài tốn
Chúng tôi xây dựng mô-đun xử lý đồng bộ giữa BS và MH theo kết hợp theo nguyên lý đẩy (push) và kéo (pull). Và được mô tả chi tiết như sau:
Mỗi chu kì T, khi có sự thay đổi dữ liệu, BS gửi thông báo dữ liệu mất giá trị (IR) đến MH qua kênh downlink (kênh truyền từ BS đến Client). Thông báo này gồm mã định danh dữ liệu (ID), nhãn thời gian cập nhật mới nhất của dữ liệu, và thời gian MH được gửi yêu cầu cập nhật cho dữ liệu đó. MH truy cập vào kênh downlink để nhận thông báo, ghi nhận lại những dữ liệu bị cập nhật mà nó có lưu trữ. Sau đó, MH tiến hành gửi yêu cầu cập
nhật cho những dữ liệu này đến BS thông qua kênh uplink (kênh truyền từ MH đến BS)
theo đúng thời gian quy định trong IR để xác nhận rằng MH muốn đồng bộ những dữ liệu nào trong số trên.
Đến hết thời gian nhận yêu cầu cập nhật từ MH, BS tiến hành lọc ra các dữ liệu
được yêu cầu từ MH, xử lý lập và gửi lịch phát dữ liệu (DBR1) lên kênh downlink, cập
nhật thơng tin về tình trạng lưu trữ của MH đối với dữ liệu bị cập nhật. MH nhận lịch phát
DBR, lập lịch ngủ thức, chờ đến thời điểm BS phát dữ liệu yêu cầu theo chương trình đã
định, MH lắng nghe và nhận dữ liệu đã yêu cầu.
1
Ngoài ra, BS dựa vào yêu cầu cập nhật mà MH gửi về, sau k chu kì đồng bộ (k là giới hạn số lượng chu kì đồng bộ liên tiếp mà MH không gửi yêu cầu đồng bộ cho dữ liệu đang lưu trữ), xác định các MH nào khơng cịn nhu cầu đối với các đơn vị dữ liệu, cập nhật
HLC và gửi thông tin cập nhật HLC lên kênh downlink. MH nào có nhu cầu sẽ truy cập
vào kênh downlink để nhận cập nhật HLC.
Hình 2-11. Mơ hình giao tiếp giữa server và MH
2.2.6.2 Mơ hình hoạt động chi tiết của kiến trúc
Để nguyên lý có thể thực hiện được, chúng tơi xây dựng lại mơ hình kiến trúc hệ thống tại BS và MH. Với mục đích tiện cho việc theo dõi, chúng tơi đưa ra nguyên lý hoạt động chi tiết cho mỗi hệ thống trong mơ hình.
Mỗi chu kì T, BS sẽ thơng báo tình trạng dữ liệu. Giả sử T đủ lớn để BS có thể thực hiện xong hết mọi xử lý cần thiết trước khi trả kết quả về cho MH. Trong mỗi chu kì T, các tiến trình sẽ được thực hiện như sau:
Giai đoạn 1: từ ti ti+1 là khoảng thời gian tốt nhất, ngắn nhất để BS xác định
và gửi thông báo IR về MH. MH truy cập vào kênh downlink nhận IR từ BS.
Giai đoạn 2: từ ti+1 ti+2 là khoảng thời gian tốt nhất, ngắn nhất đủ để các MH
dựa vào IR xử lí thành cơng các yêu cầu cập nhật, và truy cập vào kênh uplink gửi yêu cầu cập nhật theo thời gian quy định về BS.
Giai đoạn 3: từ ti+2 ti+3 là khoảng thời gian tốt nhất, ngắn nhất để BS xử lý lập
lịch, cập nhật HLC và phát đồng loạt lịch phát dữ liệu về MH. MH truy cập vào kênh
downlink để nhận lịch phát dữ liệu.
Giai đoạn 4: Thời gian từ ti+3 ti+T là khoảng thời gian MH dựa vào lịch phát
dữ liệu lập lịch ngủ thức để nhận dữ liệu. Vào đúng thời gian phát dữ liệu, MH thức dậy, truy cập vào kênh downlink để nhận dữ liệu phát từ BS.
Dưới đây, chúng tơi sẽ trình bày mơ hình hoạt động chi tiết của kiến trúc tại BS và MH.
a) Tại BS
Hình 2-13. Mơ hình chi tiết tại BS khi đồng bộ dữ liệu
Mơ hình chi tiết tại BS bao gồm các kho lưu trữ và mô-đun phục vụ cho các xử lý tại hệ thống BS. Nguyên lí hoạt động của mơ hình tại BS như sau:
Khi dữ liệu phía BS có sự thay đổi, mơ-đun xử lý thơng tin cập nhật được gọi thực thi.
Với danh sách dữ liệu bị thay đổi, mô-đun duyệt qua kho lưu trữ cục bộ HLC để lấy ra
khơng có MH nào lưu trữ. Bên cạnh đó, mơ-đun cịn dùng tần suất của các dữ liệu để định thời gian cho phép MH gửi yêu cầu cập nhật dữ liệu hợp lý. Điều này giúp giải quyết vấn đề quá nhiều MH cùng gởi yêu cầu cập nhật đến BS trong một thời điểm làm cho kênh uplink bị tắt nghẽn. Mô-đun trả về IR và được BS phát lên kênh downlink, đồng thời lưu lại để phục vụ cho các xử lý sau đó.
BS nhận những yêu cầu cập nhật trong khoảng thời gian định trước và lưu vào kho lưu trữ các yêu cầu cập nhật. Hết thời gian cho phép MH gửi yêu cầu, BS sẽ lập lịch phát dữ liệu.
Khi đó, mơ-đun xử lý lập lịch định chu kì thích hợp cho các kết quả được yêu cầu cập nhật từ MH và thông tin về thời gian các dữ liệu được phát. Thông tin phát dữ liệu được tạm gọi là lịch phát dữ liệu DBR, bao gồm: id các gói dữ liệu kết quả của các yêu cầu dữ liệu, và thời gian phát ra của từng gói dữ liệu. Thơng tin này được gửi về cho MH trong chu kì hồi đáp đầu tiên. Sau đó, BS phát dữ liệu theo đúng chương trình đã định trong lịch phát dữ liệu.
b) Tại MH
Mỗi MH có một bộ nhớ cục bộ (Local Cache– LC) để lưu trữ dữ liệu. Định kì khi BS có sự thay đổi dữ liệu, BS sẽ kiểm tra và phát đồng loạt bảng thông tin dữ liệu cập nhật IR,
MH sẽ nhận bảng IR này, kiếm tra lại dữ liệu nội bộ, đánh dấu các đơn vị dữ liệu bị ảnh
hưởng, đồng thời gửi yêu cầu lên BS xin cập nhật những dữ liệu này.
Hình 2-14. Mơ hình chi tiết ở MH trong giai đoạn nhận IR
Kết thúc thời gian nhận yêu cầu cập nhật từ MH, BS cập nhật HLC, lập và phát lịch phát dữ liệu xuống cho MH. MH nhận được lịch phát dữ liệu sẽ căn cứ vào nhãn thời gian trong lịch phát lập lịch ngủ thức để nhận và cập nhật dữ liệu trong chu kì đồng bộ của BS.
Trường hợp trong quá trình xử lý MH bị mất kết nối. MH có thể xin cập nhật dữ liệu dữ liệu từ các MH khác trong mạng. Tuy nhiên do tính chất phức tạp chúng tơi chỉ giải quyết việc cập nhật chỉ xảy ra giữa BS và MH. Và trong mơ hình xử lý này, chúng tơi giải quyết
theo cách nếu MH khi bị mất kết nối trong q trình đồng bộ xảy ra nó sẽ đánh dấu tất cả các hạng mục dữ liệu ở trạng thái nghi ngờ, và yêu cầu cập nhật được gửi lên BS để được BS xử lý trong chu kỳ kế tiếp.
2.2.6.3 Cấu trúc lưu trữ dữ liệu cho mô-đun xử lý nhất quán dữ liệu
Dựa vào mơ hình hoạt động chi tiết của kiến trúc đề xuất ở trên chúng tôi xây dựng cấu trúc lưu trữ dữ liệu tại BS và MH phục vụ cho việc xử lý mơ hình nhất qn dữ liệu và được trình bày chi tiết như sau:
a) Dữ liệu lưu tại BS
Bảng 2-6. Thông tin dữ liệu lưu tại BS
DB = {<id, data, TS, TTL, size>},Trong đó:
id: mã định danh của đơn vị dữ liệu
data: dữ liệu lưu trữ
TS : nhãn thời gian của dữ liệu
TTL : thời gian sống của dữ liệu Size: kích thước dữ liệu
o Kho dữ liệu cục bộ: Home Local Cache HLC
Bảng 2-7. Bảng mô tả thông tin của HLC
HLC = {id, listOfNode, f},trong đó:
id: định danh của đơn vị dữ liệu
listOfNode: danh sách các MH đã lưu đơn vị dữ liệu đó, có cấu trúc: listOfNode = {<idc, status >} với idc là id của MH và status là trạng thái của MH đối với đơn vị dữ liệu.
f: tần suất (số lượng) các MH yêu cầu đơn vị dữ liệu.
Tác giả trong tài liệu [19] đã đưa ra việc BS duy trì một kho dữ liệu cục bộ HLC để ghi lại thông tin truy vấn của các MH đã gửi yêu cầu đến nó. Cụ thể, HLC ghi nhận lại nhãn thời gian cập nhật mới nhất của các mục dữ liệu được lưu trữ bởi MH. Điều này giúp BS tìm ra nhanh chóng các MH bị ảnh hưởng bởi việc thay đổi dữ liệu. Tuy nhiên, việc lưu trữ quá nhiều thông tin truy vấn và nhãn thời gian tương ứng của mỗi MH gây nên lãng phí. Để khắc phục hạn chế trên, chúng tơi cải thiện thuật tốn trên như sau: lưu các id dữ liệu (kết quả của các câu truy vấn) có sự phân biệt trùng lắp lẫn nhau kèm theo danh sách các MH đã yêu cầu lưu đơn vị dữ liệu đó. Như vậy, kho dữ liệu cục bộ HLC lưu trữ thông tin về các dữ liệu đang được các MH trong mạng lưu. Khi MH gửi yêu cầu truy vấn dữ liệu lên BS, hoặc yêu cầu cập nhật trong quá trình đồng bộ dữ liệu, BS sẽ cập nhật vào HLC. Sau k chu kì đồng bộ
theo định kỳ, BS gửi thông tin cập nhật của HLC đến các MH để MH nào có nhu cầu sẽ cập nhật bảng thông tin dữ liệu lưu của MH trong vùng, MH mạng của nó dựa vào HLC. HLC có cấu trúc như trình bày ở Bảng 2-7.
o Thông tin cập nhật – IR: thông tin của các đơn vị dữ liệu bị cập nhật IR được
trình bày ở Bảng 2-8.
Bảng 2-8. Bảng mơ tả thông tin IR
IR = {< id, t_update, t_request > },trong đó:
id: là định danh của đơn vị dữ liệu bị thay đổi bởi BS
t_update: là thời gian BS cập nhật đơn vị dữ liệu đó
t_request: thời gian MH được gửi yêu cập nhật dữ liệu id lên BS.
o Yêu cầu cập nhật – Ru: lưu danh sách các yêu cầu cập nhật do MH gửi
lên. Cấu trúc của Ru như Bảng 2-9 sau:
Bảng 2-9. Bảng mô tả thông tin Ru
Ru = {<id, listOfNode>},trong đó:
id: là định danh của đơn vị dữ liệu bị thay đổi bởi BS
listOfNode: danh sách các MH yêu cầu cập nhật đơn vị dữ liệu đó.
b) Cấu trúc dữ liệu lưu trữ tại MH:
o Kho dữ liệu lưu cục bộ (Local Cache): Mỗi MH có một bộ nhớ để lưu trữ dữ liệu cục
bộ LC. LC đã được mô tả chi tiết trong phần xử lý tìm kiếm dữ liệu. Trong phần này chúng tơi trình bày lại để sử dụng các tham số cho hệ thống đồng bộ dữ liệu. Cấu trúc của bảng LC được thể hiện ở Bảng 2-10.
Bảng 2-10. Bảng mô tả cấu trúc của LC
LC = {<id, data, L, TTL, f, TS> }, Trong đó:
id : định danh của đơn vị dữ liệu
data: dữ liệu lưu trữ
L: nhãn của dữ liệu
f: tần số được các MH khác truy xuất, thể hiện tần số các trao
đổi của đơn vị dữ liệu.
TS: time-stamp, nhãn thời gian của dữ liệu
o Dữ liệu trong vùng – InZoneDataTable:
Mỗi MH đều giữ thông tin lưu tữ của các MH khác trong vùng một bước nhảy từ MH
đồng bộ, MH sẽ kiểm tra InZoneDataTable để tìm ra danh sách MH trong nhóm có dữ liệu đồng bộ. Cấu trúc của bảng InZoneDataTable được trình bày ở Bảng 2-11.
Bảng 2-11 Thông tin của bảng InZoneDataTable
InZoneDataTable = {<id, listOfNodeZone, numberOfNode> },trong đó:
id : định danh của đơn vị dữ liệu
listOfNodeZone: danh sách các nút trong vùng có lưu dữ liệu đó
numberOfNode: tổng số nút vùng lưu trữ dữ liệu đó
o Dữ liệu ngồi vùng – OutZoneDataTable: Bảng OutZoneDataTable lưu thông tin các
dữ liệu được các MH mạng lưu trữ, cấu trúc của bảng được thể hiện ở Bảng 2-12. Bảng 2-12 Thông tin bảng OutZoneDataTable
OutZoneData = {<id, listOfNodeOutZone > }, trong đó:
id : định danh của dữ liệu
listOfNode: danh sách các nút mạng lưu trữ dữ liệu đó
o Lịch phát dữ liệu – DBR : DBR lưu thông tin các đơn vị dữ liệu được phát trong chu kỳ
và thời gian phát của từng đơn vị dữ liệu. Cấu trúc của DBR được thể hiện ở Bảng
2-13.
Bảng 2-13. Cấu trúc lịch phát dữ liệu DBR
DBR = {< id, t > },trong đó:
id: định danh của đơn vị dữ liệu
t: thời gian BS phát đơn vị dữ liệu.
2.3 Kết luận
Trong phần này chúng tơi đã trình bày chi tiết mơ hình quản lý chia sẻ dữ liệu được xây dựng, bao gồm các chức năng: quản lý tìm kiếm dữ liệu, quản lý thu nạp dữ liệu, quản lý thay thế dữ liệu, và quản lý nhất quán dữ liệu. Ngoài ra chúng tơi cũng đã trình bày cơng cụ và mơi trường xây dựng ứng dụng thử nghiệm. Kết quả thử nghiệm của mơ hình chúng tơi so sánh với một số cơng trình nghiên cứu khác và sẽ được trình bày chi tiết ở Phần 1 - Chương 3.
Phần 2 XÂY DỰNG ỨNG DỤNG MINH HỌA MƠ HÌNH QUẢN LÝ CHIA SẺ DỮ LIỆU