Топологическая сортировка на Neo4j

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

Как мне подойти к этому? Должен ли я клонировать график и работать с временной копией, или есть своего рода обход/итератор?

Спасибо

PS: я использую neo4J через гем neography (REST API) на Ruby


person Dan    schedule 08.03.2012    source источник
comment
Насколько большой график? Я бы подумал о клонировании графика и выполнении над ним пакетных операций, но это зависит от вашей настройки и контекста...   -  person Peter Neubauer    schedule 08.03.2012


Ответы (1)


Дэн,

Вы можете начать транзакцию и завершить ее, как только у вас будут нужные данные, чтобы они не записывались в базу данных. См. http://maxdemarzi.com/2012/02/21/max-flow-with-gremlin-and-transactions/ для примера. Это не будет работать слишком хорошо, если вам нужно коснуться миллиона узлов, но для небольших подмножеств графа это не должно быть проблемой.

person Max De Marzi    schedule 09.03.2012
comment
спасибо Макс! Кроме того, неография — это большая жемчужина. Я делаю то, что вы предлагаете, и использую RGL для топологической сортировки в памяти. - person Dan; 12.03.2012