2.2 Các mô-đun xử lý trong mơ hình
2.2.4 Mô-đun xử lý thu nạp dữ liệu
2.2.4.1 Mô tả bài tốn
Mơ-đun này phụ trách việc phân loại và quyết định việc các lưu trữ hạng mục dữ liệu được truy vấn từ BS hoặc từ các MH khác trong hệ thống vào bộ nhớ cục bộ sao cho hiệu quả. Phương thức xử lý của mô-đun này được xây dựng cụ thể như sau:
Khi có một hạng mục dữ liệu mới trả về từ yêu cầu truy vấn dữ liệu của MHi, chúng ta cần được xem xét có nên lưu trữ hạng mục dữ liệu này vào kho lưu trữ cục bộ của MHi hay không. Trước hết mơ-đun này kiểm tra kiểm tra xem kích thước của đơn vị dữ liệu cần lưu này có vượt ngưỡng tham số α khơng. Tham số α qui định kích thước tối đa cho phép của mỗi đơn vị dữ liệu khi lưu vào kho dữ liệu cục bộ của mỗi MH. Nếu kích thước
đơn vị dữ liệu vượt ngưỡng α (kích thước dữ liệu >α) thì đơn vị dữ liệu này sẽ không
được xử lý lưu trữ lại. Ngược lại, nếu kích thước đơn vị dữ liệu thỏa điều kiện ngưỡng α, mô-đun thu nạp dữ liệu tiếp tục kiểm tra số bản của đơn vị dữ liệu này đang được lưu tại
các MHj vùng của MHi. Nếu số lượng bản dữ liệu d đang được lưu tại các MH vùng (số
lượng này được tính tốn từ số MH vùng đã trả dữ liệu d về cho MH nguồn) vượt ngưỡng
β (số bản dữ liệu lưu β, với β là tham số qui định số bản lưu cho của mỗi đơn vị dữ liệu d trong vùng cộng tác) thì đơn vị dữ liệu này cũng sẽ bị bỏ qua và không xử lý lưu trữ lại.
Chúng tơi chọn cách xử lý này vì số bản lưu trong vùng cộng tác thể hiện tính phổ biến của dữ liệu, số bản lưu càng cao thì khả năng tìm thấy dữ liệu từ vùng cộng tác càng lớn (từ các MH vùng), do vậy MH nguồn không cần phải lưu trữ thêm một lần nữa. Mục tiêu của cách giải quyết này là chúng tôi hướng tới việc tối ưu không gian lưu trữ trong kho dữ liệu lưu cục bộ.
Như vậy, khi một đơn vị dữ liệu cần lưu trữ lại thỏa điều kiện tham số α, β qui định thì đơn vị dữ liệu sẽ được tiến hành xử lý để lưu trữ vào kho lưu trữ cục bộ. Quá trình xử lý lưu trữ dữ liệu tiếp theo được chúng tôi áp dụng có cải tiến giải pháp phân loại dữ liệu chính-phụ được nêu trong cơng trình nghiên cứu COOP [10].Trong cơng trình nghiên cứu này, tác giả chia dữ liệu lưu thành hai loại dữ liệu: dữ liệu chính (Primary Data - PD) và
dữ liệu phụ (Secondary Data - SD), trong đó dữ liệu chính có độ ưu tiên cao, dữ liệu phụ
có độ ưu tiên thấp hơn. Trong một vùng cộng tác dữ liệu giữa các MH, một đơn vị dữ liệu có thể được nhân bản và lưu tại các MH khác nhau. Tuy nhiên quá trình phân loại dữ liệu chính – phụ phải đảm chỉ có một bản dữ liệu được gán nhãn là PD, các bản sao còn lại được gán là SD trong một vùng cộng tác. Do vậy, trước khi lưu trữ một đơn vị dữ liệu d
vào kho dữ liệu của MHi, mô-đun xử lý thu nạp dữ của MHi cần phải kiểm tra xem liệu
dữ liệu này đến từ các MHj cùng vùng hay khác vùng của MHi. Nếu d đến từ các MHj
nhất một MHj cùng vùng với MHi thì mơ-đun xử lý phân loại dữ liệu sẽ tiếp tục kiểm tra xem d sẽ được đánh nhãn là PD hay SD ở các MHj đó, nếu tất cả các MHj đều lưu trữ d
với nhãn là SD thì lúc đó MHi sẽ lưu trữ d với nhãn là PD, ngược lại MHi sẽ lưu d với
nhãn là SD. Quá trình xử lý này sẽ đảm bảo được là trong một vùng cộng tác của MHi chỉ có một bản dữ liệu d sẽ được lưu là PD, còn các bản còn lại của d sẽ được lưu với nhãn là
SD.
Hình 2-8 minh họa cho việc phân loại dữ liệu chính phụ, khi MH3 yêu cầu dữ liệu đơn vị dữ liệu A, A có nhãn là PD và được trả về từ MH4, trong trường hợp này MH3 sẽ
lưu A với nhãn là SD vì MH3 và MH4 cùng vùng với nhau, A đã được lưu ở MH4 với
nhãn là PD, do vậy A được lưu ở MH3 là SD. Tiếp tục, MH1 sẽ yêu cầu dữ liệu A, giả sử chỉ có MH3 hồi đáp và gởi dữ liệu A cho MH1, vì A đang được gán nhãn SD ở MH3 và
trong vùng hiện tại của MH1 khơng có MH nào đang giữ A hoặc giữa A với nhãn PD ,
nên tại MH1 A được lưu là PD.
Hình 2-8 Minh họa cho việc phân loại dữ liệu chính – phụ
Việc phân loại dữ liệu chính-phụ trong một vùng cộng tác của MH rất có ý nghĩa cho q trình lựa chọn dữ liệu để xóa khi khơng gian lưu trữ dữ liệu tại mỗi MH bị đầy. Chúng tơi sẽ trình bày chi tiết ý nghĩa này trong mơ-đun thay thế dữ liệu.
2.2.4.2 Lưu đồ xử lý và mã giả thuật tốn
Khi MH đích trả dữ liệu về cho MH nguồn, trong thông điệp RE_REQUEST sẽ chứa hai thơng tin{idMH, numItem, DataInfo}, trong đó idMH là định danh của MH đích, numItem là số lượng đơn vị dữ liệu được trả về, DataInfo chứa thông tin các đơn vị dữ liệu được trả về. Cấu trúc của DataInfo bao gồm {Id_Data, D, S, L} , trong đó Id_Data là định danh của đơn
vị dữ liệu, D là nội dung của đơn vị dữ liệu, S là kích thước của đơn vị dữ liệu, L là nhãn
phân loại đơn vị dữ liệu (chính hay phụ) tại MH đích. MH nguồn dựa vào thông tin của
DataInfo để quyết định lưu hay không lưu một đơn vị dữ liệu d một cách chính xác. Lưu đồ
cho giải pháp thu nạp dữ liệu được thể hiện ở Hình 2-9 và mã giả thuật tốn được trình bày ở Bảng 2-4
Hình 2-9 Lưu đồ minh họa cho xử lý phân loại và lưu trữ dữ liệu
Bảng 2-4. Minh họa thuật toán xử lý phân loại và lưu trữ dữ liệu
/* Khi MH nguồn nhận đơn vị dữ liệu d và xử lý lưu trữ*/
1. Kiểm tra kích thước đơn vị dữ liệu d (S) có vượt tham số α 1.1. Nếu S > α thì khơng xử lý lưu trữ d
1.2. Ngược lại:
1.2.1. Tính x = số bản dữ liệu d trả về từ MH vùng. 1.2.2. Nếu x> β thì khơng xử lý lưu d.
1.2.3. Ngược lại gọi thủ tục “Xử lý lưu dữ liệu” ở bước 2
2. Xử lý lưu dữ liệu d
2.1. Kiểm tra d đến từ các MH cùng vùng hay khác vùng với MH nguồn.
2.2. Nếu tất cả các MH chứa d đều khác vùng với MH nguồn, thì lưu d vào MH nguồn với nhãn là PD.
2.3. Nếu có ít nhất một MH chứa d trả về cùng vùng với MH nguồn, kiểm tra:
2.3.1. Tất cả các MH vùng đều lưu d với nhãn là SD, thực hiện lưu d ở MH nguồn với nhãn là PD.
2.3.2. Nếu có tồn tại một MH vùng lưu d với nhãn là PD, thực hiện lưu d ở MH nguồn với nhãn là SD.
{Danh sách đơn vị dữ liệu D trả về}
Loại bỏ đơn vị dữ liệu D có kích thước S> α
Kiểm tra x > β Tính x= số bản của mỗi
đơn vị dữ liệu D
Kho dữ liệu lưu (Local Cache) Loại bỏ và không lưu đơn
vị dữ liệu d có
Đơn vị dữ liệu D khơng lưu
Lưu và sắp xếp theo từng đơn vị dữ liệu D(danh sách MH gởi, nhãn dữ liệu tương ứng) không
Kiểm tra tất cả MH gởi D đều ngoài vùng với MH
nguồn đúng
Gán nhãn cho D là PD và lưu vào kho dữ liệu
Gán nhãn cho D là SD và lưu vào kho dữ liệu Kiểm tra có MH gởi D nào
đang giữ D với nhãn là PD không
khơng