Tải bản đầy đủ (.doc) (4 trang)

Tài liệu Cơ sở dữ liệu thời gian thực và ứng dụng trong bài toán tính cước và chăm sóc khách hàng ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (107.89 KB, 4 trang )

Lĩnh vực Công nghệ thông tin
Cơ sở dữ liệu thời gian thực và ứng dụng trong
bài toán tính cớc và chăm sóc khách hàng
ThS.Đặng Hà Vinh,KS. Nguyễn Đăng Quang
Trung tâm Công nghệ Thông tin
Tóm tắt:
Cơ sở dữ liệu trong bộ nhớ IMDS (In Memory Database System hoặc còn gọi là
MMDS - Main Memory Database System) có một vai trò rất quan trọng trong sự phát triển
của ngành công nghệ thông tin hiện đại. IMDS xuất hiện trong các hệ thống cung cấp các
dịch vụ yêu cầu các đáp ứng thời gian thực nh các Tổng đài thế hệ mới, các router hoặc các
chơng trình phải xử lý số lợng rất lớn các giao dịch trong một giây nh các hệ thống xử lý cớc
nóng, hệ thống chăm sóc khách hàng, hệ thống cung cấp SMS, hệ thống cung cấp các dịch vụ
trên Internet. Để nâng cao tính mềm dẻo, độ thông minh và khả năng xử lý dữ liệu nhanh của
các sản phẩm phần mềm của mình, nhóm thiết kế phòng Phần mềm Viễn thông thuộc trung
tâm Công nghệ Thông tin đã nghiên cứu để ứng dụng công nghệ Cơ sở dữ liệu bộ nhớ vào
trong Hệ thống Tính cớc và chăm sóc khách hàng đang đợc nâng cấp.
1.Yêu cầu thực tiễn
Mức độ thông minh của các thiết bị viễn thông ngày càng tăng đi đôi với nó là khối l-
ợng dữ liệu mà các hệ thống phần mềm nhúng phải xử lý ngày càng nhiều và phức tạp. Các
nhà phát triển phần mềm nhúng nhận thấy rằng các tổ chức dữ liệu theo phơng pháp tiếp cận
truyền thống trở nên ngày càng khó khăn và chơng trình trở nên khó bảo dỡng và nâng cấp
mỗi khi nảy sinh yêu cầu mới. Các chơng trình cung cấp các dịch vụ thời gian thực hoặc gần
thực trở nên nặng nề khi sử dụng các flat-file hoặc cơ sở dữ liệu truyền thống chậm chạp.
Cùng với đó, giá RAM ngày cảng giảm và tốc độ CPU ngày càng nhanh khiến cho các nhà
phát triển nghĩ tới lối thoát là xây dựng các Cơ sở dữ liệu trong bộ nhớ. IMDS đã ra đời từ
nhu cầu đó. Các nhà phát triển phần mềm lúc này chỉ việc chú trọng vào việc giải quyết bài
toán của mình còn việc tổ chức, lu trữ và truy suất dữ liệu trong bộ nhớ thế nào hoàn toàn do
IMDS đảm nhiệm.
Việc sử dụng IMDS đặc biệt phát huy hiệu quả trong các hệ thống nhúng nh các IP
router hiện đại, các tổng đài thế hệ mới, các phần mềm cần yêu cầu cao về hiệu xuất và thời
gian đáp ứng. Các sản phẩm của một số hãng lớn đều có sử dụng các IMDS nh Kenan của


