In-Memory Database IMDB: - In-Memory Database Cơ sở dữ liê Zu trên bô Z nh] : là mô Zt hê Z thống quản lý cơ sở dữ liê Zu mà chủ yếu dLa vào bô Z nh] chenh để lưu trữ dữ liê Zu mGy tenh
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KHOA TIN HỌC - -
BÀI BÁO CÁO
Môn học: Cơ sở dữ liệu nâng cao
Đề tài : Cơ sở dữ liệu trên bộ nhớ - In Memory Database
GVHD: Nguyễn Trần Quốc Vinh Phạm Dương Thu Hằng SVTH: Nguyễn Thị Phương Trinh Ngô Thị Kiều Dung Phạm Văn Tú Nguyễn Hoàng Hải
Đà Nẵng, năm 2020
Trang 2MỤC LỤC
I Lý thuyết……….3
1 In - Memory Database…….……… … 3
2 So sGnh IMDB và disk-based DB(CSDL dLa trên N cOng)……… …4
3 Kiến trúc của IMDB……… 5
4 Kết luận……… ……… 7
5 Ưu nhược điểm của IMDB……… ………7
a Ưu điểm……… 7
b Nhược điểm……….8
II Mô Zt số sản ph\m cơ sở dữ liê Zu bô Z nh] trong……….… 8
1 Oracle TimesTen……… ……….8
2 H2……….……….9
III Th_ nghiê Zm cơ sở dữ liê Zu trên bô Z nh]……….……… 9
1 TNng quGt bài toGn Ong dụng…… ……… 9
2 Mô hình Gp dụng……… ……….10
a Mô hình hệ thống phần mềm thông thường……… ……… 10
b Mô hình hệ thống sau khi Gp dụng IMDB……… …….10
3 Th_ nghiệm và kết quả……….……… 11
Trang 3I L thuyt:
1 In-Memory Database (IMDB):
- In-Memory Database (Cơ sở dữ liê Zu trên bô Z nh]) : là mô Zt hê Z thống quản lý
cơ sở dữ liê Zu mà chủ yếu dLa vào bô Z nh] chenh để lưu trữ dữ liê Zu mGy tenh
- IMDB cfn được gọi v]i cGc tên khGc là Main memory database (Cơ sở dữ
liê Zu bô Z nh] chenh) hay Real-Time database (Cơ sở dữ liê Zu thời gian thLc).
- IMDB lưu giữ tgt cả dữ liê Zu trong RAM Mô Zt số IMDB, mô Zt số thành phần dLa trên N cOng vin cfn nguyên, nhưng RAM vin là nơi lưu trữ chenh Tuy nhiên, chenh vì RAM rgt dễ bị bị mgt dữ liê Zu (mGy tenh tjt ngukn, bị ngjt điê Zn
đô Zt ngô Zt ) nên mô Zt số IMDB clng lưu trữ dữ liê Z u trên đma như mô Zt cGch dL phfng để giảm rủi ro mgt dữ liê Zu
- Clng không phải vì lý do trên mà IMDB luôn luôn bị mgt dữ liê Zu Mà hầu hết cGc IMDB đn trang bị cho mình mô Zt trung tâm dữ liê Zu để chống mgt dữ liê Zu (co tenh spn sàng cao) bằng cGch lưu giữ cGc bản sao của cGc bản ghi của mGy tenh trong nhiều mGy tenh trong mô Zt cụm
Trang 42 So s!nh IMDB v# disk-based DB(CSDL d'a trên ) c+ng):
Lưu trữ dữ liê Zu - Dữ liê Zu được lưu trữ bô Z
nh] chenh để truy vgn và x_
lý
- Dữ liê Zu co thể được ghi xuống N cOng để sao lưu và phục hki
- Dữ liê Zu được lưu trữ trên N cOng
-Dữ liê Zu co thể được cache vào bô Z nh] để truy
câ Zp nhanh hơn
Tối ưu hoa truy vgn
- Thuâ Zt toGn tối ưu hoa truy vgn đơn giản hơn và chenh xGc hơn
- Thuâ Zt toGn tối ưu hoa truy vgn thLc hiê Zn v]i quan niê Zm dữ liê Zu đă Zt trên N đma
Quản lý bô nh]Z
đê Zm (buffer pool)
- IMDB không s_ dụng buffer pool, không phải sao chsp dữ liê Zu trư]c khi trả lại cho Ong dụng
- Buffer pool phải quản lý
dữ liê Zu được cache trong
bô Z nh] Nếu dữ liê Zu được tìm thgy trong buffer, no phải sao chsp trư]c khi trả lại kết quả
Cgu trúc chi mục(index) - S_ dụng T-tree cho index. index.- S_ dụng B-tree cho
Trang 53 Kin tr/c c0a IMDB:
- Kin trc disk-based DB:
- SQL Engine: biên dịch và thLc thi cGc truy vgn, gkm:
+ Compiler: xây dLng cgu trúc dữ liê Zu tw câu lê Znh SQL và kiểm tra cú phGp
+ Optimizer: chuyển câu lê Znh SQL gốc thành cGc nhom operation sao cho thLc thi hiê Zu quả nhgt
Trang 6+ Executor: thLc thi câu lê Znh SQL sau tối ưu, liên kết v]i Relational Engine
để lgy và lưu trữ kết quả
- Transaction Engine:
+ Concurency Mgr: quản lý truy câ Zp đkng thời t]i dữ liê Zu
+ Logging Mgr: đảm bảo tenh toàn vyn và bền vững của transaction Undo Log để roolback CSDL về trạng thGi gần nhgt Redo Log đảm bảo lưu trữ tgt
cả những transaction đn commit, phục hki khi cần thiết
+ Recovery Mgr: phục hki CSDL tw ảnh N cOng và Redo Log file
- Relational Engine: cGc đối tượng quan hê Z như bảng, chi mục và ràng buô Zc
dữ liê Zu được quản lý bởi thành phần này
- Storage Engine: lưu trữ và lgy cGc bản ghi dữ liê Zu
- Kin trc IMDB:
Nhìn chung tNng thể, IMDB clng co kiến trúc tương tL như disk-based DB, gkm cGc thành phần: SQL Engine, Transaction Engine, Relational Engine và Storage Engine Nhưng cGc thành phần con bên trong m{i thành phần này lại hoạt đô Zng khGc h|n
- SQL Engine: IMDB s_ dụng tối ưu hoa theo rule-based
- Relational Engine: Thuâ Zt toGn lưu trữ, tìm kiếm trong IMDB đơn giản hơn vì
no chi làm viê Zc v]i bô Z nh], không liên quan đến N cOng IMDB s_ dụng T-tree cho index thay vì s_ dụng B-tree như trong disk-based DB
Trang 7- Transaction Engine: CGc transaction trong IMDB không co viê Zc đợi disk I/O, điều này co thể din đến deadlock, làm ảnh hưởng đến thông lượng Vì vâ Zy, viê Zc quản lý giao dịch đkng thời phải được chú trọng hơn trong IMDB
- Storage Engine: trong IMDB viê Zc định vị linh hoạt hơn bằng cGc mô hình kết nối khGc nhau, như kết nối trLc tiếp hoă Zc kết nối client/server Viê Zc này được quản lý bởi IPC của hê Z điều hành
4 Kt luâ 4 n:
- Tw cGc lý thuyết cơ sở trên, ta co thể nhâ Zn thgy cơ sở dữ liê Zu trên bô Z nh]
(IMDB) tối ưu hoa và hoạt đô Zng nhanh hơn cơ sở dữ liê Zu trên N cOng(Disk-based DB)
- V]i kiến trúc như trên, c~ng v]i tốc đô Z truy câ Zp bô Z nh] nhah hơn nhiều so v]i N cOng và thuâ Zt toGn tối ưu riêng cho bô Z nh], IMDB cải thiê Zn đGng kể tốc
đô Z truy vgn dữ liê Zu
- KhGc v]i disk-based DB, IMDB b• qua Buffer pool, no biết chjc chjn dữ liê Zu nằm trên bô Z nh] chenh nên chi tìm kiếm trên bô Z nh] v]i những thuâ Zt toGn
đn được tối ưu riêng cho bô Z nh], sau đo trả về kết quả cho Ong dụng
- Ngoài viê Zc lưu trữ dữ liê Zu trên RAM, IMDB cfn tối ưu bằng cGch thay đNi thuâ Zt toGn tối ưu hoa truy vgn, và d~ng thuâ Zt toGn m]i cho cgu trúc chi mục v]i mục tiêu tối ưu CPU cycle và RAM thay vì tối ưu viê Zc I/O
5 Ưu như8c đi:m c0a IMDB:
a Ưu đim:
- Thời gian đGp Ong nhanh hơn: Dữ liê Zu được đă Zt trong bô Z nh],v]i cGc thuâ Zt toGn(query optimizer…) được thiết kế đă Zc th~ cho dữ liê Zu trong bô Z nh], loại b• cGc thành phần không cần thiết như buffer pool, làm cho IMDB tăng tốc đô Z đGng kể
- ĐGp Ong lượng truy vgn (thông lượng) cao: IMDB lưu dữ liê Zu trong bô Z nh], viê Zc tìm kiếm chi là tìm kiếm địa chi dữ liê Zu được lưu trong bô Z nh] Vì vâ Zy, IMDB đGp Ong được mô Zt lượng tru vgn rgt l]n
- Bền vững và co thể phục hki (đảm bảo tenh ACID): IMDB vin đảm bảo được tenh bền vững qua cGc thuô Zc tenh của mô Zt hê Z quản trị CSDL
- Tuân theo cGc chu\n thế gi]i cho CSDL:
+ Đa phần cGc sản ph\m IMDB đều h{ trợ chu\n kết nối tw Ong dụng bằng SQL chu\n
+ H{ trợ cGc kiểu kết nối chu\n qua JDBC
Trang 8+ Tương thech v]i nhiều hê Z điều hàng: Windows, Unix/Linux…
- Co tương đối đầy đủ cGc tenh năng như mô Zt CSDL quan hê Z thông thường:
+ H{ trợ truy câ Zp đkng thời
+ Tối ưu hoa truy vgn
+ Tenh spn sàng cao, đảm bảo dữ liê Zu khi xảy ra sL cố
- Mô Zt số tenh năng nâng cao chuyên biê Zt:
+ Cache:co những trường hợp s_ dụng IMDB như CSDL trung gian giữa CSDL truyền thống và Ong dụng, IMDB chi lưu trữ dữ liê Zu hay được truy câ Zp
và cần hiê Zu năng cao Vì vâ Zy, cGc sản ph\m IMDB thường cung cgp thêm cơ chế Cache để giúp đkng bô Z dữ liê Zu hai chiều giữa IMDB và CSDL truyền thống
+ TL đô Zng loại b• dữ liê Zu: để tiết kiê Zm dung lượng bô Z nh] chenh, những dữ liê Zu không cần thiết co thể bị loại b•
b Nhưc đim:
- GiG thành: giG RAM đjt hơn N đma cOng
- ƒng dụng và IMDB phải nằm trên c~ng server vâ Zt lý khi muốn d~ng kiểu kết nối direct để đạt hiê Zu năng tối đa
II Mô 4 t s< s=n ph?m cơ sA dB liê 4 u bô 4 nhC trong:
1 Oracle TimesTen:
- Oracle TimesTen là sản ph\m của Oracle, gkm hai sản ph\m: Oracle TimesTen IMDB và Oracle IMDB Cache
- Đă Zc điểm và tenh năng:
+ TimesTen API: ODBC,JDBC,OCI,DBP.net
+ Kết nối CSD: trLc tiếp(direct) và khGch/chủ (client/server) + Cho phsp ghi log vào N cOng để sao lưu và phục hki khi cần thiết M{i log được ghi đkng bô Z hoă Zc bgt đkng bô Z sau m{i transaction
+ TL đô Zng loại b• dữ liê Zu không cần thiết
+Replication: TimesTen cung cgp khả năng replication thời gian thLc giữa cGc mGy chủ
2 H2:
Trang 9- Là mô Zt IMDB mn ngukn mở được viết bằng java.
- No h{ trợ kết nối qua JDBC API v]i hai kiểu kết nối nhúng và client/server
- Là mô Zt CSDL rgt nhanh
- H{ trợ SQL chu\n, JDBC API
- Cơ chế đăng nhâ Zp bằng tên người d~ng và mâ Zt kh\u
- H{ trợ cGc tenh năng của mô Zt CSDL thông thường
III ThE nghiê 4 m cơ sA dB liê 4 u trên bô 4 nhC:
1 T)ng qu!t b#i to!n +ng dụng:
- Khi hệ thống co những đặc điểm dư]i đây, co thể xem xst s_ dụng IMDB:
+ Đang s_ dụng CSDL dLa trên N đma: Oracle, IBM DB2, MySQL,…
+ Co cGc chOc năng (co truy cập CSDL) v]i tần xugt s_ dụng nhiều, yêu cầu thời gian phản hki (truy vgn, thay đNi dữ liệu) nh•
+ Số lượng dữ liệu l]n: làm cho việc thao tGc (truy vgn, cập nhật) dữ liệu không cfn đGp Ong yêu cầu về thời gian phản hki, yêu cầu hiệu năng
+ Co cGc chOc năng co khả năng gây cao tải CSDL hiện tại
+ Việc tốc độ chậm không phải do nguyên nhân nào khGc (ve dụ mn ngukn chưa tối ưu) mà do nguyên nhân CSDL
+ Co đủ tài nguyên (bộ nh] chenh, CPU) để s_ dụng IMDB (tương Ong twng hệ thống)
- CGc lmnh vLc và phần mềm co thể Gp dụng IMDB để tăng hiệu năng và th•a mnn yêu cầu hệ thống:
+ Viễn thông:
Đăng nhập, xGc thLc
Hệ thống tenh cư]c
Hệ thống Chăm soc khGch hàng
+ Tài chenh ngân hàng:
Core banking
Fraud management
Stock exchanges
Trang 10+ CGc Ong dụng khGc:
Chăm soc sOc kh•e: quản lý thông tin bệnh nhân của bệnh viện
Book vs mGy bay
2 Mô hình !p dụng:
a Mô hình hệ thống phần mềm thông thường:
- CGc hệ thống phần mềm thông thường s_ dụng CSDL truyền thống dLa
trên N đma cOng, ve dụ Oracle hay IBM DB2 Dữ liệu, bảng được lưu trữ trên CSDL này ƒng dụng thLc hiện cGc thao tGc truy vgn, thay đNi dữ liệu trên CSDL thông qua kết nối ODBC, JDBC hoặc hibernate
Hình 4.1: Mô hình hệ thống phần mềm thông thường.
b Mô hình hệ thống sau khi áp dụng IMDB:
- S_ dụng IMDB như một CSDL độc lập:
+ IMDB mang đầy đủ cGc chOc năng của một CSDL quan hệ, hệ thống phần mềm co thể s_ dụng IMDB như một CSDL riêng, tương tL như s_ dụng CSDL truyền thống dLa trên N đma cOng
Hình 4.2: Mô hình hệ thống phần mềm sử dụng IMBD.
+ Dữ liệu, bảng biểu được lưu trữ trên IMDB ƒng dụng thLc hiện cGc thao
tGc truy vgn, thay đNi dữ liệu trên CSDL thông qua kết nối ODBC, JDBC hoặc hibernate
- S_ dụng IMDB Cache:
Trang 11+ S_ dụng cả CSDL truyền thống kết hợp v]i IMDB Cache Khi gy, những
dữ liệu hay thay đNi và được truy vgn nhiều được đưa lên IMDB cache, những
dữ liệu cfn lại vin trên CSDL hiện tại
Hình 4.3: Kết hợp CSDL truyền thống và IMDB Cache.
3 ThE nghiệm v# kt qu=:
a Lựa chọn sản phẩm IMDB đ thử nghiệm:
- Qua những kiến thOc và đGnh giG về cGc sản ph\m IMDB, nhom đn chọn
Oracle TimesTen vì những lý do sau đây : + Oracle là nhà cung cgp giải phGp CSDL hàng đầu thế gi]i + Do c~ng 1 nhà cung cgp nên giải phGp Oracle TimesTen co thể tech hợp rgt
dễ dàng, tương thech tốt v]i cGc CSDL Oralce hiện tại
+ Lượng tri thOc h{ trỡ về Oracle TimesTen khG nhiều trên internet clng như cGc diễn đàn, v]i cộng đkng s_ dụng l]n
+ Co thể tải và d~ng th_ Oracle TimesTen một cGch dễ dàng và hợp phGp
b Lựa chọn hệ thống phần mềm đ thử nghiệm:
Hệ th<ng chăm sóc kh!ch h#ng :
+ Tra cOu thông tin và giải đGp khGch 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 đGp khGch hàng phải nhanh, giảm thời gian khGch hàng chờ đợi Do vậy hệ thống cần đảm bảo tenh thuận tiện, truy vgn và trả về thông tin nhanh, cGc thông tin đầy đủ cho việc tra cOu để trả lời khGch hàng
- Hiện trạng v# vấn đề:
+ Số lượng truy cập hàng ngày vào hệ thống lên đến hàng triệu lượt, v]i chOc năng hiển thị thông tin khGch hàng và lịch s_ khiếu nại của khGch hàng là nhiều nhgt
Trang 12+ Nghiệp vụ mong muốn hiển thị càng nhiều 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 chi đGp Ong hiển thị thông tin lịch s_ khiếu nại 7 ngày gần nhgt
+ Nhu cầu cần phải tăng lượng dữ liệu truy vgn và giảm thời gian truy vgn
c Kt quả thử nghiệm:
- Đề xugt giải phGp : Hệ thống chăm soc khGch hàng s_ dụng TimesTen để lưu trữ thông tin lịch s_ khiếu nại của khGch hàng.Hệ thống sẽ truy vgn dữ liệu này trên TimesTen Việc insert, update, delete thông tin vin thLc hiện trên Oracle DB thông thường
Hình 3.2 Mô hình phần mềm chăm sóc KH trước và sau khi áp dụng TimesTen