Я смотрю на приложение, где мне нужно построить модель друга в виде структуры графа. Мне нужно углубиться в несколько градусов, поэтому использование стандартного SQL в MySQL не будет работать из-за циклических ссылок. Я посмотрел на доступные алгоритмы графа, и они включают загрузку всего набора записей в объект Graph, а затем выполнение операций над этим. Я не могу позволить себе делать это для каждой операции.
Я хотел бы сохранить объект Graph как глобальный объект в памяти и просто делать вызовы и обновлять его. Однако, поскольку Rails масштабируется путем создания отдельных процессов, у меня возникнет почти немедленная проблема с синхронизацией, поскольку один процесс Rails будет масштабироваться только для нескольких одновременных пользователей.
Кто-нибудь знает способ сохранить объект в памяти в Rails и синхронизировать его между обоими запросами и между несколькими беспорядочными / какими-либо процессами?
На данный момент я смотрю на сервис Java для операций с графами, поскольку он масштабируется с использованием модели потока вместо модели процесса. Я могу масштабировать достаточно сильно, чтобы мне не пришлось какое-то время заниматься проблемой масштабирования.
Я хотел бы иметь решение для всех Rails, потому что его будет проще поддерживать и собирать.