1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng

100 296 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 100
Dung lượng 1,29 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng

Trang 2

LUẬN VĂN THẠC SĨ MÁY TÍNH

Người hướng dẫn khoa học: PGS.TS Lê Huy Thập

HÀ NỘI, 2014

Trang 3

Tôi xin bày tỏ lòng biết ơn sâu sắc đến thầy giáo PGS.TS Lờ Huy Thập, ng-ời đã tận tình h-ớng dẫn, giúp đỡ và động viên tôi trong suốt quá trình làm luận văn

Xin cám ơn tất cả các thầy giáo, cô giáo trong Tr-ờng Đại học S- phạm

Hà Nội 2 đã tạo điều kiện hết sức để tôi đ-ợc học tập và hoàn thành khóa học

Trang 4

Tôi xin cam đoan luận văn này là do bản thân tự nghiên cứu và thực hiện theo sự hướng dẫn khoa học của thầy PGS TS Lê Huy Thập

Tôi hoàn toàn chịu trách nhiệm về tính pháp lý quá trình nghiên cứu khoa học của luận văn này

T¸c gi¶ luËn v¨n

Nguyễn Ngọc Thu

Trang 5

MỞ ĐẦU 1

Chương 1: TỔNG QUAN 3

1.1 Khái niệm tiến trình và luồng 3

1.1.1 Tiến trình 3

1.1.2 Luồng 6

1.2 Khái quát về cơ sở dữ liệu phân tán 8

1.2.1 Hệ cơ sở dữ liệu phân tán 8

1.2.2 Phân mảnh 9

1.3 Khái quát về xử lí song song và phân tán 11

1.3.1 Các phương pháp xử lý song song 11

1.3.2 Các phép toán song song 14

1.4 Kết luận chương 1: 19

Chương 2: THỰC HIỆN SONG SONG CÁC CÂU VẤN TIN TRONG

CƠ SỞ DỮ LIỆU PHÂN TÁN BẰNG PHƯƠNG PHÁP LUỒNG 20

2.1 Các cấu trúc tiến trình và luồng song song 20

2.1.1 Cấu trúc tiến trình song song 21

2.1.2 Cấu trúc luồng song song 27

2.2 Một số phương pháp phân rã và rút gọn câu truy vấn tin: 30

2.2.1 Phân rã vấn tin 30

2.2.2 Cục bộ hoá dữ liệu phân tán và các phương pháp

rút gọn câu vấn tin 38

2.2.2.1 Rút gọn cho phân mảnh ngang nguyên thuỷ 39

2.2.2.2 Rút gọn cho phân mảnh dọc 43

2.2.2.3 Rút gọn cho phân mảnh ngang dẫn xuất 45

2.2.3.4 Rút gọn cho phân mảnh hỗn hợp 49

2.3 Các phương pháp song song hóa các câu vấn tin dựa vào tiến trình- luồng vào chức năng và vào dữ liệu 54

2.3.1 Các phương pháp song song hóa các câu vấn tin dựa vào

tiến trình-luồng 54

2.3.2 Các phương pháp song song hóa các câu vấn tin dựa vào

chức năng 55

2.3.3 Các phương pháp song song hóa các câu vấn tin dựa vào

dữ liệu 55

2.4 Kết luận chương 2 57

Chương 3: LẬP TRÌNH ỨNG DỤNG 58

Trang 6

3.1.3 Rút gọn cho phân mảnh ngang dẫn xuất 59

3.1.4 Rút gọn cho phân mảnh hỗn hợp 59

3.2 Chương trình demo ứng dụng tại ĐHSP Hà Nội 2 60

3.2.1 Mô tả cơ sở dữ liệu 60

3.2.2 Phát biểu, phân tích ứng dụng 61

3.2.3 Mã nguồn chương trình ………72

3.3 Kết luận chương 3………86

KẾT LUẬN 87

TÀI LIỆU THAM KHẢO 88

Trang 7

BẢNG CÁC TỪ VIẾT TẮT

Trang 10

Hình 1.1-1 Ba tiến trình tuần tự 3 Hình 1.1-2 Sự thực hiện đồng thời của các tiến trình trong

hệ thống uniprocessor (a) và hệ thống multiprocessor (b)

Hình 2.1-2 Cấu trúc chương trình con (tiến trình) khi lồng nhau 24

Trang 11

Hình 2.2-11 Rút gọn cho phân mảnh dẫn xuất 49

Hình 2.2-14 Cây vấn tin đã đẩy phép chiếu xuống, phép nối lên 53

Hình 3.1-1 Rút gọn cho phân mảnh ngang nguyên thủy theo giới tính 58 Hình 3.1-2 Rút gọn cho phân mảnh dọc theo họ tên sinh viên,

ngày sinh, điện thoại, email

58

Hình 3.1-3 Rút gọn cho phân mảnh ngang dẫn xuất theo tên giới tính 59

Hình 3.2-10 Cây vấn tin sau khi giao hoán phép hợp và phép nối 67

Trang 12

Hình 3.2-14 Cây vấn tin đã loại HSSVHH1 70 Hình 3.2-15 Cây vấn tin đã đẩy phép chiếu xuống, phép nối lên 70

Trang 13

MỞ ĐẦU

1 Lý do chọn đề tài

Nhằm giải quyết vấn đề chậm trễ thường gặp trong các hệ cơ sở dữ liệu phân tán, ngoài việc áp dụng một kiến trúc phần cứng thích hợp, người ta tiến hành phân mảnh dữ liệu cho các bộ xử lý, tái cấu trúc các mảnh một cách hợp

lý thì người ta còn dùng phương pháp truy vấn song song để giảm thời gian phản hồi kết quả của câu truy vấn đó Một chiến lược phân mảnh dữ liệu tốt

sẽ tăng mức độ thực hiện song song đồng thời khai thác tốt hơn các hàm gộp nhóm từ các mảnh Chúng ta sẽ đề cập đến một số kỹ thuật phân mảnh dữ liệu theo chiều ngang phổ biến như phân mảnh theo vòng tròn Robin, phân mảnh theo hàm băm, phân mảnh theo khoảng, phân mảnh theo chiều dọc, Song song hóa các câu vấn tin trong cơ sở dữ liệu phân tán bằng cách cục bộ hóa và

