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

Nghiên cứu cơ sở dữ liệu song song và ứng dụng trong việc tính cước khách hàng VNPT Phú Yên

75 1,2K 3

Đ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 75
Dung lượng 2,06 MB

Nội dung

MỞ ĐẦU 1. Lý do chọn đề tài Cơ sở dữ liệu (CSDL) song song (parallel database Systems) là CSDL được tổ chức, khai thác và xử lý trong một hệ thống máy tính song song [2].Với CSDL lớn và phức tạp những máy tính truyền thống phải mất nhiều thời gian để thực hiện các thao tác cập nhật, tìm kiếm thông tin. Những khó khăn này có thể khắc phục được bằng các kỹ thuật xử lý song song trên các máy tính song song. Một máy tính song song hoặc máy tính đa xử lý là một hệ thống được xây dựng từ nhiều thiết bị phần cứng như bộ xử lý, bộ nhớ, ổ đĩa,... Chúng được tổ chức thành nhiều nút, kết nối nhau qua mạng truyền thông tốc độ cao. CSDL song song hiện đang được sử dụng rộng rãi, chúng không những giúp giảm nhân lực quản lý, vận hành, mà còn giúp người người sử dụng nhận được thông tin nhanh hơn, chính xác hơn. CSDL song song được sử dụng ở hầu hết các công ty, tập đoàn có nhu cầu xử lý dữ liệu lớn và phức tạp, đi cùng với đó là xử lý song song được lập trình để chạy trên các Server có đa bộ xử lý giúp các công ty quản lý và xử lý dữ liệu tốt hơn [4],[5]. Tập đoàn bưu chính viễn thông Việt Nam nói chung và Viễn Thông Phú Yên nói riêng cần quản lý nhiều loại dữ liệu và với dung lượng khá lớn được tăng thêm theo từng tháng. Với việc xử lý trên CSDL song song đã được phân hoạch của công ty sẽ giúp cho việc truy xuất đồng thời từ các đơn vị trên cùng một bảng dữ liệu nhưng được phân hoạch theo từng giai đoạn hoặc đơn vị sẽ nhanh hơn và hiệu quả hơn vào từng thời điểm cụ thể trong tháng. Với mong muốn sử dụng các kiến thức đã học vào công việc hằng ngày của mình tại Viễn Thông Phú Yên, tôi mạnh dạn chọn đề tài “Nghiên cứu cơ sở dữ liệu song song và ứng dụng trong việc tính cước khách hàng VNPT Phú Yên” làm đề tài luận văn thạc sĩ.

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

Trang 2

MỤC LỤC

MỞ ĐẦU 1

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

2 Tổng quan tài liệu: 1

3 Mục tiêu nghiên cứu 2

4 Đối tượng nghiên cứu 2

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

6 Phạm vi nghiên cứu 2

Chương 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU SONG SONG VÀ CÁC KỸ THUẬT PHÂN HOẠCH DỮ LIỆU 4

1.1 Giới thiệu về Cơ sở dữ liệu song song 4

1.2 Các kiến trúc của hệ thống máy tính song song 6

1.2.1 Kiến trúc bộ nhớ chia sẻ 6

1.2.2 Kiến trúc ổ đĩa chia sẻ 7

1.2.3 Kiến trúc không chia sẻ 8

1.2.4 Kiến trúc phân tầng 10

1.3 Các kỹ thuật phân hoạch dữ liệu trong CSDL song song 11

1.3.1 Phân hoạch theo vòng tròn Robin 13

1.3.2 Phân hoạch theo hàm băm 15

1.3.3 Phân hoạch theo khoảng 18

1.3.4 Phân hoạch ngẫu nhiên không cân bằng 19

1.4 Các cơ chế xử lý song song 21

1.4.1 Song song liên truy vấn 21

1.4.2 Song song nội truy vấn 23

1.4.3 Song song liên toán tử 24

1.4.4 Song song nội toán tử 26

1.5 Các phép toán song song 26

1.5.1 Phép nối: 26

1.5.2 Phép tách 27

Trang 3

1.6 Tiểu kết chương 27

Chương 2 MÁY TÍNH SONG SONG VÀ CÁC MÔ HÌNH LẬP TRÌNH SONG SONG 28

2.1 Giới thiệu về máy tính song song 28

2.1.1 Bộ nhớ: 29

2.1.2 Nguyên tắc kết nối: 29

2.1.3 Hệ điều hành: 30

2.1.4 Chương trình dịch: 30

2.2 Phân loại máy tính song song 31

2.2.1 Mô hình SISD: Đơn luồng lệnh, đơn luồng dữ liệu 31

2.2.2 Mô hình SIMD: Đơn luồng lệnh, đa luồng dữ liệu 32

2.2.3 Mô hình MISD: Đa luông lệnh, đơn luông dữ liệu 33

2.2.4 Mô hình MIMD: Đa luồng lệnh, đa luồng dữ liệu 34

2.3 Các mô hình lập trình song song 35

2.3.1 Lập trình trên hệ thống dùng chung bộ nhớ 35

2.3.2 Lập trình chia sẻ bộ nhớ dựa vào tiến trình 35

2.3.3 Lập trình chia sẻ bộ nhớ dựa vào luồng 36

2.4 Tiểu kết chương 42

Chương 3 ỨNG DỤNG CƠ SỞ DỮ LIỆU SONG SONG TRONG VIỆC TÍNH CƯỚC KHÁCH HÀNG VIỄN THÔNG PHÚ YÊN 44

3.1 Thiết kế hệ thống thông tin tính cước cho khách hàng VNPT Phú Yên 44

3.1.1 Đặc tả các chức năng chính của hệ thống 44

3.1.2 Mô tả phân tích và thiết kế cơ sở dữ liệu 48

3.2 Mô tả ứng dụng sau khi đã cài đặt 58

3.2.1 Cài đặt CSDL Song Song 59

3.2.2 Lập trình giao diện ứng dụng 61

3.3 Đánh giá kết quả và so sánh thời gian thực tế khi tính cước giữa xử lý tuần tự và xử lý song song 67

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 68

TÀI LIỆU THAM KHẢO 69

Trang 5

DANH MỤC CÁC BẢNG

Trang 6

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

1.5 Phân hoạch dữ liệu theo chiều dọc và theo chiều ngang 12

1.9 Phân hoạch dữ liệu ngẫu nhiên không cân bằng 20

Trang 7

1

MỞ ĐẦU

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

Cơ sở dữ liệu (CSDL) song song (parallel database Systems) là CSDL được tổ

chức, khai thác và xử lý trong một hệ thống máy tính song song [2].Với CSDL lớn và phức tạp những máy tính truyền thống phải mất nhiều thời gian để thực hiện các thao tác cập nhật, tìm kiếm thông tin Những khó khăn này có thể khắc phục được bằng các

kỹ thuật xử lý song song trên các máy tính song song Một máy tính song song hoặc máy tính đa xử lý là một hệ thống được xây dựng từ nhiều thiết bị phần cứng như bộ

xử lý, bộ nhớ, ổ đĩa, Chúng được tổ chức thành nhiều nút, kết nối nhau qua mạng truyền thông tốc độ cao

CSDL song song hiện đang được sử dụng rộng rãi, chúng không những giúp giảm nhân lực quản lý, vận hành, mà còn giúp người người sử dụng nhận được thông tin nhanh hơn, chính xác hơn CSDL song song được sử dụng ở hầu hết các công ty, tập đoàn có nhu cầu xử lý dữ liệu lớn và phức tạp, đi cùng với đó là xử lý song song được lập trình để chạy trên các Server có đa bộ xử lý giúp các công ty quản lý và xử lý

dữ liệu tốt hơn [4],[5]

Tập đoàn bưu chính viễn thông Việt Nam nói chung và Viễn Thông Phú Yên nói riêng cần quản lý nhiều loại dữ liệu và với dung lượng khá lớn được tăng thêm theo từng tháng Với việc xử lý trên CSDL song song đã được phân hoạch của công ty

sẽ giúp cho việc truy xuất đồng thời từ các đơn vị trên cùng một bảng dữ liệu nhưng được phân hoạch theo từng giai đoạn hoặc đơn vị sẽ nhanh hơn và hiệu quả hơn vào từng thời điểm cụ thể trong tháng

Với mong muốn sử dụng các kiến thức đã học vào công việc hằng ngày của

mình tại Viễn Thông Phú Yên, tôi mạnh dạn chọn đề tài “Nghiên cứu cơ sở dữ liệu

song song và ứng dụng trong việc tính cước khách hàng VNPT Phú Yên” làm đề tài

luận văn thạc sĩ

2 Tổng quan tài liệu

CSDL song song đã được nghiên cứu và phát triển bởi nhiều nhà khoa học trong nước và thế giới Nghiên cứu về các hệ CSDL song song đã được khởi đầu từ năm 1983 trong ngữ cảnh của mô hình quan hệ Việc tổ chức và thiết kế các CSDL song song là phù hợp với kiểu thiết kế của mô hình dữ liệu quan hệ Các truy vấn quan

Trang 8

hệ thực sự phù hợp cho việc thực hiện song song, bởi vì chúng bao gồm các phép toán thực hiện trên các dòng dữ liệu có cấu trúc giống nhau [1], [2] Mỗi toán tử là một quan hệ mới, vì thế các toán tử này có thể tạo thành các biều đồ luồng dữ liệu song song bởi vì đầu ra của toán tử này có thể là đầu vào của một toán tử khác, hai toán tử

