Distributed SQL query processing using key-value storage system
First Claim
1. A distributed SQL query processing system comprising:
- a key-value server featuring transaction snapshot isolation for storing a plurality of key-value objects, andfurther featuring transaction atomicity and consistency;
a client that is communicatively coupled to the key-value server;
a key-value library for processing an operation on one of the plurality of key-value objects;
an SQL library for receiving an SQL query from an application and converting the SQL query into the operation for the key-value library to process; and
the application executing on the client for issuing the SQL query to the SQL library.
3 Assignments
0 Petitions
Accused Products
Abstract
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.
-
Citations
19 Claims
-
1. A distributed SQL query processing system comprising:
-
a key-value server featuring transaction snapshot isolation for storing a plurality of key-value objects, and further featuring transaction atomicity and consistency; a client that is communicatively coupled to the key-value server; a key-value library for processing an operation on one of the plurality of key-value objects; an SQL library for receiving an SQL query from an application and converting the SQL query into the operation for the key-value library to process; and the application executing on the client for issuing the SQL query to the SQL library. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for execution on a distributed SQL query processing system, the method comprising:
-
executing an application on a client for issuing an SQL query to an SQL library; receiving from the application, at the SQL library executing on a client, the SQL query; parsing and converting, at the SQL library on the client, the SQL query into a plurality of operations executable on a key-value system featuring transaction snapshot isolation, transaction atomicity, and consistency; and forwarding the plurality of operations to a key-value server, wherein the client is communicatively coupled to the key-value server. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A computer-readable storage hardware device comprising computer-readable instructions for executing an SQL query using a transactional key-value system featuring transaction snapshot isolation,
transaction atomicity, and consistency, the computer-readable storage hardware device comprising instructions that cause a processor to parse and convert, at an SQL library for receiving the SQL query from an application executing on a client that is communicatively coupled to a key-value server, and for issuing the SQL query to the SQL library, the SQL query into a plurality of operations executable on the transactional key-value system.
Specification