Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
644,42 KB
Nội dung
1
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
o0o
NGUYỄN VIẾT THÀNH
MỘT SỐTHUẬTTOÁNĐIỀUKHIỂNTƯƠNGTRANH
TRONG GIAODỊCHĐỒNGTHỜI
Chuyên ngành: Truyền dữ liệu và mạng máy tính
Mã số: 60.48.15
TÓM TẮT LUẬN VĂN THẠC SỸ
Người hướng dẫn khoa học:
TS. PHẠM VIỆT HÀ
2
LỜI MỞ ĐẦU
Cơ sở dữ liệu là một lĩnh vực lớn và là chuyên ngành được sự quan tâm nhiều nhất
trong Công nghệ thông tin. Từ khi có mô hình cơ sở dữ liệu đầu tiên vào những năm 60
thì đến nay đã trải qua nhiều hệ cơ sở dữ liệu và có nhiều ứng dụng trong khoa học và
thương mại. Đặc biệt là trong thế kỷ 21, sự phát triển của internet bùng nổ một cách mạnh
mẽ thì cơ sở dữ liệu phân tán cũng trở thành một lĩnh vực quan trọng và phát triển nhanh
chóng. Bên cạnh đó, với sự phát triển của internet thì việc lưu trữ và xử lý dữ liệu tại
nhiều vị trí khác nhau của các công ty, các tổ chức đặc biệt là các công ty và tổ chức
thương mại cần được đáp ứng đầy đủ và các dữ liệu này cần phải được đảm bảo sự nhất
quán và toàn vẹn. Nhưng vấn đề được đặt ra ở đây là dựa vào nền tảng của cơ sở dữ liệu
tập trung để mở rộng cho cơ sở dữ liệu phân tán thì việc giải quyết trở nên phức tạp. Và
việc thiết kế cơ sở dữ liệu phân tán đã được T.Ozsu và P.Valduriez chứng minh là một bài
toán khó giải (NP-Hard). Một vấn đề khác cũng được đặt ra ở đây và cũng là vấn để mà
nhiều nhà nghiên cứu vẫn đang tìm hiểu và giải quyết đó là điềukhiểntươngtranh của
các giao tác (Transaction) trong cơ sở dữ liêu phân tán. Trong đó, yêu cầu quan trọng nhất
trong điểukhiểntươngtranh là phải đảm bảo tính nhất quán, tính toàn vẹn của dữ liệu.
Điểu này đối với cơ sở dữ liệu phân tán trở nên phức tạp bởi vì trong môi trường phân tán
có nhiều lý do để dữ liệu bị xung đột và tươngtranh tài nguyên khi nhiều giaodịch xảy ra
đồng thời.
Ngày nay, song song với việc internet phát triển thì thương mại điện tử cũng trở thành
một lĩnh vực lớn. Khi đó, các site thương mại ngày càng được mở rộng và mô hình giao
dịch trực tuyến trở nên phổ biến. Nhưng khi các site thương mại này càng lớn thì nhu cầu
lưu trữ dữ liệu càng trở nên thiết yếu và dữ liệu được đặt ở nhiều vị trí khác nhau. Với
lượng dữ liệu lớn, khối lượng truy cập lớn và độ tươngtranh khi nhiều giaodịch xảy ra
đồng thời cao thì làm thế nào để đảm bảo dữ liệu không bị xung đột với nhau và dữ liệu
không bị mất?
Với những yêu cầu cấp thiết như vậy, các DBMS phải đưa ra những giao thức và
những thuậttoán để giải quyết các vấn đề trên.
3
Với mục tiêu là tìm hiểu, đánh giá các thuậttoánđiềukhiểntươngtranh để đưa ra ứng
dụng điều khiển, luận văn: “Một sốthuậttoánđiềukhiểntươngtranhtronggiaodịch
đồng thời” được thực hiện gồm các phần chính sau:
Chương 1 của luận văn mô tả tổng quan về các yếu tố dẫn đến tươngtranh dữ liệu và
yêu cầu phải giải quyết xung đột dữ liệu bằng điềukhiểntương tranh.
Chương 2 của luân văn nêu rõ chi tiết của các thuậttoántrongđiềukhiểntươngtranh
và chỉ ra mộtsố vấn đề còn tồn tại của thuât toán.
Chương 3 của luận văn sẽ đánh giá, phân tích ưu nhược điểm của thuậttoán để lựa
chọn thuậttoántrong ứng dụng điềukhiểntươngtranhtrongmôtsốgiaodịchđồngthời
và đưa ra kết quả ứng dụng.
4
CHƯƠNG 1: TỔNG QUAN VỀ QUẢN LÝ GIAO TÁC VÀ ĐIỀU
KHIỂN TƯƠNGTRANH
1.1 Giao tác và xung đột dữ liệu
1.1.1 Giao tác (Transaction):
Giao tác được xem như một dãy các thao tác đọc và ghi trên cơ sở dữ liệu cùng với
các bước tính toán cần thiết. Với ý nghĩa đó, mộtgiao tác có thể được nghĩ như là một
chương trình nhúng các câu truy vấn truy cập CSDL. Định nghĩa khác của giao tác là một
sự thực thi đơn giản một chương trình. Một câu truy vấn đơn giản cũng được xem là một
chương trình mà thực hiện như mộtgiao tác.
1.1.1.1 Đặc điểm của giao tác
Chúng ta nhận thấy rằng các giao tác đều đọc và ghi mộtsố dữ liệu. Điều này được
dùng làm cơ sở nhận biết mộtgiao tác. Các mục dữ liệu được giao tác đọc cấu tạo nên tập
đọc RS (read set) của nó. Tương tự, các mục dữ liệu được mộtgiao tác ghi được gọi là tập
ghi WS(write set). Lưu ý rằng tập đọc và tập ghi của mộtgiao tác không nhất thiết phải
tách biệt. Cuối cùng hợp của tập đọc và tập ghi của mộtgiao tác tạo ra tập cơ sở BS (base
set), nghĩa là BS = RS ∩ WS.
1.1.1.2 Các tính chất của giao tác
Tính nguyên tử
Tính nguyên tử là mộtgiao tác được xử lý như một đơn vị thao tác. Chính vì thế
mà các hành động của giao tác, hoặc tất cả đều hoàn tất hoặc không một hành động
nào hoàn tất.
Tính nhất quán
Tính nhất quán (consistency) của mộtgiao tác chỉ đơn giản là tính đúng đắn của
nó. Nói cách khác, mộtgiao tác là một chương trình đúng đắn, ánh xạ cơ sở dữ liệu từ
trạng thái nhất quán này sang một trạng thái nhất quán khác.
5
Tính cô lập
Cô lập là tính chất của các giao tác, đòi hỏi mỗi giao tác phải luôn nhìn thấy cơ sở
dữ liệu nhất quán. Nói cách khác, mộtgiao tác đang thực thi không thể làm lộ ra các
kết quả của nó cho những giao tác khác đang cùng hoạt động trước khi nó ủy thác.
Bảo đảm tính cô lập bằng cách không cho phép các giao tác khác nhìn thấy các kết
quả chưa hoàn tất.
Ba hiện tượng được đặc tả cho những tình huống có thể xảy ra nếu sự cô lập
thíchhợp không được duy trì là: đọc bẩn, đọc không lặp, đọc ảo.
Tính bền vững
Tính bền vững (durability) muốn nói đến tính chất của giao tác, bảo đảm rằng một
khi giao tác ủy thác, kết quả của nó được duy trì cố định và không bị xóa ra khỏi cơ sở
dữ liệu. Vì thế hệ quản trị cơ sở dữ liệu bảo đảm rằng kết quả của giao tác sẽ vẫn tồn
tại dù có xảy ra sự cố hệ thống. Tính bền vững đưa ra vấn đề khôi phục cơ sở dữ liệu
(database recovery), nghĩa là cách khôi phục cơ sở dữ liệu về trạng thái nhất quán mà
ở đó mọi hành động đã ủy thác đều được phản ánh.
1.1.2 Xung đột dữ liệu
Chi tiết về dị thường xung đột dữ liệu
a) Đọc bẩn (Dirty read)
Đọc bẩn hay là đọc dữ liệu không được commit là kiểu xung đột dữ liệu ghi đọc.
Đọc bẩn là môt kiểu bất thường tính toán gắn liền với việc thực hiện xen kẽ giữa các
giao tác. Đó là khi mộtgiao tác đang thực hiện cập nhật dữ liệu vào một đối tượng
trong cơ sở dữ liệu nhưng chưa commit thì mộtgiao tác khác tiến hành đọc dữ liệu của
đối tượng đó, nhưng sau đó giao tác sau ngừng việc cập nhật dữ liệu và rollback về giá
trị ban đầu thì giao tác trước đó vẫn giữ giá trị đã được cập nhật nhưng chưa commit
của giao tác bị rollback.
b) Đọc không lặp (non-repeatable read)
6
Đọc không lặp cũng khá giống với đọc bẩn nhưng có thêm nhiều điều kiện giới
hạn khác. Đọc không lặp xuất hiện khi một chương trình thực hiện mộtgiao tác đọc
một dữ liệu 2 lần. Nhưng lần đọc thứ 2 thì kết quả được truy xuất ra bị thay đổi so với
kết quả truy xuất ban đầu do đã bị cập nhật bới một chương trình khác trong lúc chạy.
c) Đọc ảo (Phantom read)
Đọc ảo cũng gần giống với đọc không lặp nhưng đọc ảo xuất hiện khi một chương
trình đọc một tập các dữ liệu 2 lần. Trong đó số phần tử truy xuất được trong lần thứ
nhất khác với số phần tử đọc trong lần thứ 2 vì sau khi chạy lần thứ nhất và trước khi
chạy lần thứ 2 thì có một chương trình khác đã thực hiện thêm mới hoặc xóa mộtsô
bản ghi trong tập dữ liệu được truy xuất.
1.2 Quản lý giao tác và giải quyết xung đột bằng điềukhiểntươngtranh
Như phần 1.1 và 1.2 chúng ta tìm hiểu xung quanh khái niệm giao tác và các trường
hợp có thể xảy ra xung đột/tương tranh giữa chúng. Phần 1.3 sẽ trình bày một cách trừu
tượng về thực hiện một vài giao tác xen kẽ, được gọi là lịch trình và một vài vấn đề có
thể phát sinh ra do việc thực thi xen lẫn gây ra. Từ vấn đề phát sinh do việc thực thi xen
kẽ, chúng ta sẽ tìm hiểu tổng quan về điềukhiểntươngtranh nhằm giải quyết xung đột.
Cuối cùng chúng ta sẽ tìm hiểu tổng quan về cách một hệ cơ sở dữ liệu khôi phục sự cố và
những bước phải làm trong suốt quá trình hỗ trợ khôi phục sự cố.
1.3 Kết luận chương
Trong chương 1 của luận văn, chúng ta đã tìm hiểu một cách tổng quan về các khái
niệm và nguyên nhân gây ra tương tranh. Qua đó chỉ ra các trường hợp gây ra dị thường
xung đột dữ liệu như: đọc bẩn, đọc không thể lặp, đọc ảo. Từ các dị thương xung đột này,
chúng ta tìm hiểu tổng quan về phương pháp mà DBMS thực hiện điềukhiểntương tranh.
7
CHƯƠNG 2: MỘTSỐTHUẬTTOÁNĐIỀUKHIỂNTƯƠNG
TRANH
2.1 Lý thuyết khả tuần tự
Từ các định nghĩa về lịch và lịch đầy đủ. Phần này chúng ta đưa ra các ví dụ để làm rõ
tính khả tuần tự của lịch. Và các vấn đề liên quan đến việc lập lịch.
2.2 Các thuậttoánđiềukhiểntươngtranh
2.2.1 Phân loại các cơ chế điềukhiểntươngtranh
Chúng ta sẽ xếp các cơ thể điềukhiểnđồngthời thành hai nhóm lớn: các phương pháp
điều khiểnđồngthời lạc quan và các phương pháp điềukhiểnđồngthời bi quan. Các
thuật toán bi quan đồng bộ hóa việc thực hiện đồngthời của các giao tác trước khi thực
hiện chúng, trong khi đó các thuậttoán lạc quan để việc đồng bộ hóa các giao tác cho đến
khi chúng kết thúc. Sự phân loại này được trình bày trong hình 2.4.
Hình 2. 1: Phân loại các thuậttoánđiềukhiểntươngtranh
Tập trung
Bản sao
chính
Phân tán
Cơ bản
Đa phiên
bản
Bảo toàn
Khoá Timestamp Lai Khoá Timestamp
Thuật toánđiềukhiểntươngtranh
Bi quan Lạc quan
8
2.2.2 Các thuậttoánđiềukhiểntươngtranh dựa trên khoá
Ý tưởng chính của việc điềukhiểntươngtranh bằng khóa là bảo đảm dữ liệu dùng
chung cho các thao tác tươngtranh chỉ được truy xuất mỗi lần mộtgiao tác. Điều này
được thực hiện bằng cách liên kết một khóa chốt (lock) với mỗi đơn vị khóa. Khóa này
được giao tác đặt ra trước khi nó truy xuất và được điều chỉnh lại vào lúc nó hết sử dụng.
Hiển nhiên là một đơn vị khóa không thể truy xuất được nếu đã bị khóa bởi mộtgiao tác
khác. Vì vậy yêu cầu khóa của mộtgiao tác chỉ được trao nếu khóa đi kèm hiện không bị
một giao tác khác giữ.
Phần này nêu ra và phân tích các thuậttoán cơ bản liên quan đến khoá. Qua các thuật
toán đã phân tích, chúng ta có thể đưa ra các biểu đồ thuậttoán như sau:
Hình 2. 2: Biểu đồ khoá 2 pha (2PL)
Hình 2. 3: Biểu đồ khoá 2 pha nghiêm ngặt
B
Ắ
T Đ
Ầ
U
K
Ế
T THÚC
Thời gian giaodịch
Nhận khoá
Giải phóng khoá
ĐI
Ể
M KHOÁ
B
Ắ
T Đ
Ầ
U
K
Ế
T THÚC
Thời gian sử dụng
mục dữ liệu
Nhận khoá
Giải phóng khoá
9
2.2.2.1 Thuậttoán khoá 2 pha tập trung (Centralized 2PL)
Hình 2. 4: Cấu trúc giao tiếp của khoá 2 pha trung tâm
2.2.2.2 Thuậttoán khoá 2 pha phân tán (D2PL)
Hình 2. 5: Cấu trúc liên lạc của khoá 2 pha phân tán
Bộ xử lý dữ liệu tại
các site tham gia
TM điều phối TM site trung tâm
Yêu cầu khoá
(1)
Cấp khoá
(2
)
Thao tác
(3
)
Kết thúc thao tác
(
4
)
Giải phóng khoá
(
5
)
Các thao tác (yêu cầu khoá)
(1)
TM c
ộ
ng tác
B
ộ
l
ậ
p l
ị
ch tham gia
Các DM tham gia
Thao tác
(2)
Kết thúc thao tác
(3)
Giải phóng khoá
(4)
10
2.2.3 Thuậttoánđiềukhiểntươngtranh dựa trên timestamp
Không giống như các thuậttoán dựa trên khoá, các thuậttoánđiềukhiểntươngtranh
dựa trên timestamp không cố gắng duy trì khả năng khả tuần tự bằng việc loại trừ lẫn
nhau. Thay vì như vậy, chúng lựa chọn theo một độ ưu tiên một thứ tự khả tuần tự và thực
thi các giao tác thích hợp. Để thiết lập thứ tự này, bộ quản lý giao tác gán cho mỗi giao
tác T
i
một timestamp duy nhất ts(T
i
) tại mỗi lần nó khởi chạy.
2.2.3.1 Thuậttoán thứ tự timestamp cơ bản
Thuật toán TO cơ bản thực hiện minh bạch quy tắc TO. Bộ quản lý giao tác cộng tác
gán timestamp cho mỗi giao tác, xác định các site nào lưu trữ mục dữ liệu nào và gửi một
vài thao tác đến các site nào.
2.2.3.2 Thuậttoán thứ tự timestamp bảo lưu
Thuật toán TO cơ bản không bao giờ gây ra các thao tác chờ mà thay vào đó là tái
khởi động chúng. Chúng ta cũng chỉ ra rằng nó là ưu điểm cho các deadlock tự phát
nhưng nó cũng là nhược điểm bởi vì số lần tái khởi động sẽ giảm hiệu năng thực hiện.
Thuật toán TO bảo lưu cố gắng làm giảm sự quá tải của hệ thống bằng việc giảm số lần
tái khởi động của giao tác.
2.2.3.3 Thuậttoán thứ tự timestamp đa phiên bản
TO đa phiên bản là việc cố gắng loại bỏ giá trị quá tải tái khởi động của các giao tác.
Hầu như TO đa phiên bản chỉ liên quan đến các CSDL tập trung, vì vậy chúng ta sẽ đề
cập đến nó ít hơn. Tuy nhiên, chúng ta nên chỉ ra rằng thuậttoán TO đa phiên bản là một
cơ chế điềukhiểntươngtranh phù hợp cho các hệ quản lý CSDL mà được thiết kế để hỗ
trợ các ứng dụng có sử dụng các phiên bản của các đối tượng CSDL.
2.3Các thuậttoánđiềukhiểntươngtranh lạc quan
Đối với các thuậttoán bi quan việc thực thi bất cứ các thao tác nào của mộtgiao tác
theo các pha tuần tự sau: xác nhận (V), đọc (R), tính toán (C), ghi (W) (hình 2.13). Nói
chung, thứ tự này là đúng đối với giao tác cập nhật cũng như đối với các thao tác của nó.
[...]... DỤNG THUẬTTOÁNĐIỀUKHIỂNTƯƠNGTRANHTRONGGIAODỊCH THƯƠNG MẠI ĐIỆN TỬ 3.1 Đánh giá hiệu quả của các thuậttoánđiềukhiểntươngtranhTrong chương 2, chúng ta đã tìm hiểu quá trình quản lý giao tác (hình 3.1) vàphân tích 2 thuậttoánđiềukhiểntươngtranhtrong khi các quá trình này được thực hiện: lớp thuậttoán khoá 2 pha và lớp thuậttoán dựa vào timestamp Site 1 Giao tác Bộ quản trị giao tác... bản 3.2 Lựa chọn ứng dụng thuậttoánđiềukhiểntươngtranh và cài đặt thuậttoántronggiaodịch thương mại điện tử 3.2.1 Lựa chọn ứng dụng thuậttoánđiềukhiểntươngtranhtronggiaodịch thương mại điện tử Qua quá trình tìm hiểu và khảo sát, tôi lựa chọn thuật toánđiềukhiển tương tranh dựa trên timestamp để cài đặt cho ứng dụng thương mại trực tuyến.Việc lựa chọn thuậttoán này đảm bảo cho người... các giao thức khác như RESTFul hoặc kết hợp cả SOAP và RESTFul 2 Nghiên cứu việc kết hợp thuậttoán dựa trên timestamp và thuậttoán dựa trên khoá để điềukhiểntươngtranh khi có nhiều giaodịchtươngtranhđồngthời 3 Cải tiến thuậttoán dựa trên timestamp kết hợp với các ngưỡng ưu tiên để thực hiện điềukhiểntươngtranh 23 TÀI LIỆU THAM KHẢO [1] Chu Kỳ Quang (2003), Điềukhiểntươngtranh trong. .. Chương này đã đưa ra những nhận xét và đánh giá các thuậttoánđiềukhiểntươngtranh đã trình bày ở chương 2 Qua những đánh giá đã nêu ra, chương này đã lựa chọn thuậttoántrong việc cài đặt ứng dụng điềukhiểntươngtranhtronggiaodịch thương mại điện tử Chương này cũng trình bày ứng dụng thương mại điện tử mà đã được cài đặt thuậttoánđiềukhiểntươngtranh do tác giả thiết kế và viết ứng dụng 21... này có thể là cơ sở để mở ra một hướng mới trong việc phát triển khả năng điềukhiểntươngtranhtronggiaodịch thương mại điện tử Kết quả của luận văn là đưa ra một kiến trúc dựa trên web services sử dụng SOAP để gửi và nhận request từ người sử dụng Từ đó sẽ sử dụng thuậttoán dựa trên timestamp để thực hiện điềukhiểntươngtranh khi có xung đột giữa các giaodịchđồngthời Do đó, hướng nghiên cứu... nay Thứ hai, luận văn đã trình bày và phân tích một số thuậttoánđiềukhiển tương tranh được cài đặt trên các hệ quản trị cơ sở dữ liệu phân tán hiện nay Thứ ba, dựa vào phân tích các thuậttoán luận văn thực hiện nhận xét và đánh giá các thuậttoán đã được trình bày Qua đó lựa chọn và thực hiện cài đặt thuậttoánđiềukhiểntươngtranh vào ứng dụng giaodịch thương mại điện tử 22 KHUYẾN NGHỊ VÀ KHẢ... văn đã tìm hiểu tổng quan về quản lý giao tác và điềukhiểntươngtranh Về phần quản lý giao tác, đã trình bày được các tính chất, đặc điểm của giao tác và nguyên nhân có thể gây ra tươngtranh khi nhiều thao tác của giao tác thực hiện đồngthời trên cùng một đối tượng Từ nguyên nhân gây ra tương tranh, luận văn đã trình bày tổng quan về cơ chế điềukhiểntươngtranh đã và đang được áp dụng hiện nay... toán này đảm bảo cho người sử dụng không bị mất mát thông tin nhưng vẫn đảm bảo chất lượng sử dụng 3.2.2 Cài đặt ứng dụng thuật toánđiềukhiển tương tranhtronggiaodịch thương mại điện tử Trong phần này chúng ta cài đặt thuật toánđiềukhiển tương tranhtrong môi trường giaodịch thương mại điện tử phân tán Chương trình được viết trên nền Microsoft dotNet và chạy ổn định trên hầu hết các môi trường... Đọc Tính toán Ghi Hình 2 6: Các pha thực thi giao tác bi quan Các thuậttoán lạc quan làm trễ pha xác nhận đến trước pha ghi (hình 2.14) Do đó, một thao tác chấp thận một bộ lập lịch lạc quan sẽ không bao giờ bị trễ Đọc Tính toán Xác nhận Ghi Hình 2 7: Các pha thực thi giao tác lạc quan Một ưu điểm của các thuật toánđiềukhiển tương tranh lạc quan là khả năng của nó cho phép một cấp độ tươngtranh cao... ra deadlock - Thuậttoán dựa trên timestamp: o Thuậttoán dựa trên timestamp cơ bản: lịch được tạo ra là tuần tự, tránh được deadlock vì khởi động lại giao tác khi xuất hiện tranh chấp Nhưng vì thực hiện tái khởi động lại nhiều lần nên có thể giảm hiệu xuất và tăng thời gian chờ o Thuậttoán dựa trên timestamp bảo lưu: cũng tương tự như thuậttoán dựa trên timestamp cơ bản nhưng thuậttoán bảo lưu sẽ . dụng thuật toán điều khiển tương tranh và cài đặt thuật
toán trong giao dịch thương mại điện tử
3.2.1 Lựa chọn ứng dụng thuật toán điều khiển tương tranh. tương tranh để đưa ra ứng
dụng điều khiển, luận văn: Một số thuật toán điều khiển tương tranh trong giao dịch
đồng thời được thực hiện gồm các phần