Вопросы базы данных Memgraph: репликация, разбиение, распараллеливание, хранение графа
В настоящее время я изучаю Memgraph, и у меня есть несколько вопросов:
1) Обеспечиваете ли вы репликацию и разделение / разбиение данных?
2) Можно ли распараллеливать запросы, чтобы более крупные аналитические запросы работали быстрее?
3) Сохраняются ли ребра вместе с вершиной или есть какой-то эффективный способ извлечь список смежности?
4) Сохраняются ли свойства с вершиной и ребром? Я думаю, что оба способа могут иметь преимущества и недостатки в производительности.
Спасибо за вашу помощь, Эмануэль
1 ответ
1) Да, распределенная версия графа разделов Memgraph по кластеру машин. Разделение не является частью выпуска сообщества Memgraph, который можно загрузить по адресу https://memgraph.com/download потому что он все еще находится в частной бета-фазе. Если вы хотите попробовать, дайте мне знать.
2) Memgraph начинался как транзакционная СУБД. Но мы добавляем все больше аналитических возможностей, потому что многие люди ищут аналитику поверх транзакционных данных. Выполнять аналитику графиков в масштабе сложно, потому что каждый алгоритм требует уникального подхода. Распределенная реализация BFS является примером. Реализация запускает запрос через кластер параллельно с синхронизацией при необходимости.
3) Хранилище содержит ребра в специализированной структуре данных. У Memgraph пока нет общего индекса смежности, но можно получить список смежности, выполнив обычный запрос openCypher. Получение всех соседей узла очень эффективно, поскольку поиск узла выполняется быстро, и у каждого узла есть список ребер, в которых хранится информация о соседях.
4) Как узлы, так и ребра хранят свойства. Мы постоянно работаем над улучшением производительности и удобства использования.