Cache hay bộ nhớ đệm là phần cứng hoặc phần mềm được tích hợp sẵn với tác dụng lưu trữ dữ liệu tạm thời trong môi trường máy tính. Caching là quá trình lưu trữ dữ liệu trong bộ nhớ đệm Cache
Cache là bộ nhớ đệm có chức năng lưu trữ dữ liệu tạm thời
Việc Caching là lưu trữ dữ liệu vào Cache dưới dạng mã nhị phân. Nó sẽ giúp người dùng rút ngắn thời gian truy cập, giảm độ trễ và thực hiện các thao tác trên ứng dụng/website/hệ điều hành thuận tiện, nhanh chóng hơn
Hầu hết các workload của ứng dụng đều sẽ phụ thuộc vào tốc độ đầu vào/đầu ra (input/output). Cache thường được dùng để cải thiện hiệu suất cho các ứng dụng, website có lượt truy cập cao.
Để cho dễ hiểu hơn bạn có thể tham khảo thêm ví dụ dưới đây:
Hãy tưởng tượng như thế này! Bạn đang nằm nhà và thèm ăn cơm (cơm ở đây là dữ liệu cần xử lý). Bạn có 2 lựa chọn:
Giả sử ngày nào bạn cũng ăn 3 hộp cơm, mỗi lần đi xa mua về hoặc nấu cơm sẽ rất mất thời gian. Lúc này, bạn mua một cái tủ lạnh (tủ lạnh đựng cơm, cũng giống như Cache chứa dữ liệu). Sau đó, bạn chỉ cần:
Trong trường hợp này, hộp cơm chính là dữ liệu, tủ lạnh chính là Cache. Hành động bỏ cơm vô tủ lạnh, lấy cơm ra chính là Caching. Nhằm tiết kiệm thời gian đi mua cơm, tiết kiệm công sức nấu cơm.
Thuật toán Cache đưa ra những hướng dẫn cụ thể về cách duy trì bộ nhớ đệm Cache. Dưới đây là các thuật toán Cache tiêu biểu nhất:
Đếm và theo dõi tần suất truy cập của người dùng đối với các mục. Mục nào có số lần truy cập thấp nhất sẽ được xóa trước.
Các mục dữ liệu trong Cache được sắp xếp thứ tự theo thời điểm truy cập. Khi đạt đến giới hạn lưu trữ của bộ nhớ Cache, các mục được truy cập cách đây lâu nhất (nằm ở top cuối) sẽ bị xóa, chỉ giữ lại các mục thuộc top đầu (được truy cập gần đây).
Ưu tiên xóa các mục được sử dụng gần đây nhất. Thuật toán Cache này rất hữu ích vì các mục cũ hơn thường có nhiều khả năng nhận được lượng truy cập lớn hơn.
Cache được chia thành 3 loại chính. Hãy cùng NAVY tìm hiểu chi tiết về khái niệm và những ưu nhược điểm của từng loại Cache dưới đây:
Write-through Cache giúp việc truy xuất dữ liệu nhanh chóng hơn
Write-around Cache có khả năng ghi lại các hoạt động trực tiếp vào bộ nhớ, hoàn toàn bỏ qua Cache.
Khi thực hiện kỹ thuật write-through Cache, dữ liệu sẽ được ghi đè lên cả bộ nhớ đệm Cache và bộ nhớ storage.
Write-back Cache (bộ nhớ đệm ghi lại) là kỹ thuật cho phép chuyển toàn bộ các hoạt động sang bộ nhớ Cache. Với write-back Cache, thao tác ghi sẽ được xem là hoàn chỉnh khi các dữ liệu được lưu trữ trên Cache. Sau đó, các dữ liệu này sẽ tiếp tục được sao chép từ Cache sang bộ nhớ chính.
Để hiểu rõ hơn những trường hợp nên sử dụng Cache. Trước hết hãy cùng tìm hiểu 4 khái niệm dưới đây:
Cache memory được cài đặt trực tiếp trên CPU
Cache memory thường được gắn trực tiếp trên CPU. Nó có khả năng lưu trữ lệnh/chức năng thường được yêu cầu bởi các chương trình đang chạy, giúp bộ vi xử lý máy tính truy cập dữ liệu nhanh hơn so với RAM thông thường. Nếu xét về khả năng truy xuất thì Cache memory có tốc độ rất nhanh (hơn hẳn disk Cache và cả RAM Cache) vì vị trí của nó gần với CPU nhất.
Thông thường, các máy chủ kết nối mạng chuyên dụng (dedicated network server) hoặc dịch vụ hoạt động như máy chủ (service acting as server) sẽ lưu trữ dữ liệu trang web và các nội dung internet một cách cục bộ. Hình thức lưu trữ này gọi là Cache server hay Cache proxy.
Disk Cache ghi nhớ các nội dung đã được đọc trong thời gian gần và những dữ liệu liền kề khác có khả năng sẽ được truy cập lại. Nhiều disk Cache lưu trữ dữ liệu theo tần suất đọc. Theo đó, những khối lưu trữ (storage block) truy cập thường xuyên (gọi là các khối nóng – hot block) sẽ tự động được ghi nhớ trên Cache. Disk Cache giúp cải thiện tốc độ đọc hoặc ghi dữ liệu lên đĩa cứng.
Flash Cache là thiết bị lưu trữ tạm thời dữ liệu trên chip bộ nhớ NAND (thường lưu trữ dưới dạng SSD). Nó có khả năng truy xuất dữ liệu với tốc độ cao hơn so với bộ nhớ Cache trên ổ đĩa truyền thống HDD.
(Còn tiếp phần 2 )