ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Mạnh Thắng
ỨNG DỤNG FOUNDATIONDB TRONG VIỆC NÂNG CAO
HIỆU NĂNG XỬ LÝ TRUY VẤN TRỰC TUYẾN
LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN
HÀ NỘI - 2014
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Mạnh Thắng
ỨNG DỤNG FOUNDATIONDB TRONG VIỆC NÂNG
CAO HIỆU NĂNG XỬ LÝ TRUY VẤN TRỰC TUYẾN
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60480104
LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: Tiến sĩ. Nguyễn Ngọc Hóa
HÀ NỘI - 2014
LỜI CAM ĐOAN
Tôi xin cam đoan bản luận văn “Ứng dụng FoundationDB trong việc nâng cao
hiệu năng xử lý truy vấn trực tuyến” là công trình nghiên cứu và thử nghiệm của tôi,
tại đơn vị công tác, tham khảo các nguồn tài liệu đã được chỉ rõ trong trích dẫn và danh
mục tài liệu tham khảo. Các nội dung công bố và kết quả trình bày trong luận văn này là
trung thực và chưa từng được ai công bố trong bất cứ công trình nào.
LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn tới các thầy, cô Trƣờng Đại học Công nghệ, Đại học Quốc
gia Hà Nội đã tận tình giảng dạy và truyền đạt kiến thức trong suốt khóa học cao học
vừa qua. Xin chân thành cảm ơn TS.Nguyễn Ngọc Hóa, ngƣời đã định hƣớng đề tài,
trực tiếp hƣớng dẫn và tận tình chỉ bảo tôi trong suốt quá trình thiết kế, xây dựng và
hoàn thiện luận văn này.
Tôi xin chân thành cảm ơn các anh chị, các bạn đồng nghiệp trong phòng Phát
triển phần mềm - Trung tâm Công nghệ thông tin BIDV đã tạo điều kiện cho tôi tìm
hiểu hệ thống và tạo môi trƣờng thử nghiệm.
Tôi xin bày tỏ lòng biết ơn sâu sắc tới gia đình, vợ, con… những ngƣời đã luôn ở
bên cạnh, động viên, chia sẻ cùng tôi trong quãng thời gian học cao học cũng nhƣ quá
trình thực hiện luận văn cao học.
MỤC LỤC
LỜI CAM ĐOAN ........................................................................................................... 3
LỜI CẢM ƠN ................................................................................................................. 4
MỤC LỤC ...................................................................................................................... 5
DANH MỤC CÁC KÝ HIỆU CÁC TỪ VIẾT TẮT ..................................................... 8
DANH MỤC CÁC HÌNH VẼ ........................................................................................ 9
MỞ ĐẦU ...................................................................................................................... 11
CHƢƠNG 1:
1.1
TỔNG QUAN FOUNDATIONDB... Error! Bookmark not defined.
Tổng quan hệ thống xử lý giao tác trực tuyến - OLTPError!
Bookmark
not
defined.
1.1.1
Hệ thống OLTP ........................................ Error! Bookmark not defined.
1.1.2
Nguyên tắc thiết kế, xây dựng hệ thống OLTPError!
Bookmark
not
defined.
1.2
FoundationDB[4] ............................................ Error! Bookmark not defined.
1.2.1
NewSQL[5] .............................................. Error! Bookmark not defined.
1.2.2
Key-value store ........................................ Error! Bookmark not defined.
1.2.2.1
Chống chịu lỗi ................................... Error! Bookmark not defined.
1.2.2.2
Mở rộng theo hƣớng tuyến tính ......... Error! Bookmark not defined.
1.2.2.3
Hỗ trợ mạnh giao tác ACID .............. Error! Bookmark not defined.
1.2.2.4
Đa dạng mô hình dữ liệu ................... Error! Bookmark not defined.
1.2.3
Sql Layer .................................................. Error! Bookmark not defined.
1.2.3.1
1.2.3.2
Các tính năng chính ........................... Error! Bookmark not defined.
1.2.3.3
1.3
Kiến trúc vật lý .................................. Error! Bookmark not defined.
Tích hợp ORM................................... Error! Bookmark not defined.
Quản trị FoundationDB[4] .............................. Error! Bookmark not defined.
1.3.1
Khởi động và dừng ................................... Error! Bookmark not defined.
1.3.2
Tập tin Cluster .......................................... Error! Bookmark not defined.
1.3.3
Thêm node vào cluster ............................. Error! Bookmark not defined.
1.3.4
Loại bỏ node từ cluster ............................. Error! Bookmark not defined.
1.3.5
Xem thông tin trạng thái cluster ............... Error! Bookmark not defined.
1.3.6
Quản lý tập tin trace ................................. Error! Bookmark not defined.
1.3.7
Gỡ bỏ ........................................................ Error! Bookmark not defined.
1.3.8
Nâng cấp ................................................... Error! Bookmark not defined.
1.4
Kết luận ........................................................... Error! Bookmark not defined.
CHƢƠNG 2:
PHÁT TRIỂN ỨNG DỤNG XỬ LÝ GIAO TÁC TRỰC TUYẾN VỚI
FOUNDATIONDB ...................................................... Error! Bookmark not defined.
2.1
Xây dựng ứng dụng với API của FoundationDB[4]Error!
Bookmark
not
defined.
2.1.1
Mô hình dữ liệu ........................................ Error! Bookmark not defined.
2.1.2
Quản lý không gian tên ............................ Error! Bookmark not defined.
2.1.3
Làm việc với các hàm APIs ..................... Error! Bookmark not defined.
2.1.4
Cơ bản về giao tác trong FoundationDB .. Error! Bookmark not defined.
2.2
Quản trị SQL Layer[4] .................................... Error! Bookmark not defined.
2.2.1
Cài đặt SQL layer ..................................... Error! Bookmark not defined.
2.2.2
Khởi động và dừng dịch vụ trên môi trƣờng windowsError! Bookmark not
defined.
2.2.3
Công cụ client........................................... Error! Bookmark not defined.
2.2.4
JVM warmup ............................................ Error! Bookmark not defined.
2.2.5
Quản lý phiên ngƣời dùng (Managing User Sessions)Error! Bookmark not
defined.
2.2.6
Sử dụng tệp tin LOG ................................ Error! Bookmark not defined.
2.2.7
Gỡ bỏ SQL Layer ..................................... Error! Bookmark not defined.
2.2.8
2.3
Nâng cấp ................................................... Error! Bookmark not defined.
Xây dựng ứng dụng tích hợp với SQL Layer[4]Error! Bookmark not defined.
2.3.1
Kiểu dữ liệu .............................................. Error! Bookmark not defined.
2.3.2
Truy cập với SQL ..................................... Error! Bookmark not defined.
2.3.2.1
Tạo bảng và truy vấn dữ liệu ............. Error! Bookmark not defined.
2.3.2.2
Tạo chỉ mục(index)............................ Error! Bookmark not defined.
2.3.3
Thủ tục và hàm ......................................... Error! Bookmark not defined.
2.3.3.1
Functions đƣợc xây dựng sẵn của SQL layerError!
Bookmark
not
defined.
2.3.3.2
2.4
Lập trình thủ tục và hàm.................... Error! Bookmark not defined.
Kết luận ........................................................... Error! Bookmark not defined.
CHƢƠNG 3:
XÂY DỰNG ỨNG DỤNG THỰC NGHIỆMError!
Bookmark
not
defined.
3.1
Bài toán đặt ra ................................................. Error! Bookmark not defined.
3.2
Thiết kế và cài đặt hệ thống thử nghiệm ......... Error! Bookmark not defined.
3.2.1
Các mô hình kiến trúc .............................. Error! Bookmark not defined.
3.2.1.1
Mô hình hoạt động hiện tại................ Error! Bookmark not defined.
3.2.1.2
Mô hình vật lý hiện tại của hệ thống BIBError!
Bookmark
not
defined.
3.2.1.3
3.2.2
Mô hình giải pháp BIDV Online ....... Error! Bookmark not defined.
Thiết kế cơ sở dữ liệu ............................... Error! Bookmark not defined.
3.2.2.1
Thiết kế bảng, khóa, chỉ mục ............ Error! Bookmark not defined.
3.2.2.2
Khối lƣợng dữ liệu ............................ Error! Bookmark not defined.
3.2.3
Thiết kế chức năng và giao diện............... Error! Bookmark not defined.
3.2.4
Thiết kế máy chủ vật lý-cluster ................ Error! Bookmark not defined.
3.2.5
Cài đặt chƣơng trình ................................. Error! Bookmark not defined.
3.3
Đánh giá so sánh FoundationDB và Oracle .... Error! Bookmark not defined.
KẾT LUẬN .................................................................. Error! Bookmark not defined.
TÀI LIỆU THAM KHẢO ............................................................................................ 14
DANH MỤC CÁC KÝ HIỆU CÁC TỪ VIẾT TẮT
ACID
Atomicity, Consistency, Isolation, và Durability
BIB
BIDV Internet Banking
CSDL
Cơ sở dữ liệu
FDB
FoundationDB
JDBC
Java Database Connectivity
KVS
Key-Value Store
ORM
Object-Relational Mapping
OLTP
Online Transaction Processing
RDBMS
Relational database management system
TPS
Transactions Processed per Second
DANH MỤC CÁC HÌNH VẼ
Chƣơng 1 : Hình 1: Chức năng của CSDL OLTP ........ Error! Bookmark not defined.
Chƣơng 1 : Hình 2: mô hình cluster và các bị lỗi......... Error! Bookmark not defined.
Chƣơng 1 : Hình 3: minh họa về khả năng mở rộng của KVSError!
Bookmark
not
defined.
Chƣơng 1 : Hình 4: Đa dạng mô hình dữ liệu .............. Error! Bookmark not defined.
Chƣơng 1 : Hình 5: mô hình tích hợp ứng dụng với FDBError! Bookmark not defined.
Chƣơng 1 : Hình 6: Mô hình logic của KVS ................ Error! Bookmark not defined.
Chƣơng 1 : Hình 7: Kiến trúc vật lý đơn giản của SQL layerError!
Bookmark
not
Bookmark
not
defined.
Chƣơng 1 : Hình 8: Kiến trúc SQL layer đƣợc khuyến nghịError!
defined.
Chƣơng 1 : Hình 9: Cấu hình cluster cơ bản bao gồm hai nodesError! Bookmark not
defined.
Chƣơng 1 : Hình 10: trạng thái của cluster .................. Error! Bookmark not defined.
Chƣơng 2: Hình 1: dịch vụ SQL layer trên window .... Error! Bookmark not defined.
Chƣơng 2: Hình 2: ví dụ đánh chỉ mục nhóm .............. Error! Bookmark not defined.
Chƣơng 3: Hình 1: Các chức năng chính của hệ thông BIDV Internet Banking ..Error!
Bookmark not defined.
Chƣơng 3: Hình 2: Mô hình hoạt động của BIB .......... Error! Bookmark not defined.
Chƣơng 3: Hình 3: Mô hình vật lý của BIB ................. Error! Bookmark not defined.
Chƣơng 3: Hình 4: Mô hình BIDV online ................... Error! Bookmark not defined.
Chƣơng 3: Hình 5: Mô hình vật lý hệ thống BIDV OnlineError!
Bookmark
not
defined.
Chƣơng 3: Hình 6: thiết kế bảng BIDV Online............ Error! Bookmark not defined.
Chƣơng 3: Hình 7: biểu đồ Usecase BIDV Online ...... Error! Bookmark not defined.
Chƣơng 3: Hình 8: Màn hình giao diện đăng nhập ...... Error! Bookmark not defined.
Chƣơng 3: Hình 9: Màn hình chức năng quản lý chi nhánhError!
Bookmark
not
defined.
Chƣơng 3: Hình 10: Thêm mới ngƣời dùng ................. Error! Bookmark not defined.
Chƣơng 3: Hình 11: sửa thông tin ngƣời dùng ............. Error! Bookmark not defined.
Chƣơng 3: Hình 12: Thêm mới tài khoản cho khách hàngError! Bookmark not defined.
Chƣơng 3: Hình 13: chức năng kiểm tra tải hệ thống .. Error! Bookmark not defined.
Chƣơng 3: Hình 14: chức năng chuyển khoản ............. Error! Bookmark not defined.
Chƣơng 3: Hình 15: Chức năng vấn tin tài khoản ........ Error! Bookmark not defined.
Chƣơng 3: Hình 16: mô hình cluster FDB của BIDV OnlineError!
Bookmark
not
defined.
Chƣơng 3: Hình 17: kết quả cấu hình cluster ............... Error! Bookmark not defined.
Chƣơng 3: Hình 18: cấu hình connection pool tomcat . Error! Bookmark not defined.
MỞ ĐẦU
Giới thiệu
Trong các hệ thống lớn tài chính – ngân hàng – chứng khoán một ngày phải giải
quyết số lƣợng truy vấn và giao dịch rất lớn phát sinh trong quá trình tác nghiệp nên việc
đảm bảo tải cho hệ thống là rất quan trọng. Đồng thời các truy vấn và giao dịch phải đáp
ứng tính chính xác và phần lớn trong đó phải đảm bảo về mặt thời gian xử lý cho kết quả
đầu ra gần nhƣ trực tuyến hoặc có thể coi là trực tuyến.
Hiện nay, các hệ quản trị CSDL truyền thống nhƣ Oracle, MS SQL Server… không
đáp ứng đƣợc những dịch vụ có số lƣợng truy vấn đồng thời lớn [1-2]. Hơn nữa, các mô
hình quản trị CSDL truyền thống này ban đầu đều đƣợc xây dựng trên các hệ thống máy
tính đơn vi xử lý (CPU). Vì thế, việc tận dụng các bộ vi xử lý đa nhân hay đa vi xử lý
mới chỉ đƣợc quan tâm ở mức hệ điều hành. Có rất nhiều cách tiếp cận mới theo hƣớng
NoSQL để giải quyết những vấn đề đặt ra ở trên [2-3]. Hệ quản trị CSDL NoSQL có khả
năng tận dụng rất tốt phần cứng kèm theo khả năng mở rộng, tăng cƣờng năng lực xử lý
đơn giản nhƣng lại vấp phải một số khiếm khuyết nhƣ: khó tiếp cận đối với những nhà
phát triển chƣa có kinh nghiệm, một số hệ quản trị CSDL NoSQL không hỗ trợ thực thi
các giao tác. Do đó từ đầu năm 2011 một lớp hệ quản trị CSDL mới ra đời kết hợp các
điểm mạnh của các hệ quản trị NoSQL và SQL truyền thống. Lớp hệ quản trị CSDL này
đƣợc gọi là NewSQL, đều hỗ trợ mô hình dữ liệu quan hệ và sử dụng ngôn ngữ truy vấn
SQL. Một trong số đó là FoundationDB đƣợc thiết kế để hoạt động trên cluster, nhà phát
triển có thể truy vấn, tƣơng tác với FoundationDB thông qua ngôn ngữ SQL nhằm tăng
khả năng tận dụng phần cứng tối đa và tăng khả năng tƣơng thích với các ứng dụng đã
xây dựng trƣớc đây có truy vấn CSDL thông qua SQL do đó cải thiện hiệu năng xử lý
giao tác trực tuyến.
Mục tiêu của luận văn
Với vấn đề đã đƣợc đặt ra nhƣ ở phần mở đầu, mục tiêu của luận văn này bao
gồm:
- Nghiên cứu, tìm hiểu đƣợc cách thiết kế hệ thống OLTP trong việc tối ƣu xử lý
các giao tác trên những hệ thống đa vi xử lý.
- Nghiên cứu, tìm hiểu hệ quản trị CSDL FoundationDB áp dụng vào bài toán cụ
thể Quản lý giao dịch chuyển tiền BIDV online. Với mục đích khắc phục toàn diện thực
trạng của hệ thống phần mềm “BIDV internet banking” nhƣ :
Khó khăn khi đáp ứng yêu cầu nhiều giao dịch trên giây (TPS) .
Hệ thống không ổn định và thƣờng xuyên quá tải khi lƣợng giao dịch
đồng thời lớn.
Chƣa tận dụng đƣợc lợi thế phần cứng máy chủ đa nhân, cluster.
- Phát triển thử nghiệm ứng dụng và so sánh đánh giá hiệu năng với một số hệ
quản trị truyền thống.
Bố cục của luận văn
Mở đầu: Giới thiệu về đề tài luận văn, tính thiết thực của đề tài và tổ chức của luận
văn.
Chƣơng 1. Tổng quan về FoundationDB
-
Các yêu cầu về thiết kế hệ thống OLTP.
-
Giới thiệu về FoundationDB.
o Key-Value Store
o SQL Layer
-
Quản trị FoundationDB
o Cài đặt cấu hình FoundationDB trên cluster
o Sao lƣu và khôi phục.
Chƣơng 2. Phát triển ứng dụng xử lý giao tác trực tuyến với FoundationDB
-
Xây dựng ứng dụng với API của FoundationDB
-
Xây dựng ứng dụng tích hợp với SQL Layer
-
Quản trị ứng dụng với SQL Layer
Chƣơng 3. Thực nghiệm
-
Bài toán đặt ra: Quản lý giao dịch chuyển tiền-BIDV Online.
-
Thiết kế và cài đặt hệ thống website.
-
Kết quả thu đƣợc của hệ thống.
-
Xây dựng công cụ đánh giá hiệu năng xử lý so với các hệ cơ sở dữ liệu
truyền thống
Kết luận chung và những hƣớng phát triển tiếp theo: Tổng kết những kết quả đạt
đƣợc qua quá trình hoàn thành đề tài luận văn; đề ra hƣớng phát triển, hoàn thiện cho đề
tài nghiên cứu.
TÀI LIỆU THAM KHẢO
[1]E. P. C. Jones, D. J. Abadi, and S. Madden, "Low overhead concurrency control for
partitioned main memory databases," in SIGMOD ’10: Proceedings of the 2010
international conference on Management of data, New York, NY, USA, 2010, pp. 603614
[2]Dionysios Logothetis, Kenneth Yocum. Data Indexing for Stateful, Large-scale Data
Processing. Loo, B. and Saroiu, S. 2010. 5th international workshop on networking meets
databases (NetDB 2009). SIGOPS Oper. Syst. Rev. 43, 4 (Jan. 2010), 17-18.
[3]Miceli, C., Miceli, M., Jha, S., Kaiser, H., and Merzky, A. 2009. Programming
Abstractions for Data Intensive Computing on Clouds and Grids. In Proceedings of the
2009 9th IEEE/ACM international Symposium on Cluster Computing and the Grid (May
18 - 21, 2009). CCGRID. IEEE Computer Society, Washington, DC, 478-483.
[4] https://foundationdb.com/
[5]Aslett, Matthew (2011). "How Will The Database Incumbents Respond To NoSQL
And NewSQL?". 451 Group (published 2011-04-04). Retrieved 2012-07-06
- Xem thêm -