Hệ thống CSDL thời gian thực là sự kết hợp các hệ thống thời gian thực và hệ thống CSDL, trong đó ngoài việc đóng vai trò tương tự như các hệ quản trị CSDL truyền thống gồm lưu trữ, cung
Trang 1CÁC THUẬT TOÁN ĐIỀU KHIỂN TƯƠNG TRANH VÀ LẬP LỊCH TRONG CƠ SỞ DỮ LIỆU THỜI GIAN THỰC
GIẢNG VIÊN HƯỚNG DẪN: PGS.TS NGUYỄN HÀ NAM
NHÓM THỰC HIỆN:
(Nhóm 17) LƯU MINH ĐỨCCHU THỊ THẮM
HÀ NỘI – 03/2012
Trang 2MỞ ĐẦU 3
CHƯƠNG 1: CÁC HỆ THỐNG CSDL THỜI GIAN THỰC .4
1.1 Định nghĩa CSDL thời gian thực 4
1.2 Khái niệm về giao dịch và tính khả tuần tự 5
1.3 Mô hình CSDL thời gian thực 6
1.4 Lập lịch các giao dịch CSDL thời gian thực 7
1.5 Quản lý bộ nhớ 11
1.6 Lập lịch đọc/ghi (I/O) 13
CHƯƠNG 2: MỘT SỐ VẤN ĐỀ CHÍNH
TRONG CÁC HỆ THỐNG CSDL THỜI GIAN THỰC 17
2.1 Điều khiển đồng thời 15
2.2 Điều khiển tiếp nhận (Admission Control) 27
2.3 Quản lý bộ nhớ (Buffer management) 28
2.4 Lập lịch đĩa (Disk Scheduling) 31
KẾT LUẬN 32
TÀI LIỆU THAM KHẢO 33
Trang 3MỞ ĐẦU
Trong những năm gần đây, các hệ thống cơ sở dữ liệu (CSDL) thời gian thực
đã và đang ngày càng được nghiên cứu và ứng dụng rộng rãi trong thực tế Hệ thống CSDL thời gian thực là sự kết hợp các hệ thống thời gian thực và hệ thống CSDL, trong đó ngoài việc đóng vai trò tương tự như các hệ quản trị CSDL truyền thống gồm lưu trữ, cung cấp các chức năng truy vấn và xử lý dữ liệu, hệ thống CSDL thời gian thực còn phải đáp ứng các yêu cầu về mặt thời gian đối với dữ liệu được quản lý, các ràng buộc thời gian của giao dịch, và các mục tiêu xác định về mặt hiệu năng
Các lĩnh vực ứng dụng CSDL thời gian thực bao gồm cơ sở hạ tầng mạng, viễn thông, thị trường tài chính, hàng không với các ứng dụng điển hình như hệ thống điều khiển không lưu, giao dịch cổ phiếu chứng khoán, đặt chỗ máy bay, du lịch, tính cước trả trước viễn thông Với sự phát triển nhanh chóng của mạng internet, viễn thông và các dịch vụ toàn cầu hóa, đòi hỏi phải có những hệ thống CSDL thời gian thực để đáp ứng được các yêu cầu của người dùng
Trong lĩnh vực viễn thông, đang có sự phát triển vượt bậc của các thuê bao di động với tỷ lệ các thuê bao trả trước chiếm tới hơn 80% Do đó, bài toán tính cước cho thuê bao điện thoại di động là hết sức quan trọng Với xu hướng người dùng chuyển sang sử dụng thuê bao di động mà dịch vụ trả trước là phần lớn, và trong tương lai mạng viễn thông được nâng cấp lên thế hệ 4G với rất nhiều dịch vụ phong phú, đa dạng thì các yêu cầu đặt ra cho bài toán tính cước trả trước là hết sức thiết thực, cấp bách Đó là làm sao phải tính toán được nhanh chóng, chính xác, kịp thời mà vẫn phải đảm bảo được hoạt động của mạng lưới
Như vậy, với thực tại và định hướng phát triển nêu trên, việc nghiên cứu các vấn đề trong CSDL thời gian thực đặc biệt là yếu tố giải quyết tương tranh và lập lịch
là một trong những việc làm rất cấp bách
Trang 4CHƯƠNG 1: CÁC HỆ THỐNG CSDL THỜI GIAN THỰC
Nội dung chính của chương này trình bày đầy đủ toàn bộ những lĩnh vực liên quan của các Hệ thống CSDL thời gian thực và phân tích một số chủ đề đáng chú ý Mở đầu chương là phần giới thiệu các khái niệm về giao dịch và tính khả tuần tự (serializability) thể hiện tính đúng đắn của các hệ CSDL truyền thống Phần tiếp theo trình bày định sự khác biệt giữa các hệ thống cấp thiết theo thời gian và các hệ CSDL phi thời gian thực, và trình bày một mô hình của một Hệ CSDL thời gian thực để phác họa sự pha trộn của các tài nguyên liên quan và biểu diễn các thành phần quan trọng cần xem xét
1.1 Định nghĩa CSDL thời gian thực
CSDL thời gian thực là một hệ thống tích hợp những đặc điểm chung của hệ thống thời gian thực và CSDL Nghĩa là, hệ thống CSDL thời gian thực có nhiệm vụ xử lý
các giao dịch CSDL và đáp ứng các yêu cầu ràng buộc xác định về mặt thời gian của
hệ thống
Trên thực tế, việc thiết kế tổng thể một hệ thống CSDL thời gian thực bao hàm các vấn đề có liên quan như sau:
1 Các mô hình hệ thống CSDL thời gian thực
2 Lập lịch các giao dịch CSDL thời gian thực
a Điều khiển đồng thời
b Giải quyết tương tranh
c Tắc nghẽn
3 Khả năng chịu lỗi và khắc phục sự cố
4 Điều khiển tiếp nhận (Admission Control)
Trang 59 Giảm thiểu hỗ trợ giao dịch, nghĩa là nới lỏng tính khả tuần tự (Relaxing Serializability)
10 Tính bất biến truy nhập (Access Invariance)
11 Khả năng dự báo trước (Predictability)
Do sự pha trộn của nhiều vấn đề, các giới hạn, và mục đích nghiên cứu, nên ở đây chỉ chú ý đến một số vấn đề trọng tâm Các vấn đề khác sẽ được nghiên cứu sau
1.2 Khái niệm về giao dịch và tính khả tuần tự
Trạng thái của một giao dịch bao gồm các bản ghi, sự xác nhận về các giá trị của những bản ghi này, và một tập những chuyển đổi được phép có thể áp dụng cho
các giá trị của những bản ghi đó Những sự xác nhận này được gọi là những ràng
buộc nhất quán.
Một điều có lẽ cần thiết để tạm thời vi phạm tính nhất quán của trạng thái hệ thống trong khi sửa nó Vì vậy, để chuyển đổi một trạng thái hệ thống nhất quán sang một trạng thái nhất quán khác, hệ thống cung cấp các tập hành động theo dạng các
hoạt động đọc và ghi Một giao dịch là một tập của những hành động như vậy, trong
khi bao gồm một sự chuyển đổi nhất quán của trạng thái hệ thống Mỗi giao dịch, khi được thực thi một mình, sẽ chuyển đổi một trạng thái nhất quán thành một trạng thái nhất quán mới; nghĩa là, các giao dịch bảo trì tính nhất quán của thông tin CSDL thời gian thực
Các hệ thống quản lý CSDL truyền thống (DBMS) cấm những sự không nhất quán bằng cách thỏa mãn bốn tính chất được kết hợp với các giao dịch, được gọi là
Trong khi mỗi giao dịch duy trì tính nhất quán của CSDL tại các giới hạn của
nó, các giao thức phục hồi được sử dụng để đảm bảo các tính chất nguyên tử và tính
bền Cuối cùng, tính cô lập có thể được bảo đảm bởi các giá trị điều khiển đồng thời.
Trang 6Một sự thực thi được nói là có tính khả tuần tự nếu nó sinh ra cùng kết quả và
có cùng ảnh hưởng đến CSDL như một số sự thực hiện tuần tự của cùng các giao dịch
Do các thực thi tuần tự là đúng đắn, và do mỗi thực thi tuần tự hóa có cùng ảnh hưởng
giống như một thực thi tuần tự, nên tính khả tuần tự trở thành khái niệm của tính đúng
đắn trong bất kỳ hệ quản trị CSDL thời gian thực nào
1.3 Mô hình CSDL thời gian thực
Các giao dịch trong một hệ thống CSDL thời gian thực đi qua các thành phần khác nhau cho đến khi kết thúc Trong phần này đã xét một mô hình hệ thống CSDL thời gian thực, như thể hiện trong hình 2.1 dưới đây, và mô tả các thành phần khác nhau của nó Phần còn lại sẽ xét hệ thống CSDL thời gian thực sẽ thừa nhận các giao dịch
là đơn vị có thể lập lịch ngược với các tác vụ trong các hệ điều hành thời gian thực truyền thống Nên, không như một số mô hình trong đó tải của hệ thống bao gồm chỉ các tác vụ, và mỗi tác vụ có thể chứa một số các giao dịch trong đó, mô hình này bao gồm có các giao dịch như các đơn vị lập lịch bộ đếm cho các tác vụ Trong mô hình này các tác vụ là đơn vị có thể lập lịch chính Một mô hình phải xét các vấn đề sau:
- Kiểu của thời hạn cuối được kết hợp với một tác vụ, nghĩa là, soft, hard hay firm
- Kiểu của thời hạn cuối được kết hợp với các giao dịch trong một tác vụ; nghĩa là soft, firm, hay hard
- Suy diễn một thời hạn cuối cho mỗi giao dịch trong một tác vụ cũng như tất
cả các tác vụ còn lại là phải khả thi lúc đầu,
- Các giao dịch trong một tác vụ là hợp tác hoặc độc lập,
- Sự thực thi của các giao dịch trong một tác vụ là tuần tự hoặc đồng thời,
- Nếu một thời hạn cuối của giao dịch là soft, thì những gì xảy ra nếu một giao dịch nhỡ thời hạn cuối của nó? Đó là, nếu một giao dịch được phép thực hiện đã qua thời hạn cuối của nó, thì một hành vi như vậy có thể hủy hoại sự thực thi của các giao dịch khác trong tác vụ không?
- Nếu sự cố của giao dịch báo hiệu sự cố của tác vụ, thì sự cố của một giao
Trang 7Hình 1.1 Mô hình CSDL thời gian thực
Mô hình trên được đề xuất với những hiểu biết tốt nhất đến thời điểm này, tuy nhiên, một sự xem xét mô hình kỹ lưỡng vẫn là một lĩnh vực nghiên cứu mở Mô hình trên, nói cách khác, chỉ gồm các giao dịch, trong đó mỗi giao dịch có các thuộc tính giống như các tác vụ trong các hệ điều hành thời gian thực truyền thống; ví dụ, các thời hạn cuối, tính định kỳ, tính cấp thiết, mức ưu tiên, vv Hơn nữa, CSDL tự nó được xét với sự lập lịch các truy cập đến CSDL, mà là một vấn đề riêng biệt với lập lịch CPU Không những thế, lập lịch CPU được thừa nhận tồn tại ở một mức thấp hơn mức CSDL
Các mức ưu tiên có thể được gán cho các giao dịch thời gian thực theo nhiều chiến lược giống nhau được dùng để gán mức ưu tiên cho các tác vụ thời gian thực
1.4 Lập lịch các giao dịch CSDL thời gian thực
Yếu tố quyết định hiệu năng cơ bản trong một hệ thống CSDL thời gian thực là chính sách được sử dụng để lập lịch các giao dịch Một chính sách lập lịch xác định khi nào dịch vụ được cấp cho giao dịch, do đó trực tiếp ảnh hưởng đến việc giao dịch
có đáp ứng được thời hạn cuối của nó hay không Một điểm đặc biệt của các hệ thống CSDL thời gian thực, ngoài các tài nguyên vật lý chuẩn, là các đối tượng dữ liệu được
Điều khiển tiếp
Yêu cầu/giải phóng một đối tượng dữ liệu Chặn
Đĩa
Nhỡ
Đạt
NgắtGửi
Gửi lại
Hủy
Xác nhận
Trang 8lưu trong CSDL, và các giao dịch truy nhập dữ liệu này phải được lập lịch theo các mục tiêu hiệu năng thời gian thực.
Quy trình lập lịch của các giao dịch trong một hệ thống CSDL thời gian thực bao gồm
điều khiển đồng thời (concurrency control) và giải quyết tương tranh (conflict resolution) và gián tiếp bao hàm phục hồi Trong chương này sẽ thảo luận ngắn gọn
hai vấn đề trên, phần chi tiết sẽ được trình bày trong chương sau
1.4.1 Điều khiển đồng thời
Một giao dịch CSDL điển hình là một chuỗi các thao tác được thực hiện trên
một CSDL Các hệ CSDL thông thường được tập trung vào các tính chất ACID –
atomicity – nguyên tử, consistency – nhất quán, isolation – cô lập, và durability – tính bền Hệ quản trị CSDL phải bảo đảm những tính chất này trong khi cung cấp tối đa sự đồng thời để tăng thông lượng, và duy trì tính đúng đắn của CSDL Dữ liệu là tài nguyên duy nhất, và vì thế yêu cầu một hình thức lập lịch riêng biệt so với các tài nguyên phần cứng khác được xét Tính khả tuần tự là khái niệm được thiết lập tốt về tính đúng đắn cho việc lập lịch xen kẽ các hành động giao dịch Các chính sách lập lịch truy nhập dữ liệu được sử dụng trong một hệ CSDL nói chung được tham chiếu đến như các giao thức điều khiển đồng thời Các giao thức điều khiển đồng thời bảo toàn tính toàn vẹn CSDL bằng cách giải quyết các thực thi đồng thời không tuần tự theo một cách mà bao gồm một trật tự tuần tự hóa trong số các giao dịch tranh chấp Nghĩa là, điều khiển đồng thời là một cơ chế để đảm bảo sự không giao thoa của thực thi giao dịch; đó là, tính cô lập của các giao dịch đang thực hiện đồng thời
1.4.2 Giải quyết tương tranh
Các tranh chấp thường là kết quả của các thực thi đồng thời của các giao dịch thực hiện các hành động không tương thích; nghĩa là, đọc và ghi trên cùng mục dữ liệu tại cùng thời điểm Các bộ lập lịch bất đồng khi phát hiện các tranh chấp tài nguyên trong số các giao dịch và cách thức trong đó các tranh chấp được giải quyết một khi chúng được tìm ra Với các tài nguyên CSDL dùng chung, giao dịch bị đoạt
quyền thường phải được hoàn tác nếu các cập nhật không đúng chỗ được sử dụng [3],
[5]
Trang 9Khi một giao dịch yêu cầu một khóa trên mục dữ liệu trong khi khóa đã bị giữ, trong chế độ tranh chấp, bởi một giao dịch khác, cả hai giao dịch đều có các ràng buộc thời gian, thì chỉ một giao dịch có thể giữ khóa Tranh chấp nên được giải quyết theo các đặc điểm của các giao dịch tương tranh.
Giải quyết tương tranh Wound-Wait dựa trên mức ưu tiên
Kỹ thuật Wound-Wait ban đầu được đề xuất bởi Rosenkrantz để tránh tắc
nghẽn Lược đồ ban đầu được thiết kế có sử dụng các nhãn thời gian Tuy nhiên, hai tác giả Abbott và Garcia-Molina đã sửa bản lược đồ để cho chúng sử dụng các mức ưu tiên thay vì các nhãn thời gian và được áp dụng cho phiên bản được sửa để giải quyết
tương tranh trong các hệ CSDL thời gian thực Phiên bản được sửa mới gọi là
High-Priority (HP) – Ưu tiên mức cao và như High-Priority-Abort (PA) – Hủy bỏ theo mức ưu tiên [2], [3] Phác họa thuật toán chung là như sau:
Gọi P(T i ) là ưu tiên của giao dịch T i
T r yêu cầu một khóa trên mục dữ liệu D
If (không tranh chấp) then T r truy nhập D
else - T h đang giữ mục dữ liệu được yêu cầu, giải quyết tương tranh như sau
if (P(T r ) > P(T h )) then T h bị hủy bỏ
else T r đợi khóa, nghĩa là, chặn.
Trong lược đồ HP, nếu hai giao dịch tham gia vào một tranh chấp, thì giao dịch
có mức ưu tiên thấp hơn sẽ bị hủy nhằm giải phóng tài nguyên theo yêu cầu cho giao dịch có mức ưu tiên cao hơn Để bảo trì tính khả tuần tự, giao dịch có mức ưu tiên thấp hơn bị đoạt quyền sẽ được hoàn tác, và khi được khởi động lại nó phải thực hiện
từ đầu Tuy nhiên, một giao dịch ưu tiên thấp hơn trong phương pháp HP được phép
đợi giao dịch có mức ưu tiên cao hơn Nên, tất cả các tranh chấp được giải quyết để
ưu tiên cho các giao dịch ưu tiên cao hơn Phụ thuộc vào cách thức các mức ưu tiên của các giao dịch được sinh ra, các giao thức giải quyết tương tranh khác nhau có thể được tạo
Trang 101.4.3 Tắc nghẽn
Sự sử dụng các lược đồ khóa có thể gây ra một sự tắc nghẽn, do đó yêu cầu phát hiện tắc nghẽn xảy ra, ngăn tắc nghẽn, hay tránh tắc nghẽn Trong phần này sẽ chỉ thảo luận sự phát hiện tắc nghẽn do nó là phương pháp được sử dụng nhiều nhất trong các hệ quản trị CSDL thông thường Một lược đồ phát hiện tắc nghẽn được gọi khi một giao dịch ở trong hàng đợi một mục dữ liệu bị khóa Bất cứ khi nào một tập các giao dịch tham gia vào một vòng đợi thì một tắc nghẽn sẽ xảy ra Nếu chu trình tắc nghẽn được phát hiện, một trong số các giao dịch liên quan trong chu trình phải bị hủy bỏ nhằm phá vỡ chu trình đó Trong những trường hợp như vậy, một giao dịch tham gia trong chu trình được chọn để hủy nhằm phá vỡ sự tắc nghẽn Trong một hệ CSDL thời gian thực, giao dịch bị hủy bỏ nên được chọn sao cho đảm bảo số lượng lớn nhất các giao dịch còn lại có thể đáp ứng được thời hạn cuối của chúng Các giao dịch trong bất kỳ hệ thống cấp thiết thời gian nào bị hủy bỏ sẽ được xét các yêu cầu thời gian của chúng ngoài việc hệ thống phải chịu một giá tối thiểu Năm chính sách giải quyết tắc nghẽn mà đưa các tính chất thời gian vào của các giao dịch và cái giá của các hành động bị hủy như sau:
Chính sách 1: Luôn luôn hủy giao dịch gọi phát hiện tắc nghẽn.
Chính sách 2: Lưu vết chu trình tắc nghẽn, và hủy giao dịch chậm đầu tiên gặp phải
trong một chu trình tắc nghẽn Nếu không có giao dịch chậm nào tìm thấy, thì hủy
giao dịch với thời hạn cuối lâu nhất.
Chính sách 3: Lưu vết chu trình tắc nghẽn, và hủy giao dịch chậm đầu tiên gặp phải
trong một chu trình tắc nghẽn Nếu không có giao dịch chậm nào tìm thấy, thì hủy
giao dịch với thời hạn cuối sớm nhất.
Chính sách 4: Lưu vết chu trình tắc nghẽn, và hủy giao dịch chậm đầu tiên gặp phải
trong một chu trình tắc nghẽn Nếu không có giao dịch chậm nào tìm thấy, thì hủy giao dịch ít cấp thiết nhất
Chính sách 5: Hủy giao dịch không khả thi với tính cấp thiết thấp nhất Nếu tất cả các
giao dịch là khả thi, thì hủy một giao dịch khả thi với tính cấp thiết thấp nhất Chính sách này là nhạy cảm với độ chính xác của thời gian tính toán vì nó yêu cầu thông tin
Trang 11về thời gian thực thi còn lại; nên, tổng các yêu cầu thời gian thực thi tại thời điểm bắt
đầu mỗi giao dịch phải được biết
1.5 Quản lý bộ nhớ
Khả năng sẵn sàng của bộ nhớ ảnh hướng đến thời gian đáp ứng giao dịch theo hai cách
Thứ nhất, trước khi một giao dịch bắt đầu thực hiện, bộ đệm (các trang nhớ)
phải được cấp phát cho giao dịch Những bộ đệm này được sử dụng để lưu mã thực thi, sao chép các tệp và dữ liệu được phân trang từ đĩa cứng, và bất cứ đối tượng tạm thời nào được tạo ra Phụ thuộc vào giao dịch, một số lượng bộ đệm nhất định phải được cấp phát nhằm ngăn chặn giao dịch bị thất bại (ở đây khái niệm thất bại là hiện tượng trong đó một giao dịch tiêu tốn hầu hết thời gian cho việc tráo đổi dữ liệu với đĩa cứng) Khi bộ nhớ còn ít, một giao dịch có thể bị chặn không cho thực hiện Tổgn
bộ nhớ sẵn sàng cho hệ thống vì thế giới hạn số lượng giao dịch thực thi đồng thời
Thứ hai, một số ứng dụng, như xử lý ảnh, có yêu cầu bộ nhớ cao Những sự
thực thi này sẽ chậm đáng kể nếu bộ nhớ ít và sự tráo đổi bộ nhớ được thực hiện thường xuyên
Nhiệm vụ của một trình quản lý bộ đệm là cấp phát các bộ đệm nhớ cho các giao dịch một cách thông minh sao cho các giao dịch có mức ưu tiên cao được hưởng thời gian đáp ứng ngắn hơn Một trình quản lý bộ đệm thường được xác định bằng những chính sách tiếp nhận và thay thế bộ đệm Các chính sách se được giải thích ngắn gọn lần lượt dưới đây Bên cạnh đó sẽ là các ví dụ cụ thể minh họa cách thức mà các mức ưu tiên giao dịch được sử dụng để cải thiện hành vi thời gian thực của trình
quản lý Khi một giao dịch T được đưa ra, trình quản lý bộ đệm sẽ quyết định có chấp
nhận thực hiện hay không Quyết định này được gọi là chính sách tiếp nhận giao dịch Giả sử rằng các giao dịch là có thể cung cấp cho trình quản lý bộ đệm với số lượng bộ
nhớ nó cần để thực hiện thích hợp Nếu có đủ không gian trống, giao dịch T được tiếp nhận Mặt khác, T bị chặn hay khác nữa là một số các giao dịch đang thực hiện có thể
bị treo và các bộ đệm của chúng được cấp phát lại cho giao dịch T Trong trường hợp
thứ hai, sự quyết định các giao dịch nào sẽ bị treo có thể được xác định bằng mức ưu
Trang 12tiên của chúng Một giải pháp đơn giản đưa ra để treo các giao dịch với mức ưu tiên thấp nhất cho đến khi:
1 Đủ số bộ đệm đã được giải phóng cho T thực hiện, hay
2 Không có thêm các giao dịch không bị treo với mức ưu tiên nhỏ hơn T.
Trong trường hợp đầu, các bộ đệm được giải phóng được cấp phát cho T và T được tiếp nhận Với trường hợp thứ hai, T bị chặn do thiếu bộ nhớ.
Các chính sách thay thế truyền thống bao gồm LRU(Least Recently Used – được sử dụng gần ít nhất), LFU (Least Frequently Used – được sử dụng thường xuyên ít nhất), Hãy xét ví dụ một chính sách mang tên Priority-LRU, được đề xuất với việc xem xét mức ưu tiên giao dịch là sự sử dụng bộ đệm mới xảy ra Thuật toán này nhóm
các giao dịch thành m lớp ưu tiên Tất cả các bộ đệm mà được sử dụng bằng một số giao dịch trong lớp thứ i được đưa vào một danh sách L i và được nói rằng có mức ưu
tiên i Vùng chứa bộ đệm vì vậy được tổ chức thành m danh sách: L 1 , L 2 , …, L m theo
mức ưu tiên của bộ đệm Thuật toán Priority-LRU có thể được mô tả ngắn gọn bằng các mã giả sau
Trang 13(*Kiểm tra nếu x vừa mới được tham chiếu*)
IF x là một trong số các bộ đệm được truy nhập gần đây nhiều nhất W R
RETURN (không có trang nào phù hợp);
Thuật toán Priority-LRU lấy một tham số, W R, để điều khiển tầm quan trọng tương đối
của tính chất mới xảy ra và mức ưu tiên Ví dụ, khi W R được thiếp lập về 0, bộ đệm được sử dụng gần đây nhất trong nhóm có mức ưu tiên thấp nhất được chọn Một bộ đệm có mức ưu tiên thấp luôn được chọn có lợi cho các bộ đệm có mức ưu tiên cao
hơn Ngược lại, nếu W R được thiếp lập cao, thì các bộ đệm có mức ưu tiên thấp sẽ bị ngắt nếu chúng mới được tham khảo gần đây
1.6 Lập lịch đọc/ghi (I/O)
Với lập lịch CPU, các thuật toán lập lịch đĩa mà đưa vào các ràng buộc thời gian có thể cải thiện đáng kể hiệu năng thời gian thực Các thuật toán lập lịch CPU, như là Earliest Deadline First và Highest Priority First, là những thuật toán đáng được xem xét nhưng chúng phải được chỉnh sửa lại trước khi có thể áp dụng vào lập lịch đọc/ghi Lý do chính là thời gian tìm kiếm trên đĩa, phụ thuộc vào sự di chuyển đầu đọc đĩa Thứ tự trong đó các yêu cầu đọc/ghi được phục vụ, vì thế, có một ảnh hưởng rộng lớn lên thời gian đáp ứng và thông lượng của phân hệ đọc/ghi [4] Để minh họa, hãy xét ví dụ sau như trong hình vẽ:
Yêu cầu A C D B
đọc/ghi
Rãnh #: 0 1 2 3 4 5 6 7
Trang 14(trong thứ tự D, B, C, A), rõ ràng HPF không phải là một cách thông minh để lập lịch
đầu đọc đĩa nếu thời gian đáp ứng hay thông lượng là một điều cần quan tâm
Các thuật toán làm giảm sự dịch chuyển đầu đọc đĩa đã được nghĩ ra Các thuật toán này tập trung vào cách tối ưu sự dịch chuyển của đầu đọc dựa trên các yêu cầu đọc ghi với các mức ưu tiên của chúng Chi tiết một số thuật toán sẽ được đề cập ở chương sau
Trang 15CHƯƠNG 2: MỘT SỐ VẤN ĐỀ CHÍNH TRONG CÁC HỆ
THỐNG CSDL THỜI GIAN THỰC
Nội dung chương này sẽ trình bày chi tiết một số vấn đề quan trọng đã được quan tâm nghiên cứu nhiều trong CSDL thời gian thực Đó là các vấn đề điều khiển đồng thời, quản lý bộ nhớ và lập lịch ghi đĩa
2.1 Điều khiển đồng thời
2.1.1 Điều khiển đồng thời theo khóa (Locking Concurrency Control)
Việc khóa các mục dữ liệu là một kỹ thuật nhằm ngăn chặn nhiều giao dịch truy nhập cùng các mục dữ liệu đồng thời trong các chế độ tương tranh (các hoạt động đọc và ghi) Nên, các khóa đồng bộ truy nhập đến các đối tượng CSDL Một khóa là một biến được kết hợp với một đối tượng dữ liệu trong CSDL, và nó mô tả kiểu của các hoạt động mà được thực hiện trên đối tượng dữ liệu tương ứng Trình quản lý khóa của một
hệ quản trị CSDL quản lý tất cả các khóa Việc sử dụng các khóa không có sự điều khiển tại các thời điểm mà các hoạt động khóa và mở khóa được thực hiện không đảm bảo tính khả tuần tự Vì thế, một cơ chế mà điều khiển sự sử dụng các khóa được yêu cầu nhằm duy trì tính nhất quán CSDL Để thỏa mãn tính nhất quán logic, các kỹ thuật
điều khiển đồng thời như Khóa hai pha đã được sử dụng.
Khóa hai pha (Two Phase Locking 2PL)
Giao thức 2PL cơ bản, là một kỹ thuật khóa bi quan, nó đảm bảo tính khả tuần tự của
một sự thực thi bằng cách điều khiển các thể hiện tại đó các hoạt động khóa và mở khóa được thực hiện Nó chia một sự thực thi của giao dịch ra làm hai pha Trong pha
đầu, hay còn gọi là pha tăng trưởng, một giao dịch có thể đạt được tất cả các khóa của
nó động theo nhu cầu phát sinh, nhưng nó có thể không giải phóng bất kỳ khóa nào
mà nó đang giữ Tuy nhiên, trong pha thứ hai, hay còn gọi là pha co lại
(shrinking-phase), giao dịch bắt đầu giải phóng động các khóa nó giữ, và không thể nhận được
thêm bất kỳ khóa nào nữa Nghĩa là, một khi một giao dịch giải phóng một khóa, nó sẽ không nhận thêm khóa nữa Ngoài ra, một giao dịch được phép nâng cấp từ một khóa
đọc lên một khóa ghi chỉ trong pha đầu Với 2PL, khi một giao dịch yêu cầu một khóa
mà đang được giữ bởi một giao dịch khác, giao dịch yêu cầu đợi cho đến khi giải phóng khóa Các giao dịch bị chặn được xếp hàng trong trình quản lý khóa Kỹ thuật
Trang 16được dùng trong tổ chức hàng đợi này là điều quan tâm lớn trong các hệ thống cấp
thiết thời gian Nếu mọi giao dịch trong một lịch tuân theo giao thức 2PL, lịch sẽ được
bảo đảm là khả tuần tự và không cần được xác minh
Đồng bộ hóa các giao dịch CSDL thời gian thực trong các giao thức dựa trên khóa
Đảo ưu tiên là một điều rất không mong muốn trong các hệ thống CSDL thời gian thực do thực tế là kể từ lúc giao dịch có mức ưu tiên thấp hơn bị phân biệt trong sử dụng tài nguyên hệ thống, nên giao dịch bị chặn có mức ưu tiên cao hơn về bản chất đang chạy ở một mức ưu tiên hiệu quả bằng với những giao dịch có mức ưu tiên thấp
hơn Với một hệ thống CSDL thời gian thực đối phó với sự suy giảm này, khóa 2PL
cần được tăng cường với lược đồ điều khiển theo mức ưu tiên để đảm bảo rằng các giao dịch có mức ưu tiên cao hơn không bị trễ bởi các giao dịch có mức ưu tiên thấp
hơn Các lược đồ khác nhau như Kế thừa ưu tiên, hủy ưu tiên, Mức trần ưu tiên, và kế
thừa ưu tiên có điều kiện đã được đề xuất như là các cơ chế cơ bản để tổng hợp các
mức ưu tiên trong các giao thức dựa trên khóa, tất cả các giao thức trên sẽ được mô tả trong phần tiếp
Thuật toán 2PL Wait Promote (2PL-WP)
Thuật toán 2PL Wait-Promote (2PL-WP) là lược đồ ngược của sự kế thừa ưu tiên trong các hệ thống thời gian thực truyền thống Nó tương tự như giao thức 2PL cơ bản
về cách giải quyết các tranh chấp, đó là, các giao dịch luôn luôn chặn bất cứ khi nào một yêu cầu khóa bị từ chối Sự khác biệt nằm ở chỗ nó bao gồm một cơ chế kế thừa
ưu tiên Với cơ chế này, bất cứ khi nào một yêu cầu bị chặn đằng sau một giao dịch giữ khóa có mức ưu tiên thấp hơn, ưu tiên của giao dịch giữ khóa được đẩy đến giao dịch yêu cầu đó Nói cách khác, giao dịch giữ khóa có mức ưu tiên thấp hơn kế thừa mức ưu tiên cao hơn của giao dịch giữ khóa, và giao dịch giữ khóa giữ lại mức ưu tiên cao hơn đã được đánh giá này cho đến khi kết thúc Chú ý rằng không như một sự kế thừa ưu tiên thuần túy, nếu giao dịch ưu tiên cao hơn bị hủy trong khi nó bị khóa, giao dịch ưu tiên được đánh giá sẽ giữ mức ưu tiên đã đánh giá cho đến khi kết thúc
Thuật toán 2PL High-Priority (2PL-HP)