Stack-Based Batch Evaluation for Server Overload Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems that process large volumes of data operations on servers often lead to server overload and crashes, resulting in slow performance and an undesirable user experience due to the need for individual processing of each operation.

Innovation Solution

A method that generates a call frame for program instructions within a stack evaluator, allowing for batch processing of similar expressions, reducing the number of requests sent to the application server by grouping similar expressions together for processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If individual processing requests are sent for each operation, then processing accuracy is maintained, but server overload and crashes occur due to high volume of requests

Engineering Contradiction:
Improveserver stabilityVSAvoidprocessing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent combines multiple individual processing requests into a single batch request. The batch processing system groups multiple data operations that would otherwise be sent as separate requests, consolidates them into one request, and processes them together on the server. This merging approach maintains processing accuracy while significantly reducing the total number of requests, thereby preventing server overload and improving server stability.

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If batch processing is implemented to reduce requests, then server load is reduced, but processing complexity increases due to grouping and managing batches

Engineering Contradiction:
Improverequest reductionVSAvoidbatch management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the batch processing system into distinct functional components: a client-side batching module that groups requests, a communication interface that transmits batches, and a server-side batch processing engine that executes operations. This segmentation distributes complexity across different system layers, making the overall system more manageable despite the introduction of batch processing.

Inventive Principle:
Principle #1Segmentation

3Power

If operations are processed on external server, then processing power is increased, but processing latency increases due to network communication overhead

Engineering Contradiction:
Improveprocessing powerVSAvoidprocessing latency
Core Design Contradiction:
PowerVSLoss of time

Solution Approach 1:

The patent implements preliminary action by performing request batching and preparation on the client side before transmission to the server. Multiple operations are grouped and validated locally, reducing the number of network round trips required. This preliminary processing reduces overall latency despite maintaining external server processing, as the server receives consolidated requests rather than individual operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9471370B2System and method for stack-based batch evaluation of program instructions
Publication Date: 2016.10.18 PALANTIR TECHNOLOGIES INC
  • US9471370B2 patent drawing
  • US9471370B2 patent drawing
  • US9471370B2 patent drawing

AI summary

A batching module that inspects call stacks within a stack evaluator to identify current expressions that can be evaluated in batch with other expressions. If such expressions are identified, the corresponding stacks are blocked from further processing and a batch processing request for processing the expressions is transmitted to the application server. The application server processes the expressions in batch and generates a value for each of the expressions. The blocked stacks are then populated with the values for the expressions.