Reactive Database Standing Queries for Low-Latency Event Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Database polling in large scale databases consumes significant bandwidth, causes latency, and leads to server throttling due to high processor and memory usage, especially in systems requiring frequent updates from edge computing devices.
Innovation Solution
Implementing a reactive database system with standing queries that are registered and executed server-side, eliminating the need for frequent client polling by using a reactive database application programming interface (API) to manage updates based on predefined trigger conditions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If frequent database polling is implemented to ensure real-time responsiveness, then system responsiveness is improved, but network bandwidth consumption increases significantly
Solution Approach 1:
The system pre-registers standing queries with the database server that will automatically execute when specific conditions are met. This preliminary setup eliminates the need for continuous client polling, as the server proactively notifies clients when data changes occur, thus maintaining real-time responsiveness while dramatically reducing network bandwidth consumption.
Solution Approach 2:
Instead of the traditional approach where clients actively poll the database for changes, the system inverts the architecture by having the database server push notifications to clients when changes occur. This inversion transforms the client from an active polling role to a passive receiving role, reducing network traffic while maintaining responsiveness.
2Speed
If high frequency polling is used to detect urgent events quickly, then detection speed is improved, but server processor and memory resources are consumed excessively
Solution Approach 1:
The database server performs self-service by automatically executing pre-registered standing queries and generating notifications when conditions are met. This eliminates the need for external clients to continuously poll the database, reducing server processor and memory overhead while maintaining fast event detection through automated condition monitoring.
Solution Approach 2:
Instead of continuous periodic polling that consumes excessive resources, the system uses event-driven periodic action where queries are executed only when specific conditions are met. This transforms continuous resource-intensive polling into conditional, on-demand execution, reducing server load while maintaining detection speed.
3Loss of information
If repeated query-response cycles are implemented for real-time monitoring, then data freshness is improved, but communication latency increases due to unpredictable network conditions
Solution Approach 1:
The standing query mechanism establishes a continuous monitoring relationship between the database server and clients. When data changes occur, the server continuously evaluates registered conditions and immediately notifies relevant clients, ensuring data freshness without the need for repeated query-response cycles that introduce network latency.
4Measurement precision
If multiple polling requests are sent to monitor database changes, then monitoring accuracy is improved, but server throttling occurs due to excessive request handling
Solution Approach 1:
The system extracts the monitoring function from the client-side polling mechanism and relocates it to the server-side standing query execution. The database server extracts and evaluates conditions locally, generating notifications only when changes occur. This eliminates excessive request handling that causes server throttling while maintaining monitoring accuracy through direct server-side condition evaluation.
Data Source
AI summary
A computing system is provided, including non-volatile storage storing a reactive database including a plurality of database entities. The computing system may further include a processor configured to, via a reactive database application program interface (API), receive a first standing query registration input including a first standing query. The first standing query may include a first update condition and may be associated with a first database entity. The processor may be further configured to store the first standing query in the non-volatile storage. The processor may be further configured to write data to the reactive database and determine that the first update condition is satisfied by the written data. In response to determining that the first update condition is satisfied, the processor may be further configured to execute the first standing query to perform a first state change at the first database entity of the plurality of database entities.


