Anton
Just Programmer
Помогите с организацией системы кеширования
Всем добрый день!
Совсем проблема загрызла. :-(
Есть система. В ней HTTP серверов несколько и работают они через лоад балансер. Т.е. на какой именно
HTTP сервер попадет сл. запрос пользователя неизвестно. Соотвественно все что в плане файлов должно быть
доступно независимо от сервера на котором сейчас испольняется запрос должно лежать на сетевом диске. В нашем случае это файлы
сессий, исходники и т.п. У сетевой файловой системы есть большой недостаток, это низкая
производительности (по сравнению с локальным диском).
Теперь сама проблема. Для разгрузки БД часть результатов запросов кешируется с использованием
файловой системы. Т.к. сетевая файловая система такой нагрузки не выдерживает категорически то на
каждом HTTP сервере приходиться хранить свой набор записей кеша. Само по себе это не страшно ...
работает вполне нормально. Но дальнейший рост нагрузки на систему потребовал дальнейшей
оптимизации работы с БД. Один из методов требует того что бы можно было принудительно не дожидаясь
времени устаревания записи в кеше ресетить конкретные записи в нем.
Когда вся система живет на одном сервере это делается все просто замечательно ... но в нашем случае, когда есть свои независимые наборы записей
кеша на разных машинах совершенно непонятно как это делать.
Размещать на сетевом дискке кеш ... ситевой диск не тянет.
А если размещать как сейчас то фиг поймешь как ресетить записи ... :-(
Вот собственно и сам вопрос ... как бы реализовать такой функцинал кеша при данной аритектуре железяк?
Всем добрый день!
Совсем проблема загрызла. :-(
Есть система. В ней HTTP серверов несколько и работают они через лоад балансер. Т.е. на какой именно
HTTP сервер попадет сл. запрос пользователя неизвестно. Соотвественно все что в плане файлов должно быть
доступно независимо от сервера на котором сейчас испольняется запрос должно лежать на сетевом диске. В нашем случае это файлы
сессий, исходники и т.п. У сетевой файловой системы есть большой недостаток, это низкая
производительности (по сравнению с локальным диском).
Теперь сама проблема. Для разгрузки БД часть результатов запросов кешируется с использованием
файловой системы. Т.к. сетевая файловая система такой нагрузки не выдерживает категорически то на
каждом HTTP сервере приходиться хранить свой набор записей кеша. Само по себе это не страшно ...
работает вполне нормально. Но дальнейший рост нагрузки на систему потребовал дальнейшей
оптимизации работы с БД. Один из методов требует того что бы можно было принудительно не дожидаясь
времени устаревания записи в кеше ресетить конкретные записи в нем.
Когда вся система живет на одном сервере это делается все просто замечательно ... но в нашем случае, когда есть свои независимые наборы записей
кеша на разных машинах совершенно непонятно как это делать.
Размещать на сетевом дискке кеш ... ситевой диск не тянет.
А если размещать как сейчас то фиг поймешь как ресетить записи ... :-(
Вот собственно и сам вопрос ... как бы реализовать такой функцинал кеша при данной аритектуре железяк?