có thể thực hiện song song bằng cách phân hoạch dữ liệu đầu vào bằng nhiều bộ nhớ

và nhiều bộ xử lý [4] Trong suốt thập niên vừa qua, một loạt các công ty như Teradata, Tandem, NCR, Oracle, SqlServer,… đã thành công trong việc phát triển và đưa vào sử dụng các máy CSDL với tốc độ cao giúp cho việc xử lý dữ liệu được nhanh hơn nhất là trong thời đại công nghệ số hiện nay

3 Mục tiêu nghiên cứu

- Tìm hiểu CSDL song song, cách thiết kế CSDL song song

- Tìm hiểu các mô hình xử lý song song, cách lập trình xử lý song song

4 Đối tượng nghiên cứu

Tìm hiểu các kỹ thuật phân hoạch, cơ chế xử lý song song trong cơ sở dữ liệu song song và lập trình xử lý song song, từ đó xây dựng CSDL song song tính cước khách hàng Viễn Thông Phú Yên phân hoạch theo từng khoảng trên SQL Server 2012

và sử dụng ngôn ngữ C# để lập trình song song cho việc tính cước

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

Phương pháp nghiên cứu của luận văn là tập trung vào việc tìm hiểu về CSDL song song, phân tích, tổng hợp, bình luận, các phương pháp tổ chức dữ liệu song song

Đề tài cũng sẽ trình bày một cách có hệ thống các nghiên cứu về xử lý song song, CSDL song song và xây dựng ứng dụng tính cước khách hàng trên cơ sở dữ liệu

song song đã được thiết lập đó

6 Phạm vi nghiên cứu

- Nghiên cứu tài liệu, nghiên về lý thuyết xử lý song song, hệ cơ sở dữ liệu song song và lý thuyết thiết kế CSDL song song, các loại phân hoạch trong CSDL song

song

- Tìm hiểu về hệ quản trị CSDL phân tán SQL Server 2012 và cách phân hoạch

table theo khoảng trong hệ quản trị này

Trang 9

- Tìm hiểu thêm về lập trình song song, cụ thể là lập trình đa luồng, đa tiến

trình MultiThread trong C#

- Nghiên cứu các thông tin cần thiết để tính cước từ đó chọn lựa các loại dữ liệu

nào cần phân hoạch để tạo ra một cơ sở dữ liệu song song

Cấu trúc của luận văn gồm:

 Chương 1: Tổng quan về CSDL song song và các kỹ thuật phân hoạch dữ liệu Chương này giới thiệu các khái niệm cơ bản về CSDL song song, các kiến trúc của hệ thống máy tính song song, các kỹ thuật phân hoạch dữ liệu trong CSDL song song và các cơ chế xử lý song song [1] [2],[4]

 Chương 2: Giới thiệu máy tính song song và các mô hình lập trình song song Chương này giới thiệu máy tính song song, phân loại máy tính song song và các

mô hình lập trình song song [3],[5]

 Chương 3: Ứng dụng CSDL song song trong việc tính cước khách hàng VNPT Phú Yên xây dựng ứng dụng tính cước cho khách hàng Viễn Thông Phú Yên CSDL được sử dụng cho ứng dụng này là CSDL song song được hình thành theo chiến lược phân hoạch dữ liệu Ngôn ngữ lập trình được sử dụng là C# [3],[5][6],[7]

 Phần kết luận và hướng phát triển

 Tài liệu tham khảo

Trang 10

Chương 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU SONG SONG

VÀ CÁC KỸ THUẬT PHÂN HOẠCH DỮ LIỆU

1.1 Giới thiệu về Cơ sở dữ liệu song song

Cách đây hơn 2 thập kỷ, hệ cơ sở dữ liệu song song đã gần được xác định, thậm chí nó còn được sự ủng hộ vững chắc nhất Ngày nay, hệ cơ sở dữ liệu song song được tiếp thị thành công bởi các nhà cung cấp hệ cơ sở dữ liệu lớn Một số xu hướng thúc đẩy quá trình chuyển đổi này là:

 Cùng với việc sử dụng máy tính ngày càng tăng dẫn theo các yêu cầu giao dịch ở các công ty cũng tăng theo rất lớn Hơn nữa, sự phát triển của mạng toàn cầu đã tạo ra nhiều trang web với hàng triệu người xem, và số lượng dữ liệu thu thập ngày càng tăng từ những người dùng đã tạo ra cơ sở dữ liệu rất lớn tại nhiều công ty

 Các tổ chức đang sử dụng khối lượng các dữ liệu ngày càng lớn này như là dữ liệu về những món hàng mà khách hàng đã mua, các liên kết trang web mà khách hàng

đã chọn, và khi khách hàng thực hiện cuộc gọi điện thoại tức là họ có kế hoạch sử dụng và hỏi về giá cả Các truy vấn sử dụng cho các mục đích trên được gọi là truy vấn hỗ trợ quyết định, và các dữ liệu cho các truy vấn đó có thể lên tới hàng terabyte

Hệ thống xử lý đơn không có khả năng xử lý khối lượng lớn dữ liệu này cùng lúc

 Bản chất định hướng của các truy vấn cơ sở dữ liệu là dựa vào sự song song của nó một cách tự nhiên Một số hệ thống thương mại và nghiên cứu đã chứng minh sức mạnh và khả năng của xử lý truy vấn song song

 Khi bộ vi xử lý đã trở nên rẻ hơn, máy song song đã trở nên phổ biến và tương đối rẻ tiền

 Bộ xử lý cá nhân đã tự trở thành máy song song sử dụng kiến trúc đa lõi Như chúng ta đã biết sự song song được sử dụng để tăng tốc xử lý, ở đó các truy vấn được thực hiện nhanh hơn bởi vì nhiều nguồn lực hơn, chẳng hạn như bộ xử

lý, ổ đĩa được cung cấp Song song cũng được sử dụng để tăng khối lượng công việc

Trang 11

được xử lý mà không cần tăng thời gian đáp ứng, thông qua sự gia tăng mức độ song song

Hệ cơ sở dữ liệu song song bao gồm nhiều bộ xử lý và nhiều đĩa kết nối với nhau bằng một mạng lưới kết nối nhanh chóng Độ tăng tốc là chúng ta có thể tăng tốc

độ xử lý bằng cách tăng sự song song cho một giao dịch đơn Độ mở rộng là xử lý các giao dịch tăng lên bằng cách tăng song song

Vì vậy chúng ta có thể định nghĩa hệ cơ sở dữ liệu song song là các hệ cơ sở dữ liệu được tổ chức, khai thác và xử lý trong một hệ thống máy tính song song Các hệ này tận dụng tính chất song song trong việc quản lý dữ liệu để khai thác các máy cơ sở

dữ liệu có hiệu năng cao và khả năng xử lý nhanh

Hệ thống song song cải thiện xử lý và tốc độ vào ra bằng cách sử dụng nhiều bộ

xử lý và các ổ đĩa song song Máy song song đang trở nên ngày càng phổ biến, khiến cho việc nghiên cứu các hệ cơ sở dữ liệu song song quan trọng hơn Các động lực để thúc đẩy phát triển hệ cơ sở dữ liệu song song là nhu cầu của các ứng dụng phải truy vấn cơ sở dữ liệu cực kỳ lớn (tương ứng với hàng terabyte-có nghĩa là 1012 byte) hoặc

có thể xử lý một số lượng rất lớn các giao dịch trong một giây tương ứng với hàng ngàn giao dịch mỗi giây) Hệ thống cơ sở dữ liệu client-server và trung tâm không đủ mạnh để xử lý các ứng dụng như vậy

Trong xử lý song song, nhiều phép toán được thực hiện đồng thời, trái ngược với xử lý tuần tự, trong đó các bước tính toán được thực hiện tuần tự Máy song song lớn truyền thống bao gồm một số lượng nhỏ các bộ vi xử lý mạnh mẽ ; máy tính song song tinh tế ngày nay sử dụng hàng ngàn bộ vi xử lý nhỏ hơn Hầu như tất cả các máy cao cấp hiện nay cung cấp một số mức độ song song bình thường là: ít nhất hai hoặc bốn bộ vi xử lý Các máy tính song song tinh tế có thể được phân biệt với các máy song song truyền thống bởi các mức độ song song lớn hơn mà chúng hỗ trợ Máy tính song song với hàng trăm bộ vi xử lý và ổ đĩa có khả năng thương mại hóa

Có hai phương pháp chính đo hiệu suất của một hệ thống cơ sở dữ liệu: (1) công suất: số lượng các tác vụ có thể được hoàn thành trong một khoảng thời gian nhất định, và (2) thời gian đáp ứng, số lượng thời gian cần để hoàn thành một tác vụ đơn từ thời điểm được gửi đi Một hệ thống xử lý một số lượng lớn nhỏ các giao dịch có thể

Trang 12

cải thiện công suất bằng cách xử lý nhiều giao dịch song song Một hệ thống xử lý các giao dịch lớn có thể cải thiện thời gian đáp ứng cũng như hiệu suất bằng cách thực hiện các tác vụ con của mỗi giao dịch song song

1.2 Các kiến trúc của hệ thống máy tính song song

Trong các máy tính song song có một số mô hình kiến trúc sau:

 Bộ nhớ chia sẻ: Tất cả các bộ vi xử lý chia sẻ một bộ nhớ dùng chung

 Ổ đĩa chia sẻ: Tất cả các bộ vi xử lý chia sẻ chung một tập các đĩa Hệ thống chia sẻ ổ đĩa đôi khi được gọi là cluster(phân cụm)

 Không chia sẻ: Các bộ xử lý không chia sẻ bộ nhớ chung cũng như các ổ đĩa dùng chung

 Phân cấp: Mô hình này là một mô hình lai của ba kiến trúc trước

