• Thứ Năm, 01/09/2005 10:10 (GMT+7)

    Transaction Processing

    Định nghĩa: Transaction processing (Xử lý giao dịch) là việc thực hiện một cách rõ ràng và độc lập một tập hợp các tác vụ trên dữ liệu trong cơ sở dữ liệu quan hệ (PC World Việt Nam số 03/2001, tr. 54), CSDL coi tập tác vụ này như là một sự kiện duy nhất. Nếu bất kỳ phần nào của quá trình giao dịch bị thất bại thì toàn bộ giao dịch thất bại và tất cả tài nguyên tham dự vào quá trình này sẽ được trả về trạng thái trước đó của chúng.

    Âm và dương, trắng và đen, v.v... là những khái niệm gắn kết hữu cơ với nhau, khó có thể hình dung được cái này nếu không có cái kia. Có thể nói transaction processing (TP) và CSDL quan hệ cũng là một cặp như vậy.

    Về lý thuyết, TP có thể xảy ra mà không cần đến CSDL quan hệ, nhưng đó là điều không ai muốn thử. Ngược lại, bạn vẫn có thể thực hiện CSDL quan hệ mà không cần có TP, nhưng như thế thì sẽ để mất một trong những ưu thế của CSDL quan hệ: khả năng cập nhật nhiều bảng để phản ánh sự hoàn tất của giao dịch.

    Hệ thống có khả năng thực hiện TP phải vượt qua được thử nghiệm ACID: tính nguyên tố (atomicity), nhất quán (consistency), cô lập (isolation) và bền vững (durability). Giao dịch có tính nguyên tố có nghĩa là chúng chỉ có thể là một trong hai trường hợp - xảy ra hoặc không. Ví dụ, nếu một tài khoản được ghi nợ thì phải có tài khoản ghi có.

    Hệ thống TP phải luôn nhất quán với các quy tắc của riêng nó. Giao dịch sẽ không xảy ra nếu có lỗi trong quá trình xử lý giao dịch. Ví dụ, nếu có một bảng nào đó phải cập nhật trên đĩa cứng nhưng không thể truy cập được thì giao dịch sẽ chấm dứt.

    Cô lập, nghĩa là các giao dịch khác sẽ không bao giờ thấy được các bảng CSDL ở trạng thái trung gian. Chúng vẫn có thể xem được CSDL trước hay sau khi giao dịch xảy ra nhưng không phải trong khi đang xảy ra. Ví dụ, bất kỳ ai truy vấn hệ thống đặt chỗ trên máy bay đều sẽ thấy được tất cả chỗ còn trống tại thời điểm đó. Nhưng nếu có hai người cùng lúc đều muốn đặt ghế cuối cùng trên một chuyến bay thì chỉ có một người thành công.

    Cuối cùng, giao dịch phải bền vững, nghĩa là một khi chỗ ngồi đã được đặt và khách hàng đã nhận được xác nhận thì giao dịch này được ghi nhận vĩnh viễn. Ngay cả khi có sự cố sau khi giao dịch hoàn tất thì hệ thống vẫn có thể lấy lại thông tin này.

    Quy trình hai giai đoạn

    Đôi khi CSDL quan hệ được định nghĩa như là những hệ thống có khả năng thực hiện xử lý giao dịch nhờ sức mạnh hỗ trợ ACID. Giao thức thực hiện hai giai đoạn 2PC (two-phase commit) là một đặc tính xác định và là cơ chế then chốt để giao dịch được thực hiện.

    Trong giai đoạn đầu của 2PC, một bộ điều phối toàn cục thông báo cho mọi hệ thống trong giao dịch chuẩn bị sẵn sàng để chấp nhận các thay đổi theo yêu cầu của giao dịch hay trả các bảng về trạng thái trước đó của chúng. Các hệ thống thông báo cho bộ điều phối toàn cục khi chúng đã sẵn sàng thực hiện giao dịch hoặc thông báo chúng không thể thực hiện. Nếu một hệ thống không đáp lại hoặc bị lỗi, bộ điều phối toàn cục sẽ hủy bỏ giao dịch và thông báo cho các hệ thống trở về trạng thái trước đó.

    Khi tất cả các hệ thống đều hoàn tất được giai đoạn một, bộ điều phối toàn cục thông báo cho các hệ thống bắt đầu giai đoạn thực hiện bằng cách ghi tất cả mọi thay đổi và phải thông báo lại kết quả cho bộ điều phối toàn cục. Giao dịch chỉ hoàn tất khi mọi hệ thống đều báo cho bộ điều phối toàn cục là các thay đổi đã được thực hiện; nếu có bất kỳ lỗi nào xảy ra trong giai đoạn này, giao dịch sẽ bị hủy và mọi thành phần tham gia đều được yêu cầu phải trở lại trạng thái trước khi có thay đổi (xem minh họa).

    Xử lý giao dịch là một công nghệ đã hoàn chỉnh, cũng như CSDL quan hệ và bộ điều khiển giao dịch. Tất cả được giới thiệu vào những năm 1960 và 1970 khi các tổ chức xử lý dữ liệu lớn đòi hỏi phải có cơ chế bảo đảm cho tính tin cậy của các giao dịch tự động. Theo thời gian, chi phí hỗ trợ cho TP đã hạ tới mức mà bất kỳ doanh nghiệp nào cũng có thể áp dụng nó một cách có lợi.

    Hiện nay, những vấn đề giao dịch phân tán trên web cũng đồng nghĩa với việc phân tán chúng trên các hệ thống có các bảng dữ liệu trải rộng trên nhiều băng từ hay ổ đĩa khác nhau. Vì vậy, việc mở rộng các tính năng TP ra Internet thường cũng dễ như việc xây dựng luận lý giao tiếp và nghiệp vụ cho ứng dụng trên một hệ thống. Thương mại điện tử cần đến những cơ chế TP hiệu quả cho các giao dịch, vốn là yếu tố căn bản của nó.

    Bộ điều khiển giao dịch

    Không nên lẫn lộn bộ điều phối toàn cục với bộ điều khiển giao dịch, còn được biết với tên phổ biến hơn là phần mềm điều khiển giao dịch hay máy chủ giao dịch (PC World Việt Nam số 02/2000, trang 61).

    Bộ điều khiển giao dịch là các chương trình điều khiển trung gian nằm giữa máy khách và máy chủ. Chúng tối ưu hoá hiệu năng của CSDL bằng cách hoạt động theo yêu cầu của máy khách.

    Thay vì phải mở một phiên làm việc với máy chủ, máy khách kết nối vào bộ điều khiển giao dịch để gửi yêu cầu đến máy chủ thông qua phiên làm việc riêng. Điều này sẽ giải phóng máy chủ khỏi "điệp khúc" giải quyết vô số phiên làm việc riêng rẽ. Được giới thiệu vào những năm 1970 cho máy tính lớn, bộ điều khiển giao dịch được "tái sinh" vào cuối những năm 1990 khi các nhà sản xuất phần mềm tung ra những phiên bản mới có khả năng quản lý các hệ thống giao dịch trực tuyến cung cấp dịch vụ thông qua máy chủ web.

     GIAI ĐOẠN 1                                                   

    1. Bộ điều phối toàn cục thông báo cho các hệ thống là bảng 1, 2, 3, 4 cần được cập nhật.

    2. Các hệ thống sẽ kiểm tra tất cả mọi thứ, kể cả thiết bị lưu trữ của chúng, để bảo đảm sẵn sàng ghi dữ liệu cho các bảng theo yêu cầu, cả giá trị hiện hành và giá trị mới đều có thể truy cập được nhưng chưa thực hiện thay đổi.

    3. Các hệ thống thông báo cho bộ điều phối toàn cục biết chúng đã sẵn sàng để cập nhật các bảng hay chưa. Nếu bất kỳ hệ thống nào không thể thực hiện thay đổi, bộ điều phối toàn cục sẽ thông báo cho các hệ thống còn lại là giao dịch bị hủy bỏ.

     GIAI ĐOẠN 2, NẾU THÀNH CÔNG                     

    4. Khi nhận được xác nhận của mọi hệ thống có liên quan về các bảng sẽ được cập nhật, bộ điều phối toàn cục thông báo cho các hệ thống là chúng có thể cập nhật các bảng.

    5. Các hệ thống cập nhật các bảng và báo cáo hiện trạng cho bộ điều phối toàn cục (thành công hay thất bại).

    6. Khi việc cập nhật cho tất cả các bảng thành công, bộ điều phối toàn cục báo cáo lại cho nút (node) đưa ra yêu cầu là giao dịch đã hoàn tất.

    Trung Hải
    Computerworld 1/10/2001

    ID: A0111_57