sử dụng luồng và một số thuật toán thực hiện song song nhằm giải quyết vấn

đề chậm trễ thường gặp trong các hệ cơ sở dữ liệu phân tán

2 Mục đích nghiên cứu

Nghiên cứu về các loại luồng, phân mảnh và tái cấu trúc, cục bộ hóa cơ

sở dữ liệu phân tán Dùng ngôn lập trình để thể hiện song song liên truy vấn toán tử và nội toán tử

3 Nhiệm vụ nghiên cứu

 Nghiên cứu về các tiến trình và các loại luồng

 Phân mảnh và tái cấu trúc, cục bộ hóa cơ sở dữ liệu phân tán

 Nghiên cứu cách thực hiện song song câu vấn tin trong cơ sở dữ liệu phân tán khi sử dụng luồng

 Lập trình demo

4 Đối tượng và phạm vi nghiên cứu

- Cơ sở dữ liệu phân tán

Trang 14

- Cơ sở lý thuyết song song

- Ngôn ngữ lập trình

5 Phương pháp nghiên cứu

- Thu thập các tài liệu liên quan mục 4

- Tìm hiểu kỹ các tài liệu này

6 Giả thiết khoa học

- Dùng giả mã thể hiện một số thuật toán một cách tổng quát

7 Cấu trúc của luận văn

Luận văn gồm: Lời mở đầu, ba chương nội dung, phần kết luận và tài liệu tham khảo

Chương 1: Trình bày các khái niệm tiến trình và luồng, khái quát về cơ sở dữ

liệu phân tán, khái quát về xử lí song song và phân tán

Chương 2: Trình bày các cấu trúc tiến trình và luồng song song, một số

phương pháp phân rã và rút gọn câu truy vấn tin, các phương pháp song song hóa các câu vấn tin dựa vào tiến trình- luồng vào chức năng và vào dữ liệu

Chương 3: Lập trình ứng dụng tại Trường Đại học sư phạm Hà Nội 2

Trang 15

Chương 1: TỔNG QUAN

1.1 Khái niệm tiến trình và luồng

1.1.1 Tiến trình

1/ Tiến trình và các loại tiến trình:

 Tiến trình (process): Tiến trình là một bộ phận của một chương trình

đang thực hiện, đơn vị thực hiện tiến trình là bộ xử lí tiến trình (processer)

Vì tiến trình là một bộ phận của chương trình nên tương tự như chương trình tiến trình cũng sở hữu một con trỏ lệnh, một con trỏ stack, một tập các thanh ghi, một không gian địa chỉ trong bộ nhớ chính và tất cả các thông tin cần thiết khác để tiến trình có thể thực thi được

Các định nghĩa tiến trình và luồng của Saltzer; của Horning & Rendell (Xem [3, 4, 6])

Các tiến trình trong hệ thống có thể chia thành hai loại: tiến trình tuần tự và tiến trình song song

Tiến trình tuần tự: Tiến trình tuần tự là các tiến trình mà điểm khởi tạo của nó

là điểm kết thúc của tiến trình trước đó (Hình 1.1-1)

Tiến trình song song: Tiến trình song song là các tiến trình mà điểm khởi tạo

của tiến trình này nằm ở thân của các tiến trình khác, tức là có thể khởi tạo một tiến trình mới khi các tiến trình trước đó chưa kết thúc (Hình 1.1-2)

P1 P2 P3

Time

Hình 1.1-1 Ba tiến trình tuần tự

Trang 16

Tiến trình song song được chia thành nhiều loại:

1 Tiến trình song song độc lập: là các tiến trình thực thi song song nhưng

không có quan hệ thông tin với nhau, trong trường hợp này hệ điều hành phải thiết lập cơ chế bảo vệ dữ liệu của các tiến trình, và cấp phát tài nguyên cho các tiến trình một cách hợp lý

2 Tiến trình song song phụ thuộc: trong tiến trình thực thi các tiến trình

thường trao đổi thông tin với nhau

3 Tiến trình song song phân cấp: Trong quá trình thực thi một tiến trình có

thể khởi tạo các tiến trình khác thực thi song song với nó, tiến trình khởi tạo được gọi là tiến trình cha, tiến trình được tạo gọi là tiến trình con Trong mô hình này hệ điều hành phải giải quyết vấn đề cấp phát tài nguyên cho các tiến trình con Tiến trình con nhận tài nguyên từ tiến trình cha hay từ hệ thống Hệ điều hành đưa ra 2 mô hình quản lý tài nguyên:

b Trong hệ thống Multiprocessor (Ba bộ xử lí) Hình 1.1-2 Sự thực hiện đồng thời của các tiến trình trong hệ thống uniprocessor (a) và hệ thống

multiprocessor (b)

P1 P2

a Trong hệ thống uniprocessor (một bộ xử lí)

P1 P2

Trang 17

i/ Thứ nhất, mô hình tập trung, trong mô hình này hệ điều hành chịu trách nhiệm phân phối tài nguyên cho tất cả các tiến trình trong hệ thống ii/ Thứ hai, mô hình phân tán, trong mô hình này hệ điều hành cho phép tiến trình con nhận tài nguyên từ tiến trình cha

4 Tiến trình song song đồng mức: là các tiến trình thực thi song song sử

dụng chung tài nguyên theo nguyên tắc lần lượt, mỗi tiến trình sau một khoảng thời gian chiếm giữ tài nguyên phải tự động trả lại tài nguyên cho tiến trình kia

2/ Mô hình tiến trình:

Trong mô hình tiến trình hệ điều hành chia chương trình thành nhiều tiến trình, khởi tạo và đưa vào hệ thống nhiều tiến trình của một chương trình hoặc của nhiều chương trình khác nhau, cấp phát đầy đủ tài nguyên (trừ processor) cho tiến trình và đưa các tiến trình sang trạng thái sẵn sàng Hệ điều hành bắt đầu cấp processor cho một tiến trình trong số các tiến trình ở trạng thái sẵn sàng để tiến trình này thực thi, sau một khoảng thời gian nào đó

