Truy cập dữ liệu và các lớp lưu trữ / lưu trữ là những nơi tự nhiên không thể cưỡng lại để lưu vào bộ đệm. Họ đang thực hiện I / O, khiến chúng trở nên tiện dụng, dễ dàng để chèn bộ nhớ đệm. Tôi dám khẳng định rằng hầu hết mọi lớp DAL hoặc kiên trì sẽ, khi nó đáo hạn, sẽ được cung cấp một chức năng lưu trữ - nếu nó không được thiết kế theo cách đó ngay từ đầu.
Vấn đề là ý định . Các lớp DAL và kiên trì xử lý các cấu trúc mức tương đối thấp - ví dụ: các bản ghi, bảng, hàng và khối. Họ không nhìn thấy các đối tượng "doanh nghiệp" hoặc lớp ứng dụng hoặc có nhiều cái nhìn sâu sắc về cách chúng được sử dụng ở các cấp cao hơn. Khi họ thấy một số hàng hoặc hàng tá khối được đọc hoặc viết, không rõ ràng họ đại diện. "Tài khoản Jones chúng tôi hiện đang phân tích" trông không khác nhiều so với "một số dữ liệu tham chiếu thuế suất cơ bản mà ứng dụng cần chỉ một lần và nó sẽ không được nhắc lại nữa." Ở lớp này, dữ liệu là dữ liệu.
Bộ nhớ đệm có nguy cơ lớp DAL / tồn tại có dữ liệu tham chiếu thuế "lạnh" ở đó, chiếm 12,2 MB bộ nhớ cache và thay thế một số thông tin tài khoản, trên thực tế, sẽ được sử dụng mạnh mẽ chỉ trong một phút. Ngay cả những người quản lý bộ đệm tốt nhất cũng đang xử lý kiến thức ít ỏi về các cấu trúc và kết nối dữ liệu cấp cao hơn và ít hiểu biết về những hoạt động sắp ra mắt, vì vậy họ quay trở lại với các thuật toán dự đoán .
Ngược lại, bộ nhớ đệm lớp ứng dụng hoặc lớp doanh nghiệp gần như không gọn gàng. Nó yêu cầu chèn các hoạt động quản lý bộ đệm hoặc gợi ý ở giữa logic nghiệp vụ khác, điều này làm cho mã doanh nghiệp phức tạp hơn. Nhưng sự đánh đổi là: Có thêm kiến thức về cách cấu trúc dữ liệu cấp vĩ mô và những hoạt động nào sắp diễn ra, nó có cơ hội tốt hơn nhiều để ước tính hiệu quả bộ nhớ đệm tối ưu ("thấu thị" hoặc "Bélády Min").
Việc chèn trách nhiệm quản lý bộ đệm vào mã doanh nghiệp / ứng dụng có hợp lý hay không là một cuộc gọi phán xét và sẽ thay đổi tùy theo ứng dụng. Trong nhiều trường hợp, trong khi người ta biết rằng các lớp DAL / kiên trì sẽ không làm cho nó "hoàn toàn đúng", sự đánh đổi là họ có thể làm một công việc khá tốt, rằng họ làm như vậy theo cách kiến trúc "sạch sẽ" và có thể kiểm chứng chặt chẽ hơn nhiều và việc bắt mức độ thấp đó tránh làm tăng sự phức tạp của mã doanh nghiệp / ứng dụng.
Độ phức tạp thấp hơn khuyến khích tính chính xác và độ tin cậy cao hơn và thời gian tiếp thị nhanh hơn. Điều đó thường được coi là một sự đánh đổi lớn - bộ nhớ đệm kém hoàn hảo, nhưng chất lượng tốt hơn, mã doanh nghiệp kịp thời hơn.