Dynamic Graph Database Partitioning via Edge Sampling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Graph databases partitioned across multiple machines often experience uneven workload distribution due to query traversals, leading to inefficiencies and overhead, as existing partitioning strategies do not dynamically consider query patterns and edge traversal frequencies.
Innovation Solution
A method that identifies a partitioned graph database, determines edge traversal values based on query performance, calculates vertex scores for migration, and dynamically migrates vertices between partitions to optimize partitioning and reduce interpartition edge traversals, thereby improving efficiency and balancing workload.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If graph databases are partitioned across multiple machines, then storage capacity and query parallelism are improved, but workload distribution becomes uneven due to query traversals
Solution Approach 1:
The patent implements dynamic partitioning that automatically adjusts vertex placement based on observed query patterns and edge traversal frequencies. The system continuously monitors traversal behavior and re-partitions the graph to optimize workload distribution, transforming static partitioning into a dynamic adaptive system that responds to actual usage patterns.
Solution Approach 2:
The system employs feedback mechanisms by monitoring edge traversal frequencies and query patterns, then using this information to inform partitioning decisions. The partitioning strategy incorporates traversal history and statistical data about edge usage to make informed decisions about vertex placement, creating a closed-loop system that continuously improves based on observed performance.
2Device complexity
If partitioning is performed without considering query patterns, then partitioning complexity is reduced, but interpartition edge traversals increase leading to overhead
Solution Approach 1:
The system performs preliminary analysis of query patterns and edge traversal frequencies before executing partitioning operations. By pre-computing traversal statistics and identifying high-frequency edges in advance, the system prepares optimization strategies that reduce interpartition traversals without requiring complex real-time decision-making during query execution.
Solution Approach 2:
The patent changes partitioning parameters based on observed query characteristics and edge traversal patterns. The system adjusts partitioning strategies by incorporating statistical parameters about edge usage frequencies and query types, transforming fixed partitioning configurations into adaptive ones that optimize for actual workload characteristics.
3Productivity
If vertices are migrated based on edge traversal values, then query performance is improved, but partitioning overhead increases
Solution Approach 1:
The system applies partial migration strategies by selecting only the most critical vertices for migration based on edge traversal thresholds and query pattern analysis. Rather than migrating all vertices that could potentially improve performance, the system identifies and migrates only those vertices that provide the most significant performance benefit relative to the migration cost, applying action selectively rather than universally.
Data Source
AI summary
Software that uses data collected from queries performed on a graph database to dynamically improve graph partitioning. The software performs the following operations: (i) identifying a partitioned graph database including a set of edges and a set of vertices, wherein each vertex of the set of vertices is associated with one or more edges of the set of edges; (ii) determining an edge traversal value for one or more edges of the set of edges, wherein the edge traversal value for a respective edge relates to a number of times that the respective edge is traversed in response to one or more queries of the graph database; and (iii) calculating a first vertex score for a first vertex on a first graph partition, based, at least in part, on the edge traversal value(s) for one or more edges associated with the first vertex.


