Giảm thời gian khi truy vấn trên CSDL mã

Một phần của tài liệu Luận án Tiến sĩ Nghiên cứu phát triển giải pháp xác thực an toàn và quản lý khoá cho cơ sở dữ liệu thuê ngoài (Trang 62 - 65)

Để giảm thời gian truy vấn trên CSDL, các nhà khoa học đã đề xuất những phương pháp khác nhau. Q.Zhang và cộng sự đề xuất công cụ Qscheduler [89] để truy vấn song song trên hệ thống CSDL. Tuy nhiên, giải pháp này thực hiện trên CSDL rõ và thực hiện song song các câu truy vấn cùng lúc truy xuất đến CSDL. Ying-Fu Huang [39] cũng đưa ra phương pháp truy vấn song song trên dữ liệu rõ và thực hiện các phép giao, nối, sắp xếp, nhóm,. . . của các bảng dữ liệu. Samraddhi Shastri [67] đưa ra giải pháp tăng tốc trên dữ liệu mã, tuy nhiên, phương pháp này thực hiện truy vấn song song tìm kiếm nhị phân trên dữ liệu mã. Nghĩa là, nếu muốn sử dụng phương pháp của Shastri thì các bản ghi dữ liệu phải được sắp xếp theo thứ tự.

Trong quá trình truy vấn trên dữ liệu mã, có nhiều tiến trình xử lý như: Giải mã kết quả rồi loại bỏ các bản ghi không phù hợp hoặc tính toán lại, giải mã kết quả sau truy vấn trả dữ liệu rõ cho người dùng. Các tiến trình này đều được xử lý trên tập dữ liệu quan hệ (bảng) của CSDL nên có thể dùng phương pháp xử lý song song để tính toán bằng cách chia quan hệ thành các tập con và xử lý đồng thời. Phương pháp này sẽ giảm đáng kể thời gian thực hiện truy vấn trên CSDL mã (hình 2.6).

Máy chủ trung gian

CSDL mã hóa Kết quả rõ Người dùng Internet Nhà cung cấp dịch vụ Trả dữ liệu mã cho truy vấn D R D1 D2 Dn R1 R2 Rn Giải mã và tính toán Giải mã và tính toán Giải mã và tính toán

Hình 2.6: Mô hình xử lý song song trên dữ liệu mã

tính toán trên bản rõ của dữ liệu trả về thì người dùng phải giải mã từng bản ghi của dữ liệu. Lúc này, chúng ta chia nhỏ tập kết quả thành các tập con. Do các tập con có cùng cấu trúc nên ta có thể chia nhiều tiến trình để tính toán song song trên các tập con này. Việc thực hiện tính toán song song trên các tập con giống như giải quyết k dữ liệu trên x tiến trình của thiết bị có nhiều tiến trình tính toán. Thực hiện công việc f với đầu vào S = {Inputi}(i=1...k) có đầu ra R = {f(Inputi)}(i=1...k), được tiến hành theo 3 giai đoạn sau:

❼ Giai đoạn 1: Tách tập S = {Inputi}(i=1...k) thành x tập con: Sj = {Inputl}(l=((j−1)[kx]+1)...j[kx]) (j = 1...x)

❼ Giai đoạn 2: Tại mỗi tiến trình j thực hiện tính: Rj = {f(Sj)}

Các tiến trình j được thực hiện song song. Trong các tiến trình này, hàm f bao gồm các công việc như: Giải mã, tính toán trên các giá trị rõ, xác thực dữ liệu...

❼ Giai đoạn 3: Thực hiện gộp các tập dữ liệu trả về: R = R1∪R2...∪ Rx

Tương ứng với 3 giai đoạn trên, thuật toán 2.1 mô tả quá trình thực hiện truy xuất dữ liệu mã với tính toán song song có số luồng cụ thể là x = 2. Thuật toán bao gồm hàm f và hàm main():

❼ Hàm f(datatable, start, end, table): Thực hiện giải mã, tính toán (sum, count...) trên các giá trị rõ và trả về bảng dữ liệu rõ.

– Tham số datatable: Có kiểu dữ liệu Datatable, tham số này là bảng dữ liệu mã hoá trả về khi truy vấn và nó tương ứng với tập dữ liệu đầu vào S.

– Tham số start, end: Có kiểu dữ liệu số nguyên, là vị trí bản ghi bắt đầu và kết thúc trong bảng datatable.

Thuật toán 2.1:Thuật toán truy vấn CSDL mã song song

Input: Bảng dữ liệu mã D

Output: Bảng dữ liệu rõ R

1 Function f(datatable, start, end, table):

2 for i in range(start, end+1) do

3 row = datatable[i] 4 r = ∅ 5 for j in range(0,datatable.columncount()) do 6 r.append(Dk(row[j])) 7 //caculate in Dk(row[j]) 8 end 9 result.addrow(r) 10 table.put(result) 11 end 12 End Function 13 Function Main(): 14 D← Excute(SELECT c1, ..., cn FROM t) 15 //D=D1∪D2 16 total = D.rowcount() 17 table = Queue()

18 p1 = Process(target=f, args=(D, 1, int(total/2), table)).start()

19 p2 = Process(target=f, args=(D, int(total/2)+1, total, table)).start()

20 p1.join(); p2.join()

21 //Get result

22 while not table.empty() do

23 result = table.get()

24 print result

25 end

– Tham số table: Có kiểu dữ liệu Datatable, là kết quả bảng dữ liệu rõ sau khi giải mã, tính toán.

❼ Hàm M ain(): Thực hiện chia nhỏ bảng dữ liệu D (là bảng dữ liệu mã khi thực hiện câu truy vấn trên dữ liệu mã) và thực hiện chia thành 2 luồng p1, p2 thực hiện song song giải mã, tính toán (nếu có). Kết quả trả về là bảng dữ liệu rõ result.

Một phần của tài liệu Luận án Tiến sĩ Nghiên cứu phát triển giải pháp xác thực an toàn và quản lý khoá cho cơ sở dữ liệu thuê ngoài (Trang 62 - 65)

Tải bản đầy đủ (PDF)

(127 trang)