Distributed SQL Query Processing via Key-Value Storage Mapping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional SQL database systems are difficult and expensive to scale due to high overhead and costly hardware requirements, while NoSQL systems lack essential features and are not interoperable, increasing development costs and complexity for web applications.
Innovation Solution
A distributed SQL query processing system that layers an SQL library on top of a transactional key-value system, allowing for scalable and fault-tolerant SQL query execution by mapping SQL queries to operations on a key-value system, with concurrency control mechanisms to handle concurrent transactions, and supporting features like transactions, indices, and schemas.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional SQL database systems are used, then powerful query functionality and data consistency are provided, but scalability and cost are worsened due to expensive hardware and high overhead
Solution Approach 1:
The system segments the database functionality into two independent layers: an SQL library for query processing and a key-value storage system for data persistence. This segmentation allows the storage layer to scale independently using inexpensive hardware while the SQL layer provides consistent query interfaces, resolving the contradiction between reliability and scalability.
Solution Approach 2:
The patent introduces an SQL library as an intermediary layer between the application and the key-value storage system. This intermediary translates SQL queries into key-value operations, enabling traditional SQL functionality to work over a scalable NoSQL backend, thus maintaining data consistency while improving scalability.
2Productivity
If NoSQL storage systems are used, then scalability and reduced costs are achieved, but functionality and interoperability are worsened due to lack of SQL features and custom interfaces
Solution Approach 1:
The SQL library provides universal SQL functionality that works across different key-value storage systems. By implementing standard SQL operations (SELECT, INSERT, UPDATE, DELETE, JOINs, aggregations) as a layer over the key-value interface, the system achieves both the scalability of NoSQL and the functional versatility of SQL, allowing applications to use familiar SQL syntax regardless of the underlying storage system.
3Quantity of substance
If NoSQL storage systems are used, then hardware costs are reduced, but development costs increase due to custom interfaces and missing features requiring application-level implementation
Solution Approach 1:
The SQL library acts as an intermediary that shields applications from the limitations of NoSQL systems. It provides SQL syntax support, joins, aggregations, and other missing features at the library level rather than requiring application-level implementation, thus reducing development effort while maintaining the use of cost-effective NoSQL storage infrastructure.
4Reliability
If traditional SQL database systems are used, then data consistency is maintained, but system overhead and administrative complexity increase
Solution Approach 1:
The patent extracts the complex data consistency and transaction management logic from the storage layer and places it in the SQL library layer. The key-value storage system handles only simple, consistent operations, while the SQL library implements transactions, concurrency control, and consistency protocols, reducing the overhead burden on the storage system while maintaining data consistency.
Data Source
AI summary
Distributed storage systems support SQL while also providing scalability and fault tolerance by utilizing an SQL library (the SQL execution component) layered on top of a transactional key-value system (the storage component). The SQL library comprises a parser and an execution engine running at the client, while the storage component comprises a key-value system for storing the data. The SQL library parses SQL queries received from client applications and maps them to transactions on the key-value system. The key-value system stores data items identified by key and provides concurrency control mechanisms to handle concurrent transactions. The key-value system may be a distributed system with several storage servers, each attached to one or more storage devices.


