Đăng ký Đăng nhập
Trang chủ ứng dụng foundationdb trong việc nâng cao hiệu năng xử lý truy vấn trực tuyến (t...

Tài liệu ứng dụng foundationdb trong việc nâng cao hiệu năng xử lý truy vấn trực tuyến (tt)

.PDF
15
197
114

Mô tả:

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

Tài liệu liên quan