hệ điều hành thu hồi processor của tiến trình này để cấp cho một tiến trình sẵn sàng khác, sau đó hệ điều hành lại thu hồi processor từ tiến trình mà nó vừa cấp để cấp cho tiến trình khác, có thể là tiến trình mà trước đây bị hệ điều hành thu hồi processor khi nó chưa kết thúc, và cứ như thế cho đến khi tất cả các tiến trình mà hệ điều hành khởi tạo đều thực thi và kết thúc được Khoảng thời gian chuyển processor từ tiến trình này sang tiến trình khác hay khoảng thời gian giữa hai lần được cấp phát processor của một tiến trình là rất nhỏ nên các tiến trình có cảm giác luôn được sở hữu processor (logic) hay hệ thống có cảm giác các tiến trình/ chương trình thực thi song song nhau Hiện tượng này được gọi là sự song song giả

Trang 18

1.1.2 Luồng

Luồng là một chuỗi các thông báo thuộc một chủ đề Hầu hết các chương trình xử lý nhóm tin đều có một nhóm lệnh chỉ dẫn cho phép đi theo mạch đó (nghĩa là nhảy đến thông báo tin tức kế tiếp cũng vấn đề đó, thay vì phải cho hiển thị tuần tự từng thông báo tin), nhóm lệnh đó được gọi là luồng

Các luồng là những tiến trình riêng l thực hiện đồng thời trong các hệ điều hành đa nhiệm Nếu hệ thống chỉ có một bộ xử lý, các luồng được thực hiện luân phiên nhau, luồng này tiếp luồng kia Do tốc độ thực hiện từng phân đoạn của từng luồng quá nhanh nên người dùng có ảo tưởng rằng có nhiều chương trình chạy cùng một lúc [1,3,4,6]

Một luồng thường được gọi là tiến trình nhẹ (lightweight proces-LWP), là một đơn vị cơ bản của việc sử dụng CPU; nó hình thành gồm: một định danh luồng (thread ID), một bộ đếm chương trình, tập thanh ghi và ngăn xếp Nó chia s với các luồng khác thuộc cùng một tiến trình phần mã, phần dữ liệu,

và tài nguyên hệ điều hành như các tập tin đang mở và các tín hiệu

Một tiến trình truyền thống (hay tiến trình nặng) có một luồng điều khiển đơn Nếu tiến trình có nhiều luồng điều khiển, nó có thể thực hiện nhiều hơn một tác vụ tại một thời điểm

Một ví dụ đa luồng là trình duyệt Web có thể có một luồng hiển thị hình ảnh, văn bản trong khi một luồng khác lấy dữ liệu từ mạng Một trình soạn thảo văn bản có thể có một luồng hiển thị đồ họa, luồng thứ hai đọc sự bấm phím trên bàn phím từ người dùng, một luồng thứ ba thực hiện việc kiểm tra chính tả và từ vựng chạy trong chế độ nền

Luồng cũng đóng một vai trò quan trọng trong hệ thống lời gọi thủ tục xa Có hai loại luồng cơ bản là: luồng người dùng và luồng nhân [1, 3, 6]

Các mô hình đa luồng:

Trang 19

1/ Mô hình nhiều-một:

Mô hình nhiều-một (như hình 1.1-3) ánh xạ nhiều luồng cấp người dùng tới một luồng cấp nhân Quản lý luồng được thực hiện trong không gian người dùng vì thế nó hiệu quả nhưng toàn bộ tiến trình sẽ bị khóa nếu một luồng thực hiện lời gọi hệ thống khóa Vì chỉ một luồng có thể truy xuất nhân tại một thời điểm nên nhiều luồng không thể chạy song song trên nhiều bộ xử

lý Green threads-một thư viện luồng được cài đặt trên các hệ điều hành không hỗ trợ luồng nhân dùng mô hình nhiều-một

2/ Mô hình một-một:

Mô hình một-một (hình 1.1-4) ánh xạ mỗi luồng người dùng tới một luồng nhân Nó cung cấp khả năng đồng hành tốt hơn mô hình nhiều-một bằng cách cho một luồng khác chạy khi một luồng thực hiện lời gọi hệ thống nghẽn; nó cũng cho phép nhiều luồng chạy song song trên các bộ xử lý khác nhau

Hình 1.1-3 Mô hình nhiều-một

Hình 1.1-4 Mô hình một-một

Trang 20

Chỉ có một trở ngại trong mô hình này là tạo luồng người dùng yêu cầu tạo một luồng nhân tương ứng Vì chi phí cho việc tạo luồng nhân có thể đè nặng lên năng lực thực hiện của ứng dụng, các cài đặt cho mô hình này giới hạn sốluồng được hỗ trợ bởi hệ thống Windows NT, Windows 2000 và OS/2 cài đặt mô hình một-một này

3/ Mô hình nhiều-nhiều:

Số lượng các luồng nhân có thể được xác định hoặc một ứng dụng cụ thể hay một máy cụ thể (một ứng dụng có thể được cấp nhiều luồng nhân trên một bộ đa xử lý hơn trên một bộ đơn xử lý) Mô hình nhiều-nhiều gặp phải một trong hai vấn đề: người phát triển có thể tạo nhiều luồng người dùng khi cần thiết và các luồng nhân tương ứng có thể chạy song song trên một bộ đa

xử lý Khi một luồng thực hiện một lời gọi hệ thống khóa, nhân có thể lập thời biểu một luồng khác thực thi (Hình 1.1-5)

Hình 1.1-5 Mô hình luồng nhiều – nhiều

1.2 Khái quát về cơ sở dữ liệu phân tán

1.2.1 Hệ cơ sở dữ liệu phân tán

Hệ cơ sở dữ liệu phân tán (Distributed Database System – DDBS) là một tập hợp dữ liệu có liên đới logic và được phân bố trên các nút của một mạng máy tính

