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);
	}
}

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

Джерела ред.