Remote Storage IOPS Optimization via Batch Aggregation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for performing read/write operations to remote storage are slow due to network roundtrips and potential IOPS limits, leading to degraded application performance, especially during peak periods with unpredictable workloads.
Innovation Solution
A computer-implemented method that dynamically aggregates read and write requests into batches, allowing these batches to be asynchronously passed to remote storage, thereby bypassing the transaction rate limitations of remote storage while ensuring transaction atomicity and consistency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If read/write requests are processed individually to remote storage, then transaction atomicity and consistency are ensured, but I/O operations per second (IOPS) are limited by network roundtrips and remote storage transaction rate
Solution Approach 1:
The system performs preliminary actions by buffering multiple read/write requests locally before sending them to remote storage. The batch buffer accumulates requests and sends them in consolidated batches, reducing the number of network roundtrips. This preliminary buffering action allows the system to overcome the limitation of individual request processing while maintaining data consistency through periodic flush operations.
Solution Approach 2:
The system merges multiple individual read/write requests into consolidated batches before transmission to remote storage. By combining multiple operations into single batch requests, the system reduces network overhead and increases IOPS. The merging process groups compatible operations together while maintaining their semantic integrity and atomicity guarantees.
2Productivity
If requests are aggregated into batches for remote storage, then IOPS performance improves, but complexity of managing batch aggregation and async operations increases
Solution Approach 1:
The system introduces a batch buffer as an intermediary component between the application and remote storage. This mediator manages the complexity of batch aggregation, async operations, and consistency guarantees by providing a standardized interface. The batch buffer handles request queuing, batching logic, async transmission, and coordination with local storage, isolating the application from these complexities.
Solution Approach 2:
The system segments the storage operation into distinct phases: local buffering, batch aggregation, async remote transmission, and consistency coordination. By dividing the overall operation into separable segments, the system manages complexity more effectively. Each segment can be optimized independently and failures can be handled at specific boundaries without affecting the entire system.
3Speed
If local cache is used for non-transaction-based applications, then read/write operation speed improves, but data consistency between local and remote storage may be compromised
Solution Approach 1:
The system dynamically adjusts its operation mode based on the application's requirements. For non-transaction-based applications, it enables local cache operations that prioritize speed, allowing reads and writes to proceed locally without immediate remote synchronization. The system dynamically manages the flush policy and consistency model based on workload characteristics, transitioning between performance-optimized and consistency-optimized modes as needed.
Data Source
AI summary
A computer-implemented method for optimizing input/output (I/O) operations per second (IOPS) of remote storage. The computer-implemented method includes receiving requests for read operations and write operations from users of an application, dynamically creating batches into which the requests can be aggregated, aggregating the requests into the batches and asynchronously passing each completed batch to the remote storage.


