Các cây phiên cho giao dịch phân tán(Session Trees for Distributed Transactions)

Một phần của tài liệu đề thi quản trị cơ sở dữ liệu phân tán 8 (Trang 52 - 58)

- Timestamp Ordering (TO) { Basic TO

Các cây phiên cho giao dịch phân tán(Session Trees for Distributed Transactions)

Distributed Transactions)

Khi các câu lệnh trong giao dịch phân tán được công bố, Oracle định nghĩa 1 cây phiên cua mọi nut tham gia vào giao dịch. Một cây phiên là mô hình phân cấp mô tả mối quan hệ trong phiên và các vai trò của chúng. VD:

Figure 31-2 Example of a Session Tree

Text description of the illustration admin031.gif

Mỗi nút tham gia vào cây phiên giả thiết là 1 trong các vai sau:

Role Description

Client 1 nut tham chiếu thông tin trong csdl thuộc nút khác.

Database server Một nút nhận yêu cầu cho thông tin từ nút khác.

Global coordinator

Nút phát sinh(originate) giao dịch phân tán.

Local

Role Description

Commit point

site Nút chuyển giao hay ROLLBACK giao dịch khi được hướng dẫn bởi bộ phối hợp tổng thể. Vai trò một nút phải đóng trong giao dịch phân tán xác định bởi:

• Liệu giao dịch là cục bộ hay ở xa

Sức mạnh điểm chuyển giao của nút ("Commit Point Site")

• Liệu mọi dữ liệu yêu cầu có sẵn ở nút hay liệu các nút khác cần được tham chiếu để hoàn tất giao dịch không.

• Liệu các nút là read-only không.

Clients

A node acts as a client when it references information from another node's database. The referenced node is a database server. In Figure 31-2, the node sales is a client of the nodes that host the warehouse and finance databases.

Database Servers

A database server is a node that hosts a database from which a client requests data. In Figure 31-2, an application at the sales node initiates a distributed transaction that accesses data from the warehouse and finance nodes. Therefore, sales.acme.com has the role of client node, and warehouse and finance are both database servers. In this example, sales is a database server and a client because the application also modifies data in the sales database.

Các bộ phối hợp cục bộ

A node that must reference data on other nodes to complete its part in the distributed transaction is called a local coordinator. In Figure 31-2, sales is a local coordinator because it coordinates the nodes it directly references: warehouse and finance. The node sales also happens to be the global coordinator because it coordinates all the nodes involved in the transaction.

A local coordinator is responsible for coordinating the transaction among the nodes it communicates directly with by:

• Receiving and relaying transaction status information to and from those nodes

• Passing queries to those nodes

• Receiving queries from those nodes and passing them on to other nodes

Các bộ phối hợp tổng thể

The node where the distributed transaction originates is called the global coordinator. The database application issuing the distributed transaction is directly connected to the node acting as the global coordinator. For example, in Figure 31-2, the transaction issued at the node sales references information from the database servers warehouse and finance. Therefore, sales.acme.com is the global coordinator of this distributed transaction. The global coordinator becomes the parent or root of the session tree. The global coordinator performs the following operations during a distributed transaction:

• Sends all of the distributed transaction's SQL statements, remote procedure calls, and so forth to the directly referenced nodes, thus forming the session tree

• Instructs all directly referenced nodes other than the commit point site to prepare the transaction

• Instructs the commit point site to initiate the global commit of the transaction if all nodes prepare successfully

• Instructs all nodes to initiate a global rollback of the transaction if there is an abort response

Site điểm chuyển giao

The job of the commit point site is to initiate a commit or roll back operation as instructed by the global coordinator. The system administrator always designates one node to be the commit point site in the session tree by assigning all nodes a commit point strength. The node selected as commit point site should be the node that stores the most critical data.

Figure 31-3 Mhoa VD của hệ thống phân tán vơi sales phục vụ như site diểm chuyển giao:

Figure 31-3 Commit Point Site

Text description of the illustration admin050.gif

Phân biệt sit điểm chuyển giao với các nút khác trong giao dịch phân tán theo các cách sau:

• Site điểm chuyển giao không bao giờ đưa vào trạng thái chuẩn bị. Kết quả,nếu site điểm chuyển giao lưu dữ liệu găng, dữ liệu này không duy trì trạng thái nghi ngờ, thậm chí ngay khi sự cố xuất hiện. Khi sự cố, các nut lỗi duy trì trạng thái chuẩn bị, giữ các khóa cần thiết tên dữ liệu cho tới khi giao dịch nghi ngờ được phân giải.

