Window-Based Scheduling Using Key-Value Data Store
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing task scheduling technologies face challenges in integrating with software applications, are resource-intensive, and struggle with efficient recovery from node failures, leading to unreliable and non-scalable scheduling across diverse platforms.
Innovation Solution
A distributed computing system utilizing a key-value data store to store time windows for task executions, generating scheduler entries that identify tasks and schedules, and an execution engine to select and execute tasks within these time windows, ensuring efficient and scalable scheduling with redundancy for node failure recovery.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If existing scheduling techniques are integrated with software applications, then task scheduling functionality is achieved, but integration difficulty and implementation time increase
Solution Approach 1:
The scheduling system leverages existing infrastructure components (key-value data stores, distributed computing nodes) to provide scheduling functionality without requiring dedicated scheduling components. The system serves itself by using standard distributed system primitives that are already present in the infrastructure, eliminating the need for separate scheduling module integration.
Solution Approach 2:
The patent creates a universal scheduling approach that works across diverse platforms and applications by using standard key-value data stores and distributed computing primitives. The same scheduling mechanism can be applied to different software applications and distributed systems without customization, achieving broad compatibility and ease of integration.
2Reliability
If existing scheduling techniques ensure acceptable recovery from node failures, then scheduling reliability improves, but computing resource consumption increases
Solution Approach 1:
The scheduling system uses key-value data stores to maintain copies of scheduling state information across distributed nodes. When node failures occur, the system can recover by retrieving scheduling state from the durable key-value store or other surviving nodes, eliminating the need for resource-intensive active replication and failover mechanisms while ensuring reliability.
Solution Approach 2:
The system performs beforehand cushioning by persisting scheduling state to durable key-value data stores before failures can occur. This pre-established durability cushion allows the system to recover from node failures without requiring excessive computing resources during the recovery process, as the recovery simply involves reading from the already-persisted state.
3Adaptability or versatility
If scheduling components are purchased and installed, then task scheduling capability is provided, but cost and implementation complexity increase
Solution Approach 1:
The patent extracts the essential scheduling functionality from complex dedicated scheduling components and implements it using basic key-value data store operations and distributed computing primitives. By taking out only the necessary scheduling logic and implementing it with simple, widely-available infrastructure, the system achieves platform compatibility without introducing additional system complexity.
4Productivity
If distributed scheduling is implemented across multiple nodes, then scalability improves, but coordination overhead and complexity increase
Solution Approach 1:
The key-value data store acts as an intermediary that simplifies coordination between distributed scheduling nodes. Instead of requiring complex peer-to-peer coordination protocols, nodes communicate through the simple key-value interface for state persistence and synchronization, enabling scalability without proportionally increasing coordination complexity.
Data Source
AI summary
A scheduling system for scheduling executions of tasks within a distributed computing system may include an entry generator configured to store, using at least one key-value data store, time windows for scheduled executions of tasks therein using a plurality of nodes of the distributed computing system. The entry generator may be further configured to generate scheduler entries for inclusion within a time window of the time windows, each scheduler entry identifying a task of the tasks and an associated schedule for execution thereof. The system may further include an execution engine configured to select the time window and execute corresponding tasks of the included scheduler entries in order.


