Write-Back
![]() | Ця стаття не має інтервікі-посилань. |
Write back (також write behind) — шаблон проєктування для оптимізації використання кешу.
Аплікація застосовує кеш для оптимізації повторного доступу до даних. Однак дані часто оновлюються. Необхідно забезпечити спосіб підтримувати максимально актуальні дані в кеші.
Читаємо дані із кешу. При зміні даних оновлюємо кеш та асинхронно оновлюємо відповідне сховище.
- забезпечує консистенцію даних при оптимізованому доступі
- забезпечує збереження статичних даних
- надає оптимізований спосіб запису даних
- система не може працювати при несправності кешу. Якщо кеш не працює потрібні обхідні шляхи
- нормалізовані дані. Кеш-сервіс зберігає дані у тому ж вигляді що і в сховищі
- кеш наповнюється даними, що не використовуються
![](http://upload.wikimedia.org/wikipedia/uk/b/b9/%D0%94%D1%96%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%B0_%D1%80%D0%BE%D0%B1%D0%B8%D1%82%D0%B8_%D0%BF%D0%B0%D1%82%D0%B5%D1%80%D0%BD%D1%83_Write-Back.png)
- Читаємо дані з кешу.
- При зміні даних оновлюємо кеш.
- Кеш-сервіс асинхронно оновлює сховище.
public Data GetData()
{
return _cache.GetData();
}
public void UpdateData(Data data)
{
return _cache.UpdateDataAsync(data);
}
class Cache
{
public Data GetData()
{
return this.GetCachedData();
}
public void UpdateDataAsync(Data data)
{
_queue.UpdateData(data);
}
}
class Queue
{
public void UpdateData(Data data)
{
_database.UpdateData(data);
}
}
- Caching strategies and how to choose the right one [Архівовано 21 червня 2020 у Wayback Machine.]