Resettable Software Actor Stream Analytics Throughput
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing stream analytics solutions face inefficiencies in compute resources and scalability, often relying on multiple hosts for distributed processing, which can lead to host-level inefficiencies and limited capabilities in handling complex analyses, especially in large-scale data centers.
Innovation Solution
The implementation of resettable software actors within embedded virtual machines, such as Lua VMs, that maintain a backlog queue and reload an execution snapshot to process data streams efficiently, enabling horizontal scaling and concurrency through pipeline parallelism and load balancing without central coordination.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If distributed compute engines like Apache Spark are used to perform stream analytics, then the system can handle large-scale data processing across multiple hosts, but host-level inefficiencies arise and computational resources are underutilized due to ignoring host-level optimization in favor of horizontal scale
Solution Approach 1:
The system segments the distributed data processing workload into host-specific processing units that operate independently on each host. Each host runs its own stream processing engine that handles local data streams, eliminating the need to distribute every operation across all hosts. This segmentation allows each host to fully utilize its computational resources while maintaining overall system throughput for large-scale data processing.
2Adaptability or versatility
If stream processing engines in time-series systems are used, then simple time-series calculations can be performed, but the system is limited in scope and capabilities for handling complex analyses and state management
Solution Approach 1:
The stream processing engine is designed as a universal platform that can handle multiple types of analyses including simple time-series calculations, complex log parsing, machine learning operations, and stateful computations. The engine uses a unified data structure and execution model that accommodates diverse analysis types without requiring separate specialized systems, thereby achieving versatility while maintaining manageable complexity through a single multi-functional architecture.
3Ease of operation
If ad hoc solutions relying on operating system resource management are used, then implementation flexibility is achieved, but the system does not benefit from knowledge about entire system workload and data streams leading to suboptimal resource allocation
Solution Approach 1:
The system implements feedback mechanisms where the stream processing engine continuously monitors system-wide workload characteristics, data stream patterns, and resource utilization metrics. Based on this feedback, the engine dynamically adjusts resource allocation, query optimization strategies, and processing priorities across the distributed system. This feedback loop enables the system to maintain implementation flexibility while achieving optimal resource utilization by making informed decisions based on actual system state rather than static OS-level management.
Data Source
AI summary
Herein are techniques for analysis of data streams. In an embodiment, a computer associates each software actor with data streams. Each software actor has its own backlog queue of data to analyze. In response to receiving some stream content and based on the received stream content, data is distributed to some software actors. In response to determining that the data satisfies completeness criteria of a particular software actor, an indication of the data is appended onto the backlog queue of the particular software actor. The particular software actor is reset to an initial state by loading an execution snapshot of a previous initial execution of an embedded virtual machine. Based on the particular software actor, execution of the execution snapshot of the previous initial execution is resumed to dequeue and process the indication of the data from the backlog queue of the particular software actor to generate a result.