Hệ quản trị cơ sở dữ liệu phân tán (Distributed Database Management System – DDBMS) là một hệ thống phần mềm cho phép quản lý các DDBS

và làm cho việc phân tán trở nên vô hình đối với người sử dụng

Trang 21

Như vậy DDBS không phải là một tập hợp các tệp dữ liệu được lưu trữ riêng rẽ tại các nút của mạng máy tính mà là một tập các tệp dữ liệu tin vừa có liên đới logic, vừa phải có cấu trúc và vừa phải được truy xuất qua một giao diện chung

Phân bố vật lý của các dữ liệu không phải là vấn đề quyết định trong DDBS, ví dụ trên cùng một nút mạng có thể lưu trữ hai hệ cơ sở dữ liệu nhưng có liên đới với nhau thì đó là DDBS Tuy vậy viêc phân bố vật lý của các dữ liệu cũng hết sức quan trọng vì nó sẽ nẩy sinh ra các vấn đề rất phức tạp như thực hiện các cấu trúc truy vấn, vấn đề cấp phát, v.v [1, 2, 4, 7]

b/ Phân mảnh ngang dẫn xuất

Phân mảnh ngang dẫn xuất được định nghĩa trên một quan hệ thành viên của một đường nối dựa theo phép toán chọn trên quan hệ chủ nhân của đường nối đó Vì chúng ta muốn phân hoạch quan hệ thành viên theo phân mảnh của chủ nhân nhưng cũng muốn mảnh thu được chỉ định nghĩa trên các thuộc tính của quan hệ thành viên

Như thế nếu cho trước một đường nối L, trong đó owner(L) = S và member(L) = R, các mảnh ngang dẫn xuất của R được định nghĩa là [1, 3, 5, 7]

Trang 22

Ri = R Si, 1  i  

Trong đó  là số lượng các mảnh được định nghĩa trên R, và

Si = Fi(S) với Fi là công thức định nghĩa mảnh ngang nguyên thuỷ Si

c/ Phân mảnh dọc

Phân mảnh dọc chia một quan hệ R ra các mảnh R1, R2, Rr Mỗi mảnh chứa một tập con các thuộc tính cùng với khóa của quan hệ R Mục đích của phân mảnh dọc là phân mảnh một quan hệ thành một tập các quan hệ nhỏ hơn, để có nhiều ứng dụng chỉ cần chạy trên một mảnh Như vậy một cách phân mảnh tối ưu là phân mảnh sinh ra một lược đồ phân mảnh cho phép giảm tối đa thời gian thực thi các ứng dụng chạy trên các mảnh đó

Các loại phân mảnh dọc đều có thể thực hiện bằng SQL như sau [1, 3, 5, 7]: Select <Danh sách các thuộc tính>

From <Tên quan hệ>

- Các loại phân mảnh dọc, khoảng (ngang) hay vùng (hay hỗn hợp) đều

có thể thực hiện bằng SQL như sau[1, 3, 5, 7]

Trang 23

1.3 Khái quát về xử lí song song và phân tán

1.3.1 Các phương pháp xử lý song song

Các phép truy vấn trong mô hình quan hệ rất thích hợp cho việc thực hiện song song Truy vấn quan hệ thực chất là các phép toán quan hệ thực hiện trên các dòng dữ liệu có cùng cấu trúc Hơn nữa, kết quả của mỗi phép toán là một quan hệ nên ta có thể kết hợp các phép toán thành các dòng dữ liệu song song

Có hai loại dòng dữ liệu song song: song song đường ống và song song phân mảnh Có thể sử dụng các thủ tục tuần tự sẵn có để thực hiện các phép toán đã

có một cách song song mà không phải xây dựng các phép toán song song mới

Có 3 cơ chế xử lý song song cơ bản:

- Song song liên truy vấn (inter - query parallelism)

- Song song nội truy vấn (intra - query parallelism)

- Song song nội toán tử (intra- operator parallelism)

1.3.1.1 Song song liên truy vấn

Song song liên truy vấn là thực hiện nhiều truy vấn cùng một lúc bằng cách lập lịch thực hiện cho các toán tử của các truy vấn đó Để đáp ứng có hiệu quả đối với nhiều loại truy vấn khác nhau, bộ tối ưu truy vấn cần phải tạo

ra ít nhất một tiến trình cho mỗi loại toán tử CSDL nguyên thuỷ trong mỗi bộ

xử lý Các toán tử này được gọi là các toán tử phục vụ Khi một toán tử phục

vụ hoàn thành công việc đối với một truy vấn, thì nó được trả về vùng chờ và

đợi các yêu cầu phục vụ khác (nếu còn có) đến từ các truy vấn tiếp theo Như vậy, bằng cách chia s các toán tử phục vụ cho nhiều truy vấn, chúng ta có thể tránh được sự quá tải gắn liền với việc khởi tạo các tiến trình Có hai phương

pháp lập lịch được sử dụng phổ biến: lập lịch cạnh tranh và lập lịch theo phương án

Lập lịch cạnh tranh [1,3,4]

Trang 24

Lập lịch trên cơ sở cạnh tranh hoạt động như sau:

- Khi khởi động hệ thống, một tập các tiến trình điều phối được tạo ra

- Trình phân phối (dipatcher process) chỉ định một tiến trình điều phối

cho một truy vấn theo kiểu hàng đợi

- Khi một bộ điều phối được chỉ định cho một truy vấn thì tự nó lập lịch cho các phép toán trong câu truy vấn tương ứng dựa vào cây toán tử

- Bộ điều phối tương ứng của cây toán tử phải "cạnh tranh" với các bộ điều phối khác để giành được các toán tử phục vụ nhằm thực hiện toán tử trên cây toán tử đó

Sau khi giành được các toán tử phục vụ cần thiết cho công việc, nó tiến hành phối hợp với các toán tử này để thực hiện các phép toán một cách đồng thời Ưu điểm đối với phương pháp này là đơn giản và "công bằng" theo nghĩa mỗi truy vấn đều có cùng cơ hội để cạnh tranh các tài nguyên tính toán Tuy nhiên khả năng sử dụng hệ thống của phương pháp này chưa cao

