Data Agent Sidecar for Dynamic Filter and Projection Push Down
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data access systems face inefficiencies when dealing with diverse data sources, as they often require applications to perform transformations like filtering and projection on data after retrieval, leading to increased network traffic and computational load, and lack flexibility in handling data sources with varying transformation capabilities.
Innovation Solution
The implementation of a data agent sidecar that determines which transformations can be performed by the data source and which cannot, allowing it to push down supported transformations to the data source while performing unsupported transformations itself, thereby reducing network traffic and computational load and enabling seamless integration with various data sources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If applications perform transformations after retrieving data from diverse data sources, then data access flexibility is maintained, but network traffic and computational load increase
Solution Approach 1:
The system performs transformations (filtering, projection) at the data source before data retrieval, rather than after retrieval. The data access sidecar pushes down transformation requests to the data source, so that only transformed, necessary data is transmitted over the network, reducing both computational load and network traffic
Solution Approach 2:
A data access sidecar is introduced as an intermediary component between the application and diverse data sources. The sidecar dynamically determines which transformations each data source supports and orchestrates the transformation process, maintaining flexibility while optimizing performance by pushing transformations down to capable data sources
2Adaptability or versatility
If applications perform transformations after retrieving data, then data processing capability is maintained, but network traffic increases
Solution Approach 1:
Transformations are executed at the data source before data transmission. The sidecar pushes down projection and filtering operations to the data source, so that only the necessary, transformed data subset is sent over the network, reducing network traffic while maintaining full data processing capability
Solution Approach 2:
The system extracts and pushes down transformation operations (filtering, projection) from the application layer to the data source layer. Only the essential, transformed data is transmitted over the network, separating the transformation logic from the data transmission path
3Quantity of substance
If the system pushes down transformations to data sources, then network traffic is reduced, but system complexity increases
Solution Approach 1:
The data access sidecar serves as an intermediary that manages the complexity of pushing transformations down to diverse data sources. It dynamically determines which transformations each data source supports and orchestrates the process, shielding the application from complexity while achieving network traffic reduction
Solution Approach 2:
The system dynamically adapts transformation pushdown based on the capabilities of each data source. The sidecar evaluates which transformations are supported by the target data source and pushes down only those that are supported, making the system flexible and adaptable rather than rigid and complex
4Adaptability or versatility
If applications handle all transformations, then data source capability differences are managed, but application complexity increases
Solution Approach 1:
The data access sidecar is introduced as an intermediary that handles the complexity of managing diverse data source capabilities. It dynamically determines which transformations each data source supports and orchestrates the transformation process, shielding the application from complexity while maintaining full data source compatibility
Solution Approach 2:
The system segments transformation handling responsibilities between the data access sidecar and the application. The sidecar manages the complexity of pushing transformations down to data sources and handling capability differences, while the application focuses on business logic, reducing overall application complexity
Data Source
AI summary
Data sources provide access to data. The data stored by the data source may be transformed before use by an application. Different data sources support different transformations. A data agent sidecar for the application accepts work orders from the application and submits work orders to data sources. A work order identifies a data source from which data is requested. The work order optionally includes one or more transformations to be applied to the data from the data source. The data agent sidecar determines, for the data source from which data is requested, which transformations can be performed by the data source and which transformations are not supported by the data source. The data transformations that can be performed by the data source are included in the work order to the data source. The remaining data transformations are performed by the data agent sidecar.