1.2.1 Kiến trúc bộ nhớ chia sẻ

Trong kiến trúc chia sẻ bộ nhớ, bộ xử lý và ổ đĩa có thể truy xuất vào bộ nhớ dùng chung, thường thông qua một bus (là một hệ thống phụ chuyển dữ liệu giữa các thành phần bên trong máy tính) hoặc thông qua một kết nối mạng Ưu điểm của bộ nhớ chia sẻ là thông tin liên lạc cực kỳ hiệu quả giữa các bộ vi xử lý - dữ liệu trong bộ nhớ chia sẻ có thể được truy cập bởi bất kỳ bộ vi xử lý nào mà không bị di chuyển cùng với phần mềm Một bộ xử lý có thể gửi tin nhắn cho nhiều bộ vi xử lý khác nhanh hơn bằng cách sử dụng các bộ nhớ ghi (thường không mất thời gian hơn một micro giây) hơn là gửi một tin nhắn thông qua một cơ chế thông tin liên lạc Nhược điểm của kiến trúc bộ nhớ chia sẻ là không có khả năng mở rộng vượt ra ngoài 32 hoặc 64 bộ vi xử lý vì bus hoặc kết nối mạng sẽ bị nút cổ chai (kể từ khi nó được chia

sẻ bởi tất cả các bộ vi xử lý) tức là không thể mở rộng nhiều bộ xử lý để đáp ứng những cơ sở dữ liệu lớn vì mạng truyền thông tối thiểu phải có dải thông bằng tổng dải thông của các bộ xử lý Thêm vào đó các bộ vi xử lý không thể làm gì sau thởi điểm mà từ khi các bộ vi xử lý dành phần lớn thời gian của nó chờ đợi đến lượt mình trên bus để truy cập bộ nhớ

Kiến trúc chia sẻ bộ nhớ thường có bộ nhớ cache lớn ở mỗi bộ xử lý để giảm

tắc nghẽn, và tham chiếu của bộ nhớ chia sẻ được tránh bất cứ khi nào có thể Tuy nhiên, ít nhất là một số dữ liệu sẽ không được lưu trữ, và truy cập sẽ đi đến bộ nhớ

Trang 13

chia sẻ Hơn nữa, các bộ nhớ cache cần phải được giữ chặt chẽ; đó là, nếu một bộ xử

lý thực hiện 1 lần ghi vào một vùng bộ nhớ, dữ liệu trong vùng bộ nhớ nên được cập nhật hoặc gỡ bỏ từ bất kỳ bộ xử lý ở nơi dữ liệu được lưu trữ Có thể dùng bộ nhớ

cache cho mỗi bộ xử lý nhưng phải đảm bảo sự đồng bộ cache Do đó bộ nhớ cache

tăng thì số lượng bộ vi xử lý cũng tăng Các máy dùng chia sẻ bộ nhớ hiện tại không

thể hỗ trợ hơn 64 bộ vi xử lý Cộng thêm vào đó, thời gian tải và giải phóng cache

cũng ảnh hưởng đáng kế đến việc thi hành của bộ vi xử lý

Hình 1.1 Kiến trúc bộ nhớ chia sẻ, trong đó P: bộ vi xử lý, M: bộ nhớ, D: ổ đĩa

1.2.2 Kiến trúc ổ đĩa chia sẻ

Trong mô hình ổ đĩa chia sẻ, tất cả các bộ vi xử lý có thể truy cập tất cả các đĩa trực tiếp thông qua một kết nối mạng, nhưng các bộ vi xử lý có các bộ nhớ riêng Có hai ưu điểm của kiến trúc này trong một kiến trúc chia sẻ bộ nhớ Đầu tiên, kể từ khi mỗi bộ xử lý có bộ nhớ riêng của mình, bộ nhớ bus không bị nút cổ chai Thứ hai, nó

có cách để xử lý lỗi khi xảy ra: Nếu một bộ xử lý (hoặc bộ nhớ của nó) bị lỗi, bộ vi xử

lý khác có thể đảm nhận nhiệm vụ của bị vi xử lý bị lỗi, do đó cơ sở dữ liệu lưu trữ trên đĩa có thể truy cập từ tất cả các bộ vi xử lý Chúng ta có thể làm hệ thống đĩa con của nó tránh được lỗi bằng cách sử dụng kiến trúc RAID (là hình thức ghép nhiều ổ đĩa cứng vật lý thành một hệ thống ổ đĩa cứng có chức năng gia tăng tốc độ đọc/ghi dữ

Trang 14

liệu hoặc nhằm tăng thêm sự an toàn của dữ liệu chứa trên hệ thống đĩa hoặc kết hợp

cả hai yếu tố trên) Kiến trúc chia sẻ ổ đĩa được chấp nhận trong nhiều ứng dụng

Vấn đề chính của một hệ thống chia sẻ ổ đĩa là một lần nữa khả năng mở rộng Mặc dù bộ nhớ bus không còn bị nút cổ chai lâu hơn, nhưng các kết nối tới các hệ thống ổ đĩa con bây giờ bị nút cổ chai; đặc biệt là trong tình huống các cơ sở dữ liệu thực hiện một số lượng lớn các truy cập đến ổ đĩa So với các hệ thống chia sẻ bộ nhớ,

hệ thống chia sẻ đĩa có thể mở rộng số lượng bộ vi xử lý lớn hơn, nhưng thông tin liên lạc giữa các bộ vi xử lý chậm hơn (lên đến một vài phần nghìn giây khi không có phần cứng chuyên dùng cho thông tin liên lạc), vì nó phải đi qua một mạng lưới thông tin liên lạc

Hình 1.2 Kiến trúc ổ đĩa chia sẻ, trong đó P: bộ vi xử lý, M: bộ nhớ, D: ổ đĩa

1.2.3 Kiến trúc không chia sẻ

Trong một hệ thống không chia sẻ, mỗi nút là một máy độc lập bao gồm một bộ

xử lý, một bộ nhớ, và một hoặc nhiều đĩa Các bộ vi xử lý tại một nút có thể giao tiếp với một bộ vi xử lý tại nút khác bằng một kết nối mạng tốc độ cao Chức năng của một nút là máy chủ cho các dữ liệu trên một ổ đĩa hoặc nhiểu ổ đĩa mà nút đó sở hữu

Trang 15

Các tham chiếu ổ đĩa cục bộ được phục vụ bởi các đĩa cục bộ tại mỗi bộ vi xử

lý, mô hình không chia sẻ, khắc phục được những bất lợi của tất cả yêu cầu vào/ra thông qua một kết nối mạng đơn; tức là chỉ các truy vấn, truy cập vào ổ đĩa không cục

bộ, và mối quan hệ kết quả truyền đi thông qua mạng Hơn nữa, các kết nối mạng ở các hệ thống không chia sẻ thường được thiết kế để có khả năng mở rộng, do đó khả năng truyền dẫn tại các nút sẽ tăng lên Cho nên, kiến trúc không chia sẻ có khả năng

mở rộng hơn và có thể dễ dàng hỗ trợ một lượng lớn số bộ xử lý Vì thế ta có thể tổng kết các ưu điểm của kiến trúc ổ đĩa chia sẻ là:

o Ưu điểm lớn nhất của hệ thống không chia sẻ là có thể mở rộng ra hàng trăm thậm chí hàng ngàn bộ xử lý mà không ảnh hưởng đến các bộ xử lý khác

o Kiến trúc không chia sẻ đạt được độ tăng tốc và độ mở rộng gần tuyến tính trong các quan hệ phức tạp và trong việc xử lý giao thức trực tuyến

o Vấn đề thời gian chờ truy xuất bộ nhớ không còn là vấn đề bế tắc Hơn nữa

việc đồng bộ cache cũng dễ duy trì vì mỗi bộ vi xử lý chỉ được phép đọc và ghi các

phần cơ sở dữ liệu dành riêng cho nó

o Giảm thiểu sự tắc nghẽn lưu thông trên mạng bởi vì chỉ có các câu hỏi và câu trả lời truyền thông trên mạng Còn các truy xuất bộ nhớ thô và các phép truy xuất đĩa thô được thực hiện độc lập trong mỗi bộ xử lý và chỉ có các dữ liệu đã được lọc mới chuyển qua chương trình máy khách

Những nhược điểm chính của hệ thống không chia sẻ là chi phí truyền thông và truy cập đĩa không cục bộ cao hơn so với kiến trúc bộ nhớ chia sẻ hoặc kiến trúc ổ đĩa chia sẻ do việc gửi dữ liệu liên quan đến phần mềm tương tác ở cả hai đầu

Nói chung, kiến trúc không chia sẻ có nhiều ưu điểm hơn so với hai kiến trúc đã nói trên Nó đạt được độ tăng tốc và độ mở rộng tốt Vì vậy kiến trúc này được áp dụng phổ biến trong các hệ CSDL song song, nhưng bù lại nó tốn kém chi phí hơn hai kiến trúc nói trên

Trang 16

Hình 1.3 Kiến trúc không chia sẻ, trong đó P: bộ vi xử lý, M: bộ nhớ, D: ổ đĩa

1.2.4 Kiến trúc phân tầng

