(Phần 1) Cache là gì? - Phân loại Cache - Cache được sử dụng trong những trường hợp nào?

Phần 1

1.Cache là gì?

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:

  1. Chạy ra tiệm mua cơm về ăn (tương đương với gọi request tới remote service như database, web service, xa nên mất thời gian)
  2. Lăn vào bếp nấu cơm (tương đương với tính toán xử lý nhiều, tốn CPU)

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:

  1. Mua hoặc nấu 3 hộp cơm, bỏ vào tủ lạnh (tương đương với lưu data vào Cache)
  2. Khi cần, bạn chỉ việc mở tủ lạnh ra lấy cơm ăn (lấy data từ Cache)
  3. Lấy cơm từ tủ lạnh vừa gần lại không tốn CPU (Bạn chỉ cần đi từ phòng ra tủ lạnh, không cần nấu nướng chế biến gì)

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 (Cache Algorithms) là gì?

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:

  • LFU (Least Frequently Used): Ít được sử dụng thường xuyên 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.

  • LRU (Least Recently Used): Ít sử dụng gần đây nhất

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).

  • MRU (Most Recently Used):  Gần đây nhất được sử dụng

Ư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.

2.Các loại Cache hiện nay là gì?

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-around Cache
  • Write-through Cache
  • Write-back Cache

Cache là gì? Write-through cache giúp việc truy xuất dữ liệu nhanh chóng hơnWrite-through Cache giúp việc truy xuất dữ liệu nhanh chóng hơn

Write-around Cache là gì?

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. 

  • Ưu điểm: Giúp bộ nhớ đệm Cache không bị quá tải khi có quá nhiều bản ghi I/O (Input/Output) được thực hiện cùng lúc.
  • Nhược điểm: Dữ liệu sẽ không được lưu trữ, trừ khi nó được truy xuất từ bộ nhớ. Điều này khiến cho hoạt động truy cập lúc đầu sẽ tương đối chậm.
Write-through Cache là gì?

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.

  • Ưu điểm: Dữ liệu luôn được lưu trữ tạm thời nên việc xuất/đọc dữ liệu rất nhanh chóng, tiện lợi.
  • Nhược điểm: Thời gian lưu trữ khá dài. Lý do là vì các hoạt động ghi chỉ được coi là hoàn tất khi dữ liệu đã được ghi trên cả Cache và bộ nhớ chính (primary storage). Việc này vô tình chung gây trễ nải cho quá trình lưu trữ, ghi nhớ dữ liệu.
Write-back Cache là gì?

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.

  • Ưu điểm: Dữ liệu được lưu trữ trên Cache nên tốc độ truy cập, hiệu năng của web/ứng dụng được cải thiện.
  • Nhược điểm: Mức độ an toàn thông tin sẽ phụ thuộc rất lớn vào cơ chế bộ nhớ Cache được sử dụng. Dữ liệu có thể bị mất trước khi được lưu trữ vào bộ nhớ chính.

3.Khi nào sử dụng Cache?

Để 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 (Cache bộ nhớ)
  • Cache se C rver (Bộ nhớ Cache máy chủ)
  • Disk Cache (Bộ nhớ Cache trên đĩa)
  • Flash Cache (Thiết bị nhớ flash)

Cache là gì? Cache memory được cài đặt trực tiếp trên CPUCache memory được cài đặt trực tiếp trên CPU

Cache memory (Cache bộ nhớ) là gì?

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.

Cache server (Bộ nhớ Cache máy chủ) là gì?

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 (Bộ nhớ Cache trên đĩa) là gì?

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 (Thiết bị nhớ flash) là gì?

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 )