Update-Back

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

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

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

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

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

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

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

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

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

  • нормалізовані дані. Аплікації потрібно провести додаткові операції над даними, щоб привести їх до потрібного формату

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

Робота патерну update-back
  1. Читаємо дані з кешу.
  2. Кеш-провайдер забезпечує дані та їх валідність.
  3. Зберігаємо дані у сховище.
  4. При зміні даних асинхронно оновлюємо кеш.
public Data GetData()
{
	return _cache.GetOrAdd(_database.GetData);
}

public void UpdateData(Data data)
{
	return _database.UpdateData(data);
}
class Database
{
	public void UpdateData(Data data)
	{
		return _queue.EnqueueUpdatedData(Data data);
	}
}
class Queue
{
	public void UpdateData(Data data)
	{
		_cache.UpdateData(data);
	}
}

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

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