CSG, các giải pháp của Amdocs
2. So sánh DBMS và IMDS
Các DBMS truyền thống lu trữ dữ liệu trên đĩa cứng nên có tốc độ truy xuất dữ liệu bị
hạn chế bởi tốc độ chậm chạp của các linh kiện cơ khí tạo nên đĩa cứng. Còn đúng nh tên gọi,
IMDS lu trữ dữ liệu hoàn toàn trên bộ nhớ và chỉ truy xuất đĩa cứng trong trờng hợp cần.
Phải chăng IMDS chỉ đơn giản là các DBMS đợc nạp hoàn toàn vào bộ nhớ? Câu trả
lời là không. IMDS có những khác biệt cơ bản với ngời họ hàng DBMS của nó. Do không
phải truy xuất đĩa cứng nữa nên không có phần dữ liệu nào bị chuyển qua lại giữa đĩa cứng và
bộ nhớ. Điều đó dẫn tới giảm thiểu đợc tiêu tốn xung nhịp CPU và có đáp ứng nhanh hơn từ
hàng chục đến hàng trăm lần so với các DBMS truyền thống. Sau đây là các khác biệt cơ bản
giữa DBMS truyền thống và IMDS
2.1.Lu trữ tạm thời (Caching)
Để hạn chế số lần phải truy xuất đĩa cứng, các DBMS truyền thống đều sử dụng biện
pháp lu giữ phần dữ liệu đợc truy xuất mới nhất trong bộ nhớ. Caching bao gồm cả việc đồng
Học viện Công nghệ BCVT
Hội nghị Khoa học lần thứ 5
bộ dữ liệu. Việc này đảm bảo rằng phần ảnh của dữ liệu đợc cache giống với phần gốc đợc lu
trên đĩa cứng của nó. Ngoài ra caching gồm cả thủ tục tìm kiếm dữ liệu. Nếu dữ liệu mà ứng
dụng yêu cầu nằm trong cache thì nó đợc lấy ra và trả về cho chơng trình, nếu không thì dữ
liệu này sẽ đợc lấy ra từ đĩa cứng và thêm vào cache để cho những lần dùng sau.
Đối với các DBMS, các thủ tục này đều đợc thực hiện cho dù nó đợc nạp vào bộ nhớ.
Còn đối với các IMDS, do loại bỏ đợc công đoạn ra vào đĩa nên caching là không cần thiết do
đó giảm bớt đợc sự phức tạp và tiêu tốn tài nguyên RAM và xung nhịp CPU
2.2. Data-Transfer Overhead
Chúng ta hãy xem xét điều gì sẽ xẩy ra khi ứng dụng truy vấn dữ liệu sau đó thay đổi
nó và ghi lại trên DBMS truyền thống.
Hình 1: Luồng dữ liệu luân chuyển trong một DBMS truyền thống
Màu đỏ thể hiện luồng dữ liệu
Mầu xám thể hiện luông thông điệp
1. ứng dụng truy vấn dữ liệu từ CSQL thông qua các giao diện API của nó.

2. CSDL hớng dẫn hệ thống file lấy dữ liệu từ thiết bị lu trữ.
3. Hệ thống file sẽ chuyển một bản copy của dữ liệu vào cache của nó và chuyển một
bản copy khác trả lại cho CSDL.
4. CSDL giữ lại một bản copy cho cache của nó và chuyển một bản cho ứng dụng.
5. ứng dụng cập nhật dữ liệu và chuyển nó trở lại cho CSDL thông qua các API của nó
6. CSDL sao lại dữ liệu đã thay đổi vào cache.
7. Bản sao của cache của CSDL cuối cũng cũng sẽ đợc lu vào hệ thống file, tại đó cache
của hệ thống file cũng đợc cập nhật.
8. Cuối cùng thì dữ liệu lại đợc ghi vào thiết bị lu trữ vật lý
Các bớc này là trình tự cơ bản không thể bỏ qua trong bất kỳ một CSDL truyền thống
nào ngay cả khi công việc đợc thực hiện hoàn toàn trong bộ nhớ. Các bớc này trong thực tế
còn phức tạp hơn nhiều khi tính đến các công đoạn Log các thao tác và một số công đoạn
quan trọng khác
Học viện Công nghệ BCVT
Lĩnh vực Công nghệ thông tin
Ngợc lại, trong các IMDS, việc truyền dữ liệu qua lại là không cần thiết. CSDL cho
cho phép ngời dùng truy cập dữ liệu thông qua các con trỏ trực tiếp tới dữ liệu. Tuy nhiên dữ
liệu vẫn đợc đảm bảo an toàn do con trỏ này chỉ đợc sử dụng thông qua các API của IMDS.
Loại bỏ đợc việc phải chuyền dữ liệu qua lại nhiều lần làm tăng tốc độ truy xuất dữ liệu.
Giảm đợc số lợng bản sao của dữ liệu dẫn đến giảm tài nguyên chiếm dụng bởi CSDL. Sự
đơn giản trong hoạt động khiến cho thiết kế đơn giản làm tăng độ tin cật của hệ thống
2.3. Xử lý giao dịch
Trong các trờng hợp có sự cố nghiêm trọng nh là mất điện, CSDL dựa trên đĩa cứng
sẽ đợc khôi phục bằng cách commit những giao dịch đã đợc hoàn tất và hồi phục lại dữ liệu
liên quan đến những giao dịch cha hoàn tất từ log file khi hệ thống khởi động lại. Các CSDL
truyền thống xử lý các giao dịch dựa trên các log file.
IMDS cũng cup cấp các tính năng đảm bảo tính toàn vẹn của các giao dịch. Để làm
điều này, các IMDS lu lại các bản sao của các đối tợng đợc cập nhật hay bị xóa và một danh
sách các dữ liệu đợc chèn vào CSDL trong suốt quá trình giao dịch diễn ra. Khi ứng dụng
commit giao dịch, phần bộ nhớ của các bản sao của các dữ liệu đợc bỏ đi và các dữ liệu đợc

