2. NỘI DUNG
• Tư duy caching là gì?
• Ứng dụng của caching
• Vấn đề về caching
3. CACHE LÀ GÌ?
• Bộ nhớ đệm
• Cơ chế lưu trữ và truy cập tốc độ cao
Tăng tốc xử lý
Tăng tốc hệ thống
Hệ thống đạt gần như “realtime”
4. TƯ DUY CACHING LÀ GÌ?
• Thay quá trình xử lý tốn thời gian bằng kết quả đã có
• Sử dụng bộ nhớ tốc độ cao hơn để tăng tốc hệ thống
5. ỨNG DỤNG 1: QUẢN LÝ TÀI NGUYÊN TĨNH
• Tải các tài nguyên mất thời gian
• Nội dung các tài nguyên ít thay đổi
Tại sao không lưu lại để lần sau dùng?
Caching tài nguyên vào vùng nhớ đệm của trình duyệt
6. ỨNG DỤNG 2: TÁI SỬ DỤNG KẾT QUẢ
• Một xử lý tốn thời gian: ∆𝒕
• Một request cần 𝑛 xử lý giống nhau
Cần thời gian: 𝐧∆𝒕
• Nếu lưu lại kết quả cho lần sau
Cần thời gian: ∆𝒕
7. ỨNG DỤNG 3: LIVE DATABASE
• Tốc độ bộ truy cập bộ nhớ:
L1 > L2 > L3 > RAM > HDD
• Database thường được lưu trên HDD
Chậm
Tại sao không lưu trên RAM hay trên Cache L3, L2, L1 ???
Live Database
8. VẤN ĐỀ 1: TỈ LỆ CACHE HIT
𝒏 , 𝒎 : Số lần tìm thấy và không tìm thấy trong cache
𝑻 𝟏, 𝑻 𝟐: Thời gian thực hiện khi thấy và không thấy cache
Thời gian trung bình:
𝑻 𝒕𝒃 =
𝒏𝑻 𝟏 + 𝒎𝑻 𝟐
𝒏 + 𝒎
=
𝒏
𝒏 + 𝒎
𝑻 𝟏 + 𝟏 −
𝒏
𝒏 + 𝒎
𝑻 𝟐
Do 𝑻 𝟏 ≪ 𝑻 𝟐 nên để 𝑻 𝒕𝒃 ≪ 𝑻 𝟐 thì
𝜶 =
𝒏
𝒏 + 𝒎
≈ 𝟏
Làm thế nào để dự đoán tỉ lệ cache hit?
9. VẤN ĐỀ 2: ĐỒNG BỘ DỮ LIỆU
• Làm thế nào để biết dữ liệu thay đổi?
• Cập nhật cache khi nào?
Ngay sau khi dữ liệu thay đổi
Khi cần đến dữ liệu
10. VẤN ĐỀ 3: DUNG LƯỢNG BỘ NHỚ
• Bộ nhớ HDD 1TG, RAM 32GB, L3 16MB, L2 2M, L1 512KB
• Truy cập là duyệt địa chỉ nhớ
Dung lượng càng lớn thì chàng chậm
• Bộ nhớ có hạn, cái gì cũng muốn lưu, vậy phải làm sao?
Xử lý cục bộ (lazy load, …)
Chọn lọc và giải phóng dữ liệu
11. TỔNG KẾT
• Bạn đã hiểu tư duy caching là như thế nào?
• Ứng dụng khác của caching
• Vấn đề quan trọng nhất bây giờ với caching