Lập lịch theo phương án [1,3,4]

- Một bộ lập lịch chung cho tất cả các truy vấn

- Bộ lập lịch biết nhu cầu tài nguyên của tất cả các truy vấn hoạt động nên

nó có thể lập lịch cho các phép toán của các cây toán tử này, dựa vào việc các yêu cầu này có phù hợp với điều kiện của hệ thống song song đang có hay không

- Chiến lược chọn "tốt nhất" được áp dụng để chọn ra một phép toán từ nhiều phép toán đang đợi

- Sử dụng toán tử phục vụ tốt hơn để thực hiện trước

Phương pháp này có khả năng sử dụng hệ thống tốt hơn nhưng không

"công bằng" như trong phương pháp lập lịch trên cơ sở cạnh tranh Bởi vì các truy vấn liên quan đến tính phức tạp của chúng (chẳng hạn xử lý tên các quan

hệ rất nhỏ hoặc rất lớn) có thể rơi vào tình trạng chờ đợi mãi mãi, vì không có

Trang 25

thể thực hiện do không dành được tài nguyên Ngoài ra, bộ lập lịch cũng có thể đưa đến hiện tượng "Điểm nóng" khi mà nhu cầu tài nguyên của nhiều truy vấn tối ưu đối với hệ thống, thì việc chọn ra một truy vấn trong số đó để thực hiện trước là một vấn đề

1.3.1.2 Song song nội truy vấn[1,3,4]

Song song nội truy vấn là dạng song song hoá thi hành song song một truy vấn đơn trên nhiều bộ xử lý Nghĩa là, nó thực hiện từng truy vấn một và cho phép thực hiện đồng thời các phép toán trên truy vấn đó Có hai cơ chế song song nội truy vấn

song song độc lập (independent parallelism)

Song song đường ống

Xử lý tuần tự kiểu đường ống1

là một kỹ thuật quan trọng để xử lý câu truy vấn Đó là một dãy các thao tác được sắp đặt sao cho đầu ra của thao tác này là đầu vào của thao tác kế tiếp Thuận lợi chính của kỹ thuật này là không cần lưu trữ kết quả tạm thời trong quá trình xử lý mà thực hiện tính toán ngay Như vậy sẽ hạn chế các thao tác đọc ghi các kết quả trung gian Trong hệ thống song song, kỹ thuật đường ống chủ yếu được sử dụng với cùng mục đích như trong hệ thống xử lý tuần tự Tuy nhiên, nó được dùng như một biện

1

Trang 26

pháp song song hoá một phần Nghĩa là, hai phép toán khác nhau có thể thực hiện đồng thời bằng cách lấy kết quả của phép toán này làm dữ liệu vào cho phép toán kia Cơ chế này gọi là song song đường ống

Song song hoá đường ống rất tốt đối với hệ thống có ít bộ xử lý, nhưng với các hệ thống có nhiều bộ xử lý thì ít thích hợp Nguyên nhân là do:

- Chuỗi các thao tác đường ống không đủ dài để cho phép thực hiện song song hoá ở mức độ cao

- Không thể sắp vào đường ống các phép toán quan hệ, chẳng hạn phép trừ, phép gộp nhóm, sắp xếp - các phép toán vốn không thể tạo ra kết quả khi tất cả các đầu vào của nó chưa được duyệt

1.3.1.3 Song song nội toán tử

Song song nội toán tử thực hiện một phép toán quan hệ bằng cách dùng nhiều bộ xử lý Điều này có thể thực hiện bằng cách phân chia các toán hạng cho nhiều bộ xử lý Một phép toán quan hệ được tách thành các phép toán độc lập, mỗi phép toán này thực hiện một phần dữ liệu bằng một bộ xử lý riêng biệt Cơ chế song song nội toán tử còn được gọi là song song phân mảnh, nó dựa trên sự phân mảnh và bản sao dữ liệu để thực hiện các toán tử

1.3.2 Các phép toán song song

Trong phần này chúng ta lưu ý rằng, việc phân mảnh ngang, phân mảnh ngang nguyên thuỷ, phân mảnh dọc hoặc phân mảnh hỗn hợp đều cho chúng

ta các quan hệ Vì vậy mảnh ở đây có thể đồng nhất với quan hệ Khi tái thiết các mảnh, hay ghép, nối các mảnh (tức là cục bộ hoá dữ liệu) chúng ta dùng

các thuật ngữ đồng nghĩa như Hợp hoặc Ghép và Nối

Ngoài việc xây dựng các phép toán song song, chúng ta còn có thể sử dụng các phép toán quan hệ truyền thống với các dòng dữ liệu song song Mỗi phép toán quan hệ có một tập các cổng vào chứa các mẫu tin và một cổng ra chứa dòng dữ liệu kết quả Dòng dữ liệu song song thực hiện bằng cách tách

Trang 27

và ghép các dòng dữ liệu thành các cổng tuần tự có hai phép toán song song

cơ bản: phép ghép (merge operator) và phép tách (splitting operator)

Ngoài ra, phép ghép cũng có thể xem là phép kết hợp nhiều dòng dữ liệu song song độc lập thành một dòng dữ liệu đơn (tuần tự) Còn phép tách là một

số dòng dữ liệu đơn (tuần tự) được tách thành nhiều dòng dữ liệu song song độc lập Một phép tách được dùng để phân mảnh hoặc lặp lại dòng kết quả ra của một phép toán quan hệ

Các lệnh SQL gộp nhóm

Một lệnh gộp nhóm SQL là một truy vấn thao tác trên các nhóm mẫu tin

có cùng một tính chất nào đó Các lệnh gộp nhóm thường gặp như MIN,

MAX, AVERAGE, COUNT, SUM, chúng được sử dụng trong các câu truy

1.3.2.1 Thuật toán trộn tập trung CM (Centralized Merging)

Thuật toán thực hiện qua hai giai đoạn Đầu tiên mỗi nút thực hiện gộp nhóm các mẫu tin trên địa chỉ của nó Sau đó, các giá trị gộp nhóm của mỗi nút được trộn lại ở một bộ điều phối trung tâm được xác định trước

