ArangoDB производительность нескольких краев коллекции

Я создаю коллекцию краев ArangoDB, которая состоит из множества "типов". По типу представьте таксономию видов животных.

Я буду строить график, который соединяет все это. Пример: родитель / потомок древних гомо видов: Homo habilis-> Homo floresiensis-> Homo erectus-> Homo sapiens

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

Мои конкретные вопросы: строят ли графики в ArangoDB, который использует несколько коллекций, снижение производительности? Будет ли использование одной большой коллекции более эффективным для графов?

Отвечая на первый комментарий: если бы я разбил это на различные коллекции ребер, это было бы 4 коллекции с около 300000 строк в каждой. Типа может быть несколько родителей и детей. Типы запросов будут кратчайшим путем и любой связью между ними. Если это имеет смысл? 6 градусов Кевина Бэкона.

РЕДАКТИРОВАТЬ: Пожалуйста, смотрите комментарии для некоторых вопросов и ответов. Почти каждый запрос будет охватывать несколько типов. Многие запросы будут иметь глубину 5-7 вершин. Этот проект будет почти исключительно ЧТЕНИЕ... Я не беспокоюсь о скорости записи вообще.

РЕДАКТИРОВАТЬ 2: я буду использовать один экземпляр или распределенный кластер? Честно говоря, тоже! Что бы ни ускорило, читает. Кому ты рассказываешь.

2 ответа

Решение

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

Насколько быстрее / медленнее это будет зависеть от механизма хранения (откачка файлов / мм). Учитывая, что вы хотите добиться максимальной производительности чтения, mmfiles, скорее всего, будет быстрее.

У меня есть проект таксономии в ArangoDB, который кажется примерно эквивалентным с точки зрения количества записей данных, о которых вы сообщаете.

Этот объем данных не представляет никаких проблем с производительностью для ArangoDB. Я решил сосредоточиться на моделировании отношений, чтобы наилучшим образом представлять набор данных, и не пожалел об этом.

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

Если есть несколько школ мышления, несколько классификаций или другие структуры, которые описывают альтернативные пути между видами, то я бы посмотрел, как захватить каждую из них в отдельную коллекцию краев.

Например, если один путь таксономии достигается по форме челюсти, другой всегда использует таз, если у страны X есть другой метод, а другой основан на ДНК, может быть полезно выделить для каждого из них коллекцию ребер. Вы будете создавать альтернативные межсетевые сети, используя точно / в основном один и тот же набор узлов видов.

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

Другие вопросы по тегам