• Site điểm chuyển giao chuyển giao trước các nút khác liên quan đến giao dịch. Thực tế, lối ra của giao dịch phân tán tại site điểm chuyển giao xdinh liệu các giao dịch phân tán ở mọi nút được chuyển giao hay ROLLBACK : các nut khc đi theo hướng dẫn của site điểm chuyển giao. Bộ phối hợp tổng thể đảm bảo rằng mọi nut hoàn tất giao dịch theo cùng cách như siteđiểm chuyển giao.

Chuyển giao giao dịch phân tán như thế nào(How a Distributed Transaction Commits)

Giao dịch phân tán là chuyển giao được xem xét sau khi mọi site điểm không-chuyển giao đã chuẩn bị, và giao dịch đã được chuyển giao thực tế ở site điểm chuyển giao. Nhật ký redo online tại site điểm chuyển giao cập nhật ngay khi các giao dịch phân tán được chuyển giao ở nút này.

Vì nhật ký điểm chuyển giao chứa bản ghi chuyển giao, giao dịch chuyển giao được xem xét ngay qua 1 vài nút tham gia vẫn chỉ trong trạng thái chuẩn bị và giao dịch vãn chưa chuyển giao tại các nút này. Theo cùng cách, giao dịch phân tán được xem xét không chuyển giao nếu chuyển giao không được ghi nhật ký tại site điểm chuyển giao.

Độ mạnh điểm chuyển giao (Commit Point Strength)

Từng server csdl phải được gán độ mạnh điểm chuyển giao. Nếu một server csdl được tham chiếu trong giao dịch phân tán, giá trị của độ mạnh điểm chuyển giao của nó xác định vai trò nào mà nó giữ trong chuyển giao 2 pha. Đặc biệt, độ mạnh điểm chuyển giao xác định nut nào là site điểm chuyển giao trong giao dịch phân tán và như vậy, chuyển giao trước các nút khac . Giá trị này được đặc tả tham số kdong

COMMIT_POINT_STRENGTH.. ..Hãy xem Oracle xác định site điểm chuyển giao thế nào. Site điểm chuyển giao xác định khi bắt đầu pha chuẩn bị, được chọn chỉ từ các nut tham gia trong giao dịch. Dãy các sự kiện sau xuất hiện:

1. Từ các nút tham chiếu trực tiếp bởi bộ phối hợp tổng thể, Oracle chọn nut với độ mạnh điểm chuyển giao cao nhất như site điểm chuyển giao.

2. Nút được chọn ban đầu xác định liệu có nút nào giành được thông tin cho giao dịch nay có độ mạnh điểm chuyển giao cao hơn không.

3. Hoặc nut với độ mạnh điểm chuyển giao cao nhất được tham chiếu trực tiếp trong giao dịch hay 1 trong các server của nó với độ mạnh điểm chuyển giao cao hơn trở thành site điểm chuyển giao.

4. Sau khi site điểm chuyển giao được xác định, bộ phối hợp tổng thể gửi các đáp ứng chuẩn bị cho mọi nut tham gia trong giao dịch..

Figure 31-4 cho thấy trong 1 cây phiên lấy mẫu, độ mạnh điểm chuyển giao của mỗi nút (trong ngoặc) và nut được chọn như site điểm chuyển giao:

Figure 31-4 Commit Point Strengths and Determination of the Commit Point Site

,

Text description of the illustration admin032.gif

The following conditions apply when determining the commit point site:

• A read-only node cannot be the commit point site.

• If multiple nodes directly referenced by the global coordinator have the same commit point strength, then Oracle designates one of these as the commit point site.

• If a distributed transaction ends with a rollback, then the prepare and commit phases are not needed. Consequently, Oracle never determines a commit point site. Instead, the global coordinator sends a ROLLBACK statement to all nodes and ends the processing of the distributed transaction.

As Figure 31-4 illustrates, the commit point site and the global coordinator can be different nodes of the session tree. The commit point strength of each node is communicated to the coordinators when the initial connections are made. The coordinators retain the commit point strengths of each node they are in direct

communication with so that commit point sites can be efficiently selected during two- phase commits. Therefore, it is not necessary for the commit point strength to be exchanged between a coordinator and a node each time a commit occurs.

See Also:

• "Specifying the Commit Point Strength of a Node" to learn how to set the commit point strength of a node

Oracle9i Database Reference for more information about the initialization parameter COMMIT_POINT_STRENGTH

Một phần của tài liệu đề thi quản trị cơ sở dữ liệu phân tán 8 (Trang 52 - 58)

Tải bản đầy đủ (DOC)

(155 trang)
w