Kiến trúc phân tầng là sự kết hợp các đặc điểm của kiến trúc bộ nhớ chia sẻ, kiến trúc ổ đĩa chia sẻ, và kiến trúc không chia sẻ Ở mức đầu, hệ thống bao gồm các nút được kết nối bởi mạng kết nối và không chia sẻ ổ đĩa hoặc bộ nhớ với nhau Như vậy, mức đầu là kiến trúc không chia sẻ Mỗi nút của hệ thống thực sự có thể là một hệ thống chia sẻ bộ nhớ với một số bộ vi xử lý Ngoài ra, mỗi nút có thể là một hệ thống chia sẻ ổ đĩa, và mỗi nút trong các hệ thống chia sẻ một tập các ổ đĩa có thể là một hệ thống chia sẻ bộ nhớ Do đó, một hệ thống có thể được xây dựng như một hệ thống phân cấp, với kiến trúc chia sẻ bộ nhớ với một vài bộ vi xử lý tại mỗi nút, và một kiến trúc không chia sẻ ở mức đầu, có thể là một kiến trúc chia sẻ ổ đĩa ở mức giữa Hình 1.2.4 minh họa một kiến trúc phân cấp với các nút chia sẻ bộ nhớ kết nối với nhau trong một kiến trúc không chia sẻ Hệ thống cơ sở dữ liệu song song thương mại ngày nay chạy trên các loại kiến trúc này

Những nỗ lực nhằm giảm sự phức tạp của chương trình chạy trên hệ thống này

đã hình thành kiến trúc bộ nhớ ảo phân tán mà về mặt logic là bộ nhớ chia sẻ, nhưng

về mặt vật lí có nhiều hệ thống bộ nhớ rời; phần cứng bộ nhớ ánh xạ ảo đi với phần mềm hệ thống, cho phép mỗi bộ vi xử lý nhìn thấy các bộ nhớ rời như một bộ nhớ ảo

Do đó tốc độ truy cập sẽ khác, tùy thuộc vào việc trang nhớ (phân trang) có sẵn cục bộ hay chưa

Trang 17

Hình 1.4 Mô hình kiến trúc phân tầng

Tóm lại, các máy tính lớn truyền thống không còn phù hợp với những cơ sở dữ liệu lớn và các truy vấn phức tạp nên các máy tính song song đang dần dần được thay thế Một hệ thống song song được xây dựng tốt là một hệ thống đảm bảo được hai mục tiêu: độ tăng tốc và độ mở rộng, đồng thời ít chịu ảnh hưởng của các trở ngại như sự quá tải khi khởi động, sự tranh chấp và mất cân bằng tải giữa các bộ vi xử lý Trong

ba kiến trúc phần cứng cho các máy tính song song được giới thiệu ở trên, kiến trúc không chia sẻ được phát triển và ứng dụng nhiều nhất, do tính phổ dụng và ưu việt của

nó Các máy tính với kiến trúc này đạt được độ tăng tốc và độ mở rộng gần tuyến tính, đặc biệt có thể mở rộng ra hàng trăm thậm chí hàng ngàn bộ vi xử lý

1.3 Các kỹ thuật phân hoạch dữ liệu trong CSDL song song

Có hai loại phân hoạch dữ liệu cơ bản:

 Phân hoạch dữ liệu theo chiều dọc

 Phân hoạch dữ liệu theo chiều ngang

Hình 1.3.1 dưới đây mô tả đồ họa hai loại phân hoạch

Trang 18

Hình 1.5 Phân hoạch dữ liệu theo chiều dọc và theo chiều ngang

Phân hoạch dữ liệu theo chiều dọc là phân hoạch dữ liệu theo chiều dọc trên tất

cả các bộ vi xử lý Mỗi bộ xử lý có đầy đủ số lượng các bản ghi của một bảng cụ thể, nhưng chỉ một phần các thuộc tính Bởi vì mỗi bộ xử lý có các trường/thuộc tính khác nhau, khi tìm kiếm giá trị một trường/thuộc tính cụ thể, chỉ có những bộ vi xử lý mà chứa trường/thuộc tính sẽ tham gia vào quá trình tìm kiếm Vì vậy, các bộ vi xử lý mà không chứa trường/thuộc tính cụ thể đó sẽ trở nên nhàn rỗi Mô hình này là phổ biến hơn trong các hệ thống cơ sở dữ liệu phân tán, ở đó các hệ thống mạng/giao tiếp chậm hơn so với hệ thống cơ sở dữ liệu song song, mà phần tử xử lý mạnh hơn thông qua một kết nối mạng nhanh chóng Lý do cho việc sử dụng song song trong các hệ thống

cơ sở dữ liệu là để phân tán các nhiệm vụ xử lý giữa tất cả các bộ vi xử lý, do đó thời gian truy vấn được giảm xuống mức tối thiểu Bộ vi xử lý tham gia xử lý trong toàn bộ quá trình là rất quan trọng Thậm chí quan trọng hơn khi mức độ tham gia phải là ngay

cả khi có thể

Phân hoạch ngang là một mô hình mà trong đó mỗi bộ xử lý giữ một phần bản

ghi hoàn chỉnh của một bảng cụ thể Một truy vấn mà đánh giá một giá trị thuộc tính

cụ thể sẽ yêu cầu tất cả các bộ vi xử lý để tham gia Do đó, mức độ song song được cải thiện Mô hình này phổ biến hơn trong hệ thống cơ sở dữ liệu song song, ở đó giao tiếp diễn ra nhanh chóng và bộ vi xử lý tham gia trong toàn bộ quá trình xử lý thường xuyên là rất quan trọng Phương thức phân hoạch ngang đã được sử dụng bởi hầu hết

Trang 19

các hệ thống cơ sở dữ liệu quan hệ song song Có một số phân hoạch ngang được biết đến phổ biến hơn, cụ thể là:

 Phân hoạch dữ liệu theo vòng tròn Robin

 Phân hoạch dữ liệu theo hàm băm

 Phân hoạch dữ liệu theo khoảng

 Phân hoạch dữ liệu ngẫu nhiên, bất bình đẳng

1.3.1 Phân hoạch theo vòng tròn Robin

Phân hoạch dữ liệu vòng tròn Robin là phương pháp phân hoạch dữ liệu đơn

giản nhất, theo đó mỗi bản ghi lần lượt được phân cho một phần tử xử lý theo chiều kim đồng hồ Điều này có nghĩa là bản ghi đầu tiên của một bảng phân hoạch được phân phối đến phần tử xử lý đầu tiên, bản ghi thứ hai đến các thành phần xử lý thứ hai,

và như vậy Một khi các phần tử xử lý cuối cùng đã có được một bản ghi, phân phối bản ghi sẽ bắt đầu lại trong các phần tử xử lý đầu tiên Vào cuối của phân phối dữ liệu, mỗi phần tử xử lý sẽ nhận được một phân hoạch tương đương, ngoại trừ vòng cuối cùng của phân phối bản ghi có thể không đạt được các phần tử xử lý cuối cùng, nếu tổng số bản ghi là không chia hết cho số phần tử xử lý Hình 1.3.2 đưa ra một minh họa của phân hoạch dữ liệu theo vòng tròn Robin

Hình 1.6 Phân hoạch theo vòng tròn Robin

Từ cách phân phối trên ta có thể biết được bản ghi thứ i của một bảng đã được phân hoạch trên N đĩa được đánh số thứ tự từ 0,1, ,N-1 sẽ được đặt vào đĩa thứ (i mod N)

Trang 20

Từ khi phân hoạch dữ liệu theo vòng tròn Robin phân phối các dữ liệu đều đến

tất cả các phần tử xử lý, nó còn được gọi là "phân hoạch cân bằng '' Phân hoạch theo vòng tròn Robin là một trường hợp đặc biệt của "phân hoạch ngẫu nhiên-cân bằng"

tổng quát, ở đó mỗi bộ vi xử lý nhận được một phần dữ liệu chia sẻ bằng nhau của bảng ban đầu, không phụ thuộc vào cách phân hoạch được thực sự thực hiện, ví dụ, chia bảng vào các bảng con bằng nhau và sau đó phân phối mỗi bảng con đến một phần tử xử lý riêng

Ưu điểm chính của phân hoạch theo vòng tròn Robin hay phân hoạch ngẫu nhiên – cân bằng đó là các dữ liệu được phân bố đồng đều Vì mục đích của xử lý song song, đặc biệt xử lý trong cơ sở dữ liệu song song là đạt được cân bằng tải để giảm thời gian thực hiện một công việc, và phân hoạch dữ liệu này hỗ trợ mục tiêu đó

Mặc dù sự phân chia của các bản ghi bằng nhau, nhưng các bản ghi trong một phân hoạch không được phân nhóm ngữ nghĩa Các bản ghi được nhóm lại chỉ đơn giản là để đạt được các phân hoạch bình đẳng trong mỗi bộ vi xử lý Đây là nhược điểm chính của vòng tròn Robin, hay nói cách khác phân hoạch này không thích hợp với các truy vấn khoảng vì phải tiến hành tìm kiếm trên tất cả các phân hoạch Theo ví

dụ 1.3.1 bên dưới, rằng chúng ta muốn tìm các bản ghi với một thuộc tính cụ thể như ngày gọi là ngày như sau “16-10-2014”, sau đó tất cả các bộ vi xử lý phải hoạt động, mặc dù có lẽ chỉ là một vài trong số các phần tử xử lý sẽ tạo ra kết quả mong muốn Không có cách nào để biết trước những phần tử xử lý giữ những bản ghi này Như vậy chi phí khỏi tạo và chi phí tham gia xử lý rất tốn kém, đặc biệt là nếu các phần tử xử lý cuối cùng không cung cấp bất kỳ bản ghi nào, chúng sẽ phải chịu các chi phí không cần thiết Phân hoạch này sẽ thuận lợi nếu chỉ có những phần tử xử lý mà có khả năng tạo ra kết quả có liên quan trong việc xử lý Tuy nhiên, điều này là không thể thực hiện với bất kỳ phân hoạch theo vòng tròn Robin khi các phân hoạch dữ liệu không có bất