chèn vào đợc chuyển tới vùng nhớ chứa dữ liệu chính của CSDL, thao tác này đợc thực hiện
rất nhanh và hiệu quả. Nếu ứng dụng hủy giao dịch thì các bản sao dữ liệu đợc chuyển thành
bản chính và các dữ liệu đợc chèn vào trong quá trình giao dịch bị huỷ bỏ.
Nếu các sự cố nghiêm trọng xẩy ra thì dữ liệu trong IMDS sẽ bị mất. Đó là điều khác
biệt lớn giữa các DBMS truyền thống và các IMDS. Khi hệ thống đợc khởi động lại, để có thể
tiếp tục sử dụng đợc thì dữ liệu phải đợc nạp lại bằng cách này hay cách khác. Nguyên nhân
của sự khác biệt này là IMDS đợc tạo ra để tăng tối đa tốc độ truy xuất dữ liệu có thể nên
một số tính năng nh ghi log file và các tính năng làm ảnh hởng đến hiệu xuất khác đều bị loại
bỏ.
Đặc tính này của IMDS rõ ràng là không phù hợp với mọi loại ứng dụng. Tuy nhiên
lại rất thích hợp trong lĩnh vực phần mềm nhúng hoặc những ứng dụng đòi hỏi truy xuất dữ
liệu với tốc độ thời gian thực.
Tuy nhiên một phần lớn các IMDS hiện nay đều cung cấp tính năng Sao lu và Hồi
phục dữ liệu. Có thể kể đến các IMDS phổ biến là: FastDB, GigaBase, Goods
3. Các mô hình IMDS
Hiện tại, các IMDS cha hề có chuẩn. Các hãng phát triển hoặc là áp dụng các chuẩn
của DBMS hoặc tự định nghĩa riêng cho mình. Các cách tiếp cận và triển khai, các khái niệm
của chúng cũng khác nhau. Trên thế giới các IMDS tồn tại dới 2 mô hình chính là mô hình h-
ớng ứng dụng (Application Oriented - AO) và mô hình Client/Server. Phần lớn các IMDS
hiện nay đều là các CSDL hớng đối tợng hoặc CSDL Hớng đối tợng - Quan hệ.
3.1. Mô hình client/server
Đây là mô hình gần với các DBMS truyền thống nhất và nổi bật trong số này là
GOODS (Generic Object Oriented Database System). Chúng hỗ trợ môi trờng phân tán và có
rất nhiều tính năng của một DBMS nhng có lợi điểm là truy xuất dữ liệu rất nhanh so với các
sản phẩm truyền thống. Client và Server có thể nằm trên các node khác nhau.
Mô hình này thờng đợc sử dụng trong các ứng dụng lớn với những đòi hỏi khắt khe về
thời gian đáp ứng.
GOODS là một IMDS mã nguồn mở khá mạnh với rất nhiều tính năng của một
DBMS nh Replication, quản lý các giao dịch chặt chẽ nhờ các REDO log và Global History
Log. GOODS là một CSDL phân tán, dữ liệu có thể đặt trên nhiều node trong mạng.

