Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DistributedQuery ¶
type DistributedQuery struct {
// contains filtered or unexported fields
}
DistributedQuery coordinates queries across partitions
func NewDistributedQuery ¶
func NewDistributedQuery(partitions []*PartitionedGraph) *DistributedQuery
NewDistributedQuery creates a distributed query coordinator
func (*DistributedQuery) GetNode ¶
func (dq *DistributedQuery) GetNode(nodeID uint64) (*storage.Node, error)
GetNode retrieves a node from the correct partition
func (*DistributedQuery) TraverseGraph ¶
TraverseGraph performs distributed graph traversal
type HashPartition ¶
type HashPartition struct {
// contains filtered or unexported fields
}
HashPartition partitions nodes by hash (simplest, good load balance)
func NewHashPartition ¶
func NewHashPartition(partitionCount int) *HashPartition
NewHashPartition creates a hash-based partitioning strategy
func (*HashPartition) GetPartition ¶
func (hp *HashPartition) GetPartition(nodeID uint64) int
GetPartition returns which partition a node belongs to
func (*HashPartition) GetPartitionCount ¶
func (hp *HashPartition) GetPartitionCount() int
GetPartitionCount returns total number of partitions
type NodeMigration ¶
NodeMigration represents a suggested rebalancing operation
func RebalancePartitions ¶
func RebalancePartitions(graph *storage.GraphStorage, strategy PartitionStrategy) ([]NodeMigration, error)
RebalancePartitions suggests node migrations to improve balance
type PartitionMetrics ¶
type PartitionMetrics struct {
PartitionSizes []int // Nodes per partition
EdgeCuts []int // Cut edges per partition
LoadBalance float64 // 0-1 (1 = perfect balance)
CutRatio float64 // Fraction of edges that are cuts
}
PartitionMetrics contains partitioning quality metrics
func ComputePartitionMetrics ¶
func ComputePartitionMetrics(graph *storage.GraphStorage, strategy PartitionStrategy) (*PartitionMetrics, error)
ComputePartitionMetrics analyzes partition quality
type PartitionStrategy ¶
PartitionStrategy defines how to partition a graph
type PartitionedGraph ¶
type PartitionedGraph struct {
// contains filtered or unexported fields
}
PartitionedGraph wraps a graph with partitioning
func NewPartitionedGraph ¶
func NewPartitionedGraph( graph *storage.GraphStorage, strategy PartitionStrategy, localPartition int, ) *PartitionedGraph
NewPartitionedGraph creates a partitioned graph view
func (*PartitionedGraph) GetEdgeCuts ¶
func (pg *PartitionedGraph) GetEdgeCuts() ([]*storage.Edge, error)
GetEdgeCuts returns edges that cross partition boundaries
func (*PartitionedGraph) GetLocalNodes ¶
func (pg *PartitionedGraph) GetLocalNodes() ([]*storage.Node, error)
GetLocalNodes returns all nodes in this partition
func (*PartitionedGraph) IsLocalNode ¶
func (pg *PartitionedGraph) IsLocalNode(nodeID uint64) bool
IsLocalNode checks if a node belongs to this partition
type RangePartition ¶
type RangePartition struct {
// contains filtered or unexported fields
}
RangePartition partitions by node ID ranges
func NewRangePartition ¶
func NewRangePartition(partitionCount int, maxNodeID uint64) *RangePartition
NewRangePartition creates range-based partitioning
func (*RangePartition) GetPartition ¶
func (rp *RangePartition) GetPartition(nodeID uint64) int
GetPartition returns partition for a node
func (*RangePartition) GetPartitionCount ¶
func (rp *RangePartition) GetPartitionCount() int
GetPartitionCount returns total partitions