Ưu điểm: Thực hiện tốt khi số mẫu tin kết quả là nhỏ

Trang 28

Nhược điểm: Giai đoạn trộn kết quả thực hiện tuần tự nên dễ xảy ra hiện

tượng "nút cổ chai" khi số mẫu tin kết quả lớn

Giả sử quan hệ ASG (hình 7.15 [3]) được lưu tại các vị trí Montereal, New York và Paris Hãy tìm tổng nhân viên làm việc tại các dự án Như vậy tại từng vị trí tính tổng nhân viên, sau đó gửi đến một vị trí đã định để tính tổng toàn bộ (hình 1.3-1)

Montereal 12 New York 11 Paris 15 Tại Paris

Vị trí Tổng nhân viên Montereal 30 New York 44 Paris 63

- Đầu tiên, mỗi nút thực hiện gộp nhóm các mẫu tin trên vùng của nó

- Sau đó, các giá trị gộp nhóm riêng được phân mảnh theo hàm băm trên thuộc tính nhóm GROUP BY và các nút thực hiện trộn các giá trị gộp nhóm cục bộ này một cách đồng thời

Ưu điểm: Các nút thực hiện trộn các giá trị gộp nhóm thành phần một

cách đồng thời nên giai đoạn trộn không còn là vấn đề bế tắc nữa

Nhược điểm: Do một giá trị nhóm được tích luỹ trên tất cả các nút nên đòi

hỏi bộ nhớ phải lớn

Ví dụ 1.3-1 Giả sử Tập đoàn Bưu chính Viễn thông Việt Nam có 3 nơi

đào tạo: Học viện Công nghệ Bưu chính Viễn thông - Đường Nguyễn Trãi,

Trang 29

Hà Nội; Trung tâm đào tạo tại TP Hải Phòng và Trung tâm đào tạo tại TP

Lào Cai Tại các địa điểm này có thể có các khoa:

1 CNPM (Công nghệ phần mềm)

2 HTTT (Hệ thống thông tin)

3 QTKD (Quản trị kinh doanh)

4 LUAT (Luật)

5 DTVT (Điện tử viễn thông)

6 Anh (Tiếng Anh)

7 DULICH (Du lịch)

8 CHINES (Tiếng Hoa)

Giả sử cho bảng thống kê sinh viên năm 2010 tại các địa điểm như hình 1.3-2

Hình 1.3-2 Số lượng sinh viên các khoa tại các địa điểm

Kết quả gộp nhóm theo phương pháp trộn phân tán được trình bày trên hình 1.3-3

Trang 30

Hình 1.3-3 Gộp nhóm theo phương pháp trộn phân tán

1.3.2.3 Thuật toán phân mảnh lại ReF (Refragmentation)

Thuật toán thực hiện qua hai bước:

1 Khác với hai thuật toán trên, các nút không thực hiện gộp nhóm trực tiếp các phần dữ liệu trên địa chỉ lưu trữ của nó, mà trước tiên phân mảnh lại quan hệ trên thuộc tính nhóm GROUP BY

2 Các vị trí thực hiện gộp nhóm các thành phần dữ liệu sau khi đã phân mảnh lại

Ví dụ với dữ liệu ở hình 1.3 -2, sau khi ứng dụng thuật toán ReF

Trang 31

tự nhiên, … Đây là những kiến thức cơ sở cần thiết cho việc mở rộng nghiên cứu trong các chương tiếp theo của luận văn

Trang 32

Chương 2: THỰC HIỆN SONG SONG CÁC CÂU VẤN TIN TRONG

CƠ SỞ DỮ LIỆU PHÂN TÁN BẰNG PHƯƠNG PHÁP LUỒNG

2.1 Các cấu trúc tiến trình và luồng song song

Tiến trình là một một chương trình hoặc một bộ phận của một chương trình (chương trình con) đang thực hiện, đơn vị thực hiện tiến trình là bộ xử lí tiến trình (processer) Vì tiến trình là một bộ phận của chương trình nên tương

tự như chương trình tiến trình cũng sở hữu một con trỏ lệnh, một con trỏ stack, một tập các thanh ghi, một không gian địa chỉ trong bộ nhớ chính và tất

cả các thông tin cần thiết khác để tiến trình có thể thực thi được

Các tiến trình song song là các tiến trình mà điểm khởi tạo của tiến trình này có thể nằm ở thân của các tiến trình khác, tức là có thể khởi tạo một tiến trình mới khi các tiến trình trước đó chưa kết thúc

Luồng là một chuỗi các thông báo thuộc một chủ đề Hầu hết các chương trình xử lý nhóm tin đều có một nhóm lệnh chỉ dẫn cho phép đi theo mạch đó (nghĩa là nhảy đến thông báo tin tức kế tiếp cũng vấn đề đó, thay vì phải cho hiển thị tuần tự từng thông báo tin), nhóm lệnh đó được gọi là luồng

Các luồng song song là những tiến trình riêng l thực hiện đồng thời trong các hệ điều hành đa nhiệm Nếu hệ thống chỉ có một bộ xử lý, các luồng được thực hiện luân phiên nhau, luồng này tiếp luồng kia Do tốc độ thực hiện từng phân đoạn của từng luồng quá nhanh nên người dùng có ảo tưởng rằng có nhiều chương trình chạy cùng một lúc [1,3,4,6] Nếu hệ thống chỉ có đa bộ xử

lý, mỗi luồng có thể được thực hiện trên mộ bộ xử lý [1,3,4,6]

Để có thể rõ hơn, chúng ta xem hình 2.1-1 sau:

Trang 33

- Chương trình chính a.out được lập lịch để chạy bằng hệ điều hành gốc

- Chương trình a.out tải và giành tất cả các tài nguyên cần thiết để thực

thi nhiệm vụ của nó

- Chương trình a.out thực hiện một số công việc tuần tự trước, và sau đó

tạo ra một số chương trình con: sub1, sub2, sub3, sub4, và các luồng T1, T2, T3, T4, tương ứng được lập lịch và chạy đồng thời

