Chương 1. KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU THỜI GIAN THỰC VÀ VẤN ĐỀ TRUY CẬP 1. Khái quát về xử lý dữ liệu trong cơ sở dữ liệu thời gian thực Cơ sở dữ liệu (CSDL) truyền thống đã hình thành từ rất sớm có một vai trò quan trọng trong các ứng dựng trên thực tế. Đặc điểm của các giao dịch trong CSDL truyền thống là yêu cầu về tính nhất quán.
Điều này thể hiện ở trong việc lưu trữ dữ liệu thống nhất, nghĩa là tránh được tình trạng trùng lặp thông tin và có cơ chế điều khiển truy xuất dữ liệu hợp lý, đó là tránh được việc tranh chấp dữ liệu và bảo đảm dữ liệu luôn đúng đắn tại mọi thời điểm. Thông thường các thực hiện giao dịch và xử lý truy vấn trong CSDL là cố gắng nhằm đạt được một số lượng lớn giao dịch được thực thi và thời gian đáp ứng nhanh nhất có thể. Ngày nay, với sự phát triển của công nghệ, ngoài việc đảm bảo các tính chất của giao dịch, giao dịch với số lượng lớn thì phải đảm bảo được thời gian đáp ứng của các giao dịch, đó là đảm bảo tính thời gian thực cho hệ thống. Các lĩnh vực cần đáp ứng thời gian thực bao gồm cơ sở hạ tầng mạng, viễn thông, thị trường tài chính, chứng khoán, hàng không, thương mại điện tử, doanh nghiệp.
với các ứng dụng điển hình như hệ thống điều khiển không lưu, giao dịch cổ phiếu chứng khoán, đặt chỗ máy bay, du lịch, hệ thống điều khiển robot, thi trực tuyến, hội họp trực tuyến. Dưới đây là một số lĩnh vực có xu hướng giao dịch CSDL thời gian thực. Trong lĩnh vực hoạt động doanh nghiệp, việc ứng dụng một hệ quản trị CSDL (Database Management System - DBMS) là rất quan trọng. DBMS là một hệ thống phần mềm tạo điều kiện cho quá trình xác định, xây dựng, thao tác, và chia sẻ CSDL giữa các người dùng khác nhau và các ứng dụng.
Nó củng cố tất cả các hoạt động trong một ứng dụng doanh nghiệp và hiệu suất của các ứng dụng doanh nghiệp phụ thuộc nhiều vào hiệu suất của các DBMS. Khi hệ quản trị CSDL quan hệ ra đời đã hỗ trợ giao dịch một các hiệu quả và rất tin cậy. Nhưng khi khối lượng dữ liệu lớn hơn, hệ quản trị CSDL quan hệ không còn có thể hiệu quả phục vụ các yêu cầu của các ứng dụng doanh nghiệp. Đặc biệt nó thể xử lý 5 giao dịch trên toàn bộ CSDL một cách kịp thời.
Lý do chính mà hệ quản trị CSDL quan hệ hiện tại không thể thực hiện các truy vấn yêu cầu đủ nhanh là dữ liệu phải được lấy ra từ đĩa cứng. Hệ thống hiện đại sử dụng rộng rãi của bộ nhớ đệm để lưu trữ dữ liệu thường xuyên truy cập trong bộ nhớ chính nhưng đối với các truy vấn xử lý lượng lớn dữ liệu, đọc ổ đĩa vẫn được yêu cầu. Đơn giản chỉ cần truy cập và đọc dữ liệu từ đĩa cứng có thể mất một số lượng đáng kể thời gian. Vì vậy đối với doanh nghiệp đòi hỏi phải có phương án thay thế để giảm các chi phí và thời gian xử lý của hệ thống quản lý dữ liệu trên đĩa là rất cần thiết.1 là một ví dụ về đề xuất của Bill Gates vào năm 1994, Information at the fingertips, khi đó ông hình dung ra một tương lai mà trong đó bất kỳ thông tin nào đều có sẵn ở bất cứ đâu.
Việc tham gia cuộc họp có thể ở nhiều địa điểm khác nhau, tất cả các trình duyệt, truy vấn, thao tác cùng thông tin đều trong thời gian thực.com/Assets/Blogs/2010/June/Hasso- Plattner-on-In-Memory-Computing-OLAP-and-OLTP). Hội họp trong tương lai Trong lĩnh vực tài chính, những cán bộ kiểm soát tài chính là những người đặc biệt gặp khó khăn với khối lượng dữ liệu ngày càng gia tăng. Do thời gian trả lời dữ liệu chậm, họ bị buộc phải giới hạn khung thời gian phân tích trong vài ngày thay vì vài thang hay vài quý. Điều này dẫn tới một loạt chậm trễ, bao gồm cả việc đóng 6 sổ cuối mỗi kỳ tài chính.
Vì vậy việc phân tích dữ liệu khối lượng lớn và môi trường mô hình linh động đồng nghĩa với việc quyết toán tài chính nhanh hơn và hiểu biết sâu sắc hơn về những dữ liệu tài chính chi tiết ở các khung thời gian rộng hơn cần một phương án thay thế thích hợp so với hệ thống CSDL thông thường. Trong lĩnh vực đào tạo và thi trực tuyến, việc tham gia của hàng trăm, hàng nghìn thí sinh tham gia trong cả nước đòi hỏi hệ thống phải xử lý lượng giao dịch rất lớn. Ngay sau khi thi xong, thí sinh có thể biết ngay điểm và thứ hạng của mình trên hệ thống. Điều này đòi hỏi thời gian xử lý phải nhanh, đáp ứng được thời gian thực.
Hệ thống thi trực tuyến Qua các xu hướng này, chúng ta có thể nhận thấy rằng giao dịch CSDL thời gian thực đang là một xu hướng tất yếu, cần được tìm hiểu và áp dụng. Tiếp theo, chúng ta tìm hiểu giao dịch CSDL hoạt động như thế nào? 1. Vấn đề truy cập và xử lý nhanh trong hệ thống cơ sở dữ liệu Một trong những vấn đề gây ảnh hưởng nhất đến tốc độ hồi đáp truy vấn trực tuyến thời gian thực là hệ thống CSDL cho các ứng dụng (trực tuyến) thời gian 7 thực (Real-time application). Ứng dụng thời gian thực có thể chia ra làm hai loại, ứng dụng giao dịch thời gian thực và ứng dụng phân tích thời gian thực.
Có 4 xu hướng cải tiến kỹ thuật cho CSDL là: Xử lý song song, Thay đổi kiến trúc CSDL, Thay đổi cơ chế hoạt động, Sử dụng bộ nhớ (in-Memory). Trong những năm gần đây, CSDL trong bộ nhớ đang được các tổ chức và công ty nghiên cứu trên thế giới tập trung để giải quyết các bài toán xử lý dữ liệu lớn và phân tán áp dụng cho các ứng dụng trực tuyến trong mô hình điện toán đám mây. Khác với mô hình tính toán lưới (Grid computing) trong đó yêu cầu thực thi có thể được phép “đợi lúc CPU rảnh” thì mô hình tính toán trong đám mây hoàn toàn khác, rất nhiều người dùng được sử dụng tài nguyên để truy vấn đồng thời vì vậy cần đảm bảo chất lượng dịch vụ tức thời nhưng tôn trọng trình tự người truy vấn. Hay nói cách khác, bắt buộc hệ thống phải xử lý trình tự và đáp ứng thời gian thực cho có thể đến hàng triệu người truy vấn.
Vấn đề này đang là nỗi lo lắng nhất cho các hệ thống trực tuyến đang phát triển nhanh chóng, khi mà các giải pháp xử lý song song không còn nhiều tác dụng. Các công ty thương mại như Oracle cũng như các công ty mã nguồn mở cũng đã nghiên cứu và triển khai. Thực trạng là hệ thống thi trực tuyến Violypic bị treo khi có 3000 kết nối cùng một thời điểm, do đó đã phải cải tiến CSDL tạm thời, hay các sàn chứng khoán xử lý hàng triệu giao dịch trong mỗi giây, và đã bắt đầu sử dụng IMDB (In- Memory Database). IMDB chính là giải pháp cho những hệ thống có đa giao dịch hay rất nhiều giao dịch xảy ra đồng thời và cần xử lý thời gian thực.
Ở Việt Nam, các nghiên cứu về CSDL đáp ứng thời gian thực còn rất ít trong khi nền kinh tế thì phát triển rất nhanh để kịp ngang bằng với thế giới. Vì vậy, sớm bắt đầu nghiên cứu và áp dụng công nghệ này là cần thiết. Giải pháp sử dụng cơ sở dữ liệu trong bộ nhớ 1. Giải pháp Người dùng ngày nay luôn muốn truy cập thông tin nhanh để đưa ra những quyết định chính xác ở bất kỳ thời điểm nào, vì vậy CSDL là nguồn tài nguyên hết sức cần thiết và quan trọng.
Một Chương trình máy tính chuyên biệt phổ biến dành cho CSDL chính là hệ quản trị CSDL DBMS. Đó là nơi cung cấp phương pháp chuẩn hóa về tính toàn vẹn dữ liệu, thiết lập các mối quan hệ dữ liệu phức tạp, đảm bảo truy nhập thông tin nhanh và hiệu quả. Nhưng điểm hạn chế của các hệ thống DBMS là thường kết hợp với thao tác nhập/xuất (I/O) trên ổ đĩa, một tiến trình cơ học có thể làm giảm hiệu năng của máy tính. Tuy nhiên, trong những thập niên trở lại đây, các nhà cung cấp phần mềm đã tập trung phát triển CSDL bên trong bộ nhớ (In-Memory database – IMDB hoặc còn gọi là CSDL bộ nhớ chính MMDB - Main Memory Database) nhiều hơn.
IMDB được mô tả như là một mô hình DBMS mới giúp tăng tốc độ lưu trữ, truy xuất và phân loại thông tin bằng cách lưu giữ tất cả dữ liệu trong bộ nhớ chính. Khi IMDB chưa xuất hiện, DBMS đã dùng bộ nhớ đệm để giữ các bản ghi được cập nhật thường xuyên trong RAM giúp truy xuất nhanh. Ngoài ra, một số DBMS truyền thống khác có bảng bộ nhớ để giữ các tập dữ liệu trong bộ nhớ. Đôi khi, DBMS được triển khai trên đĩa RAM (RAM disk - bộ nhớ RAM giả lập thành ổ đĩa cứng, khi mất nguồn điện, toàn bộ dữ liệu trên RAM disk sẽ mất) và gần đây là ổ đĩa SSD.
IMDB là hệ quản trị CSDL lưu trữ toàn bộ dữ liệu trong bộ nhớ chính nên giúp cho việc ghi/đọc trong hệ thống tập tin nhanh hơn nhiều. Quan điểm trong thiết kế của IMDB là bộ nhớ ngang bằng với không gian lưu trữ vì hiệu quả sử dụng bộ nhớ là tối quan trọng. Ưu điểm của IMDB: Nhiều người dùng có thể truy cập dữ liệu đồng thời với thời gian phản hồi xác định và các giao dịch diễn ra nhanh theo thời gian thực. 9 Tổ chức hợp lý hóa việc quản lý dữ liệu, gỡ bỏ các lớp dữ thừa đặc thù trong các hệ quản trị dữ liệu DBMS trên ổ đĩa.
Các giải thuật tìm kiếm trong truy cập vào bộ nhớ được tối ưu hóa. Trong biên dịch tìm kiếm, IMDB trỏ trực tiếp vào vùng bộ nhớ của các yếu tố dữ liệu. Đảm bảo việc truy nhập trực tiếp đến dữ liệu. Điểm mạnh của IMDB loại bỏ cách quản lý bộ nhớ đệm (cache) cũng như thiết bị I/O, giúp tăng hiệu năng hệ thống so với DBMS trên ổ đĩa với bộ nhớ đệm.
Cache là nơi lưu trữ sẵn các dữ liệu được dự đoán là sẽ phục vụ yêu cầu của các ứng dụng hay hệ thống nhằm tăng tốc độ xử lý (không phải tốn thời gian tìm kiếm). Bộ nhớ đệm chỉ tăng tốc khi trích xuất/đọc thông tin. Trong trường hợp cập nhật hay tạo ra bản ghi mới trong CSDL, thông tin phải được ghi vào cache, sau đó vào đĩa.