Перейти до вмісту

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

Див. також

[ред. | ред. код]

Джерела

[ред. | ред. код]