Write-Through Cache

Write-Through Cache — шаблон проєктування для оптимізації використання кешу.

Проблема[ред. | ред. код]

Аплікація застосовує кеш для оптимізації повторного доступу до даних. Однак дані час від часу оновлюються. Необхідно забезпечити спосіб підтримувати максимально актуальні дані в кеші.

Вирішення[ред. | ред. код]

Читаємо дані із кешу. При зміні даних оновлюємо кеш та відповідне сховище.

Переваги та недоліки[ред. | ред. код]

Переваги[ред. | ред. код]

  • забезпечує консистенцію даних при оптимізованому доступі
  • забезпечує збереження статичних даних

Недоліки[ред. | ред. код]

  • система не може працювати при несправності кешу. Якщо кеш не працює потрібні обхідні шляхи
  • нормалізовані дані. Кеш-сервіс зберігає дані у тому ж вигляді що і в сховищі
  • кеш наповнюється даними, що не використовуються

Опис[ред. | ред. код]

Робота патерну write-through cache
  1. Читаємо дані з кешу.
  2. При зміні даних оновлюємо кеш.
  3. Кеш-сервіс оновлює сховище.
public Data GetData() { 	return _cache.GetData(); }  public void UpdateData(Data data) { 	return _cache.UpdateData(data); } 
class Cache { 	public Data GetData() 	{ 		return this.GetCachedData(); 	}  	public void UpdateData(Data data) 	{ 		_database.UpdateData(data); 	} } 

Див. також[ред. | ред. код]

Джерела[ред. | ред. код]