Как вы делитесь предварительно рассчитанными данными между вызовами веб-службы Rails? - PullRequest
0 голосов
/ 19 мая 2010

У меня есть приложение Rails, которое позволяет пользователям создавать структуру сети, а затем задавать вопросы о том, как перемещаться по ней.

При добавлении узлов и соединений они просто сохраняются в базе данных. В момент, когда вы делаете запрос сети, я вычисляю кратчайший путь от любого узла к любому другому узлу.

Построение этого в памяти занимает некоторое время (что-то, что мне нужно исправить), но как только это произойдет, вы можете мгновенно получить ответ на любой из этих вопросов пути.

Вопрос состоит в том ... Как я делю эту сеть между вызовами на веб-сайт, чтобы каждый запрос не восстанавливал сеть путей каждый раз?

Примечание: я размещаю это на сервере apache, используя пассажира (mod ruby)

Мысли

Ответы [ 2 ]

1 голос
/ 19 мая 2010

Не могли бы вы использовать memcached для этих данных? (см. ActiveSupport :: Cache :: Store для API кеша Rails).

1 голос
/ 19 мая 2010

Один из 37 сигналов - это иметь размер буфера mysql / Db в XGB и большое количество оперативной памяти / флэш-памяти, доступной на сервере, что будет кешировать все ваши выбранные значения.

У Райана Бейтса есть скриншот, где он объясняет эти концепции, включая разбиение базы данных. репликация master-slave довольно хорошо, что должно помочь вам в долгосрочной перспективе;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...