Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 25 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
25
Dung lượng
483,9 KB
Nội dung
Mô hình giao dịch lồng an toàn và mở : tương tranh và phục hồi Giáo viến hướng dẫn: TS Nguyễn Đức Anh Nhóm thực hiện : Nhóm 09 Họ và tên MSSV Lê Xuân Tùng 20083004 Nguyễn Tuấn Anh 20080115 Nguyễn Viết Anh 20080125 Lê Văn Đạo 20080700 Lê Văn Hội 20081289 Lớp Hệ thống thông tin_K53 1 Mục lục 2 Tóm tắt Trong bài báo này, chúng tôi trình bày một mô hình giao dịch lồng mở an toàn. Chúng tôi thảo luận về điều khiển tương tranh và các thuật toán phục hồi cho mô hình của chúng tôi. Mô hình giao dịch lồng của chúng tôi sử dụng các khái niệm của giao dịch con điểm phục hồi trong cây giao dịch lồng. Nó kết hợp một thao tác prewrite trước mỗi thao tác write để tăng tương tranh tiềm năng. Mô hình giao dịch gọi là “mở và an toàn” do các thao tác prewrite cho phép đọc trước( trước khi những hành dộng write được thực hiện trên đĩa) mà không có tầng hủy bỏ. Hệ thống khởi động lại và các hoạt động quản lý bộ đệm cũng được mô hình hóa giống như các giao dịch lồng nhau để khai thác các tương tranh có thể trong suốt quá trình khởi động lại. Các thuật toán điều khiển tương tranh được đề xuất trong cơ sở dữ liệu cũng được sử dụng để điều khiển các hoạt động phục hồi tương tranh. Chúng tôi đã đưa ra một ảnh chụp một hoạt động giao dịch hoàn chỉnh, cấu trúc dữ liệu liên quan và xây dựng một vùng khởi động lại trong trường hợp phục hồi sụp đổ 1. Giới thiệu 1.1. Tổng quan về các mô hình giao dịch lồng nhau và thuật toán phục hồi 1.1.1. Mô hình giao dịch lồng đóng Trong mô hình giao dịch lông đóng (Moss, 1985), một giao dịch con có thể chứa các thao tác được thực hiện đồng thời, hoặc các thao tác mà có thể được hủy bỏ một cách độc lập với các giao dịch liên quan. Như vậy các thao tác được coi là các giao dịch con của giao dịch gốc. Quan hệ cha con này tạo ra một cây giao dịch lồng và các giao dịch được gọi là các giao dịch lồng (Moss,1985). Những giao dịch con không thành công có thể được sửa chữa bằng việc thay thế chúng bằng những giao dịch khác nhằm thực hiện thành công toàn bộ giao dịch. Mỗi giao dịch phải kiếm được khóa tương ứng trước khi truy cập vào một đối tượng dữ liệu. Kết quả của một giao dịch con không thể nhìn thấy ở ngoài giao dịch cha của chúng (Vì thế nó được gọi là đóng). Một giao dịch con truy cập vào dữ liệu khóa bởi cha của nó. Khi một giao dịch ghi một đối tượng dữ liệu, một phiên bản mới của đối tượng được tạo ra. Phiên bản này được lưu trữ trong một bộ nhớ ổn định. Khi một giao dịch con xác nhận thì phiên bản cập nhật của đối tượng được gửi tới giao dịch cha của chúng. Nếu giao dịch mà bị hủy, phiên bản mới của đối tượng đó cũng bị hủy luôn. Uỷ thác cha chỉ sau khi tất cả các giao dịch con của nó kết thúc. Khi Giao dịch trên cùng xác nhận, phiên bản hiện thời của mỗi đối tượng sẽ được cất vào bộ nhớ ổn định. Trong Mô hình giao dịch lồng đóng, có hạn chế là phạm vi của mỗi giao dịch con bị giới hạn chỉ trong giao dịch cha của chúng. Điều này buộc một giao dịch con phải gửi tất cả các khóa cùng các phiên bản của đối tượng dữ liệu cập nhật tới giao dịch cha của chúng trên cơ chế xác nhận, kết quả của việc xác nhận giao dịch con chỉ tồn tại lâu dài khi xác nhận 3 được thực hiện tại giao dịch trên cùng. Trong nhiều ứng dụng, không thể chấp nhận được rằng công việc của một ứng dụng mất một thời gian dài chờ đợi để hoàn tác khi sử dụng một trong các kỹ thuật trên trong trường hợp bị lỗi ở khâu cuối cùng. Chiến lược hiện tại buộc các giao dịch với thời gian sống ngắn chờ đợi trước khi thay khóa cho đến khi giao dịch mước cao nhất xác nhận và giải phóng khóa của chúng. Do vậy hệ thống không thích hợp cho hệ thống chứa các giao dịch dài và ngắn. 1.1.2. Mô hình giao dịch lồng mở Để khai thác ngữ nghĩa cụ thể tại mỗi tầng của hoạt động lồng. Weikem đã đưa ra một mô hình giao dịch đa tầng (Weikum, 1991, Weikum et at 1990). Mô hình này không thực hiện một cách không chính tắc bởi tính đến tính chất giao hoán của ngữ nghĩa các hoạt động ở mỗi cấp dữ liệu trừu tượng mà thực hiện mức tương tranh cao hơn. Một giao dịch con cho phép giải phóng khóa trước khi xác nhận đến giao dịch ở cấp cao hơn. Các khóa ở mức lá được giải phóng sớm chỉ khi ngữ nghĩa của các thao tác được biến trước và thao tác bù tương ứng được định nghĩa. Khi hủy một giao dịch ở mức cao, kết quả của nó được hoàn tác bằng cách thực thi một thao tác nghịch đảo bù vào giao dịch đã hoàn tất. Phục hồi một hệ thống bị sự cố bằng cách thực hiện hoàn tác giao dịch ở mức cao đồng thời làm lại các thao tác ở mức lá. Mỗi cấp được cung cấp với một cấp cơ chế phục hồi cụ thể. Mô hình này cũng đã được đề cập tới trong nghiên cứu về các hệ cơ sở dữ liệu hướng đối tượng trong Muth et al (1993) và Rensende et al. (1994) Trong nhiều ứng dụng, ngữ nghĩa của giao dịch có thể không rõ ràng do đó rất khó khăn để cung cấp một thi hành không chính tăc. Trong trường hợp thời gian thực, có các lớp khác của các thao tác không thể được bù. Có những thao tác mà không có thao tác đảo ngược như việc chuyển một số tiền lớn tại một máy rút tiền tự động. Hoạt động như vậy phải được trì hoãn cho đến khi mức cao nhất xác nhận, đó là những hoạt động bị hạn chế sẵn có (như tăng thời gian phản ứng) 1.1.3. Thuật toán khôi phục giao dịch lồng. Thuật toán phục hồi intentions-list và undo-logging được Fekete et al.(1993) đưa ra nhằm phục hồi các giao dịch bị hủy trong môi trường giao dịch lồng bằng cách khai thác tính chất giao hoán của các thao tác. Thuật toán intention-list làm việc bằng cách duy trì một danh sách các hoạt động cho mỗi giao dịch. Khi một giao xác nhận, danh sách được kết nối tới giao dịch cha. Khi nó bị hủy intention-list cũng bị loại theo.Khi giao dịch gốc xác nhận, intention-list của nó được truyền tới nhật ký. Chương trình chỉ giúp phục hồi các giao dịch hủy không điều khiển sự cố hệ thống. Để tăng đồng thời trong suốt quá trình phục hồi undo-logging, chương trình cho phép một vài thi hành không nghiêm ngặt. Nó cho phép một giao dịch chia sẻ các bản cập nhật không xác nhận được thực hiện bởi các giao dịch khác bằng cách khai thác tính giao hoán của các thao tác. Trên sự thi hành của một thao tác,hồ sơ của các đối tượng dữ liệu thay đổi trạng thái và trạng thái của của chúng được chuyển tới nhật ký. Khi một giao dịch bị hủy , Ngược với thuật toán intentions- list, tất các các giao dịch thi hành bởi các giao dịch trên đối tượng được hoàn tác từ trạng thái hiện hời và sau đó chúng cũng được gỡ khỏi nhật ký. Thuật toán này không quan tăm tới phụ hồi từ hệ thống đổ vỡ. 4 Trong cả hai thuật toán intentions-list và undo-logging, một giao dịch chưa hoàn chỉnh được phép không xác nhận cập nhật sẵn có tới những giao dịch mà thực hiện một thao tác giao hoán. Tuy nhiên đây lại là hạn chế đối với những giao dịch cùng cấp trừu tượng hóa. Điều này có giới hạn. Trong cả hai thuật toán, tất cả các công việc được thực hiện ở các giao dịch mức dưới bị loại bỏ trong trường hợp hủy bỏ tại một giao dịch mức cao. Điều này có thể xảy ra và không được mọng muốn trong nhiều ứng dụng thời gian thực. Trong thuật toán undo-logging algorithm, khi một hủy bỏ một giao dịch, ngươc với thuật toán intentions-list, tất cả các thao tác thi hành bởi các giao dịch mức dưới của giao dịch được hoàn tác từ trạng thái hiện tại và được gỡ khỏi nhật ký ngay sau đó. Trong cả hai thuật toán, một giao dịch chưa hoàn thành được cho phép không xác nhận cập nhật tới những giao dịch mà thực hiện các thao tác giao hoán. Đây là giới hạn cho những giao dịch ở cùng mức trừu tượng. Hai mô hình phục hồi trên chỉ chú ý đến ngữ nghĩa của các thao tác tại mức lá. Hệ thống R (Gray et al., 1981) khai thác lớp ngữ nghĩa đặc biệt nhưng hạn chế đến 2 mức của giao dịch lồng. Trong hệ thống R, Để thực hiện phục hồi, cập nhật được hoàn tác bằng cách thi hành một bộ các thao tác ngược tại tầng đó. Để thực hiện điều này System R ghi tập các cập nhật và một bản ghi. Để phục hồi từ hệ thống bị sự cố, cơ sở dữ liệu trước tiên phải được khôi phục tại một số tần phù họp. Nói cách khác, một cơ chế phục hồi cấp thấp là cần thiết để tạo ra một bộ thao tác nguyên tử. Trong Moss(1987), một kỹ thuật phục hồi sự cố tương tự đã được đề xuất cho môi trường giao dịch lồng trên cơ sở phương pháp undo/redo nhật ký. Trong điều kiện của logging, cả nhật ký undo/redo đề được sử dụng. Mohan et al (1992,1989) cũng đề cập đến “write ahead logging” căn cứ vào thuật toán phục hồi sự cố sử dụng mô hình gia dịch lồng. Kiểu undo/redo của mô hình giao dịch này khai thác tính chất của mô hình giao dịch lồng. Các thao tác của một giao dịch được hoàn tác trước sẽ không được hoàn tác lại trong trường hợp có thêm lỗi. Đó là một lợn thế hơn thuật toán phục hồi đa mức của Weikum mà yêu cầu hoàn tác hoàn toàn khi có thêm một đổ vỡ. 1.2 Đóng góp của chúng tôi Trong bài báo này, chúng tôi giới thiệu một mô hình giao dịch lồng mở an toàn trong môi trường các thao tác đọc ghi bình thường để loại bỏ các khiếm khuyết ở trên, và nâng cao khả năng hữu dụng và cung cấp kết quả phục hồi sự cố. Mô hình của chũng tôi hỗ trợ cả giao gichj nội bộ và liên giao dịch Chúng tôi giả định rằng tính chất cảu các giao dịch tại nhiều cấp trong mô hình lồng là chưa được biết đến. Có hai động lực chính cho mô hình giao dịch của chúng tôi. Thứ nhất, đó là mong muốn các giao dịch tồn tại với thời gian dìa nên phát hành khóa trươc khi giao dịch gốc xác nhận. Thứ hai trong trương hợp có thể có thể lùi lại hoặc lấy lại những kết quả quan trọng trong các giao dịch ở mức dưới đã xác nhận sau khi có lỗi giao dịch cấp cao hơn do bị hủy hoặc sự cố hệ thống. Chúng tôi trình bày khái niệm của một “điểm phục hồi giao dịch con” của một giao dịch gốc trong cây giao dịch lông. Nó cơ bản là một giao dịch con sau xác nhận trong đó giao dịch phía trên của nó không được phép quay lại. Nói cách khác, một điểm phục hồi giao dịch con của giao dịch gốc đã được xác nhận, tất cả các giao dịch ở trên của nó phải được buộc phải được xác 5 nhận. Trong trường hợp nó bị hủy bỏ, tổ tiên của nó có thể chọn một cahcs thay thế để hoàn thành công việc. Mô hình gia dịch lồng của chúng tôi sử dụng một thao tác prewrite trowcs mỗi thao tác write thực tế để làm tăng tương tranh. Cây giao dịch lồng của mô hình bao gồm các thao tác cơ sở dữ liệu, các thao tác phục hồi hệ thống ( như là phân tích và thao tác phục hội) và các thao tác quản lý bộ đệm đặc biệt quy định cho giao dịch lồng. Các thao tác read, prewrite và write là mô hình tại lớp lá trong hệ thống cấp bậc các giao dịch. Thao tác phục hôi được giới hạn trong các giao dịch lồng để tăng tương tranh trong suốt quá trình khởi động lại hệ thống. Thuật toán khóa của chúng tôi điểu khiển thi ành của cả hai thao tác bình thường giống như những thao tác phục hồi. Chúng tôi cũng bàn về cấu trúc dữ liệu cần thiết cho thuật toán phục hồi. Chúng ta bàn về một ảnh chụp của thuật toaans phục hồi và điều khiển tương tranh với trợ giúp của các ví dụ. Một tổng hợp ngắn gọn về thuật toán phục hồi sự cố của chúng tôi đã từng được đề cập trong nghiên cứu của Madria(1997c). Tính đúng đắn của thuật toán điều khiển tương tranh sử dụng mô hình vào ra tự động động đã được đề cấp đến trong báo cáo madira et al(1997b). Phần còn lại của báo cáo được trình bày như sau. Trong phần 2 chúng tôi trình bày về các ví dụ và tổng quan về mô hình giao dịch lồng mà mô hình phục hồi. Trông phần 3 chúng tôi thảo luận về mô hình hệ thống giao dịch lồng và thực hiện . Phần 4 trình bày về thao tác khởi động lại hệ thống. Chúng tôi trình bày về ảnh chụp của xử lý giao dịch, đăng nhập và phục hồi trong phần 5. Tổng kết trong phần 6 2.Thuật toán Phục hồi mô hình giao dịch lồng nhau Trong chương này chúng ta sẽ đề cập đến: mô hình giao dịch lồng nhau với một vài ví dụ và cung cấp một vài hình ảnh về mô hình và thuật toán khôi phục nó. Chuyển sang ví dụ: Hãy xem xét một phần mô hình giao dịch lồng nhau là chuyển khoản từ một nhóm người tới người khác. Trong giao dịch cây, hãy để T s là một giao dịch trên ,T s1 gọi là giao dịch dưới để thu thập (truy cập) vốn từ tài khoản khác. Một khi T s1 được xác nhận, T s gọi T s2 để các khoản tiền tín dụng cuối cùng được đưa vào tài khoản khác. Giả sử sau một giao dịch Tw đã thu hồi tất cả số tiền,Ts xác nhận. Nếu bất kỳ giao dịch nào ở trên Ts hủy bỏ thì nó mong muốn cho các giao dịch hoàn thanh thành công trên giao dịch phục hồi. Điểu này bởi là vì nó không thể sửa chữa thành công của giao dịch bởi một số thao tác đền bù . Một khả năng khác là trì hoãn hoạt động của Ts cho đến khi mức giao dịch ở trên xác nhận hạn chế sẵn có. Ví dụ một giao dịch cân bằng phải chờ đến khi giao dịch có mức xác nhận cao nhất. Một kịch bản trong giao dịch lồng nhau, giao dịch con sẽ quyết định sự thành công hay thất bại của giao dịch ở mức đỉnh. Giả sử cây mô hình giao dịch lồng nhau này hoạt động khác nhau có liên quan tới một kinh doanh du lịch . Một số hoạt động là rất quan trọng trong việc xác định sự hoàn thành các hoạt động ở cấp cao nhất. Ví dụ như xác nhận của “fund” và “visa” là thao tác liệu sẽ đi du lịch xác nhận hay không, đó là xác nhận ở mức dưới Sẽ xác định xác nhận ở mức cao hơn xác nhận hay không đến số phận của các giao 6 dịch khác cây giao dịch. Chú ý rằng Xác nhận giữa fund và visa, giao dịch ở mức trên sẽ được bắt buộc để xác nhận (kể cả một vài trì hoản hay bắt đầu lại ) Tính năng nổi bật của mô hình của chúng tôi: Mô hình của chúng tôi cho phép một số giao dịch đặc biệt trước khi có xác nhận giao dịch của họ tổ tiên. Điều này cho phép một số giao dịch khác có được các yêu cầu khóa sớm hơn. mô hình giao dịch lồng nhau của chúng tôi có thể xử lý các tình huống ở nơi mà kết quả của các giao dịch mức thấp đã được xác nhận không thể làm lại hoặc bồi thường trong trường hợp mức giao dịch cao hơn thất bại. Một ngữ nghĩa của giao dịch có thể gồm một điểm nhất định, nó có thể không phục hồi lại hoàn toàn hoặc không nên bị mất. Chúng tôi đạt được điều này bằng cách giới thiệu các khái niệm về “giao dịch điểm phục hồi“ (recovery point substransaction)của một giao dịch cấp cao nhất trong một cây giao dịch lồng nhau. Đó là bản chất là một giao dịch sau khi có xác nhận, tổ tiên của nó là không được phép để phục hồi lại trạng thái cũ. Trong trường hợp một giao dịch cấp trên hủy bỏ hoặc các hệ thống bị lỗi sau xác nhận của các điểm khôi phục của giao dịch, các giao dịch bị lỗi không thể hoàn tất trên hệ thống phục hồi. Thực hiện giao dịch như vậy cho phép một giao dịch phục hồi điểm tiết lộ kết quả của nó cho các giao dịch khác tại bất kỳ mức độ nào trước khi giao dịch cha của nó xác nhận. Kết quả của một điểm giao dịch phục hồi được tạo ra một cách bền vững trước xác nhận của giao dịch mức đỉnh. Điều này có trong sự hồi phục của các thuộc tính độc lập của giao dịch (Harder và Reuter, 1983) Để tránh hoàn tác thao tác và các hậu quả hủy bỏ và làm tăng độ sẵn sàng, chúng tôi giả định mỗi giao dịch phát ra một thao tác prewrite trước một thao tác write (Madria,Năm 1995; Madria và cộng sự, 1999;. Madria và Bhargava, 1997a) của đối tượng mà nó dự định ghi. Mỗi thao tác prewrite chứa kết quả của giao dịch user-visiable và đứng trước phương thức ghi cuối cùng được liên kết. Một hoạt động prewrite thực sự không làm thay đổi trạng thái của dữ liệu nhưng nó chỉ đưa ra giá trị đối tượng dữ liệu sẽ có sau khi phương thức write đươc liên kêt với nó được thực hiên. Lợi thế của prewrite là một thao tác đọc của các giao dịch khác có thể lấy được các giá trị trước khi trạng thái của một đối tượng dữ liệu cập nhập lên bộ nhớ ổn định và do đó làm tăng tính sẵn dùng của các giá trị dữ liệu mới. Hoạt động Prewrite này đặc biệt hữu ích trong các ứng dụng thiết kế kỹ thuật (Kim và cộng sự, 1984.) CAD (Korth và cộng sự, 1990.), Thiết kế dự án phần mềm lớn (Korth và Speegle, 1990) vv nơi giao dịch dài. Một giao dịch con kích hoạt các giao dịch con truy nhập prewrite khác tại mức lá cho các đối tượng dữ liệu là định nghĩa để trở thành một giao dịch con phục hồi điểm. Giao dịch con prewrite giải phóng khóa trước khi các giao dịch tổ tiên của chúng xác nhận. Loại bỏ một vài trong số các prewrite trước xác nhận của giao dịch con điểm phục hồi sẽ không bắt đầu việc hủy bỏ khi các giá trị prewrite được làm rõ chỉ sau xác nhận của giao dịch con phục hồi điểm. 7 2.1. Thuật toán phục hồi sự cố 2.1.1. Mục tiêu cơ bản của thuật toán phục hồi sự cố hệ thống • Khôi phục trạng thái cơ sở dữ liệu của các đối tượng dữ liệu mà cơ sở dữ không chứa các giá trị được xác nhận cuối cùng với các dữ liệu liên quan khi lỗi hệ thống xảy ra • Khôi phục các giá trị prewrite (lưu giữ tại vùng đệm ghi prewrite-buffer) của các đối tượng dữ liệu đã được công bố xác nhận điểm phục hồi giao dịch con trước khi hệ thống thất bại. • Để xác định đối tượng dữ liệu, đối tượng bảng dirty object table phải được phục hồi. Bảng này được sử dụng để theo dõi các đối tượng dữ liệu mà (thường bằng văn bản )giá trị không phù hợp với giá trị trong cơ sở dữ liệu ổn định. Bảng này cũng giữ thông tin về các đối tượng dữ liệu có các giá trị prewrite, được công bố bởi xác nhận điểm phục hồi các giao dịch con, không được ghi tuần tự lên cơ sở dữ liệu trước khi một hệ thống sụp đổ. • Một hệ thống sụp đổ tạo ra thêm một vấn đề về sự hoàn thành của các giao dịch mức đỉnh mà các giao dịch con điểm phục hồi của chúng đã được xác nhận trước khi hệ thống sụp đổ. . Họ phải làm lại có được các khóa được giữ bởi chúng tại thời điểm sụp đổ trước khi giao dịch mới có được khóa như vậy. • Để xử lý trên, các giao dịch, bảng khóa phải được hồi phục. Bảng giao dịch giữ một danh sách của tất cả các giao dịch đang hoạt động trong hệ thống bất cứ lúc nào. Bảng giao dịch phục hồi sẽ nhận ra những thao tác của những giao dịch ở mức đỉnh mà các giao dịch con điểm phục hồi đã được xác nhận trước khi hệt hống gặp sự cố. Bảng khóa gồm các loại khóa được tổ chức bởi các giao dịch khác nhau về dữ liệu đối tượng bất kỳ lúc nào. Bảng khóa phục hồi sẽ giúp đỡ trong tái tạo lại các khóa được tổ chức bởi hoạt động - mức giao dịch và con cháu của họ vào thời điểm đó thất bại. • Để kích hoạt giao dịch ở mức đỉnh mới ngay sau khi dirty object, giao dịch, và các bảng khóa gồm các trạng thái của việc ghi và ghi bộ đệm của dirty data đối tượng được tái lập. 2.1.2 các bước phục hồi hệ thống Để đạt được mục đích phục hồi ở tren, chúng ta cần làm các bước sau để khởi động lại hệ thống : Revival of dirty table ( phục hồi bảng dirty object ) Bảng dirty object cần thiết phải được checkpoint một cách định kỳ bằng cách truyền một bản sao của nó vào nơi lưu trữ ỏn định trong suốt quá trình xử lý bình thường. Giá trị viết trước và after-images được ghi nhật ký trên nơi lưu trữ trong suốt quá trình thực hiện để xây dựng bảng dirty object lâu dài trong trường hợp có lỗi hệ thống xảy ra trước khi lần checkpoint kế tiếp được tiến hành. 1 giao dịch không được chấp nhận hoàn thành cam kết xử lý của nó cho đến khi phần làm lại của giao dịch đó được ghi lên nơi lưu trữ. Phần làm lại của một bản ghi nhật ký cung cấp thông tin cho biết như thé nào để redo lại các thay đổi được thực hiện bởi các giao dịch đã 8 cam kết ở trước. Trong suốt quá trình khởi động lại hệ thống, bảng dirty object được phục hồi với sự trợ giúp của hầu hết các bản sao đã được checkpoint gần đây của bảng dirty object và được sủa với sự trợ giúp của nhật ký lưu trữ sau lần checkpoint cuối cùng. Revival of transaction and lock table ( phục hồi các giao dịch và các bảng khóa ) Các giao dịch và các bảng khóa được checkpoint bằng cách truyền một bản sao copy của mỗi cái vào nơi lưu trữ một cách định kỳ trong suốt quá trình xử lý bình thường. Bất cứ khi nào một giao dịch con được tạo ra hoạt động hoặc khi bất kỳ giao dịch nào có được hoặc giải phóng một khóa, thông tin này cũng dược ghi nhật ký để xây dựng một trạng thái ổn định cho các bảng này. Tuy nhiên, những thông tin này có thể không được ghi nhật ký cho các giao dịch con truy cập chỉ đọc và viết trước. khi chúng bị lờ đi trong trường hợp hệ thống bị hỏng. Nếu một checkpoint được tiến hành trong suốt quá trình phục hồi , sau đó nội dung của các giao dịch và các bảng khóa cũng sẽ dược bao gồm trong checkpoint. Sự ghi vào thích hợp với tất cả các giao dịch khác loại trừ những nội dung kia được khởi đồng lại, bị gỡ bỏ khỏi giao dịch và các bảng khóa. Để làm điều này, ta càn tìm các nơi lưu trữ có chứa các trạng thái cam kết( commit-state) của điểm phục hồi giao dịch con của mỗi giao dịch bậc cao. Thong tin trạng thái cam kết bao gồm dữ liệu riêng tư và các thông tin khác, định danh của giao dịch con cam kết cũng như của các giao dịch cha của nó. Một thông tin cam kết trạng thái của một giao dịch con T1 xác định trạng thái của giao dịch cha T2 của nó ở thời diểm cam kết của T1. Thông tin cam kết trạng thái trợ giúp việc xác thực lại trạng thái khởi động của lại của một giao dịch bậc cao theo thứ tự để hoàn thành công việc của nó. Không một giao dịch con nào mà toàn bộ ảnh hưởng không thể được làm xong trong trường hợp hệ thống hỏng có thể được xem xét hoàn toàn cho đến khi thông tin cam kết trạng thái của nó và tất cả dữ liệu của nó được ghi lại một cách an toàn vào nơi lưu trữ. Nếu nơi lưu trữ không bao gồm cam kết trạng thái của điểm phục hồi giao dịch con của một giao dịch bậc cao thì tất cả việc ghi vào thích hợp đến nó và tất cả các giao dịch con của nó bị gỡ bỏ khỏi bảng. Ngược lại, giao dịch bậc cao hoàn thành công việc còn lại của nó. Revival of buffer ( phục hồi bộ đệm ) để phục hồi nọi dung của bộ đệm ghi của một đối tượng dirty data, chúng ta copy giá trị của đối tượng dữ liệu từ stable-db đến bộ đệm ghi. Tuy nhiên, phiên bản cơ sở dữ liệu lâu dài của đối tượng dữ liệu có thể không bao gồm một số hoặc tất cả các cập nhật của các giao dịch cam kết……… Transaction logging and recovery (phục hồi và ghi nhật ký giao dịch ) các bản ghi nhật ký được viết thay mặt các giao dịch phụ luôn luôn liên kết với các bản ghi cuối cùng của cha của chúng tương ứng với cây giao dịch trong nhật ký. Bất cứ khi nào một truy cập viết trước được truyenf tới giao dịch cha của nó thì thông tin cam két của nó và giá trị viết trước được truyền tới giao dịch cha của nó , đấy là sự phục hồi điểm giao dịch phụ. Khi sự phục hồi điểm giao dịch phụ quyết dịnh sự cam kết, thông tin cam kết trạng thái của nó và giá trị viết trước được ghi nhật ký. Cam kết trạng thái này cho biết lịch trình( hay quy trình ) tính từ thời diểm này, ảnh hưởng của giao dịch phụ cam kết không thể bị mất đi dưới bất kỳ hoàn cảnh nào. Sự cam kết của điểm phục hồi giao dịch con chỉ xảy ra khi tất 9 cá các giao dịch con truy cập viết trước đã cam kết và bằng cách đó , cam kết trạng thái của điểm phục hồi giao dịch con ảnh hưởng đến tất cả các con cháu truy cập viết trước đã cam kết của nó. Cam kết trạng thái của điểm phục hồi các giao dịch phụ là cam kết đầu tiên ghi vào trong nhật ký lưu trữ. Nếu hệ thống bị sự cố một cách trực tiếp sau cam kết của sự phục hồi điểm giao dịch con của nó, scheduler sẽ khởi động lại hoạt động giao dịch bậc cao của nó từ cam kết trạng thái( trong nhật ký) chở đi. Bất cứ khi nào một gioa dịch con truy cập ghi ở mức lá quyết định cam kết, cam kết trạng thái và giá trị ghi của nó được ghi trong nhật ký. Thông tin cam kết được truyền tới giao dịch cha của nó mà giúp chấm dứt giao dịch cha. Quá trình ghi nhật ký cam kết trạng thái sẽ vẫn tiếp tục cho đến khi giao dịch bậc cao cam kết. Trong trường hợp có lỗi, những nhật ký này sẽ giúp phục hồi lại một giao dịch bậc cao. Quá trình ruyền một cam kết trạng thái hoặc giá trị viết trước của một giao dịch tới nhật ký lưu trữ được gọi là transaction checkpointing. Các cam kết trạng thái , giá trị viết và viết trước của các giao dịch phụ phải được sắp thứ tự để giúp hoàn thành một sự thực hiện lại của một giao dịch bậc cao hoạt động. Transaction checkpointing sẽ giữ tất cả các trạng thái cam kết logic cũng như giá trị viết và viết trước, ma không thể bị mất. Các giao dịch chỉ đọc không yêu cầu earrly write khi chúng không thay đổi một trạng thái của một trạng thái của đối tượng dữ liệu. Để hoàn thành các giao dịch bậc cao hoạt động, tất cả điểm phục hồi giao dịch con được cam kết trước khi hệ thống bị sự cố, scheduler sẽ khởi dộng lại các trạng thái để khởi tạo lại các giao dịch đó. Nếu cam kết của điểm phục hồi các giao dịch con chỉ là các bản ghi cam kết trong nhật ký lưu trữ, thì giao dịch bâc cao hoạt động của nó khởi động lại từ các cam kết trạng thái này. Mặt khác, scheduler tìm ra cam kết trạng thái được ghi trong nhật ký cuối cùng sau khi cam kết của điểm phục hồi giao dịch con trước khi system crash theo thứ tự để khởi động lại giao dịch từ trạng thái cuối cùng. Chỉ khi trạng thái khởi động lại được xác thực, scheduler lấy lại dạng của các khóa giao dịch bậc cao hoạt động và tất cả con cháu hoạt động của nó được giữ ở thời điểm có sự cố. Chỉ khi các khóa được lấy lại, sự thực thi của một giao dịch bậc cao bắt đầu lại từ trạng thái khởi động lại 2.2.Cấu trúc dữ liệu Ở đây chúng ta thảo luận về cấu trúc dữ liệu được sử dụng trong mô hình khôi phục thực thi logic.Hầu hết các cấu trúc dữ liệu này cần thiết trong việc thực thi vật lý. Đầu tiên chúng ta thảo luận về một số lĩnh vực hiển thị trong các loại bản ghi đăng nhập khác nhau LSN: Cho địa chỉ bản ghi đăng nhập trống.Nó là một giá trị tăng.Nó hiển thị loại dữ liệu bản ghi đăng nhập. Điều này có thể bao gồm các bản ghi đăng nhập khác nhưng không bắt buộc. Transaction-id: nhận dạng giao dịch tham gia trong bản ghi đăng nhập Object-id:Nhận dạng các đối tượng tham gia vào bản ghi đăng nhập.Nó hiển thi bản ghi đăng nhập "dữ liệu" và "khóa" các loại 10 [...]... và phục hồi của nó đã được trình bày trong bài báo này Chúng ta đã giới thiệu nội dung của một điểm phục hồi giao dịch và thao tác prewrite trong mô hình cho phép tương tranh cao Thuật toán phục hồi bào gồm các thao tác khởi động lại hệ thông ; các thao tác phân tích và phục hồi và các thao tác quản lý bộ đệm, mà được mô hình hóa trong khuôn khổ của mô hình giao dịch lồng Mô hình hóa các chức năng phục. .. yêu cầu , tương ứng với phần bảng đối tượng dữ liệu thô được xóa đi .Tương tự,mỗi khi đối tượng dữ liệu được lưu trữ ổn định,các lần nhập tương ứng được lấy ra từ bảng 3 Mô hình hệ thống giao dịch lồng và cài đặt Mô hình hệ cơ sở dữ liệu giao dịch lồng của chúng ta chính thức bao gồm các thành phần sau: Quản trị giao dịch (Transaction Managers- TMs), quản trị phục hồi (Recovery Manager – RMs) và quản... một giao địch hoạt động hay không Nó là đủ để một giao dịch có thể giữ chỉ một trạng thái mang tên “active” Từ khi quan hệ cha con của xác nhận giao dịch con là để lưu trữ trong log một cách riêng biệt bởi việc liên kết tới các bản ghi log của các giao dịch con tới các giao dịch cha của chúng, các bảng giao dịch không cần lưu thông tin về các giao dịch con đã được xác nhận Một giao dịch con ghi vào... T221 và T222 lần lượt là quá trình truy nhập ghi T’231 và T’’232 các giao dịch con truyền truy nhập Các đối tượng dữ liệu hỗ trợ được truy nhập bỏi các giao dịch là X và Y Ngay khi cấp giao dịch cao nhất U được thiết lập,trạng thái của nó được thiết lập “active” trong bảng giao dịch Thông tin này được thêm vào nhật ký trên bộ nhớ ổn định Ngay sau khi giao dịch T2,T21,T211 và T212 được kích hoạt ,thông tin. .. khóa nắm giữ thông tin về giao dịch đó Các giao dịch này sẽ được khởi động lại như recovery point suctrasaction T21 của chúng đã xác nhận 5.1.1.1 Điều khiển tương tranh bằng bước phân tích Để giải thích điều khiển tương tranh giữa các giao dịch truy cập của bước phân tích, Chúng tôi giả định rằng có một giao dịch con truy cập copy, một giao dịch con truy cập read, một write và một read analysis Các truy... và write lần lượt yêu cầu prewrite-lock và write-lock Khi một giao dịch con truy cập xác nhận, khóa của nó truyền tới cha mẹ của nó và như vậy ngoại trừ việc các truy cập write và transfer gửi khóa của mình tới tác tử ngoài Khi một giao dịch hủy khóa của nó được gửi tới cha mẹ chúng Các quy định khóa giống như trong 3.1 6 Kết luận Một mô hình giao dịch lồng, các thuật toán điều khiển tương tranh và. .. log bị gỡ bỏ và stable LNS của bộ đệm viết được đặt là LNS của bộ đẹm viết 18 5.Ảnh chụp về xử lý , khai thác và phục hồi giao dịch Xét cây cấu trúc giao dịch lồng U là người sử dụng giao dịch T1 và T2 lần lượt là các read-TMs và write-TMs T’2 là giao dịch daemon tương ứng T11,T21,T22 lần lượt là read-RMs, prewrite-RMs, và write-RMs T’23 là transfer-RM T111 la quá trình truy nhập đọc T211 và T212 lần... tính minh bạch và tự phát trong thao tác quản lý bộ đệm, các giao dịch ma gọi và xác nhận với các giao dịch liên quan đến nó TMs được đặt ở một giao dịch user-visible Các cấp tiếp theo của hệ thống giao dịch có 6 phục hồi khác nhau để phối hợp: read-RM, priwrite-RM, write-RM, tranfer-RM và các phân tích của hệ thống khởi động lại (analysis-RM) và redo-RM Những RMs hoạt động bởi các TMs tương ứng Trong... nhận của giao dịch gốc vì write-values, một khi được ghi không thể hoàn tác hoặc biến mất Để đáp ứng giao dịch và đảm bỏa phục hồi dữ liệu, hệ thống duy trì một nhật ký tương ứng cho mỗi đối tượng dữ liệu tại DM tương ứng Hệ thống cũng duy trì một nhật ký chung (được chia sẻ bởi tất cả DMs) để giữ thông tin về xử lý của giao dịch và dữ liệu liên quan, khóa của chúng nắm giữ thông tin .Thuật toán của... Điều này sã tránh truy cập LSN của stable-db để kiểm tra xem việc truyền các giá trị của đối tượng để lưu trữ là cần thiết hay không 3.1 Thuật toán điều khiển tương tranh Trong mục này, chúng tôi thảo luận về các dạng tương tranh thường xảy ra trong mô hình và phục hồi các thao tác và các khóa cần thiết để điều khiển chúng Chú ý rằng chúng ta sử dụng giống như giao thức điều khiển tương tranh để điều . điều khiển tương tranh và các thuật toán phục hồi cho mô hình của chúng tôi. Mô hình giao dịch lồng của chúng tôi sử dụng các khái niệm của giao dịch con điểm phục hồi trong cây giao dịch lồng. Nó. Mô hình giao dịch lồng an toàn và mở : tương tranh và phục hồi Giáo viến hướng dẫn: TS Nguyễn Đức Anh Nhóm thực hiện : Nhóm 09 Họ và tên MSSV Lê Xuân Tùng 20083004 Nguyễn Tuấn Anh 20080115 Nguyễn. liệu liên quan và xây dựng một vùng khởi động lại trong trường hợp phục hồi sụp đổ 1. Giới thiệu 1.1. Tổng quan về các mô hình giao dịch lồng nhau và thuật toán phục hồi 1.1.1. Mô hình giao dịch lồng