23
ĐẠ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

CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

  • Upload
    lythien

  • View
    231

  • Download
    3

Embed Size (px)

Citation preview

Page 1: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

ĐẠ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

Page 2: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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

Page 3: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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

Page 4: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤ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ị

Page 5: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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.

Page 6: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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.

Page 7: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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.

Page 8: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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

Page 9: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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

Page 10: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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.

Page 11: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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.

Page 12: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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,

Page 13: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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ở

Page 14: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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.

Page 15: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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

Page 16: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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.

Page 17: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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.

Page 18: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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:

Page 19: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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.

Page 20: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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

Page 21: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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

Page 22: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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ả.

Page 23: CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ (IN-MEMORY DB) VÀ ỨNG DỤNG

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.