2.1.1 Cấu trúc tiến trình song song

Các tiến trình thực thi đồng hành cần phải được lập lịch và có thể phải dựa vào cấu trúc lệnh song song

Giả thiết có các tiến trình S1, S2, , Sn được thực hiện song song trên n

bộ xử lí riêng biệt Khi đó chúng ta có thể viết thành khối song song như sau:

Hình 2.1-1 Tiến trình và luồng song song

Trang 34

Parbegin Hoặc Cobegin

Ví dụ 2.1-1:

Trong lập trình lệnh sau, thì các FUNCTION và các PROCEDURE, thậm chí cả các phân đoạn của chương trình chính (không phải chương trình con) khi được thực thi đầu là tiến trình:

PROGRAM < Tên chương trình>

BLCOK <Khai báo>

BLOCK procedure

BLOCK Function

Trang 35

B LOCK <Thân chương trình chính>

Trong đó BLOCK < Khai báo> có thể như sau:

LABEL ( * Khai báo các nhãn*);

VAR (* Khai báo các biến*);

BLOCK procedure có thể gồm nhiều Procedure có dạng:

PROCEDURE < Tên thủ tục> ( Các khai báo tham số , nếu có);

BLOCK < Khai báo> (* Các khai báo trong Procedure*);

BLOCK < Thân của Procedure> (* Block này được bắt đầu bởi BEGIN và kết thúc ở END*);

BLOCK Function có thể có nhiều function có dạng:

FUNCTION < tên hàm> ( Khai báo các tham số nếu có): < Kiểu dữ kliệu>; BLOCK < Khai báo> (* Các khai báo trong Function*);

BLOCK < Thân của Function> (* BLOCK này được bắt đầu bởi BEGIN và kết thúc bởi END*);

BLOCK < Thân chương trình chính> (* Bao gồm các lệnh của chương trinh,

từ đó có thể gọi đến các chương trình con cũng bắt đầu bởi BEGIN nhưng kết thúc bởi END*)

Trang 36

Để tạo ra các chương trình con (tiến trình) cần tuân thủ các bước (Hình 2.1-2) sau đây:

Từ một tiến trình có thể tạo ra nhiều tiến trình mới, bằng một lời gọi hệ thống create-process, trong khi thực thi

Case 0 : … do NhiemVu0 …; Break;

Case 1 : … do NhiemVu1 …; Break;

Chương trình P (khối P)

Chương trình con A (khối A)

Chương trình con AA (khối AA)

Chương trình con AB (khối AB)

Chương trình con B (khối B)

Chương trình con BA (khối BA) Chương trình con BAA (khối BAA)

Chương trình con BB (khối BB)

Hình 2.1-2 Cấu trúc chương trình con (tiến trình) khi lồng nhau

Trang 37

Case 2 : … do NhiemVu2 …; Break;

………

Case N : … do NhiemVuN …; Break;

}

Tiến trình tạo gọi là tiến trình cha, ngược lại các tiến trình mới được gọi

là tiến trình con của tiến trình đó Mỗi tiến trình mới này sau đó có thể tạo các tiến trình khác, hình thành một cây tiến trình

Tiến trình cha có thể phải phân chia các tài nguyên giữa các tiến trình con hay có thể chia s một số tài nguyên (như bộ nhớ và tập tin) giữa nhiều tiến trình con Tiến trình cha ngăn chặn bất cứ tiến trình con nào tạo quá nhiều tiến trình vì lý do hạn chế tài nguyên của tiến trình cha

Khi một tiến trình tạo một tiến trình mới, hai khả năng có thể tồn tại trong thuật ngữ của việc thực thi:

• Tiến trình cha tiếp tục thực thi đồng hành với tiến trình con của nó

• Tiến trình cha chờ cho tới khi một vài hay tất cả tiến trình con kết thúc Một tiến trình kết thúc khi nó hoàn thành việc thực thi câu lệnh cuối cùng

và yêu cầu hệ điều hành xóa nó bằng cách sử dụng lời gọi hệ thống exit Tại thời điểm đó, tiến trình có thể trả về dữ liệu (đầu ra) tới tiến trình cha (bằng lời gọi hệ thống wait) Tất cả tài nguyên của tiến trình –gồm bộ nhớ vật lý và luận lý, các tập tin đang mở, vùng đệm nhập/xuất được thu hồi bởi hệ điều hành

Việc kết thúc xảy ra trong các trường hợp khác Một tiến trình có thể gây kết thúc một tiến trình khác bằng một lời gọi hệ thống hợp lý (ví dụ, abort) Thường chỉ có tiến trình cha bị kết thúc có thể gọi lời gọi hệ thống như thế Ngược lại, người dùng có thể tùy ý giết mỗi công việc của tiến trình còn lại

Do đó, tiến trình cha cần biết các định danh của các tiến trình con Vì thế khi

Trang 38

một tiến trình tạo một tiến trình mới, định danh của mỗi tiến trình mới được tạo được truyền tới cho tiến trình cha

Một tiến trình cha có thể kết thúc việc thực thi của một trong những tiến trình con với nhiều lý do khác nhau:

• Tiến trình con sử dụng tài nguyên vượt quá mức được cấp Điều này yêu cầu tiến trình cha có một cơ chế để xem xét trạng thái của các tiến trình con

• Công việc được gán tới tiến trình con không còn cần thiết nữa

• Tiến trình cha đang kết thúc và hệ điều hành không cho phép một tiến trình con tiếp tục nếu tiến trình cha kết thúc Trên những hệ thống như thế, nếu một tiến trình kết thúc (bình thường hoặc không bình thường), thì tất cả tiến trình con cũng phải kết thúc Trường hợp này được xem như kết thúc xếp tầng (cascading termination) thường được khởi tạo bởi hệ điều hành

