Data Availability và Integrity

Một phần của tài liệu Nghiên cứu cơ sở dữ liệu trong bộ nhớ giải quyết bài toán đa giao dịch (Trang 62 - 69)

TimesTen chắc chắn về sự sẵn sàng, toàn vẹn dữ liệu và tính bền của hệ thống thông qua việc sử dụng 3 cơ chế:

3.1.4.1. Logging

Hình 3.6: Two-tiered logging

Có 2 cấp độ logging:

 Trong bộ nhớ Transaction Log Buffer

54

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

TimesTen cung cấp một thuộc tính cấu hình của logging cho phép ngƣời dùng tinh chỉnh việc logging để có đƣợc sự thỏa hiệp tốt nhất giữa hiệu suất và tính bền bỉ. Tùy chọn này là một thuộc tính của Data Store và sẽ đƣợc cố định khi tải lên bộ nhớ. Tức là không đƣợc sửa đổi thuộc tính này khi nó đã đƣợc đƣa lên bộ nhớ.

Ở đây có 2 tùy chọn:

Disk-based logging

Ứng dụng sẽ có đƣợc dữ liệu có tính bền bỉ bằng cách ghi lại các nội dung từ Log Buffer vào log files trên ổ cứng một cách định kỳ. Ngƣời dùng có thể cấu hình TimesTen thực hiện ghi lại hành động một cách tự động tại thời điểm hoàn thành giao tác hoặc cho ứng dụng làm thủ công bằng cách gọi các procedure có sẵn trong thƣ viện (khi mà buffer chuẩn bị đầy. TimesTen sẽ tự lƣu nội dung của buffer vào file trên ổ đĩa).

Trong tùy chọn này, TimesTen ghi lại một bản sao sự thay đổi của Data Store ở ổ đĩa nhƣ là một nhiệm vụ để hoàn thành giao tác. Bản ghi này có thể dùng để quay lui (rolled back) hoặc khôi phục lại khi cần thiết. Tuy nhiên việc phải truy cập vào ổ đĩa sẽ làm tăng thời gian đáp ứng một giao tác.

Logging disabled

Cung cấp hiệu suất cao nhất cho việc hoạt động của hệ thống. Nhƣng, các giao tác không thể quay lui hoặc khôi phục lại đƣợc. Chỉ nên vô hiệu hóa logging trong các hoạt động mà nó có thể khởi động lại từ đầu nếu thất bại xảy ra, chẳng hạn nhƣ khi phải tải một số lƣợng lớn Data Store.

Log files sẽ bị xóa khỏi ổ đĩa khi một hành động checkpoint trên Data Store hoàn thành và TimesTen thông báo rằng đƣợc phép dọn dẹp.

3.1.4.2. Checkpointing

Đƣợc sử dụng để gửi một bản chụp (snapshot) của Data Store đến file trên ổ cứng. Trong trƣờng hợp có lỗi hệ thống, TimesTen có thể sử dụng một checkpoint file cùng với log files để khôi phục một Data Store trở lại trạng thái gần nhất trƣớc khi bị hỏng. Ứng dụng có thể khởi tạo một checkpoint bằng cách gọi các procedure tƣơng ứng trong thƣ viện.

55

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

TimesTen duy trì hai checkpoint files cho mỗi Data Store, có tên là DataStoreName.ds0 và DataStoreName.ds1. Khi mà Data Store đã đƣợc checkpoint vào ổ đĩa, TimesTen sẽ ghi đè lên 2 checkpoint file cũ.

Chỉ có dữ liệu đƣợc thay đổi kể từ checkpoint gần nhất mới đƣợc ghi lại. Hoạt động checkpoint sẽ quét các Data Store và tìm ra những sự khác biệt, sau đó chỉ cập nhật những thông tin đã thay đổi và loại bỏ những thứ không cần thiết (đã tồn tại rồi).

Hình 3.7: Các hoạt động trong Checkpoint

Data Store thể bị lỗi bởi hệ thống đổ vỡ hay tiến trình đang sử dụng gặp sự cố, mọi kết nối sẽ bị ngắt. Khi ứng dụng kết nối lại đến Data Store bị lỗi, Subdaemon sẽ cấp phát một memory segment mới cho Data Store và khôi phục lại nó từ checkpoint và log file.

56

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Hình 3.8. Khôi ph c d li u t log và checkpoint files 3.1.4.3. Replication

Là một tiến trình sao chép dữ liệu giữa các Data Store, để tạo ra những dữ liệu có tính sẵn sàng cao nhằm nhiệm vụ giảm thiểu tối đa việc ảnh hƣởng đến hiệu suất do nhiều ứng dụng cùng sử dụng. Ngoài ra nó còn có vai trò phục hồi Data Store khi thất bại, Replication cũng rất hữu ích cho việc phân phối để ngƣời dùng tải nhiều Data Store với hiệu suất tối đa và dễ bảo trì.

Replication configurations

