Trạng thái của giao dịch

Một phần của tài liệu tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán (Trang 27 - 29)

6. Cấu trúc luận văn

2.2.3.Trạng thái của giao dịch

Trong quá trình thực thi, giao dịch ở một trong các trạng thái sau:

Tích cực (Active): là trạng thái từ lúc khởi đầu giao dịch, trạng thái này đƣợc giữ khi giao dịch đang thực hiện.

Đƣợc bàn giao bộ phận (Partially Committed): là trạng thái khi lệnh cuối cùng của giao dịch đƣợc thực hiện.

Thất bại (Failed): là trạng thái sau khi phát hiện giao dịch không thể tiếp tục thực hiện đƣợc nữa.

Bỏ dở (Aborted): là trạng thái sau khi giao dịch đã bị cuộn lại và cơ sở dữ liệu đã phục hồi lại trạng thái của nó trƣớc khi khởi động giao dịch.

Đƣợc bàn giao (Committed): là trạng thái sau khi hoàn thành thành công giao dịch.

Một giao dịch khởi đầu bởi trạng thái tích cực (Active). Giao dịch khi kết thúc lệnh sau cùng, nó chuyển sang trạng thái đƣợc bàn giao bộ phận. Tại thời điểm này, giao dịch đã hoàn thành việc thực hiện, nhƣng nó vẫn có thể bị bỏ dở do đầu ra vẫn có thể tạm trú trong bộ nhớ chính và nhƣ thế một sự cố phần cứng sẽ ngăn cản sự hoàn tất giao dịch. Khi đó, cơ sở dữ liệu đã kịp viết lên đĩa đầy đủ thông tin giúp cho việc tái tạo các cập nhật đã đƣợc thực hiện. Khi hệ thống khởi động lại sau sự cố, các thông tin sau cùng này đƣợc ghi chính thức vào cơ sở dữ liệu và giao dịch chuyển sang trạng thái committed.

Một giao dịch đƣợc gọi là kết thúc nếu nó hoặc là đƣợc bàn giao (Committed) hoặc là bỏ dở (Aborted).

Hình 2.3: Biểu đồ trạng thái của giao dịch

Giả thiết rằng sự cố hệ thống không gây mất dữ liệu trên đĩa, một giao dịch đi vào trạng thái thất bại (Failed) sau khi hệ thống xác định là giao dịch không thể thực hiện đƣợc nữa (do lỗi phần cứng hoặc phần mềm). Giao dịch chuyển sang trạng thái bỏ dở. Tại điểm này, hệ thống có hai lựa chọn:

Khởi động lại giao dịch nếu giao dịch bị bỏ dở là do lỗi phần cứng hoặc phần mềm mà không liên quan đến logic bên trong giao dịch. Giao dịch đƣợc khởi động lại và đƣợc xem nhƣ một giao dịch mới.

Hủy bỏ giao dịch nếu giao dịch bị bỏ dở là do lỗi logic bên trong giao dịch, lỗi này cần đƣợc chỉnh sửa bằng cách viết lại chƣơng trình ứng Tích cực (Active) Bàn giao bộ phận Thất bại Đƣợc Bàn giao Bỏ dở

dụng hoặc do dữ liệu đầu vào xấu hoặc do dữ liệu mong muốn không tìm thấy trong cơ sở dữ liệu.

Một phần của tài liệu tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán (Trang 27 - 29)