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ẬT TOÁN ĐIỀU KHIỂN TƯƠNG TRANH
TRONG GIAO DỊCH ĐỒNG THỜ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ều khiển tương tranh 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ểu khiển tương tranh 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ương tranh tài nguyên khi nhiều giao dị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ương tranh khi nhiều giao dị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ật toá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ật toán điều khiển 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 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ương tranh dữ liệu và
yêu cầu phải giải quyết xung đột dữ liệu bằng điều khiển tương tranh.
Chương 2 của luân văn nêu rõ chi tiết của các thuật toán trong điều khiển tương tranh
và chỉ ra một số 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ật toán để lựa
chọn thuật toán trong ứng dụng điều khiển tương tranh trong môt số giao dịch đồng thờ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ƯƠNG TRANH
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ột giao 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ột giao 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ột số dữ liệu. Điều này được
dùng làm cơ sở nhận biết một giao 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ột giao 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ột giao 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ột giao 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ột giao 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ột giao tác chỉ đơn giản là tính đúng đắn của
nó. Nói cách khác, một giao 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ột giao 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ột giao 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ột giao 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ột giao 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ột sô
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ều khiển tương tranh
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ều khiển tương tranh 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ều khiển tương tranh.
7
CHƯƠNG 2: MỘT SỐ THUẬT TOÁN ĐIỀU KHIỂN TƯƠ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ật toán điều khiển tương tranh
2.2.1 Phân loại các cơ chế điều khiển tương tranh
Chúng ta sẽ xếp các cơ thể điều khiển đồng thời thành hai nhóm lớn: các phương pháp
điều khiển đồng thời lạc quan và các phương pháp điều khiển đồng thời bi quan. Các
thuật toán bi quan đồng bộ hóa việc thực hiện đồng thời của các giao tác trước khi thực
hiện chúng, trong khi đó các thuật toá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ật toán điều khiển tương tranh
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ều khiển tương tranh
Bi quan Lạc quan
8
2.2.2 Các thuật toán điều khiển tương tranh dựa trên khoá
Ý tưởng chính của việc điều khiển tương tranh bằng khóa là bảo đảm dữ liệu dùng
chung cho các thao tác tương tranh chỉ được truy xuất mỗi lần một giao 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ột giao tác
khác. Vì vậy yêu cầu khóa của một giao 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ật toá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ật toá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 giao dị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ật toá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ật toá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ật toán điều khiển tương tranh dựa trên timestamp
Không giống như các thuật toán dựa trên khoá, các thuật toán điều khiển tương tranh
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ật toá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ật toá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ật toá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ật toán TO đa phiên bản là một
cơ chế điều khiển tương tranh 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ật toán điều khiển tương tranh lạc quan
Đối với các thuật toán bi quan việc thực thi bất cứ các thao tác nào của một giao 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ó.
11
Hình 2. 6: Các pha thực thi giao tác bi quan
Các thuật toá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ễ.
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ều khiển tương tranh lạc quan là khả năng của nó
cho phép một cấp độ tương tranh cao hơn. Nó chỉ ra là các xung đột giao tác là rất hiếm
khi xảy ra, cơ chế lạc quan thực hiện tốt hơn cơ chế khoá. Vấn đề chính với các thuật toán
lạc quan là yêu cầu khả năng lưu trữ cao hơn. Để xác nhận một giao tác, cơ chế lạc quan
phải lưu tập thao tác ghi và tập thao tác đọc cả một vài giao tác đã kết thúc khác. Đặc biệt,
các tập thao tác ghi và thao tác đọc của các giao tác đã kết thúc đã được thực hiện khi
giao tác T
ij
đến site j mà cần được lưu để xác thực T
ij
. Hiển nhiên, điều này tăng chi phí
lưu trữ.
2.4Quản lý Deadlock
Như được chỉ ra trước đó, bất kỳ thuật toán điều khiển tương tranh dựa trên khoá nào
có thể gây ra deadlock khi có sự loại trừ lẫn nhau trong việc truy cập tài nguyên dùng
chung (dữ liệu) và các giao tác phải đợi trên các tài nguyên bị khoá. Hơn nữa, như chúng
ta đã tìm hiểu, một vài thuật toán dựa trên thứ tự timestamp cũng yêu cầu các giao tác đợi
cũng có thể gây ra deadlock. Do đó, các hệ quản trị CSDL phân tán yêu cầu các thủ tục để
điều khiển chúng.
Có 3 phương thức để điều khiển deadlock là: ngăn ngừa deadlock, phòng tránh
deadlock, phát hiện và giải quyết deadlock.
Xác nhận Đọc Tính toán
Ghi
Đọc Tính toán
Xác nhận Ghi
12
2.4.1 Ngăn ngừa deadlock
Các phương pháp ngăn ngừa deadlock đảm bảo rằng các deadlock không thể xuất hiện
tại nơi đầu tiên. Do đó, bộ quản lý giao tác kiểm tra một giao tác tại lúc nó bắt đầu khởi
tạo và không cho phép nó thực thi nếu nó có thể gây ra deadlock. Để thực hiện việc kiểm
tra này, nó yêu cầu tất cả các mục dữ liệu mà giao tác có thể được truy cập được khai báo
trước. Bộ quản lý giao tác sẽ cho phép giao tác thực thi nếu tất cả các mục dữ liệu mà nó
truy cập là sẵn có.
2.4.2 Phòng tránh deadlock
2.4.3 Phát hiện và giải quyết deadlock
Phát hiện và giải quyết deadlock là phương phức phổ biến và tốt nhất được biết đến.
Phát hiện được thực hiện bằng việc đưa ra các vòng trong đồ thị đợi toàn cục.
Có 3 phương pháp phát hiện các deadlock phân tán: phát hiện tập trung, phát hiện
phân tán và phát hiện deadlock kế thừa.
2.4.3.1 Phát hiện deadlock tập trung
Phương pháp này đơn giản và là lựa chọn tự nhiên nếu thuật toán điều khiển tương
tranh là thuật toán 2 pha tập trung. Tuy nhiên vấn đề về điểm yếu và quá tải liên lạc vao
cũng cần đề cập đến.
2.4.2.2 Phát hiện deadlock kế thừa
Một lựa chọn cho việc phát hiện deadlock tập trung là xây dựng một gia phả của các
bộ phát hiện deadlock. (hình 2.18).
13
Hình 2. 8: Phát hiện deadlock kế thừa
2.4.2.3 Phát hiện deadlock phân tán
Các thuật toán phát hiện deadlock phân tán uỷ thác trách nhiệm phát hiện các
deadlock cho các site thành phần. Do đó, giống như phát hiện deadlock kế thừa, có các bộ
phát hiện deadlock cục bộ tại mỗi site mà thông tin các đồ thị đợi cục bộ của chúng đến
site khác (trong thực tế, chỉ có các vòng deadlock vô tận là được gửi).
1.5 Kết luận chương
Chương 2 của luận án này trình bày chi tiết một số thuật toán điều khiển tương tranh
được cài đặt trong các DBMS và trên các site thương mại hiện nay. Từ nội dung của
chương 2 này, luận án đã chỉ rõ nguyên nhân gây ra deadlock và phương pháp hạn chế và
giả quyết các deadlock có thể xảy ra. Và từ chi tiết các thuật toán đã trình bày trong
chương này, làm cơ sở để thực hiện đánh giá và cài đặt trong chương 3.
DD
0x
DD
11
DD
12
DD
21
DD
22
DD
23
DD
24
Site 1
Site2
Site 3
Site 4
14
CHƯƠNG 3: ĐÁNH GIÁ THUẬT TOÁN VÀ LỰA CHỌN ỨNG
DỤNG THUẬT TOÁN ĐIỀU KHIỂN TƯƠNG TRANH TRONG
GIAO DỊCH THƯƠNG MẠI ĐIỆN TỬ
3.1 Đánh giá hiệu quả của các thuật toán điều khiển tương tranh
Trong 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ật toán điều khiển tương tranh trong khi các quá trình này được thực hiện: lớp thuật
toán khoá 2 pha và lớp thuật toán dựa vào timestamp.
Hình 3. 1: Lược đồ quản lý giao tác
Chúng ta có thể rút ra các đặc điểm của chúng:
1. Có 2 cơ chế cơ bản để tránh thực thi không tuần tự (thực hiện tương tranh):
WAITING và RESTARTING.
2. Thứ tự thực thi của 2 giao tác được xác định khác nhau.
3. Cơ chế xử lý khi xảy ra deadlock.
Bộ lập lịch
Bộ quản trị
dữ liệu
Bộ quản trị
dữ liệu
Bộ quản trị
dữ liệu
Bộ lập lịch
Bộ lập lịch
Site 1
Site 2
Site n
Dữ liệu
Dữ liệu
Dữ liệu
Giao tác
Bộ quản trị
giao tác
Giao tác
Giao tác
Giao tác
Giao tác
Giao tác
Bộ quản trị
giao tác
Bộ quản trị
giao tác
15
Qua các đặc điểm của các thuật toán có thể đánh giá các thuật toán như sau:
- Thuật toán dựa trên khoá:
o Với thuật toán khoá 2 pha thì các giao tác được thực thi với lịch là khả tuần
tự, nhưng dễ xảy ra DeadLock và có thể dẫn đến huỷ bỏ hàng loạt
(Cascading Rollback).
o Với thuật toán khoá 2 pha nghiêm ngặt thì lịch cũng được tạo ra tuần tự,
tránh được trường hợp huỷ bỏ hàng loạt nhưng vẫn có thể xảy ra Deadlock
và khi lock dữ liệu thì dữ liệu bị chiếm giữ đến cuối.
o Thuật toán khoá 2 pha tập trung: các giao tác được quản lý trên một bộ quản
lý giao tác duy nhất nên tránh được tình trạng thất lạc, việc cấp khoá cũng
dễ dàng hơn nhưng khi mật độ giao tác tăng cao thì dẫn đến tắc nghẽn tại vị
trí trung tâm, dẫn đến thất lạc dữ liệu và độ tin cậy không cao.
o Thuật toán khoá 2 pha phân tán: các giao tác được quản lý trên các bộ quản
lý giao tác khác nhau trên các site khác nhau nên tránh được việc ùn tắc khi
mật độ giao tác tăng lên. Ngoài ra khi một giao tác yêu cầu khoá bộ quản lý
giao tác sẽ thực hiện khoá tất cả các đối tượng mà giao tác truy cập đến khi
giao tác kết thúc. Điều này làm cho dữ liệu bị chiếm giữ đến cuối làm cho
các giao tác khác phải chờ với một thời gian khá dài. Bên cạnh đó, vì được
quản lý trên nhiều site khác nhau nên việc liên lạc giữa các site có thể bị rối
(nested), là nguyên nhân gây ra deadlock.
- Thuật toán dựa trên timestamp:
o Thuật toá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ật toán dựa trên timestamp bảo lưu: cũng tương tự như thuật toán dựa
trên timestamp cơ bản nhưng thuật toán bảo lưu sẽ tạo ra các độ trễ trong
việc truy cập vào dữ liệu, giảm được tình trạng tái khởi động lại nhiều lần,
tăng hiệu năng xử lý. Nhưng vì có độ trễ giữa các giao tác nên có thể gây ra
16
hiện tượng deadlock khi các giao tác khác truy cập cùng đến một mục dữ
liệu mà thời gian timeout của mỗi giao tác là rất lớn.
o Thuật toán dựa trên timestamp đa phiên bản: cũng giống như các thuật toán
dựa trên timestamp trên nhưng thuật toán này giảm được việc tái khởi động
và tránh được việc tạo độ trễ trong việc truy xuất dữ liệu, tăng được hiệu
năng xử lý và độ tin cậy cao hơn. Tuy nhiên, việc tạo ra đa phiên bản dẫn
đến chi phí lưu trữ dữ liệu sẽ cao hơn rất nhiều lần, ngoài ra khi thực hiện
lọc kết hợp dữ liệu, việc xử lý dữ liệu trở nên phức tạp. Điều này yêu cầu
các hệ quản trị cơ sở dữ liệu thực hiện xử lý dữ liệu tại các phiên bản một
các trong suốt và quản lý dữ liệu một cách nhất quán dữa các phiên bản.
3.2 Lựa chọn ứng 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 trong giao dị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ều khiể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ật 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ều khiển tương tranh trong giao dịch
thương mại điện tử
Trong phần này chúng ta cài đặt thuật toán điều khiển tương tranh trong môi trường
giao dị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 windows hỗ trợ NetFramework version 2 trở
lên.
17
Kiến trúc chương trình được biểu diễn như sau:
Hình 3. 2: Kiến trúc chương trình thương mại điện tử
Chương trình cài đặt gồm 3 phần:
- Phần 1,Web Service
Môi trường Web
Môi trường Windows
Ứng dụng
Ứng dụng
Ứng dụng
Web Services
Web Services
Database
Database
Web
Browser
Web
Server
18
Hình 3. 3: Các method được cài đặt trong Web Service
- Phần 2, Website thương mại phục vụ cho người sử dụng giao dịch trực tuyến qua
các Browser hỗ trợ môi trường web.
19
Hình 3. 4: Giao diện Website thương mại
- Phần 3, ứng dụng được chạy trên Windows trên môi trường của người sử dụng.
Hình 3. 5: Giao diện ứng dụng giao dịch thương mại trên môi trường người sử dụng
20
3.3 Kết luận chương
Chương này đã đưa ra những nhận xét và đánh giá các thuật toán điều khiển tương
tranh đã trình bày ở chương 2. Qua những đánh giá đã nêu ra, chương này đã lựa chọn
thuật toán trong việc cài đặt ứng dụng điều khiển tương tranh trong giao dị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ật
toán điều khiển tương tranh do tác giả thiết kế và viết ứng dụng.
21
KẾT LUẬN
Luận văn đã tập trung 3 vấn đề chính:
Thứ nhất, luận văn đã tìm hiểu tổng quan về quản lý giao tác và điều khiển tương
tranh. 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ương tranh khi nhiều thao tác của giao tác thực hiện đồng thờ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ều khiển tương tranh đã và đang được áp dụng hiện nay.
Thứ hai, luận văn đã trình bày và phân tích một số thuật toán điều khiể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ật toán luận văn thực hiện nhận xét và đánh giá các
thuật toán đã được trình bày. Qua đó lựa chọn và thực hiện cài đặt thuật toán điều khiển
tương tranh vào ứng dụng giao dịch thương mại điện tử.
22
KHUYẾN NGHỊ VÀ KHẢ NĂNG MỞ RỘNG
Các kết quả nghiên cứu của luận văn 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ều khiển tương tranh trong giao dị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ật toán dựa trên timestamp để
thực hiện điều khiển tương tranh khi có xung đột giữa các giao dịch đồng thời. Do đó,
hướng nghiên cứu tiếp theo xuất phát từ luận văn này được đề xuất như sau:
1. Nghiên cứu các kiến trúc Web services dựa trên 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ật toán dựa trên timestamp và thuật toán dựa trên
khoá để điều khiển tương tranh khi có nhiều giao dịch tương tranh đồng thời.
3. Cải tiến thuật toán dựa trên timestamp kết hợp với các ngưỡng ưu tiên để thực
hiện điều khiển tương tranh.
23
TÀI LIỆU THAM KHẢO
[1] Chu Kỳ Quang (2003), ”Điều khiển tương tranh trong hệ thống tin học Dịch vụ tiết
kiệm bưu điện”, Tạp chí Bưu Chính Viễn Thông.
[2] Papadimitriou, Christos H. (1986), The theory of database concurrency control,
Computer Science Press.
[3] Jeffrey D. Ullman (1988), Principles of Database and Knowledge: Base Systems,
Computer Science Press.
[4] Eswaran, K. P., Gray, J. N., Lorie, R. A., and Traiger, I. L. (1976), “The notions of
consistency and predicate locks in a database system”, Communications of the ACM,
19(11).
[5] Mohan, C., Lindsay, B., and Obermarck, R. (1986), “Transaction management in the
R* distributed database management system”, ACM Transactions on Database Systems,
11(4), pp.378-396.
[6] The Tandem Database Group, (1987, revised 1988), “NonStop SQL, A Distributed,
High-Performance, High-Availability Implementation of SQL”, Tandem Systems Review.
[7] A. Borr (1988), “High-Performance SQL through low-level System Intergration”,
Tandem Systems Review, 4(2), pp.63-72.
[8] H.T. Kung and John T. Robinson (1981), “On Optimistic Methods of Concurrency
Control”, ACM Transactions on Database Systems, 6(2), pp.213-226.
[9] Abadi, D., Carney, D., Cetintemel, U., Cherniack, M., Convey, C., Lee, S.,
Stonebraker,M., Tatbul, N., and Zdonik, S (2003) “A new model and architecturefor data
stream management”, The International Journal on Very Large Data Bases, 12(2), pp.
120-139.
[10] Lecture (2008),“Distributed Concurrency Control”, Tsinghua Universary.
[11] Dean Leftingwell (2011), “Agile Software Requirements: Lean Requirements
Practices for Teams, Programs, and the Enterprise”, Agile Software Development Series.
[12] Özsu, M. Tamer, Valduriez, Patrick (2011), “Principles of distributed database
systems”, Springer.