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

Một số thuật toán điều khiển tương tranh trong giao dịch đồng thời

23 727 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Một số thuật toán điều khiển tương tranh trong giao dịch đồng thời
Tác giả Nguyễn Viết Thành
Người hướng dẫn TS. Phạm Việt Hà
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Truyền dữ liệu và mạng máy tính
Thể loại Luận văn thạc sĩ
Định dạng
Số trang 23
Dung lượng 644,42 KB

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

Nội dung

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

Trang 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À

Trang 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

Trang 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

Trang 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

Trang 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

ở đó mọi hành động đã ủy thác đều được phản ánh

b) Đọc không lặp (non-repeatable read)

Trang 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

Trang 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

Thuật toán điều khiển tương tranh

Trang 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

Nhận khoá Giải phóng khoá

ĐIỂM KHOÁ

BẮT ĐẦU Thời gian sử dụng KẾT THÚC

mục dữ liệu

Nhận khoá Giải phóng khoá

Trang 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

Kết thúc thao tác

(3)

Giải phóng khoá

(4)

Trang 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 Ti 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ó

Trang 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 Tij đến site j mà cần được lưu để xác thực Tij 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

Trang 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)

Trang 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

Ngày đăng: 13/02/2014, 13:00

HÌNH ẢNH LIÊN QUAN

Hình 2. 1: Phân loại các thuật toán điều khiển tương tranh - Một số thuật toán điều khiển tương tranh trong giao dịch đồng thời
Hình 2. 1: Phân loại các thuật toán điều khiển tương tranh (Trang 7)
Hình 2. 2: Biểu đồ khoá 2 pha (2PL) - Một số thuật toán điều khiển tương tranh trong giao dịch đồng thời
Hình 2. 2: Biểu đồ khoá 2 pha (2PL) (Trang 8)
Hình 2. 4: Cấu trúc giao tiếp của khoá 2 pha trung tâm - Một số thuật toán điều khiển tương tranh trong giao dịch đồng thời
Hình 2. 4: Cấu trúc giao tiếp của khoá 2 pha trung tâm (Trang 9)
Hình 2. 6: Các pha thực thi giao tác bi quan - Một số thuật toán điều khiển tương tranh trong giao dịch đồng thời
Hình 2. 6: Các pha thực thi giao tác bi quan (Trang 11)
Hình 2. 7: Các pha thực thi giao tác lạc quan - Một số thuật toán điều khiển tương tranh trong giao dịch đồng thời
Hình 2. 7: Các pha thực thi giao tác lạc quan (Trang 11)
Hình 2. 8: Phát hiện deadlock kế thừa - Một số thuật toán điều khiển tương tranh trong giao dịch đồng thời
Hình 2. 8: Phát hiện deadlock kế thừa (Trang 13)
Hình 3. 1: Lược đồ quản lý giao tác - Một số thuật toán điều khiển tương tranh trong giao dịch đồng thời
Hình 3. 1: Lược đồ quản lý giao tác (Trang 14)
Hình 3. 2: Kiến trúc chương trình thương mại điện tử - Một số thuật toán điều khiển tương tranh trong giao dịch đồng thời
Hình 3. 2: Kiến trúc chương trình thương mại điện tử (Trang 17)
Hình 3. 3: Các method được cài đặt trong Web Service - Một số thuật toán điều khiển tương tranh trong giao dịch đồng thời
Hình 3. 3: Các method được cài đặt trong Web Service (Trang 18)
Hình 3. 4: Giao diện Website thương mại - Một số thuật toán điều khiển tương tranh trong giao dịch đồng thời
Hình 3. 4: Giao diện Website thương mại (Trang 19)
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 - Một số thuật toán điều khiển tương tranh trong giao dịch đồng thời
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 (Trang 19)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

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