kỳ ngữ nghĩa nào

Ví dụ 1.3.1: Bảng Cuocgoi (CHUGOI, BIGOI, NGAYGOI, SOGIAY,

THANHTIEN) được phân hoạch theo chiều kim đồng hồ trên 5 đĩa/phần tử xử lý Khi

đó mỗi phần tử xử lý chỉ hơn kém nhau một bản ghi Được biểu diễn như bảng dưới đây:

Trang 21

Bảng 1.1 Phân hoạch theo vòng tròn Robin 1.3.2 Phân hoạch theo hàm băm

Để tạo một phân vùng có ý nghĩa hơn (bằng cách nhóm các bản ghi có cùng một ngữ nghĩa hay đặc tính), phân hoạch phải được dựa trên một thuộc tính đặc biệt Một loại phân hoạch dựa trên thuộc tính là phân hoạch theo hàm băm, tức là một hàm băm được áp dụng Kết quả của hàm băm này quyết định bộ vi xử lý nào lưu giữ các bản ghi Kết quả là, các bản ghi trong một phân hoạch có giá trị băm giống nhau Hình 1.3.3 dưới đây đưa ra một minh họa đồ họa của một phân hoạch dữ liệu theo hàm băm

Trang 22

Hình 1.7 Phân hoạch dữ liệu theo hàm băm

Sự sắp xếp này là tốt nhất cho sự truy xuất chính xác dựa trên các thuộc tính phân hoạch, ở đó các bộ vi xử lý có chứa các bản ghi mong muốn có thể được truy cập trực tiếp, với điều kiện là hàm băm dựa trên thuộc tính đó cũng là thuộc tính tương tự của việc truy xuất chính xác Trong trường hợp này, các phần tử xử lý được chọn sẽ chỉ được kích hoạt khi chúng giữ các bảng ghi ứng cử viên, trong khi các phần tử xử lý khác không được yêu cầu làm việc, do đó làm giảm tổng chi phí Những phần tử xử lý

mà nhàn rỗi trong công việc cụ thể này có thể có sẵn sàng để xử lý các công việc khác.Tổng quát hơn là dữ liệu được phân hoạch cho tất cả các đĩa bằng cách áp dụng hàm băm ngẫu nhiên trên thuộc tính phân hoạch Hàm băm sẽ trả về 1 số i trong khoảng từ (0, …, N-1) đĩa

Một ví dụ về một truy xuất chính xác bằng cách sử dụng một phân hoạch dữ liệu theo hàm băm là như sau Ví dụ, hàm băm dựa trên thuộc tính ngày gọi, và việc tìm kiếm là để tìm ra cuộc gọi có ngày gọi là ngày “15-10-2014” Ngày gọi này được băm, sử dụng cùng một hàm băm cho các phân hoạch dữ liệu Kết quả của hàm băm này xác định được nơi chứa các bản ghi, và các phần tử xử lý giữ bản ghi này sẽ được kích hoạt và các bản ghi mong muốn sẽ được tìm ra Đây là một ví dụ về một truy xuất chính xác bằng cách sử dụng một phân hoạch dữ liệu theo hàm băm

Một vấn đề của phân vùng băm liên quan đến xử lý các bản ghi của một khoảng nhất định, mà phân hoạch theo hàm băm không thể trực tiếp phát hiện vị trí của một bản ghi Giả sử tìm kiếm trên được sửa đổi để tìm cuộc gọi có ngày gọi từ ngày “15-10-2014” đến ngày “17-10-2014 Với phương pháp băm, nó không thể băm mỗi giá trị

Trang 23

ngày gọi riêng biệt trong phạm vi đã cho, và chúng ta không biết khoảng giá trị tối đa ngày gọi của cuộc gọi là bắt đầu từ ngày “15”, ngay cả khi chúng ta đã biết, cũng mất thời gian để băm mỗi cuộc gọi có ngày gọi riêng biệt chỉ để xác định các bộ vi xử lý chứa các bản ghi đó mong muốn Do đó, phân hoạch hàm băm là không phù hợp với tìm kiếm theo khoảng, nó chỉ phù hợp tìm kiếm theo giá trị chính xác

Một nhược điểm khác tồn tại trong phân hoạch dữ liệu theo hàm băm là cân bằng tải của mỗi phần tử xử lý có thể bị mất cân bằng, vì sự phân bố giá trị dữ liệu không đồng đều Từ quan điểm hoạt động tìm kiếm, nó có thể không là một vấn đề lớn như đã giải thích ở trên Nhưng từ quan điểm của các hoạt động khác, nó có thể có tác động xấu đến hiệu suất, bởi vì các dữ liệu ban đầu được giao là đã sai lệch

Ví dụ dưới đây mô tả việc thực hiện phân hoạch dữ liệu theo hàm băm bảng Cuocgoi đã cho ở ví dụ 1.3.1:

Ví dụ 1.3.2: Phân hoạch theo hàm băm theo dữ liệu đã được cho ở ví dụ 1.3.1,

ta thực hiện một hàm băm đơn giản nhất là sử dụng hàm băm k=t.A mod N k là

đĩa/phần tử được phân hoạch cuộc gọi vào, t là 1 giá trị tùy ý, ở đây ta cho bằng 1, A là giá trị ngày, ở đây là sẽ lấy số ngày là 1 số nguyên dương, N là số đĩa =5 Từ đó ta được bảng phân hoạch như sau:

16-10-2014 21-10-

2014

NGAY GOI

19-10-2014

1.ngay mod 5 =1 Đĩa 1

1.ngay mod 5 =0

Đĩa 0

1.ngay mod 5 =2 Đĩa 2

1.ngay mod 5 =3

Trang 24

1.3.3 Phân hoạch theo khoảng

Phân hoạch theo khoảng chia các bản dựa trên một một khoảng nhất định của thuộc tính phân hoạch Ví dụ, bảng cuộc gọi được phân chia dựa trên ngày gọi theo sự phân bố phạm vi sau đây: ngày gọi từ ngày 15 đến ngày 16 thuộc phần tử xử lý đầu tiên, ngày gọi từ ngày 17 đến ngày 18 thuộc phần tử xử lý thứ hai, v.v Hình 1.3.4 đưa

ra một minh họa đồ họa của phân hoạch dữ liệu theo khoảng

Hình 1.8 Phân hoạch dữ liệu theo khoảng

Một hệ quả của phân hoạch dữ liệu theo khoảng này là việc xử lý các bản ghi trên một khoảng cụ thể của thuộc tính phân vùng có thể trực tiếp đến một nhóm nhỏ các bộ vi xử lý có chứa khoảng bản ghi mong muốn Ví dụ, truy xuất đến cuộc gọi có ngày gọi từ ngày “15-10-2014” đến ngày “17-10-2014” (ví dụ ngày gọi là ngày 15 ,16

và 17 vv) có thể trực tiếp đến các phần tử xử lý giữ bản ghi bắt đầu từ ngày 15 đến ngày 17 Một ví dụ khác có thể truy xuất cuộc gọi có ngày gọi từ ngày ngày 15 đến ngày 18, và truy vấn này có thể trực tiếp đến 1 hoặc 2 bộ vi xử lý Điều đó chỉ ra rằng phân hoạch theo khoảng đặc biệt thích hợp với truy xuất theo khoảng Tuy nhiên, cả hai phân hoạch dữ liệu theo khoảng và theo hàm băm đều gặp rắc rối với dữ liệu được phân phối lệch Trong hình 3.5 (cũng như hình 3.4 cho phân hoạch theo hàm băm), cân bằng tải của mỗi phần tử xử lý có thể không được cân bằng

và đồng đều Điều này có thể ảnh hưởng đến một số thực thi ở trên, khi vị trí dữ liệu ban đầu là đã sai lệch

Hơn nữa, xử lý truy xuất dựa trên một thuộc tính không phân hoạch không có thể sử dụng phân hoạch theo hàm băm hoặc theo khoảng Ví dụ, nếu các phân hoạch (khoảng hoặc hàm băm) dựa trên thuộc tính ngày gọi và truy vấn dựa trên số bị gọi,

Trang 25

sau đó truy vấn sẽ không thể sử dụng được ưu điểm của phân hoạch theo khoảng hoặc hàm băm đã cung cấp, bởi vì thuộc tính được sử dụng trong phân hoạch dữ liệu là khác với thuộc tính trong truy vấn Trong trường hợp này, tất cả các bộ vi xử lý phải được kích hoạt và sử dụng để xử lý truy vấn Một vấn đề thực tế là cả hai phân hoạch theo khoảng và hàm băm trong trường hợp này đều sinh ra bất lợi, khi việc phân bổ dữ liệu ban đầu trong mỗi phần tử xử lý không đồng đều Nói cách khác, tất cả các bộ vi xử lý được sử dụng để xử lý, và khi tải trọng của mỗi bộ xử lý là khác nhau, thời gian hoàn thành của mỗi bộ vi xử lý sẽ không bằng nahu, và thời gian hoàn thiện lâu nhất là thời gian thực hiện các truy vấn

Ví dụ 1.3.3: Phân hoạch theo khoảng dữ liệu đã cho ở ví dụ 1.3.1 các khoảng

