In-memory database

Есть корпоративная CMS. И усё было хорошо до тех пор, пока количество юзеров не выросло до 100000, и всё стало безбожно тормозить. Профилирование показала, что Postgres не справляется с нагрузками. Два пути решения - memcached и репликация будут применяться для решения этой проблемы.
Есть интересный вариант репликации, который пришёл в голову. Хочу, чтобы уважаемые сообщники прокомментировали его. Дело в том, что база невелика (10 гигабайт), а Postgres позволяет создать tablespace в оперативной памяти (напрямую или через RAM Disk - не суть важно). Так вот, идея такая: пусть БД, с которой работает аппликуха (master DB), живёт в оперативной памяти. И пусть настроена асинхронная репликация её в другую БД (slave), которая уже живёт на жёстком диске. Пусть при старте application сервера база поднимается из slave в master (ту бишь в оперативку).
Будет работать? Даст прирост в производительности? Я понимаю, что конструкция долбанутая, но база реально невелика и реально влезает в память сервака.
UPD: буферы большие, запросы периодически профилируем и вообще не полные дауны. Интересен именно вариант с базой в памяти и репликацией на нормальный диск. Очень хочу понять, поможет ли это. Оперативка нынче дешёвая, хоть 100500 гигов ставь.
|
</> |