In-Memory Key-Value Database Scaling with Adaptive Pipelining
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current in-memory non-relational databases face challenges in scalability, high availability, and cost due to limited replication capabilities and high RAM resource prices, making them unsuitable for Web 2.0 and SaaS applications that require efficient data management and storage solutions.
Innovation Solution
The implementation of a system that includes a data management controller and cluster node manager to manage data flow, provide high availability, and optimize resource usage through pipelining, persistent connections, and load balancing, while supporting Redis and Memcached protocols with enhanced functionality such as connection pooling and real-time compression.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If in-memory non-relational databases are used to improve data access speed, then throughput and latency are significantly improved, but cost increases due to high RAM resource prices
Solution Approach 1:
The patent applies local quality by differentiating storage locations for different data types. Frequently accessed data is stored in high-speed memory (RAM) while less frequently accessed data is stored in lower-cost storage media. This creates a hierarchical storage structure where each layer serves specific access patterns, optimizing both speed and cost by matching data placement to access requirements rather than storing all data uniformly in expensive RAM.
2Adaptability or versatility
If traditional RDBMS are used to provide complex querying and management functionality, then data management capabilities are improved, but hardware cost and personnel requirements increase
Solution Approach 1:
The patent extracts and removes unnecessary complex functionality from the database system. It implements a simplified database model that focuses on core key-value storage and retrieval operations, deliberately excluding complex querying, joins, and transaction management features found in traditional RDBMS. This extraction of essential functions only reduces hardware requirements and operational complexity while maintaining effectiveness for web 2.0 and SaaS application workloads.
3Reliability
If RDBMS replication capabilities are used to improve data availability, then consistency is maintained, but performance and scalability are limited
Solution Approach 1:
The patent applies segmentation by dividing the database into independent, autonomously-operating nodes that can be distributed across multiple servers. Each node maintains its own data partition and can operate independently, enabling horizontal scaling by simply adding new nodes to the cluster. This segmented architecture eliminates the scalability bottlenecks of traditional RDBMS replication while maintaining data consistency through coordinated protocols between nodes.
4Speed
If Memcached is used to provide distributed key-value caching, then read operation performance is improved, but data persistence and high availability are lost during scaling events
Solution Approach 1:
The patent applies preliminary action by implementing persistent storage mechanisms that proactively save data to durable storage media before scaling or failure events occur. The system continuously maintains data copies in both volatile memory for fast access and non-volatile storage for persistence, ensuring data is already prepared and recoverable before any failure or scaling event happens, rather than attempting recovery after data loss.
Data Source
AI summary
Providing a first control process that executes in a hardware processor, providing a first server process that executes in a hardware processor, that responds to write requests by storing objects in in-memory, non-relational data store, and that responds to read requests by providing objects from in-memory, non-relational data store, wherein the objects each have an object size; forming a plurality of persistent connections between the first control process and the first server process; using the first control process, pipelining, using a pipeline having a pipeline size, requests that include the read requests and the write requests over at least one of the plurality of persistent connections; using the first control process, adjusting the number of plurality of persistent connections and the pipeline size based on an average of the object sizes; and using the first control process, prioritizing requests by request type based on anticipated load from the requests.


