Ly thuyét: - In- memory database Co sé di liéu trén bộ nhớ là cơ sở dữ liệu quan hệ dựa trên bộ nhớ, bỏ qua các thao tác truy cập ô đĩa cứng bằng cách lưu trữ và xử lý dữ liệu ngay trên
Trang 1
TRUONG DAI HOC SU PHAM — DAI HOC DA NANG
KHOA TIN HOC
BAO CAO BAI TAP
MON: CO SO DU LIEU NANG CAO
DE TAI: TIM HIEU VE CO SO DU LIEU TREN BO NHO
IN — MEMORY DATABASE
Giảng viên hướng dẫn: Nguyễn Trần Quốc Vĩnh
Nhóm sinh viên thực hiện: 1 Hồ Anh Tài
2 Nguyễn Tâm
3 Nguyễn Phạm Anh Tài
5 Nguyễn Văn Linh
Đà Nẵng, ngày 16 tháng 07 năm 2020
Trang 2
2 Sự khác nhau giữa In — Memory Database và Disk — based DB 5
3 Kiến trúc của IMDB (Imn— Memory Database€): «co con He, 7
3.1 Kiến trúc Disk— Based DB: - «<2 HH Hung, 7
II Kỹ thuật Hekaf0H: - << 3 Họ HH HH 001001 0 04 11
Trang 3
DANH MUC HINH ANH
Hinh 1: So dé hoat dong ctia In-Memory DIafAdd4se e.ce-cecscceceeerereeereeeerecre 4
Hình 2: Kiến trúc Disk-based DẺ «ch gen 7
Hình 4: Lựa chọn kiểu cài đặt cce«<cckheerriiiEEriiitkriiirrriiirrriirriirrkerrri 12
Hình 5: Chấp nhận các điềm khoảH e-s-cscce<cecceEEtekeEEteEseeseketkressrretersrrrrrersree 13
Hình 6: Lựa Chọn (HH HHHC Củi ẨẶÍ co co cọ 3 ch 0 TS 9.01 n8 9.05 5.08 89 95.05.5585 13
Hình 7: Tiến trình tải VỀ package ssssescsssssssssssvsscssssscsssessesvsssesssssssssssssssssessescsnsscssescssens 14
Hình 8: Kiểm tra sau khi tải vÈ cce«ccscetreritttrkiitrtrriirrikriirrrrkirrrrrrirerrrrie 14
Hình 9: Tiến trình cài đặt ccc«-cccccreritkrrirttrtriirreriirirkerrirrkrrrrrrrrrie 15
Hình 10: Cài đặt (HH CÔHG SG HH HH HT Tà TH To Tà TT nh g4 09 04 15
Hình II: Tạo 1Ì databases HHỚI cĂ co ỌỌ HH TY T1 1 03 T9 0 89 55 5000 158 088 9958 888 16
Hình 12: Đặt tên ddtdbqdse là fest[ MT) P co co cọ TH K1 95.555 088 0885.058 55 17
Hình 13: Chọn properties của lafabase fest[MĨH ch ng và 17
Hình 14: Tạo 1 filegroups MEMORV OPTIMIZED DATẢ tổi -s-c<<<<<<<<+ 18
Hình 15: Đặt tên là MemoryQOptIix€dFIÍG(TOH co con ng ng 19
Hình 16: Tạo 1 file mới với kiểu file là FILESTREAM data và thêm vào
MemoryOptrnic€(lFTÏGTTOHD so họ KH HH nh H kh He ứ 20
Hinh 17: Tao 2 table disktable va HHCHHIOTVEQÌÍC So Go HH ng mg 20
Hình 18: Sử dụng transaction để insert vào disktable 500.000 rotwi -«ccse- 21
Hinh 19: Si dung transaction dé insert vio memorfable 3000 ÚŨ TOM: s<s<es 21
Trang 4Co so dir liéu trén bo nhoé - In Memory Database
I Tong quan vé In — Memory Database:
1 Ly thuyét:
- In- memory database (Co sé di liéu trén bộ nhớ) là cơ sở dữ liệu quan hệ dựa
trên bộ nhớ, bỏ qua các thao tác truy cập ô đĩa cứng bằng cách lưu trữ và xử lý
dữ liệu ngay trên bộ nhớ chính Nó còn có các tên khác như Main memory
database (cơ sở đữ liệu bộ nhớ chính) hoặc real-time database (co so đữ liệu thời
WIHHP Data (WN Data OOOC TT Prey
Partition 1 Partition 2 Partition 3
Hình 1: Sơ đồ hoạt động của In-Memory Database
-_ IMDB hoạt động bằng cách giữ tất cả dữ liệu trong RAM IMDB vé co ban thay
thể thành phần truy cập đĩa của cơ sở đữ liệu trên ô đĩa cứng bằng truy cập
RAM Trong một số IMDB, một số thành phân dua trén 6 dia cứng vẫn còn
nguyên, nhưng RAM là phương tiện lưu trữ chính Vì RAM rất dé bị mắt dữ liệu (ví dụ: dữ liệu bị mat khi may tinh mat nguồn), một số IMDB cũng lưu trữ dir liệu trên đĩa như một biện pháp dự phòng đề giảm thiêu rủi ro mắt đữ liệu
Trang 5- Hau hết các IMDB cũng bảo vệ chống mắt đữ liệu trong một trung tâm dữ liệu
bằng cách giữ các bán sao (chép bản sao) của tất cả các bản ghi dữ liệu trong
nhiều máy tính trong một cụm Các bản sao đữ liệu này đảm bảo rằng mọi bản
ghi đữ liệu sẽ không bị mất do lỗi của bất kỳ máy tính nao
-_ Ví dụ: một trang mạng xã hội có lưu lượng truy cập cao, cần lưu trữ nội dung
như: Thông tin người dùng cho hàng trăm ngàn người dùng tại bất kỳ thời điểm nào Thời gian phản hồi ở quy mô đó sẽ quá chậm đối với nhiều cơ sở dữ liệu
dựa trên disk-based DB, do đó IMDB được sử dụng dé theo kip va dam bao trai
nghiệm của người dùng một cách tốt nhất
2 Sự khác nhau giữa In — Memory Database và Disk — based DB
Lưu trữ dữ | -Dữ liệu được lưu trữ trên 6 | - Dữ liệu được lưu trữ trên bộ nhớ
- Dữ liệu có thể được lưu trữ vào | - Dữ liệu có thể được ghi xuống 6
bộ nhớ đệm để truy cập nhanh cứng đề sao lưu và phục hôi
hơn
Tôiưuhóa | - Thuật toán tôi ưu hóa truy vân | - IMDB biet chắc đữ liệu lưu trữ
truy van thực hiện với di liéu dat trén 6 trên bộ nhớ, nên thuật toán tối
đĩa Do đó, tại thời điểm tối ưu | ưu truy vấn đơn giản hơn và
truy van, dù dữ liệu được đặt chính xác hơn
một phan hay toàn bộ trong bộ nhớ, thời gian thực hiện gần như không khác nhau
Quản lý bộ nhớ| - Buffer pool phải quản lý đữ | -IMDB không sử dụng bufer
đệm (bufer | liệu được lưu trữ trong bộ nhớ | pool, không phải sao chép dữ
pool) Khi có yêu câu truy van đữ liệu, | liệu, Do đó, thuật toán đơn giản
CSDL sẽ tìm kiêm trong buffer hơn, thời gian đáp ứng truy vấn pool trước Nêu không có, sẽ nhanh hơn
tìm trong các file ở Ô cứng "
- Tham chi, néu dir ligu duoc tim
thay trong buffer, nó cũng phải
sao chép trước khi trả lại ket
qua, vi con phải phục vụ các xử
lý tiếp theo
Câu trúc chỉ | - Các nút lá chỉ mục được lưu trữ | - Nonclustered Index: thường áp
mục (mdex) theo một thứ tự tuỳ ý tức là vị dụng cho bảng chứa một lượng
Trang 6
trí trên ô đĩa không tương ứng
VỚI VỊ trí logic khi đánh chỉ mục Cơ sở đữ liệu cần một cầu
Index sẽ chứa một giá trị khóa
và một bộ định vị hàng Dữ liệu
được lưu trữ theo cách sắp xếp trên khóa và mỗi nút lá chứa một bản ghi
- Hash Index: Sử dụng kỹ thuật hashmg, được xây dựng trên một hash table để lưu trữ và tìm
kiếm đữ liệu Hash table là một
câu trúc dữ liệu mà có thé cho phép thực hiện việc map các cặp
keys, values Hash Table sử
dung Hash function dé tinh toan m6t index vao m6t mang cac
buckets (gồm index va value),
từ đó có thê tìm thấy các giá trị
6/22
Trang 73 Kién trac cia IMDB (In — Memory Database):
3.1 Kién trac Disk — Based DB:
| ODBC | JDBC
| Compiler | Optimizer | Executor Concurency Logging
Mer Mer
Recovery Mer
[ Relational Engine | ị Table Mer | Index Mgr |
| Txn Table k ->| Lock table |
Hinh 2: Kién tric Disk-based DB
- SQL Engine: bién dịch và thực thị các truy vấn, gồm:
® Compiler: xây dựng cấu trúc đữ liệu từ câu SQL và kiểm tra cú pháp, ngữ nghĩa
® Optimizer: chuyển câu SQL gốc thành các nhóm operation sao cho
thực thi hiệu qua nhất
® Exccutor: thực thi câu SQL sau khi tối ưu, liên kết với Relational engine dé lay va luu trữ kết quả
- Transaction Engine:
Trang 8© Concurency manager: quan ly truy cập đồng thời tới dữ liệu
¢ Logging manager: dam bảo tính toàn vẹn và bền vững của transaction Undo log dé rollback CSDL vé trang thai gan nhat Redo log dam bảo lưu trữ tất cả những transaction đã commit, phục vụ
phục hồi khi cần thiết
¢ Recovery manager: phục hồi CSDL tir disk image va redo log file
- Relational Engine: cac d6i tong quan hé nhu bang, chi muc, va rang buộc dữ liệu được quản lý bởi thành phân này
-_ Storage Engine: lưu trữ và lấy các bản ghi đữ liệu Nó cũng cung cấp
cơ chế lưu trữ thông tin metadata và thông tin điều khiến
3.2 Kiến trúc IMDB:
me
SQL Engine Transaction Engine
| Optimizer | Executor | Concurency
Logging Mer
Hinh 3: Kién tric In-Memory Database
Vé tong thé, IMDB ciing co kién tric tuong ty disk-based DB, nhu
Trang 9gom cac thanh phan: SQL engine, transaction engine, relational engine, va storage engine, nhung cac thanh phần con bên trong mỗi thành phần này lại hoạt động khác hăn
SQL Engine: bién dich, tôi ưu và thực thi các truy van, IMDB sir dung tối ưu hóa theo rule- based
Relational Engine: gồm các đối tượng quan hệ như bảng và quản lý chỉ
mục Sử dụng cầu trúc chỉ mục Nonclustered Index, Hash Index
Transaction Engine: bao gồm quản lý truy cập đồng thời, bảo đảm tính
toàn vẹn và bền vững của transaction, phuc hồi cơ sở dữ liệu tir Redo
logs
Storage Engine: bao gồm quản lý cơ sở đữ liệu và cấp phát bộ nhớ
4 Ưu điểm của IMDB:
-_ Thời gian đáp ứng nhanh:
® Dữ liệu được đặt trong bộ nhớ, với các thuật toán (query optimizer, tìm kiếm ) được thiết kế đặc thù cho dữ liệu trong bộ nhớ, loại bỏ các thành phần không cần thiết (buffer pool, I/O) cua disk-based DB lam cho
IMDB tang tốc độ đáng kẻ, thậm chí đạt đến mức real-time
-_ Đáp ứng lượng truy vấn cao:
e_ IMDB lưu đữ liệu trong bộ nhớ, việc tìm kiếm chí là tìm kiếm địa chí dữ
liệu được lưu trong bộ nhớ Vì vậy, IMDB đáp ứng được số lượng truy vấn rất lớn
- Bền vững và có thê phục hồi (đảm bảo tính ACID):
¢ IMDB van dam bảo được tính bền vững qua các thuộc tính của một hệ
quan tri CSDL
¢ Riéng Durability: Tinh bén ving cua dit ligu Sử dụng bộ nhớ sẽ làm mất
hết đữ liệu khi tắt máy, nên một số IMDB cung cấp thêm tính năng ghi
định kỳ dữ liệu trong bộ nhớ ra ô đĩa cứng Sau có thê khôi phục lại DB
bị sập từ những fñle này Tính năng này thường được cung cấp qua việc lưu trữ đữ liệu vào các file checkpomt và transaction log
- Tuân theo các chuẩn thế giới cho CSDL:
Đa phần các sản pham IMDB đều hỗ trợ chuẩn kết nối từ ứng dụng bằng SQL chuan
H6 tro PL/SQL
Hỗ trợ các kiều kết nối chuẩn qua ODBC, JDBC
Tương thích với nhiều nền tảng hệ điều hành: Windows, Unix/Linux,
Trang 10Solaris, ATX
-_ Có tương đối đây đủ các tính năng như một CSDL quan hệ thông thường:
©_ Hỗ trợ truy cập đồng thời
® Tối ưu hóa truy vấn
¢ Tinh san sang cao: IMDB dam bảo tính sẵn sàng cao của dữ liệu bằng việc cung cấp cơ chế Replication với các tùy chọn khác nhau (active/standby, active/active) dé dam bảo đữ liệu luôn sẵn sàng khi xảy
Ta SỰ CÔ
- Một số tính năng nâng cao chuyên biệt:
© Cache: có những tình huống sử dụng IMDB như một CSDL trung gian
giữa CSDL truyền thống và ứng dụng, trên IMDB chỉ lưu trữ đữ liệu hay
được truy cập và cần hiệu năng cao Do đó, các sản phâm IMDB thường cung cấp thêm cơ chế cache, giúp đồng bộ dữ liệu hai chiéu gitta IMDB
và CSDL truyền thống
¢ Tự động loại bỏ đữ liệu không cần thiết (đata aging): đề tiết kiệm dung
lượng bộ nhớ chính, những đữ liệu không cân thiết có thê bị loại bỏ Các
IMDB thường hỗ trợ hai cơ chế Data aging: loai bỏ đữ liệu theo thời gian, hoặc theo thuật toán LRỤU
5 Nhược điểm của IMDB:
-_ Dữ liệu được lưu trên bộ nhớ nên dung lượng bộ nhớ phải lớn hơn độ lớn
toàn bộ đữ liệu, cộng thêm lượng RAM cho các tiễn trình kết nối tới
IMDB Hiện nay giá của bộ nhớ trong van dat hơn ô đĩa cứng
-_ Khuyến cáo sử dụng của tất cả công nghệ IMDB là ứng dụng sử đụng kiều
kết nối trực tiếp/nhúng tới IMDB để đạt hiệu năng tối đa Nghĩa là, ứng dung va IMDB phai triển khai trên cùng một máy vật lý
-_ Dữ liệu được lưu trữ chỉ là tạm thời, nếu hệ thống máy tính gặp sự cố tất cả dữ
liệu được lưu trữ tạm thời sẽ bị mắt
6 Kết luận:
-_ Dựa trên phần L2 và I.3., ta có thể thấy cơ sở đữ liệu trên bộ nhớ - IMDB tối ưu
và hoạt động nhanh hơn cơ sở đữ liệu trên ô cứng — Disk Based DB
- Khi ứng dụng gửi một câu truy vấn dữ liệu tới cơ sở đữ liệu trên ô cứng, SQL
Engine cua OracleDB biên dịch, tối ưu hóa, sau đó thực thi câu lệnh Nó sẽ tìm kiếm đữ liệu mong muốn trong buffer pool trước (trên bộ nhớ chính), nêu không thấy sẽ phải tìm kiếm trong ô cứng từ các data file Sau đó, nó sao chép đữ liệu phù hợp sang một buffer riêng, trước khi trả lại cho ứng dung
Trang 11- V6i IMDB, no ciing co mét bé téi uu hoa truy van dé toi uu hoa cau 1énh
trước khi thyc thi Tuy nhién, khac voi disk-based DB, IMDB bo qua Buffer pool, no biết chắc chắn dữ liệu nằm trên bộ nhớ chính, nên nó chỉ
tìm kiếm trên bộ nhớ với những thuật toán đã được tối ưu riêng cho bộ nhớ
Sau đó, nó trả lại kết quả cho ứng dụng
-_ Với kiến trúc như Vậy, cùng với tốc độ truy cập bộ nhớ nhanh hơn nhiều so với Ô
cứng, và các thuật toán tối ưu riêng cho bộ nhớ, IMDB cải thiện dang kẻ tốc độ truy vấn dữ liệu
H Kỹ thuật Hekaton:
1 Tổng quan về kỹ thuật Hekaton:
-_ Kỹ thuật Hekaton đã được tích hợp vào SQL Server 2014 dưới dạng OLTP trong
bộ nhớ
- In-Memory Online Transaction Processing (OLTP), con được gọi là Hekaton hay
In-Memory Optimization, la phién bản mới nhất của công nghệ xử lý dữ liệu trên
bộ nhớ của Microsoft nhằm tối ưu hóa tốc độ truy xuất, được tích hop trong SQL
Server’s Database Engine va duoc sir dung hoan toan giéng nhu cac thanh phan của Database truyền thông
Hekaton gồm ba thành phần chính:
® Storage engine: quản lý dữ liệu và chỉ mục Nó cung cấp các hoạt động giao dịch trên các bảng, chỉ mục, lưu trữ, checkpomting, recovery and high- availability
® Compiler: biên dịch các T-SQL procedure (chita cac cau truy van, metadata)
thanh dang ma may “native code” được thiết kế đề thực thi đối với các bảng và chỉ mục được quản lý bởi công cụ lưu trữ Hekaton
¢ Runtime: cung cap kha nang tích hợp với tài nguyên SQLServer, và hoạt động
như một thư viện bổ sung
- Kién trúc của nó bao gồm:
¢ Memory - Optimized Tables: cac bang tôi ưu hóa băng bộ nhớ
¢ Natively - Compiled Stored Procedures: Cac thu tuc bién dich ty nhién
e Hash index va range index
2 Cai dat:
2.1, Cai dat SQL Server :
Tiên hành cài đặt (ở đây nhóm em cài bản 2019 Express Edition)