1.3.4 Phân hoạch ngẫu nhiên không cân bằng

Kỹ thuật phân hoạch dữ liệu cơ bản cuối cùng là phân hoạch dữ liệu ngẫu nhiên không cân bằng Như tên gọi của nó, có hai nội dung quan trọng về phương pháp phân hoạch dữ liệu ngẫu nhiên không cân bằng:

 Phân hoạch không dựa trên các thuộc tính tương tự như việc xử lý truy xuất dựa vào (các phân hoạch có thể là một phương pháp phân hoạch theo hàm băm hoặc

NGAY GOI

17-10-2014 18-10-

20-10-2014

NGAY GOI 21-10-

2014

15<=Ngay<17

Đĩa 0

17<=Ngay<19 Đĩa 1

19<=Ngay<20

Đĩa 2 20<=Ngay<21 Đĩa 3

21<=Ngay<22 Đĩa 4

Trang 26

khoảng trên một thuộc tính xử lý không truy xuất, hoặc các phương pháp phân hoạch chỉ đơn giản là không rõ ràng)

 Kích thước của mỗi phân hoạch có khả năng là bất bình đẳng Từ "ngẫu nhiên" trong tên của nó chỉ ra rằng các bản ghi trong mỗi phân hoạch không được nhóm lại cùng ngữ nghĩa, nhưng được phân bổ ngẫu nhiên

Phương pháp phân vùng ngẫu nhiên không cân bằng rất phổ biến, đặc biệt là khi các công việc thực sự thực hiện dựa trên kết quả tạm thời thu được từ các công việc trước đó Phương pháp phân hoạch ban đầu sử dụng có thể đã mất ngữ nghĩa của

nó thông qua một đường ống (pipeline) của các công việc Hình 1.3.5 đưa ra một minh

họa của một phân hoạch dữ liệu ngẫu nhiên không cân bằng

Hình 1.9 Phân hoạch dữ liệu ngẫu nhiên không cân bằng

Tóm tắt so sánh:

Bốn phương pháp phân vùng dữ liệu cơ bản ở trên thực sự có thể được phân loại thành loại (i) phân hoạch dữ liệu dựa vào thuộc tính và loại (ii) phân hoạch dữ liệu không dựa trên thuộc tính Phân hoạch dữ liệu dựa trên thuộc tính sử dụng kỹ thuật phân hoạch theo hàm băm và theo khoảng, trong khi đó phân hoạch dữ liệu không dựa trên thuộc tính sử dụng ngẫu kỹ thuật phân hoạch tự nhiên cân băng bằng (vòng tròn Robin) và phân hoạch tự nhiên không cân bằng Bảng 1.3.2 đưa ra một tóm tắt so sánh của các phương pháp phân hoạch dữ liệu dựa trên thuộc tính và không thuộc dựa trên tính

Trang 27

Phân hoạch dựa trên thuộc tính Phân hoạch không dựa trên thuộc

tính

Dựa trên một thuộc tính cụ thể Không dựa trên bất kỳ thuộc tính nào

Bảng 1.2 So sánh các phương pháp phân hoạch

Một kết luận chung từ Bảng 1.3.2 là nếu tìm kiếm dựa trên các thuộc tính tương

tự khi phân hoạch dữ liệu (phân hoạch dựa trên thuộc tính), sau đó tìm kiếm có thể được hưởng lợi từ một số lợi thế được cung cấp bởi các phân hoạch dựa trên thuộc tính, chẳng hạn như tìm kiếm chính xác sử dụng một phân hoạch dữ liệu theo hàm băm hoặc kiếm một khoảng bằng cách sử dụng một phân hoạch dữ liệu theo khoảng Nếu thuộc tính tìm kiếm khác với các thuộc tính phân hoạch, sau đó là phân hoạch không dựa trên thuộc tính thì phân hoạch cân bàng ngẫu nhiên (vòng tròn Robin) là lựa chọn tốt nhất Ngẫu nhiên-không cân bằng được giải thích ở đây bởi vì, trong nhiều trường hợp, dữ liệu đã được phân hoạch và truy vấn đã nhận bất cứ dữ liệu nào

đã được xác định

Tóm lại, một phương pháp phân hoạch dữ liệu tốt sẽ tăng mức độ thực hiện song song và làm giảm thời gian thực hiện truy vấn, đặc biệt là các truy vấn phức tạp trân các cơ sở dữ liệu lớn Trong các loại phân hoạch dữ liệu đã trình bày ở trên mỗi loại phân hoạch đề có các ưu và nhược điểm riêng với mỗi dạng truy vấn

1.4 Các cơ chế xử lý song song

1.4.1 Song song liên truy vấn

Trong song song liên truy vấn (interquery parallelism), các truy vấn hoặc các

giao dịch khác nhau thực thi song song với các truy vấn hoặc giao dịch khác Hình thức song song hóa này có thể làm gia tăng hiệu suất giao tác Tuy nhiên, thời gian đáp ứng của từng truy vấn không hề nhanh hơn so với khi chúng được thực thi riêng biệt,

Do vậy, mục đích chính của song song liên truy vấn là điều chỉnh hệ thống xử lý giao dịch nhằm cho phép gia tăng số lượng giao dịch có thể thực hiện trong một đơn vị thời gian

Trang 28

Song song liên truy vấn là dạng song song sớm nhất được sử dụng trong các hệ

thống cơ sở dữ liệu, đặc biệt là trong các hệ thống song song có bộ nhớ dùng chung Các hệ cơ sở dữ liệu dược thiết kế cho các hệ thống bộ xử lý đơn có thể được sử dụng trên kiến trúc song song bộ nhớ dùng chung với thay đổi ít hoặc không có, bởi vì ngay

cả các hệ thống cơ sở dữ liệu tuần tự cũng hỗ trợ xử lý đồng hành Các giao dịch mà sẽ được vận hành theo cơ chế song song trên các máy tuần tự sẽ làm việc song song trên kiến trúc song song bộ nhớ dùng chung

Việc hỗ trợ song song liên truy vấn trên các kiến trúc ổ đĩa dùng chung hoặc không chia sẻ thì phức tạp hơn Các bộ xử lý phải thực hiện phối hợp một số tác vụ, như khóa và ghi nhật ký, và điều này đòi hỏi chúng phải gửi các thông điệp cho nhau Một hệ cơ sở dữ liệu song song cũng phải đảm bảo rằng 2 bộ xử lý không được tự do cập nhật cùng một dữ liêu tại cùng thời điểm Hơn nữa, khi một bộ xử lý truy xuất hoặc cập nhật dữ liệu, hệ cơ sở dữ liệu phải đảm bảo bộ xử lý đang có dữ liệu mới nhất trong vùng đệm (buffer pool) của nó Vẩn đề này được gọi là bài toán liên kết ngầm

Có nhiều cơ chế khác nhau được phát triển nhằm đảm bảo liên kết ngầm; thông thường, các cơ chế liên kết ngầm được tích hợp với các cơ chế điều khiển đồng hành

để giảm chi phí Một cơ chế như vậy cho hệ thông dùng chung đĩa như sau:

1 Trước khi đọc hoặc ghi lên một trang, một giao dịch sẽ khóa trang này bằng chế độ dùng chung hoặc độc quyền, tùy trường hợp Ngay sau khi giao dịch này thu được khóa dùng chung hoặc khóa độc quyền trên một trang, nó sẽ đọc trang mới nhất

Trang 29

Các cơ chế kiến trúc ổ đĩa chia sẻ có thể mở rộng cho kiến trúc không chia sẻ như sau

Mỗi trang có một bộ xử lý chủ P i , và được lưu trên đĩa D i Khi các bộ xử lý muốn đọc

hoặc ghi lên trang này, nó sẽ gửi đề nghị tới bộ xử lý chủ P i của trang, do chúng không thể liên lạc trực tiếp với ổ đĩa Các hoạt động khác cũng giống như các cơ chế ổ đĩa chia sẻ

Các hệ Oracle 7 và Oracle RDB là các ví dụ về các Hệ cơ sở dữ liệu song song

ổ đĩa chia sẻ có hỗ trợ cơ chế song song liên truy vấn

1.4.2 Song song nội truy vấn

Song song nội truy vấn là dạng song song hóa thi hành song song một truy

vấn đơn trên nhiều bộ xử lý và ổ đĩa 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 đó

Để minh họa cho việc xác định giá trị truy vấn theo cách song song, hãy xem một truy vấn trên một quan hệ được sắp xếp Giả sử rằng quan hệ được phân

bố trên nhiều đĩa bằng phương pháp phân bố khoảng dựa trên một vài thuộc tính nhất định, và việc sắp xếp được thực hiện dựa vào thuộc tính phân bố Phép sắp xếp có thể cài đặt như sau: dữ liệu ở mỗi vùng đĩa được sắp xếp cục bộ, quá trình này diễn ra song song Sau đó các vùng đĩa đã sắp xếp được nối lại để thu được kết quả cuối cùng

Do đó, song song hóa một truy vấn có thể được thực hiện bằng việc song song hóa từng phép toán thành câu truy vấn Có một nguồn song song hóa khác

trong việc xác định giá trị một truy vấn: cây toán tử của một truy vấn có thể chứa

nhiều phép toán Việc định trị cây toán tử có thể được song song hóa bằng việc định trị song song các phép toán không phụ thuộc vào phép toán khác Hơn nữa, như đã lưu ý trong phần trước, kết quả của phép toán này có thể chuyển đến cho phép toán kia xử lý Hai phép toán có thể thi hành song song trên các bộ xử lý khác nhau, một phép toán phát sinh kết quả cho một phép toán khác

