2017-05-12 6 views
1

Cosmos DB를 사용하면 gremlin 쿼리 언어를 사용하여 그래프 데이터를 저장할 수 있습니다.azure Cosmos DB의 그래프 순회 성능

그래프가 여러 서버로 분할되는 방식을 최적화하는 지능형 알고리즘이 있습니까? 그렇지 않다면 일부 검색어가 매우 느리다고 생각하면 조각 사이의 네트워크 대기 시간에 영향을 미칩니다.

+0

당신이 묻는 바를 정확히 모르겠지만 "서버"에 관해서는 Cosmos DB를 생각할 수 없습니다 - 그렇게는 작동하지 않습니다. 이것은 대규모의 서비스 패브릭에서 실행되는 대규모 멀티 테넌트 시스템입니다. 가장 좋은 방법은 일반적으로 실행하는 쿼리 유형에 대한 벤치마킹을 수행하고 쿼리 비용을 기반으로 요청 단위 (RU)를 조정하는 것입니다. –

+0

필자는 분명히 몇 가지 테스트를 시행 할 것입니다. 서버의 개념을 추상화 한 것은 좋지만 테라 바이트 단위의 그래프를 가지고 있다면 모든 데이터가 하나의 물리적 디스크에 저장 될 것입니다. 그래프를 가로 지르면서 네트워크 대기 시간이됩니다. 이러한 유형의 대기 시간을 최소화하기 위해 지능적인 방법으로 그래프 데이터베이스를 샤딩하는 것은은 탄약을 사용하지 않는 것으로 악명 높은 문제입니다. 다른 그래프 DB (neo4j, arangoDB 등)가 가지고있는 것처럼 Microsoft가 시스템 설계에이 점을 고려했는지 알고 싶습니다. – mikestaub

답변

2

설명서가 아직 부족하지만 DocumentDb 자체에 대한 성능 고려 사항이 있습니다. 즉, 적절하게 세분화 된 PartitionKey를 설정하면 데이터를 여러 파티션으로 분할하여 처리량을 높일 수 있습니다. 당신은 여기에서 더 많은 것을 찾을 수 있습니다 : https://docs.microsoft.com/en-us/azure/documentdb/documentdb-partition-data

+0

감사합니다. 그렇다면 개발자가 도메인에 기반한 올바른 파티션 키를 선택하고 그래프를 쿼리 할 방법을 결정하는 것은 개발자의 몫입니다. 그것은 내가 생각하는 합리적인 접근법입니다. – mikestaub

+2

'PartitionKey'개념은 Graph에서 어떻게 변환됩니까? 노드와 엣지가 모두 속성을 갖는 단순한 속성 그래프라고하고 가능한 노드의 다른 유형 (레이블)이 있습니다. –

관련 문제