Rõ ràng, bất kỳ một tiến trình không chia s bất cứ dữ liệu (tạm thời hay

cố định) với tiến trình khác là độc lập Ngược lại, một tiến trình là hợp tác (cooperating) nếu nó có thể ảnh hưởng hay bị ảnh hưởng bởi các tiến trình khác trong hệ thống Hay nói cách khác, bất cứ tiến trình chia s dữ liệu với tiến trình khác là tiến trình hợp tác

Chúng ta có thể cung cấp một môi trường cho phép hợp tác tiến trình với nhiều lý do:

• Chia s thông tin: vì nhiều người dùng có thể quan tâm cùng phần thông tin (ví dụ, tập tin chia s ), chúng phải cung cấp một môi trường cho phép truy xuất đồng hành tới những loại tài nguyên này

• Gia tăng tốc độ tính toán: nếu chúng ta muốn một tác vụ chạy nhanh hơn, chúng ta phải chia nó thành những tác vụ nhỏ hơn, mỗi tác vụ sẽ thực thi song song với các tác vụ khác Việc tăng tốc như thế có thể đạt được chỉ nếu máy tính có nhiều thành phần đa xử lý (như các CPU hay các kênh I/O)

Trang 39

• Tính module hóa: chúng ta muốn xây dựng hệ thống trong một kiểu mẫu dạng module, chia các chức năng hệ thống thành những tiến trình hay luồng

• Tính tiện dụng: Thậm chí một người dùng đơn có thể có nhiều tác vụ thực hiện tại cùng thời điểm Ví dụ, một người dùng ba luồng: có thể đang soạn thảo, đang in, và đang biên dịch cùng một lúc

Thực thi đồng hành của các tiến trình hợp tác yêu cầu các cơ chế cho phép các tiến trình giao tiếp với các tiến trình khác và đồng bộ hóa các thực thi của chúng

2.1.2 Cấu trúc luồng song song

Các hệ điều hành hỗ trợ đa luồng là: SUN Solaris, Windows NT, OS/2,… Với những hệ điều hành này, các hỗ trợ cho người lập trình để khai thác luồng

là khác nhau Tuy nhiên hiện nay, đã có chuẩn chung Pthread của IEEE

Portable System Interface, POSIX

Cấu trúc của một luồng như sau:

Pthread_t athread; // Khai báo luồng thread có tên athread

Pthread_create(&athread, &status, (void*)proc,

(void*)arg); // Tạo ra luồng Pthread_join(athread, void *status);

Hoạt động của các thủ tục như sau, hình 2.1-3:

Pthread_create(&athread, &status, (void*)proc1, (void*)arg);

Pthread_join(athread,void* status);

athread

proc1(&arg) {…

return(*status)

Trang 40

Một luồng mới được tạo ra và hoạt động ở proc1 và được truyền danh sách đối là &arg Luồng sẽ bị huỷ bỏ khi kết thúc hoạt động và giải phóng các tài nguyên Trạng thái kết thúc công việc được trả lại trong pthread_join() Cũng có thể tạo và kết thúc một dãy các luồng như sau:

for (integer i = 0; i < n; i++)

Ví dụ 2.1-2: Về sử dụng luồng song song

Chương trình gồm hai chương trình con (hai tiến trình khi thực thi) là reader() và processor() Reader() đọc dãy dữ liệu từ luồng vào và processor()

sẽ xử lý trên các dữ liệu đọc vào đó

if(0==pthread_create(&id,NULL,processor, NULL)) printf("Processor done\n");

Ngày đăng: 10/09/2015, 14:27

HÌNH ẢNH LIÊN QUAN

Hình 1.3-1. Kết quả trộn tập trung  1.3.2.2. Thuật toán trộn phân tán DM (Distributed Merging) - Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng
Hình 1.3 1. Kết quả trộn tập trung 1.3.2.2. Thuật toán trộn phân tán DM (Distributed Merging) (Trang 28)
Hình 1.3-2. Số lượng sinh viên các khoa tại các địa điểm - Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng
Hình 1.3 2. Số lượng sinh viên các khoa tại các địa điểm (Trang 29)
Hình 1.3-3. Gộp nhóm theo phương pháp trộn phân tán - Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng
Hình 1.3 3. Gộp nhóm theo phương pháp trộn phân tán (Trang 30)
Hình 1.3-4. Gộp nhóm theo thuật toán ReF  1.4. Kết luận chương 1: - Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng
Hình 1.3 4. Gộp nhóm theo thuật toán ReF 1.4. Kết luận chương 1: (Trang 31)
Hình 2.1-2. Cấu trúc chương trình con (tiến trình) khi lồng nhau - Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng
Hình 2.1 2. Cấu trúc chương trình con (tiến trình) khi lồng nhau (Trang 36)
Hình 2.2-3. Ví dụ về cây toán tử - Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng
Hình 2.2 3. Ví dụ về cây toán tử (Trang 50)
Hình 2.3-1. Phân hoạch theo chức năng - Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng
Hình 2.3 1. Phân hoạch theo chức năng (Trang 67)
Hình 2.3-2. Mô hình dữ liệu song song  Chú ý: - Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng
Hình 2.3 2. Mô hình dữ liệu song song Chú ý: (Trang 68)
Hình 3.1-1. Rút gọn cho phân mảnh ngang nguyên thủy theo giới tính - Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng
Hình 3.1 1. Rút gọn cho phân mảnh ngang nguyên thủy theo giới tính (Trang 70)
Hình 3.1-2. Rút gọn cho phân mảnh dọc theo họ tên sinh viên, - Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng
Hình 3.1 2. Rút gọn cho phân mảnh dọc theo họ tên sinh viên, (Trang 70)
Hình 3.2-2. Màn hình chính của chương trình - Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng
Hình 3.2 2. Màn hình chính của chương trình (Trang 73)
Hình 3.2-10. Cây vấn tin sau khi giao hoán  phép hợp và phép nối - Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng
Hình 3.2 10. Cây vấn tin sau khi giao hoán phép hợp và phép nối (Trang 79)
Hình 3.2-15. Cây vấn tin đã đẩy phép chiếu xuống, phép nối lên - Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng
Hình 3.2 15. Cây vấn tin đã đẩy phép chiếu xuống, phép nối lên (Trang 82)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w