Học viện Công nghệ BCVT
Hội nghị Khoa học lần thứ 5
3.2.Mô hình AO
Đây là một mô hình khá phổ biến của IMDS. Chúng đợc cung cấp dới dạng các th
viện nhúng vào trong chơng trình phần mềm. Thực chất chúng cung cấp các dịch vụ lu trữ,
truy vấn và cập nhật dữ liệu cho các ứng dụng. Thờng thì các IMDS không thể sửa đổi cấu
trúc khi chạy chơng trình mà điều này đợc thực hiện khi viết chơng trình ví dụ của loại này là
FastDB, GigaBase, Berkeley DB.
Đa phần IMDS cũng cung cấp khả năng Sao lu và hồi phục dữ liệu. Khi ứng dụng gặp
sự cố thì dữ liệu vẫn có thể khôi phục lại đợc nh trớc đó nhờ các file dữ liệu đợc lu trên ổ
cứng. Các IMDS loại này mang lại cho ứng dụng khả năng truy cập dữ liệu rất nhanh.
Các DBMS loại này thờng chỉ hỗ trợ việc truy cập dữ liệu từ một hay nhiều tiến trình
trong cùng một ứng dụng chứ không cho phép nhiều ứng dụng cùng truy cập.
CSDL loại này đợc dùng nhiều trong các ứng dụng đòi hỏi tốc độ xử lý cao và phải
quản lý rất nhiều tham số nh hệ thống tính cớc của chúng tối là một ví dụ.
3.3. áp dụng vào Hệ thống Tính cớc và chăm sóc khách hàng
Sau khi thiết kế hệ thống Tính cớc và Chăm sóc khách hàng, hệ thống đã phức tạp lên
rất nhiều, các bảng tham số đã lên tới hơn 70 và cấu trúc tham số vô cùng phức tạp. Việc
quản lý các thông số này trở nên khó khăn và dễ gây lỗi. Chúng tôi đã nghĩ ngay đến việc
ứng dụng IMDS vào chơng trình để giảm bớt công sức trong việc quản lý các tham số.
Sau một số thời gian nghiên cứu và tìm kiếm thông tin trên mạng, chúng tôi đã tìm đ-
ợc một số IMDS phù hợp với nhu cầu và điều kiện của mình. Sau đây chúng tôi xin giới thiệu
2 IMDS nổi bật là FastDB và GigaDB.
Đây đều là 2 IMDS mã nguồn mở và đã đợc sử dụng khá phổ biến. Cả hai cùng cung
cấp tính năng sao lu và phục hồi dữ liệu rất tốt. Chúng là các AO viết bằng ngôn ngữ C++
nên việc giao tiếp cũng rất thuận lợi. Và một điều đặc biệt quan trọng, chúng đều là các
CSDL hớng đối tợng nên rất thuận tiện trong việc tích hợp vào các chơng trình hiện tại của
phòng đang phát triển bằng công nghệ hớng đối tợng.
GigaBase sử dụng kỹ thuật page-pool để truy cập dữ liệu nên sẽ lu trữ đợc nhiều dữ
liệu hơn nhng chậm hơn so với FastDB sử dụng kỹ thuật virtual-memory. Qua cân nhắc,

chúng tôi lựa chọn FastDB do chơng trình Tính cớc của chúng tôi đòi hỏi thời gian đáp ứng
ngắn và phải xử lý rất nhiều dữ liệu cuộc gọi.
Sau đây chúng tôi xin giới thiệu về FastDB:
FastDB là một IMDS hớng ứng dụng và hớng đối tợng, mã nguồn mở. Nó có một số
tính năng mạnh nh quản lý giao dịch, tự động sao lu và hồi phục khi có sự cố. Thủ tục
commit hoạt động rất hiệu quả dựa trên thuật toán shadow root pages. Và một tính năng
rất hay nữa của FastDB là nó hỗ trợ truy vấn dữ liệu thông qua một ngôn ngữ gần giốn SQL
(SQL liked language). Câu lệnh truy vấn bao gồm: điều kiện lọc dữ liệu, sắp xếp dữ liệu.
Một bản ghi trong FastDB chính là một đối tợng của chơng trình. Các thủ tục trong
đối tợng đó có thể dùng nh những từ khóa trong câu lệnh truy vấn dữ liệu.
Công nghệ sắp xếp và tìm kiếm dữ liệu ở đây là T-tree, extensible hash table, GiST
khiến cho chơng trình có thể truy vấn dữ liệu rất hiệu quả.
Với những tính năng u việt của mình, FastDB sẽ đóng một vai trò quan trọng trong hệ
thống Tính cớc và Chăm sóc khách hàng của chúng tôi trong thời gian tới.
Mong rằng bài tham luận của chúng tôi sẽ giúp ích đợc nhiều cho quí độc giả.
Học viện Công nghệ BCVT

×