Я хотел бы представить изменение силы отношений между узлами в графике Neo4j.Представляя (и увеличивая) силу отношения в Neo4j
Для статического графика, это легко сделать, установив свойство «прочность» на отношениях:
A --knows--> B
|
strength
|
3
Однако для графа, который нуждается в обновлении, с течением времени, существует проблема, так как инкрементирования Значение свойства не может быть выполнено атомарно (через интерфейс REST), так как требуется чтение перед записью. Приращение (а не просто обновление) необходимо, если график обновляется в ответ на входящие потоковые данные.
Мне нужно будет либо гарантировать, что только один клиент REST читает и записывает сразу (внешнюю синхронизацию) или придерживается только встроенного API, поэтому я могу использовать встроенные транзакции. Это может быть работоспособным, но кажется неудобным.
Еще одно решение могло бы быть, чтобы записать несколько отношений, без каких-либо свойств, так что «сила» на самом деле граф отношений, т.е.
A knows B
A knows B
A knows B
означает соотношение прочности 3.
- Недостатки: только целые достоинства могут быть записаны
- Преимущество: нет чтения-записи, прежде чем требуется
- Недостаток: (вероятно) больше памяти требуется
- Недостаток: (вероятно) гораздо медленнее, чтобы извлечь значение, поскольку множественные отношения должны быть извлечены и подсчитаны
Кто-нибудь пробовал этот подход, и это, вероятно, столкнуться с проблемами производительности, особенно при чтении ?
Есть ли лучший способ смоделировать это?
Спасибо - несколько интересных возможностей! После проверки словаря, я думаю, что это нормально говорить о нецелочисленных «приращениях» (хотя, очевидно, вам нужно будет указать сумму)! – DNA