NoSQL Proxy for Connection Pooling and Data Conversion
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing NoSQL data center architecture faces bottlenecks such as connection scatter-gather, limited operating data set, data serialization and deserialization overhead, secondary index conversion, and management of compression, decompression, encryption, and security protocols, which limit efficient scaling and performance in handling millions of transactions.
Innovation Solution
A NoSQL proxy is introduced between application servers and NoSQL data servers, equipped with a packet processor, proxy finite state machine, hybrid memory management unit, and data access command processing unit to manage data access commands, translate indexes, and filter results, supporting high throughput, low latency, and flexible data serialization, while relieving the NoSQL data server of network connection management and data conversion tasks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If application servers directly access NoSQL data servers, then data access is straightforward, but connection management becomes complex and scaling is limited
Solution Approach 1:
A proxy server is introduced as an intermediary between application servers and NoSQL data servers. The proxy manages all network connections to the data server, pooling and reusing connections while application servers communicate with the proxy through simple RPC calls. This resolves the contradiction by maintaining high transaction throughput through efficient connection management while keeping application server complexity low.
Solution Approach 2:
The system is segmented into distinct components: application servers, proxy servers, and NoSQL data servers. Each component has a specific responsibility - application servers handle business logic, proxies handle connection management and data format conversion, and data servers handle persistent storage. This segmentation allows each component to be optimized independently, improving overall productivity while distributing complexity across multiple specialized components.
2Speed
If data is stored in NoSQL data server, then persistent storage is available, but access latency increases due to network round trips
Solution Approach 1:
The proxy server performs preliminary actions by maintaining a connection pool to the NoSQL data server in advance. Connections are established and kept ready before they are needed, eliminating the need for network connection setup during actual data access operations. This preliminary connection establishment reduces access latency while maintaining persistent storage capabilities.
Solution Approach 2:
The proxy server creates copies of data between different formats (JSON, BSON, Thrift) and maintains multiple connection copies to the data server. By keeping multiple ready connections and pre-converting data formats, the system reduces network round trip time while maintaining access to persistent storage.
3Adaptability or versatility
If data format conversion is performed at the NoSQL data server, then data accessibility is improved, but processing overhead increases
Solution Approach 1:
The data format conversion functionality is extracted from the NoSQL data server and placed in the proxy server. The proxy handles all JSON-BSON-Thrift conversions, while the data server focuses solely on efficient data storage and retrieval. This extraction reduces processing overhead at the data server while maintaining data format compatibility across the system.
Solution Approach 2:
The proxy server acts as an intermediary that handles data format conversion between application servers and the NoSQL data server. Applications can use their preferred format (JSON, BSON, Thrift) and the proxy transparently converts to the data server's native format and back, maintaining adaptability while centralizing conversion overhead in a dedicated component.
4Adaptability or versatility
If secondary indexes are used for data retrieval, then query flexibility is improved, but index conversion overhead increases
Solution Approach 1:
The proxy server serves as an intermediary that handles secondary index to primary index conversion. When a query uses a secondary index, the proxy resolves it to the corresponding primary index before accessing the data server, transparently managing the conversion overhead while maintaining query flexibility for users.
Data Source
AI summary
A database proxy includes a request processor, a cache, a database plugin, and interfaces for coupling the database proxy client devices, other database proxies, and database servers. The request processor is configured to receive a read request from a client, determine whether the read request is assigned to the database proxy, and return results of the read request to the client. When the read request is not assigned to the database proxy, the read request is forwarded to another database proxy. When the read request is assigned to the database proxy, the read request is processed using data stored in the cache when the results are stored in the cache or forwarded to the database plugin, which forwards the read request to a database server, receives the results from the database server, and returns the results to the request processor for storage in the cache.


