3.2.1. Môi trƣờng thử nghiệm
Chƣơng trình thử nghiệm đƣợc chạy trên máy tính tại phòng Nghiên cứu hệ thống và quản lý - Viện Công nghệ thông tin - Viện Khoa học và Công nghệ Việt Nam. Cấu hình máy chủ nhƣ sau:
CPU: Core I7 3.07 GHz RAM: 18GB
OS: Server 2003 SP2 (32 Bit) HDD, SSD
Server thử nghiệm đƣợc cài đặt JDK-6U29-i586, hai hệ quản trị CSDL để so sánh là Oracle TimesTen (32 Bit) và Microsoft SQL Server 2008. Chƣơng trình thử nghiệm cài đặt trên ngôn ngữ C++ (Visual Studio 2010).
Trong phần thử nghiệm này, đối tƣợng dữ liệu chúng tôi tập trung nghiên cứu là các đối tƣợng chuyển động liên tục nhƣ các phƣơng tiện giao thông. CSDL này nhắm tới áp dụng cho các ứng dụng LBS (location based service) nhƣ các bài toán về kiểm soát các phƣơng tiện giao thông. Ở đây ta sẽ thiết kế ra một chƣơng trình tạo dữ liệu với các đối tƣợng phân bố đều trong không gian hai chiều theo phạm vi [0, 10000] trên mỗi trục. Sau đó mỗi đối tƣợng đƣợc gán một VBR, do đó:
61
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
- Trên mỗi một chiều, vận tốc thay đổi kích thƣớc bằng không (đối tƣợng là không thay đổi kích thƣớc không gian khi nó chuyển động).
- Giá trị vận tốc trong khoảng [-50, 50].
- Vận tốc thay đổi tối đa trong mỗi lần cập nhật là 5.
File dữ liệu đƣợc tạo ra là một CSDL chứa các bản ghi của đối tƣợng. Trong file dữ liệu các đối tƣợng đƣợc tạo ra một cách ngẫu nhiên tại mốc thời gian t0 (bao gồm chỉ mục của đối tƣợng, mbr, vận tốc, thời điểm của đối tƣợng). Sau đó tại một mốc thời gian t1, t2, t3,… một số ngẫu nhiên các đối tƣợng đƣợc tạo ra với vận tốc thay đổi.
Các bản ghi có thể đƣợc mô tả với kiểu cấu trúc của C++ trong đó Oid là các chỉ mục cho đối tƣợng, mbr (minimum bounding rectangle) là một mảng với 4 phần tử mô tả vị trí và kích cỡ của đối tƣợng, vbr (velocity bounding rectangle) là một một mảng với 4 phần tử mô tả mô tả các cạnh của mbr và ref là một giá trị cho thời gian mà ở đó đối tƣợng đƣợc chèn hay đƣợc cập nhật.
struct MovingObject
{ int Oid; //Chỉ mục đối tƣợng, xác định một đối tƣợng duy nhất float mbr[4]; //Vị trí và kích thƣớc của đối tƣợng
float vbr[4]; //Véc tơ chuyển động của đối tƣợng theo từng hƣớng
float ref; //Thời gian tham chiếu khi đối tƣợng đƣợc thêm mới hoặc cập nhật };
Bảng 3.1 mô tả ví dụ của 5 đối tƣợng chuyển động tại thời điểm 0. Cột đầu tiên là chỉ mục của đối tƣợng, bốn cột tiếp theo tƣơng ứng với trục X và Y (vị trí và kích thƣớc của đối tƣợng), 4 cột tiếp theo tƣơng ứng với tốc độ của đối tƣợng và cột cuối cùng là thời điểm hiện tại tƣơng ứng với bảng Table1(COLUMN1, COLUMN2, COLUMN3, COLUMN4, COLUMN5, COLUMN6, COLUMN7, COLUMN8, COLUMN9, COLUMN10) đƣợc tạo ra để thử nghiệm trong TimesTen và trong SQL Server 2008.
62
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Bảng 3.1. Dữ liệu của một số đối tƣợng chuyển động tại thời điểm hiện tại
Oid X1 X2 Y1 Y2 Vx1 Vx2 Vy1 Vy2 time
0 2108.2 2108.3 8522.5 8522.5 -21.5 -21.5 -13.9 -13.9 0 1 2806.7 2806.7 5814.8 5814.8 -49.8 -49.8 6.8 6.8 0 2 9968.1 9968.1 1870.4 1870.4 34.7 34.7 41.5 41.5 0 3 910.5 910.5 7318.2 7318.2 -3.0 -3.0 -39.8 -39.8 0 4 4271.0 4271.0 4824.4 4824.4 44.9 44.9 -26.4 -26.4 0 3.2.2. Thử nghiệm
Việc thử nghiệm ở đây là so sánh thời gian để hoàn thành insert một triệu bản ghi vào hai CSDL liệu Timesten và MS SQL Server 2008. Các chƣơng trình thử nghiệm đƣợc chạy trên cùng một môi trƣờng. Việc sinh dữ liệu đƣợc mô tả trong phần 3.2.1. Chạy chƣơng trình sinh dữ liệu ngẫu nhiên và cho insert vào CSDL trên Timesten và MS SQL Server 2008. Đối với MS SQL Server 2008 sẽ thử nghiệm insert dữ liệu trên cả ổ HDD và ổ SSD vì ổ SSD có tốc độ truy xuất nhanh hơn nhiều so với ổ HDD. Việc Insert dữ liệu vào CSDL đƣợc thực hiện tuần tự. Tại các mốc 100 nghìn bản ghi đƣợc insert thì lấy thời gian hoàn thành. Việc so sánh tốc độ của hai hệ quản trị đƣợc so sánh trên thời gian hoàn thành việc insert mốc bản ghi trên.
63
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Kết quả thử nghiệm:
Hình 3.14. Insert dữ liệu vào TimesTen
64
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hình 3.16. Insert dữ liệu vào MS SQL Server 2008 trên ổ cứng HDD
65
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hình 3.18. Dữ liệu trong MS SQL Server 2008 3.2.3. Đánh giá
Việc thực hiện insert dữ liệu vào TimesTen nhanh gấp nhiều lần so với MS SQL Server 2008. Nhìn vào biểu đồ so sánh thời gian cho thấy (Hình 3.19), mặc dù việc insert dữ liệu của MS SQL Server 2008 trên ổ HDD hay ổ SSD thì vẫn chậm rất nhiều so với TimesTen. Ổ SSD sử dụng công nghệ mới là sử dụng các chíp nhớ gần nhƣ RAM nên tốc độ truy xuất nhanh hơn nhiều so với đĩa từ trên ổ HDD thông thƣờng.
Nhìn vào kết quả thử nghiệm, trong TimesTen tại mốc 50 nghìn bản ghi đầu đƣợc insert trong 37 giây và cần 37 giây cho 50 nghìn bản ghi tiếp theo. Để hoàn tất insert một triệu bản ghi cần 12 phút 23 giây. Trong khi đó, MS SQL Server 2008 cần 1 phút 51 giây cho 50 nghìn bản ghi đầu, cần 1 phút 54 giây cho 50 nghìn bản ghi tiếp theo, cần 35 phút 25 giây cho một triệu bản ghi đƣợc insert trên ổ cứng SSD và cần 4 phút 55 giây cho 50 nghìn bản ghi đầu, cần 3 phút 36 giây cho 50 nghìn bản ghi tiếp theo, cần 83 phút cho một triệu bản ghi đƣợc insert trên ổ cứng HDD.
Nhƣ vậy với mỗi 50 nghìn bản ghi đƣợc insert trong TimesTen thì thời gian hoàn thành gần nhƣ thời gian thực, còn đối với MS SQL Server 2008 thì thời gian tính theo phút nên chậm hơn rất nhiều so với TimesTen. Vì vậy các hệ thống cần số lƣợng giao dịch lớn sử dụng CSDL trong bộ nhớ là phƣơng án tối ƣu .
66
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hình 3.19. Biểu đồ so sánh thời gian insert 1 triệu bản ghi 3.3. Kết luận chƣơng 3
Trong chƣơng này giới thiệu về hệ quản trị CSDL trong bộ nhớ Oracle TimesTen. Việc thử nghiệm đƣợc tiến hành trên máy tính của phòng Nghiên cứu hệ thống và quản lý - Viện Công nghệ thông tin - Viện Khoa học và Công nghệ Việt Nam. Việc thử nghiệm chỉ thực hiện trên giao dịch đơn giản là insert dữ liệu tuần tự vào CSDL. Kết quả thử nghiệm phần nào cho thấy tốc độ của CSDL trong bộ nhớ so với hệ CSDL thông thƣờng. 0 10 20 30 40 50 60 70 80 90 1 trăm nghìn 2 trăm nghìn 3 trăm nghìn 4 trăm nghìn 5 trăm nghìn 6 trăm nghìn 7 trăm nghìn 8 trăm nghìn 9 trăm nghìn 1 Triệu TimesTen SQL trên SSD SQL trên HDD
67
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
KẾT LUẬN VÀ HƢỚNG NGHIÊN CỨU
CSDL trong bộ nhớ là một lĩnh vực mới và khó. Tại Việt Nam hiện nay việc áp dụng công nghệ này chƣa nhiều, vì vậy việc tìm hiểu, phát triển và ứng dụng nó là điều cần thiết. Đặc biệt trong bối cảnh điện toán đám mây ra đời, các ứng dụng có sẵn bất cứ đâu cho ngƣời dùng cuối. Yêu cầu của ngƣời dùng là thời gian đáp ứng giao dịch phải nhanh, là thời gian thực. Để giải quyết vấn đề này thì giải pháp CSDL trong bộ nhớ là tối ƣu nhất.
Luận văn này đã trình bày đƣợc các hệ thống phải xử lý lƣợng giao dịch lớn mà thời gian đáp ứng đòi hỏi nhanh, thời gian thực; đã đƣa ra đƣợc giải pháp đó là sử dụng CSDL trong bộ nhớ; đƣa ra đƣợc những ƣu nhƣợc điểm của CSDL trong bộ nhớ và lợi thế khi sử dụng nó.
Trọng tâm của luận văn đi tìm hiểu kiến trúc, các cấu trúc chỉ mục, xử lý truy vấn, khôi phục và kiểm soát đồng thời của IMDB; một cấu trúc cây điển hình gắn với IMDB đó là T Tree.
Phần thử nghiệm đi so sánh thời gian để hoàn thành insert một triệu bản ghi vào hai CSDL liệu TimesTen và MS SQL Server 2008. Các chƣơng trình thử nghiệm đƣợc chạy trên cùng một môi trƣờng. Kết quả đạt đƣợc cho thấy, với việc sử dụng CSDL TimesTen thì việc insert tuần tự 50 nghìn bản ghi có thời gian hoàn thành là thời gian thực (chỉ tính bằng giây). Việc insert trong TimesTen nhanh gấp nhiều lần so với MS SQL Server 2008 (trên cả ổ SSD và ổ HDD). Việc thử nghiệm mới chỉ thực hiện trên giao dịch đơn giản là insert dữ liệu tuần tự vào CSDL.
Để hoàn thiện đƣợc đề tài, hƣớng nghiên cứu tiếp trong tƣơng lai tập trung vào:
- Nghiên cứu về Indexing.
- Nghiên cứu về cơ chế xử lý truy vấn trong IMDB.
- Nghiên cứu về Recovery trong IMDB. Đây là một vấn đề rất quan trọng của IMDB đó là khả năng khôi phục dữ liệu trong các trƣờng hợp hệ thống gặp sự cố.
68
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
TÀI LIỆU THAM KHẢO Tiếng Việt
1. Khánh Hà (2012), Giải pháp Công nghệ bộ nhớ trong,
http://www.sbv.gov.vn, ngày 05/8/2012.
2. Mai Phƣơng (2011), IMDS cho đòi hỏi truy xuất nhanh, http://www.pcworld.com.vn , ngày 13/2/2012.
3. Hoàng Xa (4.2009), “Các loại trình ứng dụng Cơ sở dữ liệu”, Tạp chí CNTT & TT, Kỳ 2, tr. 16 - 17.
Tiếng Anh
4. A.Ammann, M.Harahan and R.Krishnamurthy (February 1985), Design of a Memory Resident DBMS, Proc. IEEE COMPCON, San Francisco.
A. C. Ammann, M. B. Hanrahan, R.Krishnamurthy ( 1985) , Design of a memory
resident DBMS, in Proc. IEEE COMPCOM Conj.
5. Aho, J. Hopcroft and J. D. Ullman (1974), The Design and Analysis of
Computer Algorithm, Addison-Wesley Pulishing Company.
6. B. R. Badrinath and K. Ramamritham (March 1992.), “Semantics-Based Concurrency Control: Beyond Commutativity”, ACM Transactions on
Database Systems, 17(1).
7. C.J. Date (1985), An Introduction to Database Systems, Addision-Wesley. 8. D.Comer (June 1979), The Ubiquitous B Tree, Computing Surveys 11,2. 9. D. J. De Witt, R. Katz, F. Olken, L. Shapiro, M. Stonebraker and D. Wood
(June 1984), Implemententation Techniques for Main Memory Database Systems, Proc. ACM SIGMOD Conf, 1-8.
10. D. Knut (1973), The Art of Computer Programming, Addisong-Wesley, Reading, Mass.
11. IBM (1979), IMS Version 1 Release 1.5 Fast Path Feature Description and
Design Guide, IBM World Trade System Centers (G320-5775).
12. IBM (1984), Guide to IMS/VS V1 R3 Data Entry Database (DEDB) Facitlity, IBM International Systems Centers (GG24-1633-0).
69
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
13. K. Salem and H. Garcia-Molina (1986), Crash Recovery Mechanisms for
Main Storage Database System, Princeton Univ. Comp. Sci. Dept. Tech. Rep.
CS-TR-034086.
14. M. Eich (March 1986) , MMDB Recovery, Southern Methodist Univ. Dept. of Computer Sciences TR# 86-CSE-11.
15. Oracle (2006), Oracle TimesTen In-Memory Database Acrchitectura
Overview Release 6.0.
16. Plattner H - Alexander Zeier (2011), In-Memory Data Management An
Inflection Point for Enterprise Applications, Springer.
17. R. Hagmann (1986), A Crash Recovery Scheme fot a Memory Resident Database System, IEEE Transactions on Computers.
18. R. Fagin, J. Nievergelt, N. Pippenger and H.R. Strong (1979), Extendible Hashing: A fast access method for dynamic files, ACM Trans. on Database
System 4,3, 315-344.
19. Tobin Jon Lehman (1986), Main Memory Database – Overview.
20. W.Litwin (October 1980), Linear Hashing: A New Tool For File and Table Addressing, Proc. 6th Conf. Very Large Data Base, Montreal, Canada.
Website: