Upload
lythien
View
233
Download
3
Embed Size (px)
Citation preview
ĐẠI HỌC QUỐC GIA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN
HOÀNG TRÍ NHÂN
CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB)
VÀ ỨNG DỤNG TRONG HỆ THỐNG PHẦN MỀM
CẦN XỬ LÝ CƠ SỞ DỮ LIỆU HIỆU NĂNG CAO
Ngành: Công nghệ thông tin
Chuyên ngành: Quản lý hệ thống thông tin
Mã số: Chuyên ngành đào tạo thí điểm
TÓM TẮT LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hà Nội, 05/2013
2
MỤC LỤC
MỤC LỤC ............................................................................................................................ 2
MỞ ĐẦU .............................................................................................................................. 3
Chương 1: CƠ SỞ LÝ LUẬN VỀ CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ ........................ 5
I.1. Tình hình nghiên cứu ............................................................................................ 5
I.2. Nhu cầu thực tế và khả năng áp dụng ................................................................... 6
I.3. Kết luận chương 1 ................................................................................................. 7
Chương 2: CƠ SỞ KHOA HỌC VỀ CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ .................... 8
II.1. Kiến thức chung về Cơ sở dữ liệu trên bộ nhớ .................................................... 8
II.2. So sánh với các công nghệ cạnh tranh ............................................................... 10
II.3. Ưu nhược điểm của Cơ sở dữ liệu trên bộ nhớ .................................................. 11
II.4. Kết luận chương 2 .............................................................................................. 11
Chương 3: CÁC SẢN PHẨM CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ ............................. 12
III.1. Các sản phẩm thương mại ................................................................................ 12
III.2. Các sản phẩm mã nguồn mở ............................................................................ 13
III.3. So sánh các sản phẩm ....................................................................................... 15
III.4. Kết luận chương 3 ............................................................................................ 16
Chương 4: THỬ NGHIỆM CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ ................................. 17
IV.1. Tổng quát lớp bài toán áp dụng ........................................................................ 17
IV.2. Mô hình áp dụng .............................................................................................. 17
IV.3. Thử nghiệm và kết quả ..................................................................................... 18
IV.4. Kết luận chương 4 ............................................................................................ 22
KẾT LUẬN VÀ KIẾN NGHỊ .......................................................................................... 23
1. Kết luận.................................................................................................................. 23
2. Kiến nghị ............................................................................................................... 23
3
MỞ ĐẦU
1. Sự cấp thiết của đề tài
Sự phát triển nhanh chóng của công nghệ thông tin đã làm thay đổi bộ mặt và
hình thức kinh doanh trên quy mô toàn thế giới. Các hệ thống công nghệ thông tin
đang là xương sống của các doanh nghiệp. Nhu cầu kinh doanh đặt ra yêu cầu xây
dựng các hệ thống phần mềm phức tạp hơn nhưng vẫn phải đảm bảo hiệu năng. Nhiều
điều kiện đã thay đổi: 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 Cơ sở dữ liệu truyền thống
(disk-based DB) 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 dữ liệu cũng như số giao dịch lớn, Cơ sở dữ liệu
truyền thống trở thành điểm nghẽn hệ thống. Thực trạng này đặt ra những yêu cầu cần
tìm ra những phương pháp, hướng đi mới cho hệ thống Cơ sở dữ liệu.
Để giải quyết vấn đề này, hiện cũng đã có các nghiên cứu thử nghiệm nhằm làm
tăng tốc độ truy vấn dữ liệu. Đổi phương tiện lưu trữ từ ổ cứng sang SSD, giả lập
RAM thành ổ cứng, tốc độ truy vấn đã được cải thiện. Một hướng đi khác là In-
memory database (IMDB), lưu toàn bộ dữ liệu trong bộ nhớ chính. Kết quả so sánh
giữa cơ sở dữ liệu trên ổ cứng, trên SSD, trên bộ nhớ chính đã cho thấy sử dụng cơ sở
dữ liệu trên bộ nhớ là một hướng đi đúng đắn. Cơ sở dữ liệu trên bộ nhớ (In-memory
database) là cơ sở dữ liệu quan hệ dựa trên bộ nhớ, bỏ qua các thao tác truy cập ổ đĩa
cứng bằng cách lưu trữ và xử lý dữ liệu ngay trên bộ nhớ chính. Khác biệt cơ bản giữa
Cơ sở dữ liệu trên bộ nhớ với cơ sở dữ liệu truyền thống là nó 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ế buffer, không cần liên tục copy dữ liệu cache từ
ổ cứng lên RAM, đồng thời các thuật toán tối ưu câu truy vấn, tổ chức dữ liệu, chỉ mục
cũng được thay đổi cho phù hợp.
Hiện nay, các nhà cung cấp giải pháp lưu trữ dữ liệu hàng đầu thế giới cũng đang
hướng về giải pháp Cơ sở dữ liệu trên bộ nhớ để cải thiện tốc độ truy cập dữ liệu. Điển
hình phải kể đến Oracle và IBM. Ngoài ra, các công ty nhỏ và cộng đồng mã nguồn
mở cũng tham gia mạnh mẽ vào việc nghiên cứu phát triển và sử dụng cơ sở dữ liệu
trên bộ nhớ. Tại Việt Nam, chưa có nhiều nghiên cứu, bài viết chính thống về Cơ sở
dữ liệu trên bộ nhớ, chủ yếu là các thông tin trên một số diễn đàn công nghệ thông tin,
các nghiên cứu toàn diện và chuyên sâu lại càng hiếm. Từ đó đặt ra yêu cầu cấp thiết
và thực tế là cần có một nghiên cứu chuyên sâu và toàn diện về Cơ sở dữ liệu trên bộ
nhớ: kiến trúc, đặc điểm chức năng, ưu nhược điểm, cũng như cách sử dụng chúng sao
cho hiệu quả.
2. Mục tiêu nghiên cứu
- Tìm hiểu hiện trạng, tình hình nghiên cứu Cơ sở dữ liệu trên bộ nhớ
- Nghiên cứu kiến thức cơ sở của Cơ sở dữ liệu trên bộ nhớ: khái niệm, kiến
trúc, đặc điểm tính năng
4
- Nghiên cứu ưu nhược điểm của Cơ sở dữ liệu trên bộ nhớ, các sản phẩm Cơ
sở dữ liệu trên bộ nhớ, so sánh với các công nghệ, sản phẩm cạnh tranh
- Tổng quát hóa các bài toán nghiệp vụ, kiến trúc có thể áp dụng Cơ sở dữ
liệu trên bộ nhớ; Cài đặt thử nghiệm.
- Đề xuất ứng dụng, cải tiến với Cơ sở dữ liệu trên bộ nhớ
3. Đối tượng, phạm vi và phương pháp nghiên cứu
- Đối tượng nghiên cứu: Cơ sở dữ liệu trên bộ nhớ
- Phạm vi nghiên cứu:
Cơ sở lý luận, kiến thức chuyên sâu về Cơ sở dữ liệu trên bộ nhớ
Điểm khác biệt, lợi thế cạnh tranh của Cơ sở dữ liệu trên bộ nhớ, ưu
nhược điểm, các sản phẩm Cơ sở dữ liệu trên bộ nhớ
Mô hình áp dụng và kết quả thực nghiệm
- Phương pháp nghiên cứu:
Nghiên cứu lý thuyết: tìm hiểu lý thuyết về Cơ sở dữ liệu trên bộ
nhớ trên các paper, diễn đàn nổi tiếng, các website chính thức của
các công ty có sản phẩm hoặc giải pháp Cơ sở dữ liệu trên bộ nhớ.
Thử nghiệm: tổng quát hóa loại bài toán có thể áp dụng Cơ sở dữ
liệu trên bộ nhớ, chọn lựa hệ thống áp dụng, tổng hợp kết quả.
4. Ý nghĩa khoa học và thực tiễn
- Ý nghĩa khoa học:
Lý thuyết về Cơ sở dữ liệu trên bộ nhớ: khái niệm, mô hình kiến
trúc, ưu nhược điểm
Phân tích so sánh với các công nghệ cạnh tranh, so sánh nội tại các
sản phẩm Cơ sở dữ liệu trên bộ nhớ.
- Ý nghĩa thực tiễn:
Tổng quát hóa lớp bài toán có thể áp dụng Cơ sở dữ liệu trên bộ
nhớ để tăng hiệu năng
Kết quả thử nghiệm
5. Bố cục của luận văn
- 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à kiến nghị
5
Chương 1: CƠ SỞ LÝ LUẬN VỀ CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ
I.1. Tình hình nghiên cứu IMDB
I.1.1. Tình hình nghiên cứu trên thế giới
a/ 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): 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.
- IBM SolidDB (sản phẩm thương mại): 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.
- McObject eXtremeDB (sản phẩm thương mại): 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ử,…
- H2 IMDB (sản phẩm nguồn mở): 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.
- HyperSQL (sản phẩm nguồn mở): 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.
b/ 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: sử dụng
Oracle TimesTen
- Công ty tài chính China Finance Online sử dụng Oracle TimesTen cho hai
website cung cấp các thông tin về chứng khoán, cổ phiếu, tài chính,…để
hiển thị thông tin mức real-time.
6
- Iskratel đã thay thế CSDL truyền thống bằng IBM solidDB cho sản phẩm
SI3000, giúp giảm thời gian xử lý xuống ba lần.
I.1.2. Tình hình nghiên cứu trong nước
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 lại 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. Ngay như FPT là
một công ty phần mềm lớn hàng đầu Việt Nam vẫn chưa áp dụng công nghệ này trong
các hệ thống Billing của họ (vốn là những hệ thống yêu cầu hiệu năng rất cao).
I.2. Nhu cầu thực tế và khả năng áp dụng
I.2.1. 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à:
- Truy vấn kết quả kinh doanh cuối tháng.
- Hiển thị thông tin và lịch sử khiếu nại của khách hàng trong hệ thống Chăm
sóc khách hàng (CustomerCare).
- Hàng đợi chứa request của client trong CSDL.
Số lượng những vấn đề tương tự như trên rất phổ biến, làm giảm hiệu năng,
chất lượng và độ ổn định của hệ thống, làm tăng chi phí giám sát vận hành và gây thiệt
hại lớn cho sản xuất kinh doanh. Việc áp dụng các giải pháp như IMDB sẽ là cứu cánh
cho phần mềm nói riêng và sự phát triển của công ty nói chung, không chỉ để khắc
phục các nhược điểm hiện tại, mà còn chuẩn bị cho sự phát triển trong tương lai.
7
I.2.2. Khả năng áp dụng
Việc áp dụng các sản phẩm IMDB vào các hệ thống phần mềm hiện tại là hoàn
toàn khả thi và có căn cứ khoa học:
- Việc đưa dữ liệu lên bộ nhớ chính giúp tăng tốc độ truy cập thì tốc độ truy
cập của bộ nhớ chính là nhanh hơn so với ổ đĩa cứng.
- Các sản phẩm IMDB vẫn dựa trên nguyên tắc đưa dữ liệu lên bộ nhớ, và
chúng được quy hoạch như một CSDL quan hệ thông thường, truy cập bằng
SQL chuẩn, giúp thuận tiện cho việc đồng bộ dữ liệu giữa CSDL truyền
thống và IMDB, cũng như ứng dụng dễ dàng truy cập dữ liệu từ IMDB.
- Giá thành của bộ nhớ chính ngày càng giảm, gần với giá thành của ổ đĩa
cứng.
- Nhu cầu của các ứng dụng là có thật và ngày càng trở nên cấp thiết, khi số
lượng truy cập ngày càng lớn với đòi hỏi thời gian đáp ứng gần như tức
thời:
Viễn thông: đăng nhập, xác thực, tính cước, mediation, call centers.
Tài chính: online banking, fraud detection, stock exchanges,…
Các ứng dụng khác: chăm sóc khách hàng, gaming, phòng thủ, đặt vé
máy bay,…
I.3. Kết luận chương 1
Từ những thông tin trên cho thấy việc nghiên cứu phát triển cũng như tìm hiểu
sử dụng IMDB đang nở rộ trên thế giới với sự tham gia của các công ty phần mềm lớn
cũng như của cộng đồng mã nguồn mở, trên nhiều lĩnh vực Tài chính, Viễn thông,
ngân hàng, thương mại điện tử, quân sự, trò chơi,…
Hiện trạng các hệ thống phần mềm, ứng dụng trong các lĩnh vực đang đặt ra
nhu cầu cấp thiết phải áp dụng các giải pháp nhằm tăng hiệu năng, đáp ứng nhiều hơn
số lượng truy cập với thời gian nhỏ hơn. Sử dụng IMDB là một giải pháp tốt, có thể dễ
dàng áp dụng cho nhiều loại ứng dụng, mới xây dựng hoặc đã có, trên nhiều lĩnh vực
khác nhau.
8
Chương 2: CƠ SỞ KHOA HỌC VỀ IN-MEMORY DATABASE
II.1. Kiến thức chung về IMDB
II.1.1. IMDB là gì?
In-memory database (Cơ sở dữ liệu trên bộ nhớ) là cơ sở dữ liệu quan hệ dựa
trên bộ nhớ, bỏ qua các thao tác truy cập ổ đĩa cứng bằng cách lưu trữ và xử lý dữ liệu
ngay trên bộ nhớ chính. Nó còn được gọi với các tên khác như Main memory database
(cơ sở dữ liệu bộ nhớ chính) hoặc real-time database (cơ sở dữ liệu thời gian thực).
II.1.2. So sánh IMDB với disk-based DB
Dưới đây là so sánh cụ thể giữa IMDB và CSDL dựa trên ổ cứng (gồm cả
trường hợp dữ liệu có được cache toàn bộ lên bộ nhớ):
Bảng II.1 – Bảng so sánh CSDL dựa trên ổ cứng và IMDB
Tiêu chí Disk-based DB IMDB
Lưu trữ dữ
liệu
- Dữ liệu được lưu trữ trên ổ cứng
- Dữ liệu có thể được cache vào
bộ nhớ để truy cập nhanh hơn
- Dữ liệu được lưu trữ trên bộ nhớ
chính để truy vấn và xử lý.
- Dữ liệu có thể được ghi xuống ổ
cứng để sao lưu và phục hồi.
Tối ưu hóa
truy vấn
- Thuật toán tối ưu hóa truy vấn
thực hiện với quan niệm dữ liệu
đặt trên ổ đĩa.
- IMDB biết chắc dữ liệu lưu trữ
trên bộ nhớ, nên thuật toán tối ưu
truy vấn đơn giản hơn và chính
xác hơn.
Quản lý bộ
nhớ đệm
(buffer pool)
- Buffer pool phải quản lý dữ liệu
được cache trong bộ nhớ. Nếu dữ
liệu được tìm thấy trong buffer,
nó cũng phải sao chép trước khi
trả lại kết quả.
- IMDB không sử dụng buffer
pool, không phải sao chép dữ liệu
trước khi trả lại cho ứng dụng. Do
đó, thuật toán đơn giản hơn, thời
gian đáp ứng truy vẫn nhanh hơn.
Cấu trúc chỉ
mục (index)
- Sử dụng B+ tree cho index. Cấu
trúc này phù hợp để giảm disk
I/O, nhưng nó không còn nhiều
hữu dụng khi dữ liệu đặt trong bộ
nhớ. Khi dữ liệu đặt trong bộ nhớ,
mục tiêu là giảm CPU cycle,
không phải I/O.
- Sử dụng T-tree cho index. Vì tất
cả data row được đặt trong bộ
nhớ, T-tree không cần cặp key-
value, chỉ đơn thuần gồm các con
trỏ tới các dòng dữ liệu thực.
Thời gian tìm kiêm dữ liệu như
thuật toán tìm kiếm nhị phân.
II.1.3. Kiến trúc hệ thống IMDB
II.1.3.1. Kiến trúc disk-based RDB
9
II.1.3.2. Kiến trúc IMDB
Về tổng thể, IMDB cũng có kiến trúc tương tự disk-based DB, như gồm các
thành phần: SQL engine, transaction engine, relational engine, và storage engine,
nhưng các thành phần con bên trong mỗi thành phần này lại hoạt động khác hẳn. Đồng
thời nó loại bỏ phần quản lý buffer pool, thêm vào phần quản lý bộ nhớ chính, bộ nhớ
chia sẻ.
II.1.4. Tại sao IMDB lại nhanh?
Hình II.3 – So sánh mô hình xử lý SQL của disk-based DB và IMDB
II.1.5. Kết nối từ ứng dụng đến IMDB
Kết nối trực tiếp
Kết nối client/server
II.1.6. Truy cập đồng thời (concurrent operations)
IMDB hỗ trợ truy cập đồng thời bằng cơ chế isolation và locks. Isolation (cô
lập giao tác có hai mức: read-committed, serializable. Có ba mức khóa: database,
table, row level.
II.1.7. Tối ưu hóa truy vấn
Tương tự CSDL truyền thống, IMDB cũng có một bộ tối ưu hóa truy vấn để
bảo đảm các truy cập dữ liệu hiệu quả bằng cách tự động chọn ra cách tốt nhất để trả
lời các truy vấn. Bộ tối ưu hóa truy vấn giúp giảm thời gian thực thi truy vấn xuống
thấp nhất có thể.
IMDB
10
II.1.8. Tự động loại bỏ dữ liệu không cần thiết
Để tiết kiệm bộ nhớ, một số sản phẩm IMDB cung cấp cơ chế Loại bỏ dữ liệu
không cần thiết (data aging)
+ Time-based data aging: loại bỏ dữ liệu theo thời gian
+ Usage-based data aging: dữ liệu ít được dùng sẽ bị xóa (thuật toán LRU).
II.1.9. Tính sẵn sàng và toàn vẹn dữ liệu
IMDB đảm bảo tính sẵn sàng và toàn vẹn dữ liệu bằng: Transaction logging,
Checkpointing, Replication.
II.2. So sánh IMDB với các công nghệ cạnh tranh
II.2.1. CSDL trên SSD & RAM-disk
Quy trình truy cập dữ liệu với CSDL truyền thống cho thấy dù có thay đổi ổ đĩa
cứng bằng SSD hay giả lập bằng RAM, trong khi các thuật toán và quy trình thực hiện
không thay đổi, thì tốc độ chỉ được cải thiện ở phần đọc/ghi với thiết bị lưu trữ.
IMDB làm tốt hơn công việc này. Như đã giải thích trong phần II.1.2, ngoài
việc lưu trữ dữ liệu trên RAM, IMDB còn tối ưu bằng cách thay đổi thuật toán tối ưu
hóa truy vấn, loại bỏ những thành phần không cần thiết như buffer pool, và dùng thuật
toán mới cho cấu trúc chỉ mục với mục tiêu tối ưu CPU cycle và RAM thay vì tối ưu
việc giao tiếp I/O.
II.2.2. Partitioning
Một hướng đi khác để cải thiện hiệu năng của CSDL chính là kỹ thuật
partitioning. Dưới đây là một số dạng:
- Master/Slave, Master/Master
- Clustering, Table partitioning, Federated tables
Các kỹ thuật trên nhằm phân chia việc đọc/ghi dữ liệu trên các server riêng biệt,
hoặc tận dụng phần cứng phân tán thành ổ cứng để tận dụng dung lượng. Các cách này
cũng cải thiện được phần nào hiệu năng, nhưng vẫn dựa trên ổ đĩa cứng nên không cải
thiện được nhiều.
II.2.3. Caching
Kỹ thuật caching dữ liệu là một trong những cách làm hay để tăng tốc truy vấn
CSDL. Dưới đây trình bày một số cách caching:
- Query result caches, Object-relational mapping caches, Object caches
Các kỹ thuật caching thường khá đơn giản về kiến trúc, thời gian thực hiện
không nhiều, và có những hiệu quả nhất định. Tuy nhiên, chúng thường không tổng
quát và chỉ áp dụng cho một số bài toán với yêu cầu chuyên biệt. IMDB chuyển hẳn
CSDL truyền thống lên RAM, với những tối ưu tương ứng, và phù hợp với nhiều loại
bài toán, yêu cầu khác nhau.
11
II.2.4. NoSQL database
Sự ra đời của CSDL NoSQL là sự đánh dấu giải pháp cho các bài toán không
thể thực hiện hiệu quả với CSDL quan hệ. NoSQL là viết tắt của Not-only SQL.
Hadoop là một điểm sáng. Nó là một framework mã nguồn mở tin cậy, có thể mở rộng
theo chiều ngang, và tính toán phân tán. Nó giúp giải quyết các bài toán mà lẽ ra phải
dùng các phần cứng rất mạnh. Hadoop ưu việt là vậy, nhưng nó là framework tổng
quát, và việc lập trình trên nó tương đối phức tạp. Từ đó, nhiều sub-project dựa trên
Hadoop ra đời với các mục đích khác nhau, nhóm CSDL có Hbase. Về phía ứng dụng,
Hbase chỉ như một CSDL thông thường, nhưng các câu lệnh gửi tới Hbase để thực
hiện sẽ được chuyển thành các nhiệm vụ cho Hadoop thực hiện. Điều này tạo sự tiện
dụng, dễ dàng cho người lập trình, mà vẫn tận dụng được sức mạnh của Hadoop.
Tuy nhiên, mục đích phát triển Hadoop và NoSQL vẫn tập trung vào bài toán
xử lý dữ liệu lớn trên các phần cứng thông thường, không quá quan trọng về tốc độ,
chỉ cần xử lý được và trả lại kết quả. Do đó, nếu xét theo khía cạnh cần cải tiến hiệu
năng CSDL, giải quyết bài toán số lượng truy cập nhiều, với yêu cầu thời gian truy vấn
nhỏ, NoSQL – cụ thể là Hadoop không có nhiều lợi thế so với các IMDB như Oracle
TimesTen hay IBM solidDB.
II.3. Ưu nhược điểm của IMDB
II.3.1. Ưu điểm
- Thời gian đáp ứng nhanh:
- Đáp ứng lượng truy vấn (thông lượng) cao:
- Bền vững và có thể phục hồi (đảm bảo tính ACID):
- Tuân theo các chuẩn thế giới cho CSDL:
- Có tương đối đầy đủ các tính năng như một CSDL quan hệ thông thường:
- Một số tính năng nâng cao chuyên biệt: cache, tự động loại bỏ dữ liệu
II.3.2. Nhược điểm
- Giá thành: giá RAM đắt hơn ổ đĩa cứng
- Ứng dụng và IMDB phải nằm trên cùng server vật lý khi muốn dùng kiểu
kết nối direct/embeded để đạt hiệu năng tối đa.
II.4. Kết luận chương 2
Chương này đã cung cấp những thông tin, kiến thức cơ sở về Cơ sở dữ liệu trên
bộ nhớ như khái niệm, kiến trúc, các đặc điểm tính năng. Đồng thời, chương cũng có
sự so sánh IMDB với các công nghệ cạnh tranh khác để có cái nhìn đầy đủ về các giải
pháp CSDL để cải thiện hiệu năng, từ đó đưa ra các điểm khác biệt nổi bật để lựa chọn
IMDB. Cuối cùng, chương tổng hợp những ưu nhược điểm của IMDB để người đọc có
thể sử dụng một cách phù hợp.
12
Chương 3: CÁC SẢN PHẨM CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ
III.1. Sản phẩm thương mại
III.1.1. Oracle TimesTen
a/ Giới thiệu
Oracle TimesTen là một bộ sản phẩm của Oracle, gồm hai sản phẩm: CSDL dữ
liệu trên bộ nhớ Oracle TimesTen IMDB, và Oracle IMDB Cache. TimesTen IMDB
giúp tối ưu hóa các ứng dụng, làm tăng khả năng đáp ứng và thông lượng đầu vào lớn.
Oracle IMDB Cache giúp đồng bộ dữ liệu hai chiều từ Oracle DB sang TimesTen.
b/ Lịch sử phát triển
Oracle TimesTen IMDB được phát triển lần đầu bởi công ty TimesTen – một
công ty phần mềm cung cấp các giải pháp xử lý sự kiện thời gian thực. TimesTen được
mua lại bởi Oracle vào 20/06/2005. Năm 2007, TimesTen 7.0 được phát hành, đây là
bản phát hành chính thức đầu tiên. Đến nay, Oracle TimesTen đã có phiên bản 11.2.2.
c/ Đặc điểm và tính năng
- TimesTen API: ODBC, JDBC, OCI, DBP.net.
- Kết nối CSDL: trực tiếp (direct) và khách/chủ (client/server)..
- Tính bền vững: TimesTen cho phép ghi log vào ổ cứng để sao lưu và phục hồi
hệ thống khi cần thiết. Log được ghi đồng bộ hoặc bất đồng bộ sau mỗi transaction.
- Tối ưu hóa truy vấn:
- Hỗ trợ truy cập đồng thời:
- Tự động loại bỏ dữ liệu: tự động loại bỏ dữ liệu không cần thiết. Có hai
phương pháp: time-based, usage-based.
- Hỗ trợ globalization (quốc tế hóa)
- Quản trị và tiện ích: TimesTen cung cấp các tiện ích điển hình của CSDL như
truy vấn bằng SQL, sao lưu và phục hồi, migrate dữ liệu.
- Replication: TimesTen cung cấp khả năng replication thời gian thực giữa các
máy chủ cho mục đích High availability và load sharing.
- IMDB Cache: giúp đồng bộ hai chiều, giữa CSDL Oracle và TimesTen
III.1.2. IBM SolidDB
a/ Giới thiệu
IBM solidDB là một dòng sản phẩm được phát triển và cung cấp bởi IBM, gồm
CSDL trên bộ nhớ IBM solidDB, và solidDB Universal Cache. IBM solidDB là một
CSDL quan hệ đầy đủ tính năng, dựa trên bộ nhớ, cung cấp tốc độ và tính sẵn sàng rất
cao để thỏa mãn yêu cầu về hiệu năng và tính tin cậy của các ứng dụng thời gian thực.
SolidDB universal cache là phần mềm cache dữ liệu từ các CSDL truyền thống (DB2,
13
Infomix, Oracle, SQL server, Sybase) lên solidDB, giúp tốc độ truy vấn dữ liệu tăng
lên nhiều lần.
b/ Lịch sử phát triển
Solid Information Technology là một hãng cung cấp hàng đầu các giải pháp cơ
sở dữ liệu nhanh, kết nối liên tục và với mức giá hợp lý. Năm 2007, IBM mua lại
solidDB để làm đối trọng với Oracle TimesTen, và phát triển thêm các tính năng cho
DB2 (Disk-based DB của IBM), như tính năng solidDB Universal Cache để lấy dữ
liệu từ một Disk-based DB.
c/ Đặc điểm và tính năng
- Tốc độ cao: Kiến trúc của solidDB IMDB giúp thỏa mãn những yêu cầu về
hiệu năng của các ứng dụng thời gian thực đòi hỏi tốc độ cao.
- Tính sẵn sàng cao: solidDB được thiết kế để cung cấp tính sẵn sàng cao cho
các ứng dụng kinh doanh yêu cầu tính toàn vẹn dữ liệu và khả năng phục hồi, giúp
ngăn chặn mất mát dữ liệu và thúc đẩy quá trình phục hồi dữ liệu.
- Giá thành thấp: Đơn giản hóa việc triển khai và quản trị, sử dụng các phần
cứng thông thường, migrate dễ dàng, tích hợp vào ứng dụng nhanh.
- Universal Caching: solidDB universal cache giúp đưa dữ liệu từ DB2, Oracle,
Infomix hay sysbase lên bộ nhớ, nhằm làm tăng tốc độ truy vấn dữ liệu.
- Tính tương thích: solidDB dễ dàng tương thích với sự thay đổi của ứng dụng
và quá trình triển khai. Nó “kéo giãn” theo chiều ngang với truy cập bộ nhớ chia sẻ để
tăng hiệu năng và giảm thời gian đáp ứng.
III.2. Sản phẩm mã nguồn mở
III.2.1. H2
a/ Giới thiệu
H2 là một IMDB mã nguồn mở được viết bằng java. Nó hỗ trợ kết nối qua
JDBC API với hai kiểu kết nối nhúng và client/server. Phiên bản mới nhất của H2 là
version 1.3.171 và vẫn tiếp tục được đóng góp hoàn thiện, bổ sung tính năng bởi cộng
đồng mã nguồn mở.
b/ Lịch sử phát triển
Việt phát triển H2 được bắt đầu vào tháng 5/2004, nhưng nó được công bố
chính thức vào 14/12/2005. Tác giả chính của H2 là Thomas Mueller. Việc xây dựng
H2 bằng Java được giải thích với các nguyên nhân: dễ tích hợp với các ứng dụng Java,
hỗ trợ nhiều nền tảng khác nhau, an toàn hơn các ứng dụng native, và hỗ trợ unicode.
c/ Đặc điểm tính năng
- Là một CSDL rất nhanh
- Mã nguồn mở
14
- Được viết bằng Java
- Hỗ trợ SQL chuẩn, JDBC API
- Hỗ trợ kiểu kết nối nhúng và client/server, hoặc kết hợp cả hai loại. Kết nối
nhúng chỉ thực hiện được khi ứng dụng và H2 nằm trên cùng một server vật lý.
- Tính an ninh rất mạnh: có cơ chế đăng nhập bằng tên người dùng và mật khẩu,
các database files có thể được mã hóa bằng thuật toán AES, XTEA. Thêm vào đó là cơ
chế kết nối từ ứng dụng thông qua SSL/TLS.
- Hỗ trợ các tính năng của một CSDL thông thường:
- Tương thích với nhiều loại CSDL truyền thống: Oracle, DB2, MS SQL,…
III.2.2. CSQL
a/ Giới thiệu
CSQL Main Memory Database là một hệ quản trị cơ sở dữ liệu mạnh mẽ và rất
dễ truy cập. Nó bao gồm CSQL Main memory database và Cache để cache dữ liệu từ
CSDL truyền thống như MySQL, PostgreSQL và Oracle. CSQL thường nằm ở giữa
ứng dụng và CSDL truyền thống, để lưu trữ những dữ liệu hay được truy cập nhất
nhằm tăng tốc độ truy cập.
b/ Lịch sử phát triển
Dự án được khởi động vào 05/2005, chính thức đăng ký trên sourceforge.net
vào 04/2006. Phiên bản 1.0 beta ra đời vào 02/2007 với bộ engine lưu trữ. Tiếp sau đó,
phiên bản 1.3 beta ra đời một năm sau đó với cơ chế truy vấn bằng SQL, và các
phương thức kết nối bằng ODBC, JDBC. Phiên bản 2.0 vào 05/2008 có thêm cơ chế
Caching. Phiên bản 2.4 vào 02/2009 hỗ trợ High Availability bằng cơ chế replication.
Phiên bản hiện nay bổ sung thêm một số chức năng nâng cao khác.
c/ Đặc điểm tính năng
- Hỗ trợ đặc tính ACID: atomicity, consistency, isolation, durability
- Có các đặc điểm tính năng như CSDL truyền thống: index, constraints, data
type, isolation, kết nối song song / đồng thời,…
- Có cơ chế phục hồi sau lỗi bằng checkpoint và redo log file, chấp nhận lỗi ở
mức độ nhất định.
- Hỗ trợ hai kiểu kết nối: nhúng và client/server
- Tuân theo các chuẩn: SQL 92, kết nối bằng ODBC, JDBC
- Tương thích nhiều nền tảng: linux, solaris, freeBSD
- Có cơ chế Caching để đồng bộ dữ liệu hai chiều giữa CSQL và CSQL truyền
thống. Replicator để hỗ trợ cơ chế High Availability.
15
III.3. So sánh các sản phẩm IMDB
III.3.1. So sánh đặc điểm và chức năng
Bảng III.1 – Bảng so sánh đặc điểm và chức năng các phần mềm IMDB
Functionality IBM solidDB 6 Oracle TimesTen 11 H2
Hỗ trợ SQL
Phần lớn SQL92, một
phần SQL98 và
SQL2003
SQL-92 SQL-92
Stored procedures DB2 SQL/PL Oracle PL/SQL PL/SQL
IMDB Cache
được từ các
CSDL
DB2, Microsoft SQL
Server, Oracle DB,
IDS, Sybase
Oracle DB DB2, Sybase,
MySQL, Postgres
Hệ điều hành hỗ
trợ
Windows, Unix/Linux,
Solaris, AIX, HP
Windows, Unix/Linux,
HP, Solaris, AIX
Unix/Linux, Solaris,
Windows
Truy cập bộ nhớ
chia sẻ
Có – Share memory
access
Có - Direct driver
connection Có – Embedded
High availability
support
Replication
Active / standby read-
only
Active/standby read-
only Uni-directional/
Bidirectional
Active / standby
read-only.
Active/active
API JDBC, ODBC,
solidDB SA
JDBC, ODBC,
JMS/XLA, TTClass JDBC, ODBC
III.3.2. So sánh hiệu năng
Các công nghệ đều đưa ra những đánh giá về hiệu năng của riêng mình, chưa có
bên thứ ba chính thức so sánh:
- Oracle TimesTen:
Hình III.5 – Hiệu năng Oracle TimesTen
Improved Transaction Throughput
with Cache Connect to Oracle
275,000
2,497,000
0
500,000
1,000,000
1,500,000
2,000,000
2,500,000
3,000,000
Oracle Oracle +TimesTen
Tra
nsa
cti
on
s p
er
Min
ute
Oracle
Oracle+TimesTen
Improved Transaction Throughput
with Cache Connect to Oracle
275,000
2,497,000
0
500,000
1,000,000
1,500,000
2,000,000
2,500,000
3,000,000
Oracle Oracle +TimesTen
Tra
nsacti
on
s p
er
Min
ute
Oracle
Oracle+TimesTen
Transactions Response Time
6104
1848 1850 2105
6487
10114
5836
168 44 65 86 201 128 100
0
2,000
4,000
6,000
8,000
10,000
12,000
Del
ete
Cal
l Fwd
Sel
ect A
cces
s Dat
a
Sel
ect B
ase
Dat
a
Sel
ect N
ew D
est
Inse
rt C
all F
wd
Updat
e Subsc
riber
Updat
e Loca
tionR
esp
on
se T
ime i
n M
icro
seco
nd
s
Oracle
Oracle + TimesTen
Transactions Response Time
6104
1848 1850 2105
6487
10114
5836
168 44 65 86 201 128 100
0
2,000
4,000
6,000
8,000
10,000
12,000
Del
ete
Cal
l Fwd
Sel
ect A
cces
s Dat
a
Sel
ect B
ase
Dat
a
Sel
ect N
ew D
est
Inse
rt C
all F
wd
Updat
e Subsc
riber
Updat
e Loca
tionR
esp
on
se T
ime in
Mic
roseco
nd
s
Oracle
Oracle + TimesTen
16
- IBM solidDB:
Hình III.6 – Hiệu năng IBM solidDB
Dưới đây chúng tôi thử nghiệm hiệu năng truy vấn full bảng của 3 phần mềm :
Thông tin server thử nghiệm
TT Thông tin Chi tiết
1 Hệ điều hành CentOS v6.2 - 64 bit
2 RAM 2.5 GB
3 CPU Intel(R) Xeon(R) CPU E31220
@ 3.10GHz
Bảng III.2 – Bảng so sánh hiệu năng các phần mềm IMDB
TT CSDL 100.000 200.000 500.000 1.000.000 License
1 Timesten 1,968s 4,875s 10,531s 20,047s Tính phí
2 Solid 2,156s 4,438s 10,672s 20,548s Tính phí
3 H2 0,598s 0,769s 1,684s Treo Miễn phí
Về chức năng, có thể thấy các phần mềm nguồn mở cũng không thua kém các
sản phẩm thương mại. Tuy nhiên, đặc thù là sản phẩm mã nguồn mở, nên hiệu năng và
tính chịu trách nhiệm không được đảm bảo, đồng thời chỉ có thể áp dụng cho số lượng
dữ liệu nhỏ.
III.4. Kết luận chương 3
Chương này trình bày các sản phẩm IMDB điển hình bao gồm cả sản phẩm
thương mại và mã nguồn mở, với các thông tin chung, lịch sử hình thành phát triển, và
đặc điểm tính năng của chúng. Thêm vào đó, một sự so sánh về tính năng và hiệu năng
của ba sản phẩm TimesTen, IBM solidDB và H2 để người đọc có cái nhìn rõ hơn và
lựa chọn cho phù hợp.
17
Chương 4: THỬ NGHIỆM CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ
IV.1. Tổng quát lớp bài toán áp dụng
Khi hệ thống có những đặc điểm dưới đây, có thể xem xét sử dụng IMDB:
o Đang sử dụng CSDL dựa trên ổ đĩa: Oracle, IBM DB2, MySQL,...
o Có các chức năng (có truy cập CSDL) với tần xuất sử dụng nhiều, yêu
cầu thời gian phản hồi (truy vấn, thay đổi dữ liệu) nhỏ.
o Số lượng dữ liệu lớn: làm cho việc thao tác (truy vấn, cập nhật) dữ liệu
không còn đáp ứng yêu cầu về thời gian phản hồi, yêu cầu hiệu năng.
o Có các chức năng có khả năng gây cao tải CSDL hiện tại
o Việc tốc độ chậm không phải do nguyên nhân nào khác (ví dụ mã nguồn
chưa tối ưu) mà do nguyên nhân CSDL.
o Có đủ tài nguyên (bộ nhớ chính, CPU) để sử dụng IMDB (tương ứng
từng hệ thống).
Dưới đây trình bày một số lĩnh vực cũng như phần mềm tương ứng có thể áp
dụng IMDB để tăng hiệu năng và thỏa mãn yêu cầu hệ thống:
o Viễn thông:
Đăng nhập, xác thực
Hệ thống tính cước
Hệ thống Chăm sóc khách hàng
o Tài chính ngân hàng:
Core banking
Fraud management
Stock exchanges
o Các ứng dụng khác:
Chăm sóc sức khỏe: quản lý thông tin bệnh nhân của bệnh viện.
Book vé máy bay
IV.2. Mô hình áp dụng
IV.2.1. Mô hình hệ thống phần mềm hiện tại
Các hệ thống phần mềm thông thường sử dụng CSDL truyền thống dựa trên ổ
đĩa cứng, ví dụ Oracle hay IBM DB2. Dữ liệu, bảng được lưu trữ trên CSDL này. Ứng
dụng thực hiện các thao tác truy vấn, thay đổi dữ liệu trên CSDL thông qua kết nối
ODBC, JDBC hoặc hibernate.
18
Application
Disk-base DB
Hình IV.1 – Mô hình hệ thống phần mềm thông thường
IV.2.2. Mô hình hệ thống sau khi áp dụng IMDB
IV.2.2.1 Sử dụng IMDB như một CSDL độc lập
IMDB mang đầy đủ các chức năng của một CSDL quan hệ, hệ thống phần mềm
có thể sử dụng IMDB như một CSDL riêng, tương tự như sử dụng CSDL truyền thống
dựa trên ổ đĩa cứng.
Application IMDB
Hình IV.2 – Mô hình hệ thống phần mềm sử dụng IMDB
Dữ liệu, bảng biểu được lưu trữ trên IMDB. Ứng dụng thực hiện các thao tác
truy vấn, thay đổi dữ liệu trên CSDL thông qua kết nối ODBC, JDBC hoặc hibernate.
IV.2.2.2 Sử dụng IMDB Cache
Sử dụng cả CSDL truyền thống kết hợp với IMDB Cache. Khi ấy, những dữ
liệu hay thay đổi và được truy vấn nhiều được đưa lên IMDB cache, những dữ liệu còn
lại vẫn trên CSDL hiện tại.
Application
Disk-based DB
IMDB Cache
Hình IV.3 – Kết hợp CSDL truyền thống và IMDB Cache
IV.3. Thử nghiệm và kết quả
IV.3.1. Lựa chọn Sản phẩm IMDB để thử nghiệm
Qua những kiến thức và đánh giá về các sản phẩm IMDB, tôi đã chọn Oracle
TimesTen vì những lý do sau đây:
19
- Oracle là nhà cung cấp giải pháp CSDL hàng đầu thế giới.
- Tôi đã làm việc nhiều với CSDL Oracle truyền thống, môi trường công việc
của tôi cũng sử dụng Oracle.
- Do cùng một nhà cung cấp nên giải pháp Oracle TimesTen có thể tích hợp rất
dễ dàng, tương thích tốt với các CSDL Oracle hiện tại.
- Lượng tri thức hỗ trợ về Oracle TimesTen khá nhiều trên internet cũng như
các diễn đàn, với cộng đồng sử dụng lớn.
- Có thể tải và dùng thử Oracle TimesTen một cách dễ dàng và hợp pháp.
IV.3.2. Lựa chọn hệ thống phần mềm để thử nghiệm
Bản thân tôi đang làm việc tại Trung tâm phần mềm Viettel thuộc Tập đoàn
Viễn thông Quân đội. Nhiệm vụ của Trung tâm phần mềm là nghiên cứu, xây dựng
các hệ thống trực tiếp phục vụ kinh doanh của Tập đoàn. Hiện nay, Tập đoàn Viettel
có nhiều lĩnh vực hoạt động, nhưng cung cấp dịch vụ viễn thông vẫn là lĩnh vực chủ
chốt. Để có thể thực hiện hoạt động kinh doanh này, phần mềm Tính cước và Chăm
sóc khách hàng (BCCS – Billing & CustomerCare System) là tối quan trọng.
Qua đánh giá các phân hệ trong BCCS, chúng tôi nhận thấy hệ thống
CustomerCare và BCCSRating là phù hợp và cần thiết sử dụng TimesTen.
Hệ thống CustomerCare:
- Tra cứu thông tin và giải đáp khách hàng
- Hỗ trợ tiếp nhận và giải quyết khiếu nại.
Do yêu cầu của phần giải đáp khách hàng phải nhanh, giảm thời gian khách
hàng chờ đợi. Do vậy, hệ thống cần đảm bảo tính thuận tiện, truy vấn và trả về
thông tin nhanh, các thông tin đầy đủ cho việc tra cứu để trả lời khách hàng.
Hiện trạng và vấn đề:
- Số lượt truy cập hàng ngày vào hệ thống (tương ứng vào CSDL) lên đến hàng
triệu lượt, với chức năng hiển thị thông tin khách hàng và lịch sử khiếu nại của
khách hàng là nhiều nhất.
- Nghiệp vụ mong muốn hiển thị càng nhiều lịch sử khiếu nại càng tốt, nhưng
do lượng dữ liệu ngày càng lớn, số truy cập nhiều, nên chỉ đáp ứng hiển thị
thông tin lịch sử khiếu nại 7 ngày gần nhất.
>> Nhu cầu phải tăng lượng dữ liệu truy vấn, giảm thời gian truy vấn.
Hệ thống BCCS_Rating:
- Tính cước được cho các dịch vụ viễn thông mà hiện tại Viettel Telecom đang
cung cấp bao gồm Mobile, Homephone, ADSL, PSTN.
- Đáp ứng được các chính sách khai bao giá cước mềm dẻo, đáp ứng yêu cầu
hiệu năng của nghiệp vụ tính cước, số lượng bản ghi lớn, thời gian xử lý nhanh.
20
Hiện trạng và vấn đề:
Hai module quan trọng và yêu cầu hiệu năng cao của hệ thống Rating là Chuẩn
hóa thông tin và Tính cước:
Bảng IV.1 – Bảng thống kê thời gian xử lý một bản ghi cước
Chức năng Đầu vào Thời gian xử lý
(Oralce thuần)
Thời gian
mong muốn
Chuẩn hóa 2 file (20.000 bản ghi) 60.5 ms / bản ghi 7 ms / bản ghi
Tính cước 2 file (20.000 bản ghi) 50.5 ms / bản ghi 7 ms / bản ghi
>> Nhu cầu phải có giải pháp để đạt yêu cầu bài toán đặt ra.
IV.3.3. Kết quả thử nghiệm
IV.3.3.1 Kết quả thử nghiệm cho hệ thống CustomerCare
Đề xuất giải pháp:
Hệ thống CC sử dụng TimesTen để lưu trữ thông tin Lịch sử khiếu nại của KH.
Hệ thống sẽ truy vấn thông tin này trên TimesTen. Việc insert, update, delete thông tin
vẫn thực hiện trên Oracle DB thông thường.
Customer Care
CC TimestenDB
Customer Care
select
Đồng bộ
Insert, update
delete
CC OracleDB CC OracleDB
Hình IV.4 – Mô hình CC trước và sau khi áp dụng TimesTen
Kết quả đạt được:
Dưới đây là kết quả so sánh response time của chức năng popup giữa ứng dụng
CC sử dụng Oracle và TimesTen. Kết quả là response time trung bình của các thuê bao
được kiểm tra, kết quả dựa trên log của một ngày.
Physical
machine
Trước Sau
21
Bảng IV.4 – Bảng so sánh response time giữa TimesTen và Oracle
Chức năng Response time TimesTen Response time Oracle
Popup LSKN - TB: 20.775ms - TB: 42.09ms
Tab Lịch sử
khiếu nại
- TB: 35.3 ms
- Cao: 0.7 s (30 ngày)
- TB: 60.6 ms
- Cao: 5.6s (7 ngày), 1.9s (2 ngày)
Nhận xét:
- Tốc độ chức năng popup sau khi sử dụng TimesTen đã tăng khoảng 35%.
- Hiển thị được lịch sử khiếu nại của KH một tháng gần nhất.
- Giảm tải cho CSDL Oracle, do lượng lớn kết nối của chức năng popup LSKN
đã chuyển sang CSDL TimesTen. Bản thân CSDL TimesTen cũng giảm tải hơn
do thời gian response time với một truy vấn tới nó nhỏ.
IV.3.3.2 Kết quả thử nghiệm cho hệ thống BCCS_Rating
Đề xuất giải pháp:
Hệ thống Rating sử dụng TimesTen theo hai mô hình:
- Thông tin thuê bao: đồng bộ từ OracleDB, ứng dụng khi cần thông tin sẽ truy
vấn từ TimesTen.
- Thông tin tài khoản: việc cập nhật lưu lượng miễn phí của tài khoản khuyến
mại sẽ thực hiện trên TimesTen, sau đồng bộ xuống CSDL Oracle.
RatingApp
Rating TimestenDB
RatingApp
Đồng bộ
Insert, update
delete
update
tài khoảnselect
Rating OracleDB Rating OracleDB
Hình IV.5 – Mô hình Rating trước và sau khi áp dụng TimesTen
Physical
machine
Trước Sau
22
Kết quả đạt được:
Dưới đây là kết quả so sánh thời gian xử lý các bản ghi cước của hệ thống
Rating trước và sau khi sử dụng TimesTen.
Bảng IV.5 – Bảng so sánh thời gian xử lý khi dùng Oracle và TimesTen
Chức năng Thời gian xử lý
TimesTen
Thời gian xử lý
Oracle
Chi phí
Chuẩn hóa 6.25 ms / bản ghi 60.5 ms / bản ghi - server: 2 CPU, 4GB
RAM.
- Lập trình: xây dựng
hệ thống mới.
- Cài đặt, cấu hình
TimesTen: 1 MD
Tính cước 5.75 ms / bản ghi 50.5 ms / bản ghi
Kết quả cho thấy khi sử dụng TimesTen đã đáp ứng yêu cầu hiệu năng của hệ thống.
IV.4. Kết luận chương 4
Chương này đưa ra các thông tin để áp dụng thử nghiệm một sản phẩm IMDB
vào hệ thống phần mềm. Xuất phát từ việc khái quát hóa các lĩnh vực, bài toán có thể
sử dụng IMDB, tôi đã lựa chọn một sản phẩm IMDB là Oracle TimesTen và thử
nghiệm vào hai hệ thống phần mềm tại nơi tôi làm việc. Kết quả thử nghiệm thực sự
khả quan khi IMDB giúp cải thiện rõ rệt hiệu năng ứng dụng, đồng thời giảm tải cho
CSDL hiện tại, mà chi phí đầu tư không quá cao. Từ đó cho thấy, giải pháp Cơ sở dữ
liệu trên bộ nhớ thực sự hiệu quả.
23
KẾT LUẬN VÀ KIẾN NGHỊ
1. Kết luận
Luận văn là một sự nghiên cứu chuyên sâu và toàn diện về Cơ sở dữ liệu trên
bộ nhớ với một lối tiếp cận và trình bày rành mạch. Xuất phát từ phân tích sự cấp thiết
của đề tài, nhu cầu và khả năng áp dụng của các công ty trong các lĩnh vực khác nhau.
Tiếp đó, luận văn đi sâu vào các kiến thức về Cơ sở dữ liệu trên bộ nhớ: khái niệm, so
sánh với CSDL trên ổ đĩa truyền thống, phân tích nguyên nhân tạo nên tốc độ ấn tượng
của IMDB, và các khía cạnh khác của IMDB như kết nối từ ứng dụng, kết nối đồng
thời, tối ưu hóa truy vấn, đảm bảo tính sẵn sàng cao. Luận văn cũng đưa ra thông tin
về sản phẩm IMDB của các công ty lớn (sản phẩm thương mại) và các sản phẩm
IMDB từ cộng đồng mã nguồn mở, cũng như sự so sánh về tính năng và hiệu năng của
các sản phẩm đó. Phần cuối của luận văn đưa ra lớp các bài toán có thể áp dụng
IMDB, mô hình hệ thống sau khi áp dụng, lựa chọn hệ thống để áp dụng thử nghiệm
và đưa ra kết quả thử nghiệm.
Những kiến thức và kết quả thử nghiệm IMDB cho thấy sự hiệu quả của giải
pháp IMDB khi áp dụng cho các hệ thống cần hiệu năng cao về cơ sở dữ liệu, với số
lượng truy cập lớn và yêu cầu thời gian phản hồi rất nhỏ.
2. Kiến nghị
Qua đây, tôi cũng đề xuất việc hệ thống và tổ chức nhiều hơn các buổi hội thảo
liên quan, với thành phần tham dự là các công ty làm phần mềm và có nhu cầu cải tiến
hiệu năng hệ thống liên quan Cơ sở dữ liệu. Đồng thời, có các diễn đàn thảo luận sâu
hơn về IMDB, giúp cho cộng đồng phần mềm nhìn nhận và đánh giá về IMDB nhằm
áp dụng khi có nhu cầu, tăng hiệu năng cho phần mềm, tăng thêm uy tín và lợi nhuận
cho công ty doanh nghiệp, cao hơn là cho đất nước.
Bản thân nơi tôi làm việc, tôi cũng đã đề xuất và đã áp dụng Oracle TimesTen
IMDB vào một số hệ thống. IMDB đã trở thành một giải pháp tham khảo khi giải
quyết bài toán về hiệu năng Cơ sở dữ liệu cho các vấn đề của hệ thống cũ cũng như
các hệ thống mới xây dựng.