Hết hạn sử dụng bộ nhớ cache ngẫu nhiên


13

Tôi đã thử nghiệm thời gian hết hạn bộ nhớ cache ngẫu nhiên để tránh các tình huống trong đó một yêu cầu riêng lẻ buộc nhiều thứ phải cập nhật cùng một lúc. Ví dụ: một trang web có thể bao gồm năm thành phần khác nhau. Nếu mỗi lần được đặt hết thời gian trong 30 phút, người dùng sẽ có thời gian chờ đợi lâu sau mỗi 30 phút. Vì vậy, thay vào đó, bạn đặt tất cả chúng thành một khoảng thời gian ngẫu nhiên trong khoảng từ 15 đến 45 phút để có khả năng nhiều nhất chỉ một thành phần sẽ tải lại cho bất kỳ tải trang nào.

Tôi đang cố gắng tìm bất kỳ nghiên cứu hoặc hướng dẫn nào về chủ đề này, ví dụ như các tham số phương sai tối ưu. Tôi nhớ là đã thấy một bài viết về cách Google (?) Sử dụng kỹ thuật này, nhưng không thể định vị được nó và dường như không có nhiều bài viết về chủ đề này.


Bạn có thể đặt lại câu hỏi này như một câu hỏi không? Không rõ những gì bạn đang mong đợi cho một câu trả lời.
Derek

Được rồi, đã xong.
mahemoff

Câu trả lời:


4

Một số tài liệu:


3
Cảm ơn các liên kết này, nhưng không ai trong số họ đề cập đến sự ngẫu nhiên.
mahemoff

2
Tôi biết câu hỏi này bao nhiêu tuổi, nhưng Matthew Neale từ EstarOnline Limited đã làm điều này (PDF): estaronline.com/images/assetimages/ Lỗi
Nick Bedford

@NickBedford Đây là câu trả lời tôi đang tìm kiếm. Nhận xét của bạn nên là câu trả lời được chấp nhận.
WhiteHotLoveTiger

0

Quay trở lại để trả lời câu hỏi của riêng tôi, vấn đề chính ở đây là làm thế nào để tránh mọi thứ luôn hết hạn cùng một lúc. Nếu điều đó được cho phép xảy ra, hệ thống sẽ hoạt động chậm lại và bị tắc nghẽn trong khi nó lại điền vào bộ đệm.

Hầu hết thời gian, đây thực sự không phải là một vấn đề trong thực tế. Theo thời gian, tất cả các thành phần có xu hướng trôi theo thời gian chúng sắp hết hạn. Nếu có nhiều thành phần được xây dựng lại cùng một lúc, đó là mùi mã bởi vì chúng có thể được lưu trữ cùng nhau dưới dạng một thành phần (ví dụ: nếu bạn có một tiêu đề, phần thân và chân trang duy nhất được lưu riêng biệt, có lẽ bạn có thể chỉ cần lưu trữ chính trang đó).

Chắc chắn sẽ có lúc nhiều thứ cần được lưu trữ cùng một lúc, ví dụ như sau khi khởi động một hệ thống, nếu chúng ta đã xóa toàn bộ bộ đệm hoặc xoay các phím bộ đệm. Trong trường hợp này, nó thường không tệ lắm vì các thành phần nhanh chóng lấp đầy và hết hạn sau đó sẽ bị tách ra.

Trong phạm vi đây là một vấn đề, có một vài giải pháp:

  • Chỉ cần chọn thời lượng hết hạn bộ nhớ cache ngẫu nhiên trong phạm vi thay vì thời lượng cố định, ví dụ: số nguyên ngẫu nhiên trong khoảng từ 15 đến 90 phút thay vì 60 phút.
  • Cho phép phản hồi cũ. Chỉ vì một mục bộ đệm đã hết hạn, không có nghĩa là bạn không thể sử dụng nó nếu nó vẫn còn đó. Tùy thuộc vào nhu cầu kinh doanh, có thể chấp nhận sử dụng nó nếu có vấn đề về hiệu suất lấy phiên bản gốc sau khi hết hạn. Trong HTTP, đây là mục đích của "phải xác nhận lại" (nếu đúng, điều đó có nghĩa là không sử dụng phiên bản được lưu trong bộ nhớ cache sau khi hết hạn).
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.