Tóm lại, việc thi hành một truy vấn đơn có thể song song hóa theo 2 cách:

Song song hóa nội toán tử (Intra - operation parallelism) Việc gia tăng tốc

độ xử lý một truy vấn có thể thực hiện bằng cách song song hóa từng phép toán riêng biệt, như sắp xếp, chọn, chiếu và kết

Trang 30

Song song hóa liên toán tử (Inter - operation parallelism) Việc tăng tốc xử lý

một truy vấn có thể đạt được bằng cách thi hành song song các phép toán khác nhau trong biểu thức truy vấn

Hai dạng song song hóa này có thể bổ sung cho nhau, và có thể được sử dụng đồng thời Vì số lượng các phép toán trong một truy vấn thông thường là ít

so với số bộ được từng phép toán xử lý, dạng song song hóa đầu mềm dẻo hơn cho việc gia tăng song song hóa, Tuy nhiên, ở các hệ thống song song thông thường hiện nay với một số tương đôi ít bộ xử lý, cả 2 dạng song song hóa đều được chú trọng

Trong trình bày dưới đây về vấn đề song song hóa các truy vấn, giả sử

rằng các truy vấn là chỉ đọc Việc lựa chọn các thuật toán song song hóa định truy

vấn phụ thuộc vào kiến trúc máy tính Thay vì trình bày các thuật toán cho từng

kiên trúc một cách độc lập, ở đây sử đụng kiến trúc không dùng chung trong các

mô tả Như vậy, ở đây mô tả tường minh khi nào dữ liệu phải được chuyển từ bộ

xử lý này sang bộ xử lý kia Mô hình này có thể giả lập cho các kiến trúc khác

Do đó, các thuật toán cho kiến trúc không dùng chung có thể được vận dụng cho các kiên trúc còn lại

Để đơn giản hóa trong trình bày các thuật toán, giả định rằng có n bộ xử lý

Po, Pi, Pn-1, và n đĩa D0, Di , , Dn_1. trong đó đĩa Di được liên kết với bộ xử lý Pi Một hệ thống thực tế có thể có nhiều đĩa cho một bộ xử lý Việc mở rộng thuật toán cho phép nhiều đĩa cho một bộ xử lý không phức tạp lắm Có thể xem Di là một tập đĩa, tuy nhiên để đơn giản trong trình bày, ở đây giả định rằng- Di là một dĩa đơn

1.4.3 Song song liên toán tử

Có hai dạng song song liên toán tử: song song hóa đường ống và song song hóa độc lập

A Song song hóa đường ống

Trong hệ thống xử lý tuần tự, đường ống (pipeline) là một kỹ thuật quan trọng trong xử lý truy vấn Đó là, một dãy các thao tác được sắp đặt sao cho dầu ra của thao tác này là đầu vào của thao tác kế tiếp Lấy ví dụ, có 2 thao tác A và B

Trang 31

được sắp đặt như sau: kết quả của thao tác A sẽ là đầu vào cho thao tác B Thuận lợi chính của kỹ thuật này là không cần phải lưu trữ tạm thời kết quả của thao tác đầu mà giao cho thao tác kế tiếp xử lý ngay

Trong các 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òn được dùng như một biện pháp song song hóa Chẳng hạn như trong ví dụ trên, có thể thi hành A và B đồng thời trên các bộ xử lý khác nhau, sao cho B sẽ tiêu thụ các bộ mà A tạo ra Dạng song song hóa này được gọi là song song hóa đường ống

Xem phép kết giữa 4 quan hệ:

R1 R2 R3 R4

Điều khiển có thể thiết lập một ống tin cho phép 3 phép kết được thực hiện song song Bộ xử lý P1 được ấn định thực hiện phép kết temp1 ← R1 R2 , và bộ xử lý P2 được

ấn định thực hiện phép kết temp1 R3 Khi P1 tính được vài bộ trong R1 R2, các bộ này

ngay lập tức sẽ sẵn sàng cho P2 xử lý Do vậy, trước khi P1 hoàn tất phép kết R1 R2, P2

đã có sẵn một số bộ trong temp1

Song song hóa đường ống tỏ ra có ích trong các hệ thống có ít bộ xử lý, nhưng với các hệ thống có nhiều bộ xử lý thì không thích hợp Trước tiên, nói chung chuỗi các thao tác trong đường ống không đủ dài để cho phép song song hóa mức độ cao Thứ hai, không thể nào sắp vào đường ống các phép toán quan hệ, chẳng hạn phép trừ - phép toán vốn không tự tạo ra kết xua't cho tới khi tất cả các đầu vào của nó đều có thể truy xuất được Thứ ba, chỉ có thể thu được một độ tăng tốc giởi hạn đối với trường hợp khá phổ biến là chi phí thi hành một phép toán cao hơn nhiều so với các phép toán khác Do vậy, khi mức độ song song hóa cao, mức dộ quan trọng của đường ống xét về khía cạnh song song hóa trở nên mờ nhạt Lí do sử dụng đường ống quan trọng nhất vẫn là các việc tránh đọc/ghi các kết quả trung gian lên đĩa

B Song song hóa độc lập

Trong một biểu thức truy vấn các phép toán không phụ thuộc vào các phép toán khác thì có thể thi hành song song Dạng song song hóa này được gọi là song song hóa độc lập (independent parallelism)

Trang 32

Xem lại phép kết R1 R2 R3 R4 Rõ ràng biểu thức temp1 ← R1 R2 có thể được tính song song với temp2 ← R3 R4 Sau khi các tính toán này hoàn tất, ta có

thể tính tiếp temp1 temp2

Để đạt được sự song song hóa hơn nữa, các bộ trong kết quả của temp1 và temp2 có thể được đưa vào thực hiện kết nối ngay bằng phép kết temp1 temp2 mà không phải đợi xác định hoàn toàn temp1 và temp2

Cũng giống như song song hóa đường ống, song song hóa độc lập không mang lại một mức độ song song hóa cao Nó chỉ hữu ích trong các hệ thống có ít bộ xử lý

1.4.4 Song song nội toán tử

Song song hóa dữ liệu chỉ có ý nghĩa nếu xét trên các quan hệ có kích thước lớn, các phép toán có thể được song song hóa bằng cách thi hành chúng song song trên các tập con khác nhau của quan hệ Do số bộ của một quan hệ rất nhiều, mức độ song song hóa cũng khá lớn Vì vậy, sử dụng song song nội toán tử trong CSDL xem ra là cần thiết Phần 1.5 dưới đây sẽ trình bày các phiên bản song song của một số phép toán quan hệ thông thường

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

Thay vì phải xây dựng các phép toán song song mới, chúng ta có thể xây 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 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 phân chia 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)

Trang 33

1.5.2 Phép tách

Khi thực hiện một quy trình song song nhiều giai đoạn, một dòng dữ liệu đơn phải được tách thành nhiều dòng dữ liệu độc lập Một phép tách được dùng để phân hoạch hoặc lặp lại dòng kết quả ra của một phép toán quan hệ

Với Phương pháp phân hoạch tốt và đúng mục tiêu sử dụng sẽ làm tăng tốc mức

độ thực hiện song song, mỗi kỹ thuật phân hoạch đã trình bày ở trên đều có những ưu nhược điểm đối với mỗi dạng truy vấn, song với thực tế sử dụng ngày nay, kỹ thuật phân hoạch theo khoảng đang được áp dụng rộng rãi vì đáp ứng yêu cầu truy xuất theo thời gian và dễ sử dụng

Các cơ chế xử lý song song được trình bày ở trên đều cho thấy tính ưu việt của quá trình song song hóa Các phương pháp để thực hiện một truy vấn có thể phân công cho nhiều bộ xử lý thực hiện một cách độc lập nhau ( song song độc lập) hoặc thực hiện đồng thời, dữ liệu ra của bộ xử lý này là dữ liệu vào của bộ xử lý kia ( song song đường ống),… Tuy nhiên, việc tối ưu thời gian truy vấn có thể bị hạn chế bởi hai yếu tố: thứ nhất, công việc phân công cho mỗi bộ xử lý không đồng đều giữa các nút trong

hệ thống song song, nghĩa là mất tính cân bằng tải Thứ hai, chi phí thực hiện việc phân công quá lớn làm mất ý nghĩa của việc song song hóa Ngoài ra, hiện tượng quá tải có thể xảy ra khi khai thác cơ chế song song như quá tải khi khởi động, quá tải trong truyền thông hiện tượng nút cổ chai,… Các vấn đề này hoàn toàn có thể giải quyết được bằng cách sử dụng hợp lý phần cứng và đảm bảo dải thông vào ra của hệ thống

Trang 34

Chương 2 MÁY TÍNH SONG SONG VÀ CÁC MÔ HÌNH

LẬP TRÌNH SONG SONG

2.1 Giới thiệu về máy tính song song

Ngày nay, với các bài toán yêu cầu xử lý trên một số lượng lớn dữ liệu và phức tạp như sự mô phỏng những hệ thống phức tạp và những vấn đề thách thức lớn như:

mô phỏng vụ nổ hạt nhân, khí hậu toàn cầu, cấu trúc tế bào, hệ gen sinh học, … đặt ra một nhu cầu lớn về tốc độ tính toán Những bài toán này thường yêu cầu một lượng lớn các phép tính lặp lại trên một khối lượng lớn dữ liệu để đưa ra một kết quả đúng đắn, và các phép tính này cần hoàn thành trong khoản thời gian hợp lý Ví dụ như dự báo thời tiết không thể xử lý bằng các máy tính truyền thống thông thường vì thời gian

