Chương 1: Cơ sở lý luận về Cơ sở dữ liệu trên bộ nhớ - Chương 2: Cơ sở khoa học về Cơ sở dữ liệu trên bộ nhớ - Chương 3: Các sản phẩm Cơ sở dữ liệu trên bộ nhớ - Chương 4: Thử nghiệm Cơ sở dữ liệu trên bộ nhớ - Kết luận và Hướng nghiên cứu tiếp theo LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 10 Chƣơng 1: CƠ SỞ LÝ LUẬN VỀ CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ I. Tình hình nghiên cứu IMDB Sự phát triển với tốc độ rất nhanh của CNTT bao gồm cả phần cứng, phần mềm và hạ tầng mạng (Internet, LAN, WAN…) đã làm thay đổi bộ mặt và hình thức kinh doanh trên quy mô toàn thế giới. Giờ đây hầu như các quy trình kinh doanh đều được tự động hóa, tin học hóa một cách tối đa. Các hệ thống CNTT đang là xương sống của những tập đoàn, tổ chức kinh doanh lớn, và khi việc kinh doanh phát triển (nhiều khách hàng hơn, nhiều lĩnh vực hơn, tinh vi hơn) những tổ chức này yêu cầu xây dựng những hệ thống CNTT ngày càng lớn và phức tạp.
Để đáp ứng nhu cầu này ngành CNTT cũng đã có những bước phát triển nhanh chóng: phần cứng rẻ hơn, nhanh hơn, băng thông mạng lớn hơn, các công cụ lập trình tiện dụng hơn, hiệu quả hơn,… Nhưng thật không may có một thành phần quan trọng của các hệ thống CNTT là Cơ sở dữ liệu truyền thống lại không có được những phát triển ấn tượng như vậy. Khi xây dựng những hệ thống lớn với số lượng giao dịch lớn Cơ sở dữ liệu trên ổ cứng trở thành các điểm nghẽn ảnh hưởng đến hiệu năng của toàn bộ hệ thống. Để giải quyết vấn đề này các nhà cung cấp giải pháp lưu trữ dữ liệu hàng đầu thế giới đều đang hướng về giải pháp Cơ sở dữ liệu trên bộ nhớ (In memory Database - IMDB) để cải thiện tốc độ truy cập dữ liệu. Khác biệt cơ bản là IMDB sử dụng bộ nhớ chính (RAM) để lưu trữ dữ liệu.
Khi đó tốc độ truy cập không chỉ được cải thiện vì tốc độ đọc/ghi của RAM nhanh hơn mà còn vì kiến trúc của hệ thống CSDL đơn giản hơn rất nhiều, cũng như không cần các cơ chế bộ nhớ đệm, không cần liên tục sao chép dữ liệu cache từ ổ cứng lên RAM. Nghiên cứu phát triển IMDB cũng như áp dụng IMDB vào các hệ thống phần mềm là xu hướng mới nhưng đang phát triển mạnh mẽ tại các công ty phần mềm, tại nhiều quốc gia, với nhiều lĩnh vực như tài chính, viễn thông, ngân hàng,… I. Tình hình nghiên cứu phát triển Nghiên cứu phát triển hệ thống IMDB thành các sản phẩm đóng gói đang là xu hướng của một số công ty phần mềm lớn cũng như cộng đồng mã nguồn mở. Dưới đây liệt kê một số sản phẩm điển hình: - Oracle TimesTen (sản phẩm thương mại) [4]: là một bộ sản phẩm của Oracle gồm CSDL TimesTen IMDB, và IMDB Cache để đồng bộ dữ liệu 2 chiều giữa CSDL Oracle truyền thống và TimesTen IMDB.
TimesTen IMDB là một cơ sở dữ liệu tối ưu hóa dựa trên bộ nhớ, giúp các ứng dụng ở các lĩnh vực khác nhau đạt được hiệu năng cao với thời gian đáp ứng (response time) rất nhỏ và thông lượng (throughput) rất lớn. Được triển khai ở tầng ứng dụng, TimesTen nằm hoàn toàn trong bộ nhớ chính, nhưng vẫn có các cơ chế lưu trữ dữ liệu ra ổ đĩa cứng nhằm đảm bảo an toàn dữ liệu. Ứng dụng truy cập dữ liệu trong CSDL TimesTen thông qua giao tiếp SQL chuẩn. TimesTen cũng có cơ chế đảm bảo tính sẵn sàng cao bằng tính năng Replication.
LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 11 - IBM SolidDB (sản phẩm thương mại) [10], [11]: là một bộ sản phẩm của IBM, gồm solidDB IMDB và solidDB Universal Cache. IBM solidDB IMDB là một cơ sở dữ liệu quan hệ trên bộ nhớ với đầy đủ tính năng, cung cấp tốc độ và tính sẵn sàng cao, giúp thỏa mãn yêu cầu về hiệu năng và độ tin cậy cho các ứng dụng thời gian thực. Ứng dụng kết nối để truy cập dữ liệu trong solidDB IMDB thông qua giao tiếp SQL chuẩn. solidDB cũng có cơ chế hot-standby để đảm bảo tính sẵn sàng cao.
SolidDB universal cache giúp đồng bộ dữ liệu từ một CSDL truyền thống tới solidDB IMDB. - McObject eXtremeDB (sản phẩm thương mại) [13]: là một bộ sản phẩm của McObject, gồm eXtremeDB IMDB là một cơ sở dữ liệu trên bộ nhớ dùng cho các ứng dụng thời gian thực và cho các ứng dụng nhúng như set-top box, thiết bị viễn thông, thiết bị điện tử,… Ngoài ra, bộ sản phẩm còn gồm các sản phẩm khác như eXtremeDB fusion, Cluster, HA, Transaction Logging. - H2 IMDB (sản phẩm nguồn mở) [14]: một CSDL trên bộ nhớ gọn nhẹ, hỗ trợ JDBC API, cho phép chạy ở chế độ embeded hoặc server, hỗ trợ SQL chuẩn. - HyperSQL (sản phẩm nguồn mở) [15]: là một CSDL được viết bằng java.
Nó cung cấp một database engine nhỏ gọn, nhanh, đa luồng, hỗ trợ cơ chế kết nối embeded và server. Nó cũng có các công cụ dòng lệnh SQL mạnh mẽ, và các công cụ có giao diện. Tại Việt Nam, việc nghiên cứu phát triển một sản phẩm CSDL trên bộ nhớ chưa được công ty, doanh nghiệp nào thực hiện. Việc sử dụng một hệ thống IMDB cũng còn rất ít.
Các giải pháp tăng cường hiệu năng hệ thống vẫn chỉ dừng lại ở mức tối ưu hóa CSDL hiện tại (chỉ mục, quy hoạch bảng biểu,…), hoặc cao hơn là cache dữ liệu cần thiết lên bộ nhớ, bằng cách sử dụng hashmap chẳng hạn. Tình hình sử dụng Việc lựa chọn sử dụng IMDB cũng ngày càng được các công ty ở các lĩnh vực quan tâm sử dụng nhằm tăng hiệu năng hệ thống. Dưới đây là một số ví dụ: - Công ty Dell với hệ thống Sale, CustomerCare và Hỗ trợ kỹ thuật rất lớn, lượng truy cập CSDL để lấy thông tin mặt hàng, tình trạng,… là rất lớn. Dell đã sử dụng Oracle TimesTen IMDB để làm giảm thời gian truy vấn dữ liệu, tăng hiệu năng và khả năng đáp ứng cho hệ thống.
- Công ty tài chính China Finance Online có hai website với khoảng 11 triệu người dùng. Các website này cung cấp các thông tin về chứng khoán, cổ phiếu, tài chính,…mới nhất, độ trễ dưới ba giây. Nó đòi hỏi phải đáp ứng lượng lớn truy cập với thời gian đáp ứng nhanh. China finance online đã sử dụng Oracle TimesTen và hoàn toàn đáp ứng được những yêu cầu trên.
- Iskratel là một công ty hoạt động trong lĩnh vực viễn thông, chuyên nghiên cứu và cung cấp các giải pháp liên quan đến mạng lưới. Công ty có một sản LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 12 phẩm SI3000 cho phép gọi điện, sử dụng data, cũng như các dịch vụ tích hợp rất hữu ích cho người dùng và doanh nhân. Nhưng hiệu năng CSDL như tra cứu thông tin khách hàng, cấu hình,… không như mong đợi. Iskratel đã thay thế CSDL truyền thống bằng IBM solidDB, giúp tăng số lượng cuộc gọi cũng như giảm thời gian xử lý xuống ba lần.
Tiến sĩ Elliot King [12], một nhà nghiên cứu của Loyola University, đã có whitepaper đưa ra số liệu thống kê liên quan đến việc sử dụng IMDB. Tháng 04/2011, Elliot King cùng nhóm cộng sự đã thực hiện mời các chuyên gia CNTT uy tín, cùng các nhóm phù hợp trên LinkedIn.com tham gia khảo sát. Những người được mời làm việc ở nhiều lĩnh vực, vai trò khác nhau. Kết quả, có 237 người tham gia khảo sát, trong số đó 30% đang sử dụng IMDB, 70% còn lại thì có đến hơn một nửa quen thuộc với công nghệ IMDB.
Chi tiết một số kết quả khảo sát như sau: - Loại ứng dụng sử dụng IMDB: Phân tích kinh doanh Giao dịch web Báo cáo Tài chính Billing & provisioning Ứng dụng nhúng, di động - Lượng dữ liệu trong IMDB: Dưới 10 GB 11 – 25 GB 26 – 100 GB Trên 100 GB Không biết - Có ý định bắt đầu/mở rộng việc sử dụng IMDB trong tương lai: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 13 không biết không có - Nguyên nhân thúc đẩy sự mở rộng việc sử dụng IMDB: Nhiều ứng dụng hơn Cần độ trễ thấp Nhiều người dùng hơn Tăng kích thước data Tăng dung lượng data Khác - Các lợi ích quan trọng nhất của IMDB: Hiệu năng cao Độ trễ rất thấp Tăng TPS Giảm lưu trữ dữ liệu tạm thời Khác - Các hạn chế lớn nhất của IMDB: Kích thước CSDL Tính sẵn sàng Loại dữ liệu hỗ trợ Khả năng hỗ trợ tính ACID Khác LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 14 - Tiêu chí khi lựa chọn sản phẩm IMDB: Có hỗ trợ Cam kết lộ trình Platform hỗ trợ Giá cả Tương thích đối tác Khác Nghiên cứu của Tiến sĩ Elliot King đã cho thấy sự quan tâm ngày càng lớn trong việc sử dụng IMDB với các ứng dụng trong nhiều lĩnh vực, nhằm đạt được các yêu cầu về hiệu năng, giải quyết thách thức về sự tăng trưởng dữ liệu, cũng như đạt được các mục tiêu dài hạn của công ty. Nhu cầu thực tế và khả năng áp dụng I. Nhu cầu Đi cùng với sự phát triển kinh doanh, khách hàng của mỗi công ty, doanh nghiệp sẽ là những thách thức về hiệu năng, số lượng truy cập dữ liệu, cũng như những đòi hỏi ngày càng cao của khách hàng. Nếu không đủ nhanh và đáp ứng yêu cầu thị trường, yêu cầu khách hàng, công ty khó có thể cạnh tranh với các công ty khác.
Các hệ thống liên quan trực tiếp cần cải thiện hiệu năng gồm các ứng dụng viễn thông, tài chính ngân hàng, hàng không, quân sự, game, các hệ thống chăm sóc khách hàng. Trong lĩnh vực Viễn thông nói riêng, Viettel đang là một trong ba nhà cung cấp dịch vụ viễn thông lớn nhất Việt Nam. Các sản phẩm phần mềm hỗ trợ kinh doanh chủ yếu do Trung tâm Phần mềm Viettel tự xây dựng. Hiện tại, Trung tâm đã và đang phát triển những hệ thống rất lớn như Tính cước và chăm sóc khách hàng (Billing & Customer Care System – BCCS), kho tàng tài sản, v-office,… đến khi đưa vào sử dụng, vận hành mới phát hiện ra nhiều điểm nghẽn liên quan đến CSDL và đang phải khắc phục rất vất vả.
Việc treo nghẽn của hệ thống BCCS ảnh hưởng nghiêm trọng đến việc sản xuất kinh doanh và mức độ hài lòng của khách hàng. Các điểm treo nghẽn của hệ thống BCCS hầu như đều liên quan đến việc truy cập CSDL. Các ví dụ điển hình là: - Vào các thời điểm cuối tháng các chi nhánh, phòng ban, đơn vị đồng thời vào lấy báo cáo kết quả sản xuất kinh doanh trong tháng.