Stateless Log Record Delivery via Cursor Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Distributed systems face challenges in managing and maintaining availability due to dependencies between subsystems, leading to downtime and performance issues, especially when logging systems are offline, affecting operations and customer experience.
Innovation Solution
A record delivery system that allows stateless clients to receive log records from a persistent log using a queue-like interface, with features like cursor management for ordered record delivery, redelivery policies, and undelivered record logs, enabling efficient and resilient logging across multiple chains for global ordering and high availability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the logging system is made highly available and resilient, then system reliability is improved, but device complexity increases
Solution Approach 1:
The system segments the logging functionality into separate components: a logging system that captures events and a record delivery system that distributes them to clients. This segmentation allows each component to be optimized independently, improving reliability without proportionally increasing overall system complexity.
Solution Approach 2:
The patent introduces a record delivery system as an intermediary between the logging system and stateless clients. This mediator handles the complexity of record distribution, redelivery policies, and ordering, shielding clients from underlying system complexity while maintaining high availability.
2Use of energy by moving object
If stateless clients are used to reduce computational resources, then resource consumption is reduced, but delivery reliability may worsen
Solution Approach 1:
The system implements feedback mechanisms where clients acknowledge received records and the record delivery system tracks delivery status. This enables redelivery of lost records to stateless clients without requiring them to maintain state, ensuring reliability while keeping clients resource-efficient.
Solution Approach 2:
The record delivery system performs preliminary actions by maintaining undelivered record logs and redelivery policies before client disconnection. This ensures that if records are lost during transmission, they can be reliably redelivered without requiring the client to retain state or send acknowledgment messages.
3Stability of the object's composition
If log records are delivered in strict global order across multiple chains, then data consistency is improved, but throughput decreases
Solution Approach 1:
The system segments the log into multiple chains that can be processed in parallel. While individual chains maintain strict ordering, the overall system can deliver records from multiple chains concurrently, achieving both consistency within chains and high throughput across chains through parallel processing.
Solution Approach 2:
The system applies partial ordering by ensuring strict global order only where necessary (within each chain) while allowing parallel processing across multiple chains. This partial application of ordering constraints enables higher throughput without sacrificing consistency where it matters most.
4Manufacturing precision
If cursor management is implemented for ordered record delivery, then delivery precision is improved, but device complexity increases
Solution Approach 1:
The record delivery system implements self-service cursor management where the system automatically tracks and maintains cursors for each client without requiring client-side state management. The server handles cursor updates, ordering, and delivery precision autonomously, improving precision while avoiding client-side complexity.
Data Source
AI summary
Methods, systems, and computer-readable media for delivery of log records to stateless clients are disclosed. A record delivery system receives, from a client, a first request to read from a persistent log comprising an ordered sequence of records. The first request is associated with a receiver session. The system sends a first set of records to the client and stores a data structure indicating that the first set of records was sent to the client in the receiver session. The system receives, from the client, a second request to read from the persistent log in the receiver session. Based at least in part on the data structure, the system determines a second set of one or more records in the persistent log. The system sends the second set of records to the client.