TimesTen Replication sao chép các bản sao cập nhật từ một Master Data Store đến một Subscriber Data Store.

57

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn (adsbygoogle = window.adsbygoogle || []).push({});

Để đạt đƣợc hiệu quả cao và chi phí thấp, TimesTen sử dụng một Transaction Log Buffer.

Nhƣ trong hình 3.9, Replication tại mỗi Master và Subscriber Data Store đƣợc điều khiển bởi Replication Agent, giao tiếp thông qua TCP/IP socket. Replication Agent trên Master (Master Agent) Data Store đọc bản ghi từ Transaction Log và chuyển tiếp những thay đổi đƣợc phát hiện đến Replication Agent trên Subscriber (Subscriber Agent) Data Store. Subscriber Agent thực hiện cập nhật lại Data Store. Nếu Subscriber Agent không hoạt động khi các thay đổi đƣợc chuyển tiếp từ Master, Master sẽ vẫn giữ thay đổi trong nhật ký của nó đến khi có thể thực hiện thay đổi đƣợc cho Subscriber.

Hình 3.10. Master and Subscriber Replication Agents

Điểm tập trung của TimesTen Replication là tạo cho dữ liệu khả năng sẵn sàng cao. Để đạt đƣợc mục tiêu Replication cung cấp nhiều cách khác nhau trong việc cấu hình, để đƣa ra đƣợc một sự cân bằng tốt nhất giữa hiệu năng và tính sẵn sàng.

Replication đƣợc cấu hình thông qua câu lệnh SQL. Thông thƣờng, Replication có thể đƣợc cấu hình đơn hƣớng (Unidirectional hay one way) từ Master đến một hay nhiều Subscribers, hoặc hai hƣớng (bidirectional hay two way) giữa hai hay nhiều Data Store ở cả Master và Subscriber. Nhiều hơn nữa ta có thể cấu hình đa hƣớng (N-way) hoặc cập nhật mọi nơi (update anywhere) Replication.

58

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Hình 3.11. Ví dụ về các cấu hình replication

Hot standby: là một phƣơng pháp sao lƣu dự phòng, có một hệ thống repication chạy đồng thời với hệ thống chính.

Hình 3.11, thể hiện làm cách nào replication có thể cấu hình để cung cấp một hot standby cho việc sao lƣu Data Store và cân bằng tải (load-balanced) một cách đồng đều. Trong chế độ cấu hình hot standby, một Master Data Store đơn lẻ sẽ đƣợc sao chép đến Subscriber Data Store với một cơ chế dự phòng thích hợp xây dựng bên trong bản thân ứng dụng.

Với cấu hình cân bằng tải, một khối lƣợng công việc (workload) có thể đƣợc phân chia giữa master và subscriber. Có 2 kiểu cơ bản:

 Split workload: Mỗi Data Store lƣu trữ một phần của nó trên Data Store khác

 Distributed workload: Nơi nào ngƣời dùng có thể truy cập đều trở thành nguồn dữ liệu. Các nguồn này ngang hàng nhau, không phân biệt Master và Subscriber.

59

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Hình 3.12. Replication trong Hot standby và load balancing Kích hoạt chế độ Active standby pair

Trong chế độ standby pair, 2 Data Store đƣợc định nghĩa nhƣ là Master. Một là Active Master Data Store, còn lại là Standby Master Data Store. Trong đó, Active Master Data Store có thể cập nhật trực tiếp đƣợc, còn Standby Master Data Store thì không. Standby Master Data Store nhận đƣợc sự thay đổi từ Active Master Data Store và có thể truyền sự thay đổi này đến 62 Subscriber Data Store (chỉ đƣợc đọc). Nếu Active Master Data Store lỗi, nó có thể đƣợc khôi phục từ Standby Master Data Store, các hoạt động chính tạm thời chuyển giao cho Standby Master Data Store. Tƣơng tự, nếu Standby Master Data Store bị lỗi.

60

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Replication thiếu đồng bộ và dịch vụ “return”

TimesTen Replication mặc định một cơ chế thiếu đồng bộ, nghĩa là một ứng dụng thay đổi Master Data Store và tiếp tục làm việc mà không chờ thay đổi đó đƣợc các Subscriber nhận đƣợc. Giữa Master và Subscriber Data Store có một cơ chế nội bộ để xác nhận các bản cập nhật đã thành công, nhƣng nó lại vô hình với các ứng dụng. Kiểu làm việc giúp hệ thống có đƣợc hiệu suất tối đa, nhƣng ứng dụng lại bị tách rời hoàn toàn trong tiến trình tự sao chép (replication) trên Subscriber. TimesTen cung cấp dịch vụ “return” để cung cấp thêm thông tin cho các ƣng dụng cần mức độ tin tƣởng cao rằng dữ liệu đã đƣợc nhân bản và nhất quán ở Master and Subscriber Data Store.

Một phần của tài liệu Nghiên cứu cơ sở dữ liệu trong bộ nhớ giải quyết bài toán đa giao dịch (Trang 62 - 69)