Switch Fabric Microservice Scheduling via Graph Partitioning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current microservice deployments face challenges in scalable and flexible scheduling, particularly at large scales, due to limitations in traditional distributed processing models and graph partitioning approaches, which struggle with low latency, dynamic changes, and heterogeneous resources.
Innovation Solution
The implementation of a novel switch architecture that supports graph representation and on-the-fly graph partitioning for microservice task scheduling, using existing algorithms like min cut, to dynamically adjust task and traffic flow based on changing network conditions, SLA requirements, and resource availability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If microservices are deployed using traditional distributed processing models, then code can be distributed across many processing nodes, but scheduling complexity and latency increase at large scales
Solution Approach 1:
The patent segments the microservice deployment into graph-based task representation, where microservices are modeled as nodes and dependencies as edges in a directed acyclic graph (DAG). This segmentation allows the scheduling problem to be broken down into manageable graph partitioning operations, reducing overall scheduling complexity while maintaining distributed processing capabilities across multiple nodes
Solution Approach 2:
The patent introduces a switch fabric as an intermediary component that directly executes graph partitioning algorithms and microservice scheduling logic. This intermediary layer between the control plane and data plane eliminates the need for complex software-based scheduling on individual nodes, enabling low-latency scheduling decisions to be made in hardware at the switch level
2Adaptability or versatility
If graph partitioning is performed dynamically to adjust task distribution, then resource utilization improves, but computation time and latency increase
Solution Approach 1:
The patent replaces software-based graph partitioning computation with hardware-based implementation in the switch fabric. By implementing min-cut algorithms and other graph partitioning methods in dedicated hardware circuits within the switch, the system achieves dynamic resource allocation with minimal computation time, eliminating the latency associated with software-based approaches
3Adaptability or versatility
If microservices communicate over network fabric, then flexibility and independence are maintained, but network latency and bandwidth consumption increase
Solution Approach 1:
The patent merges the control plane and data plane by enabling the switch fabric to directly execute graph partitioning and scheduling operations. This consolidation allows scheduling decisions to be made locally at the switch level without requiring extensive network communication, thereby reducing network latency while maintaining the flexibility of distributed microservice architecture
Data Source
Figure 1
Figure 2
Figure 3A
AI summary
Methods and apparatus for hardware support for low latency microservice deployments in switches. A switch is communicatively coupled via a network or fabric to a plurality of platforms configured to implement one or more microservices. The microservices are used to perform a distributed workload, job, or task as defined by a corresponding graph representation of the microservices including vertices (also referred to as nodes) associated with microservices and edges defining communication between microservices. The graph representation also defines dependencies between microservices. The switch is configured to schedule execution of the graph of microservices on the plurality of platforms, including generating an initial schedule that is dynamically revised during runtime in consideration of performance telemetry data for the microservices received from the platforms and network/fabric utilization monitored onboard the switch. The switch also may include memory in which graph representations, microservice tables, and node-to-microservice maps are stored.