xử lý là khoản 10 năm, trong khi đó yêu cầu phải việc xử lý tính toán phải ra kết quả tức thì, do đó việc xử lý tuần tự không đáp ứng được các yêu cầu này

Để giải quyết các bài toán trên ta cần phải tăng tốc độ tính toán Mặc dù trong những thập kỷ vừa qua chúng ta đã được chứng kiến những thành tựu to lớn về công nghệ vi xử lý Tốc độ đồng bộ của các bộ xử lý đã tăng lên rất nhiều và càng ngày càng tăng và cùng một lúc các bộ vi xử lý có khả năng thực hiện đa chỉ lệnh trong cùng một chu kỳ… nhưng do giới hạn về vật lý nên khả năng tính toán của các bộ xử

lý không thể tăng mãi được

Minh họa một cách đơn giản, tính toán truyền thống là xử lý một công việc tuần

tự từ đầu đến cuối, còn tính toán song song thì tách công việc đó thành nhiều phần và các bộ vi xử lý khác nhau thực hiện xử lý các phần của công việc đó để có kết quả nhanh hơn Tính toán song song mang lại một nền tảng mới cho sự phát triển của công nghệ xử lý Đây là hướng đi mới, đúng đắn và hiệu quả cho công nghệ điện toán trong tương lai

Máy tính song song gồm nhiều các bộ vi xử lý ghép lại nhau theo một kiến trúc nhất định tạo thành một chỉnh thể thống nhất, hoặc là nhiều máy tính kết nối với nhau thành một mạng máy tính, hoặc cả hai loại trên Khả năng tính toán của máy tính song

Trang 35

song là vô hạn trong khi các máy tính tuần tự chỉ là hữu hạn cho dù tốc độ CPU có cao đến mấy

Các thành phần cần quan tâm trong máy tính song song là:

Một trong các thành phần quan trọng nhất của kiến trúc máy tính là bộ nhớ Bộ

nhớ thường được chia thành n mức

Bộ nhớ mức 1 là mức bộ nhớ cao nhất có dung lượng nhỏ nhất, nhanh và đắt nhất, thường gắn chặt với mỗi BXL thành bộ nhớ cục bộ Bộ nhớ mức 2 thường nhỏ hơn,

chậm hơn và rẻ hơn mức 1, v.v

Về nguyên tắc, dữ liệu được chuyển đổi giữa các mức lân cận của các bộ nhớ và

hoàn toàn được điều khiển bởi bộ nhớ mức 1 về lý thuyết, trong cấu trúc phân cấp bộ nhớ, tốc độ truy cập bộ nhớ trung bình gần bằng tốc độ truy cập ở mức cao (mức 1),

nhưng chi phí của các đan vị nhớ trung bình lại gần với giá của bộ nhớ ở mức thấp nhất

(mức n)

2.1.2 Nguyên tắc kết nối

Trong hầu hết các kiến trúc song song như: những hệ đa xử lý chia sẻ bộ nhớ,

đa bộ xử lý đa bộ nhớ, v.v thì vấn đề quan trọng nhất trong thiết kế là xác định sự liên kết giữa các bộ xử lý và bộ nhớ với nhau

Một kiến trúc lý tưởng là kiến trúc trong đó, mỗi bộ xử lý đều kết nối được với các BXL còn lại Khi đó nó tạo ra một đồ thị đầy đủ Ví dụ, nếu hệ thống có p bộ xử lý thì sẽ có p * (p-1) đường liên kết Dễ nhận thấy kiến trúc loại này sẽ rất phức tạp, nhất

là khi p đủ lớn

Nói chung có hai loại cấu hình tôpô cho mạng liên kết: liên kết tĩnh và liên kết động

- Mạng liên kết tĩnh là mạng các thành phần của hệ thống máy tính, trong đó

các bộ xử lý, bộ nhớ được liên kết với nhau một cách cố định, không thay đổi được

Trang 36

- Mạng liên kết động là mạng các thành phần của hệ thống máy tính, trong đó

sự liên kết giữa các bộ xử lý, bộ nhớ là có thể thay đổi được cấu hình

Lĩnh vực liên kết động được rất nhiều người tập trung nghiên cứu và đã có nhiều công trình lý thuyết được công bố

2.1.3 Hệ điều hành

Hệ điều hành là một chương trình làm nhiệm vụ phối hợp các hoạt động của máy tính Hệ điều hành thực hiện các chức năng chính sau:

- Khởi động hệ thống

- Phân đoạn chương trình và lập lịch cho các tiến trình

- Trao đổi và đồng bộ hóa các tiến trình

- Quản lý và điều hành hệ thống

Về mặt khái niệm, mục đích chính của hệ điều hành cho máy tính đơn bộ xử lý

có một chút khác với những hệ cho máy tính đa bộ xử lý Trong hệ điều hành tập trung ( đơn bộ xử lý), mọi quyết định được thực hiện dựa trên sự hiểu biết về trạng thái tổng thể và tức thời của cả hệ thống Ngược lại, hệ điều hành đa bộ xử lý có thể thực hiện

mà không cần thiết phải báo trước về trạng thái của hệ thống phân tán

Nhiệm vụ chính của hệ điều hành đa bộ xử lý là tích hợp các tài nguyên tính toán và các bộ xử lý trao đổi với nhau thông qua mạng liên kết để tạo thành một hệ thống nhất làm việc cho hiệu quả

2.1.4 Chương trình dịch:

Chương trình được viết bằng các ngôn ngữ lập trình truyền thống thì phải được dịch sang dạng mã mà phần cứng hiểu được nó, đó là ngôn ngữ máy Chương trình dịch và chương trình thông dịch được sử dụng để thực hiện các chuyển đổi đó

Đối với các hệ thống song song thì một thành phần rất quan trọng là chương trình dịch song song Chương trình dịch làm giảm được thời gian thực hiện chương trình song song bằng cách chia nhỏ bài toán thành các khối công việc và những khối này được xử lý đồng thời bởi nhiều đơn vị xử lý Một số chương trình chỉ làm nhiệm

vụ phát hiện những khối công việc thực hiện được song song và thực hiện phân chia các đơn vị chức năng, một số khác tinh tế hơn, có thể lập lịch cho cả bài toán

Trang 37

Một câu hỏi đặt ra trong kiến trúc song song là “ một chương trình có thể chia thành các khối nhỏ như thế nào? Và sau đó kết hợp lại chúng ra sao?”

Nói chung, những câu hỏi trên đề cập đến những vấn đề hạt nhân của xử lý song song, cần phải phân tích sự phụ thuộc về chức năng, dữ liệu của các khối công việc, sự liên kết giữa các thành phần của hệ thống và sự lập lịch thời gian thực hiện của hệ thống nói chung

2.2 Phân loại máy tính song song

2.2.1 Mô hình SISD: Đơn luồng lệnh, đơn luồng dữ liệu

(Single Instruction stream, Single Data Stream - Đơn luồng lệnh, đơn luồng dữ liệu)

Máy tính loại SISD chỉ có một CPU, ở mỗi thời điểm thực hiện một chỉ lệnh và chỉ đọc, ghi một mục dữ liệu

Tất cả các máy tính SISD chỉ có một thanh ghi register được gọi là bộ đếm chương trình (program counter) được sử dụng để nạp địa chỉ của lệnh tiếp theo và kết quả là thực hiện theo một thứ tự xác định của các câu lệnh

Hình 2-2 mô tả hoạt động của máy tính theo mô hình SISD

Hình 2.1 Hệ thống đơn lệnh đơn dữ liệu SISD

Mô hình SISD còn được gọi là SPSD (Single Program Single Data), đơn chương trình và đơn dữ liệu Đây chính là mô hình máy tính kiểu von Neumann

Ngày đăng: 15/12/2015, 12:15

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. PGS. TS Nguyễn Mậu Hân, Giáo trình cơ sở dữ liệu phân tán, Nhà xuất bản Đại học Huế, 2012 Sách, tạp chí
Tiêu đề: Giáo trình cơ sở dữ liệu phân tán
Nhà XB: Nhà xuất bản Đại học Huế
2. PGS.TS Đoàn Văn Ban, PGS.TS Nguyễn Mậu Hân, Xử lý song song và phân tán, Nhà xuất bản khoa học và kỹ thuật, 2006 Sách, tạp chí
Tiêu đề: Xử lý song song và phân tán
Nhà XB: Nhà xuất bản khoa học và kỹ thuật
4. Abraham Silberschatz, Henry F. Korth, S. Sudarshan, Database System Concepts, Last updated 2006 Sách, tạp chí
Tiêu đề: Database System Concepts
5. Hasan Waqar, Optimization of SQL Query for Parallel Machines, Springer, 2005 Sách, tạp chí
Tiêu đề: Optimization of SQL Query for Parallel Machines
6. Joseph Albahari, Threading in C#, last updated 2011 Sách, tạp chí
Tiêu đề: Threading in C#
7. Andrew Novick, www.NovickSoftware.com Partitioning Tables, Views, and Indexed Views in SQL Server, 2010 Sách, tạp chí
Tiêu đề: www.NovickSoftware.com Partitioning Tables, Views, and Indexed Views in SQL Server
3. Tổng công ty bưu chính viễn thông, Quy định nghiệp tính cước và quản lý cước thu khách hàng, Nhà xuất bản bưu điện, 2001.Tiếng Anh Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w