Oracle.2.Phase.commit Nhom11

Preview:

Citation preview

Transaction Managementin Distributed Database Systems: The Case of Oracle’s Two-Phase Commit

GVHD: TS. Hồ Bảo QuốcHVTH: Hà Thiên Phương – 1012031 Võ Thị Hồng Thảo – 1012044

Nội dung trình bày

Giới thiệu Two-phase COMMIT Các mô hình của Two-phase COMMIT Two-phase COMMIT trong Oracle Ví dụ Nh n xetâ

Giới thiệu

Dữ liệu trong các hệ CSDL phân tán được phân mảnh, nhân bản ở nhiều site khác nhau.

Đặt ra vấn đề bảo đảm tính nhất quán, toàn vẹn, tin c yâ của dữ liệu sau khi thực hiện mỗi giao tác.

Two-phase COMMIT là một kỹ thuật quản lý giao tác trong các hệ phân tán.

Nội dung trình bày

Giới thiệu Two-phase COMMIT Các mô hình của Two-phase COMMIT Two-phase COMMIT trong Oracle Ví dụ Nh n xetâ

Two-phase COMMIT (2PC)

Trong Two-phase COMMIT, một giao tác phân tán được thực hiện qua 2 giai đoạn: commit-request và commit

Trong Two-phase COMMIT, có 2 loại thành phần là người điều phối và người tham gia.

Người điều phối là node gắn với ứng dụng thực hiện giao tác.

Two-phase COMMIT

Khởi tạo

Chờ

Hủy commit

Chuẩn bị commit

Thông báo commit đến toàn bộ

Người điều phối

Khởi tạo

Sẵn sàng

Hủy commit

Đồng ý commit

Không đồng ý commit

Nhận được thông báo hủy

Nhận được thông báo commit

Người tham gia

Phase 1

Phase 2

Thông báo hủy đến toàn bộ

Nội dung trình bày

Giới thiệu Two-phase COMMIT Các mô hình của Two-phase COMMIT Two-phase COMMIT trong Oracle Ví dụ Nh n xetâ

Các mô hình của Two-phase COMMIT

Tập trung Tuyến tính Phân tán

2PC tuyến tính

2PC phân tán

Nội dung trình bày

Giới thiệu Two-phase COMMIT Các mô hình của Two-phase COMMIT Two-phase COMMIT trong Oracle Ví dụ Nh n xetâ

Two-phase COMMIT trong Oracle

Session Tree Cơ chế Two-phase COMMIT trong Oracle

Sesion Tree

Trong mỗi giao tác, Oracle xây dựng một Session Tree cho tất cả các node tham gia.

Session Tree mô tả mối quan hệ giữa tất cả các node trong một giao tác, và vai trò của mỗi node.

Mỗi node kèm theo một thành phần gọi là Commit Point Strength, được xác định bởi DBA, dựa vào tính chất của dữ li uê

Sesion Tree

Một node trong Session Tree có thể giữ một hay nhiều vai trò sau: Client NodeDatabase Server NodeGlobal Coordinator NodeLocal Coordinator NodeCommit Point Site

Sesion Tree

Cơ chế Two-phase COMMIT trong Oracle

PREPARE Phase COMMIT Phase

PREPARE Phase

PP bắt đầu khi Gobal Coordinator yêu cầu tất cả các node tham gia (trư node đóng vai trò Commit Point Site) chuân bị commit.

Mỗi node tham gia sau khi trả lời, se vào trạng thái PREPARED. Mỗi node có thể trả lời m t ôtrong 3 tín hi u sau:êPreparedRead-onlyAbort

COMMIT Phase

Khi tất cả các node tham gia trả lời là Prepared thì COMMIT phase bắt đầu.

Node Global Coordinator gởi thông đi p điều êkhiển các tất cả các node commit.

Sơ đồ chi tiết

Nội dung trình bày

Giới thiệu Two-phase COMMIT Các mô hình của Two-phase COMMIT Two-phase COMMIT trong Oracle Ví dụ Nh n xetâ

Ví dụ

City1 là trụ sở chính

M t giao tác se ôảnh hưởng lên database tại trụ sở chính và ít nhất m t city ôkhác

Tại City1, chuyển 1 nhân viên tư City 2 sang City4

Nội dung trình bày

Giới thiệu Two-phase COMMIT Các mô hình của Two-phase COMMIT Two-phase COMMIT trong Oracle Ví dụ Nh n xetâ

Nh n xetâ

Giao thức Two-phase COMMIT trong Oracle có m t số thay đôi:ôQuan tâm tới tính quan trọng của dữ li uêGiảm tinh trạng BLOCKING cho các site quan

trọng khi Global Coordinator có sự cố (vì mạng, phần cứng, phần mềm,...).

Đưa ra khái niệm Read-only, để giảm số lượng site tham gia không cần thiết.

Cám ơn Thầy và các bạn đã theo dõi

Recommended