Я новичок в сцене Graph Database, изучая Neo4j и изучая Cypher, мы пытаемся смоделировать базу данных графов, она довольно простая, мы получили пользователей, и у нас есть фильмы, пользователи могут VIEW, фильмы RATE, создавать плейлисты и плейлисты можно HAVE.
Вопрос касается проблемы с производительностью Super Node. И я приведу кое-что из очень хорошей книги, которую я сейчас читаю - Изучение Neo4j Риком Ван Брюгеном, так вот оно:
В наборе данных возникает очень интересная проблема, когда некоторые части графика все связаны с одним и тем же node. Этот node, также называемый плотным Node или супернов, становится реальной проблемой для обходов графика, потому что база данных графа система управления должна будет оценить все связанные отношения с что Node, чтобы определить, каким будет следующий шаг в обход графика.
Решение этой проблемы, предложенное в книге, состоит в том, чтобы иметь Meta Node со 100 подключением к ней, а 101-е соединение должно быть связано с новой Meta Node, которая связана с предыдущим Meta node.
Я видел сообщение в блоге из официального блога Neo4j, в котором говорится, что они исправит эту проблему в предстоящем будущем (сообщение в блоге с января 2013 года) - http://neo4j.com/blog/2013-whats-coming-next-in-neo4j/
Более точно они говорят:
Другой проект, который мы запланировали вокруг "больших данных", заключается в добавлении некоторых конкретных оптимизаций для обработки обходов через узлы с плотным соединением, имеющих очень большие (миллионы) отношений. (Эта проблема иногда упоминается как проблема "супернов".)
Каковы ваши мнения по этому вопросу? Должны ли мы пойти с шаблоном разлома Meta Node или пойти с базовыми отношениями, которые, по-видимому, используют каждый учебник? Любые другие предложения?