2017-05-12 6 views
1

Cosmos DB nous permet de stocker des données de graphe en utilisant le langage de requête gremlin. Y at-il des algorithmes intelligents qui optimisent la répartition du graphe entre de nombreux serveurs? Sinon, je peux imaginer que certaines requêtes soient extrêmement lentes à la latence du réseau entre les partitions.performance de traversée de graphe d'azur Cosmos DB

+0

Vous ne savez pas exactement ce que vous demandez, mais ... vous ne pouvez pas penser à Cosmos DB en termes de "serveurs" - cela ne fonctionne pas de cette façon. C'est un système multi-locataire massif, fonctionnant sur une très grande structure de service. Votre mieux est de faire un peu d'analyse comparative sur les types de requêtes que vous exécuterez généralement, et d'ajuster les unités de demande (RU) en conséquence, en fonction de vos coûts de requête. –

+0

Je vais certainement faire quelques tests. C'est génial que le concept de serveurs soit abstrait, mais si j'ai un graphique qui est dans les téraoctets, je doute que toutes les données soient sur un disque physique. Ce qui signifie que lorsque je traverse le graphique, leur latence réseau sera. Sharding bases de données graphiques d'une manière intelligente pour minimiser ce type de latence est un problème notoirement difficile sans solution miracle. Je veux juste savoir si Microsoft a pensé à cela dans leur conception du système, comme d'autres DB de graphes (neo4j, arangoDB, etc.). – mikestaub

Répondre

2

La documentation manque encore un peu, mais il y a des considérations de performance pour DocumentDb lui-même. En d'autres termes, la configuration d'une PartitionKey suffisamment granulaire divisera vos données sur plusieurs partitions, ce qui vous permettra d'augmenter le débit. Vous pouvez trouver plus ici: https://docs.microsoft.com/en-us/azure/documentdb/documentdb-partition-data

+0

Merci, cela signifie que c'est au développeur de choisir de bonnes clés de partition en fonction de leur domaine et de la façon dont elles s'attendent à ce que le graphique soit interrogé. C'est une approche raisonnable, je pense. – mikestaub

+2

Comment la notion de 'PartitionKey' se traduit-elle dans Graph? Dites que c'est un simple graphique de propriétés avec des propriétés de noeud et de bord et qu'il existe différents types (étiquettes) de nœuds possibles. –