Мені хотілося б знати, що було б кращим підходом до визнання об'єктів кеша недійсним / оновленим.
Передумови
- Маючи віддалений сервер з запам’ятовуванням (служить кешем для декількох додатків)
- Усі сервери розміщуються в лазурі (регіони афінності, однакові центри обробки даних)
- Розмір об'єкта кешу коливається від 200 байт до 50 кілобайт
Підхід 1 (зберігати в кеші якнайшвидше)
- Об'єкт A створюється -> зберігати в базі даних і зберігати в кеші
- Об'єкт Запрошений клієнтом -> перевірити кеш на наявність, інакше витягнути з бази даних і зберегти в кеші
- Об'єкт A оновлюється -> зберігати в базі даних, зберігати в кеші
Підхід 1 здається більш простим. Якщо щось створено, покладіть в кеш як можна швидше. Незалежно від когось це буде потрібно.
Підхід 2 (магазин лінивого кеша)
- Об'єкт A створюється -> зберігати в базі даних
- Об'єкт Запрошений клієнтом -> перевірити кеш на наявність, інакше витягнути з бази даних і зберегти в кеші
- Об'єкт A оновлюється -> зберігати в базі даних, видалити ключ у кеші
Підхід 2, здається, усвідомлює більше пам'яті. У такому підході в кеш-пам'ять переходять лише запитувані елементи.
Питання 1: Зважаючи на ефективність, який би був кращий підхід? Пам'ять, ні процесор поки не рахуються.
Питання 2: Чи є мої думки своєрідною передчасною оптимізацією?
Питання 3: Будь-які інші думки? Інші підходи?