SPSC Buffering for Parallel Database Query Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current database systems face limitations in processing speed due to hardware constraints and data storage methods, particularly in large-scale data processing networks, where the speed of data execution is hindered by hardware limitations and restricted co-processing options.
Innovation Solution
A parallelized database system architecture that utilizes multiple computing devices and processing core resources to execute operations independently, employing Single Producer Single Consumer (SPSC) buffers and tagged read operations to optimize data storage and retrieval, allowing for lock-free and parallel execution of administrative and configuration operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional database systems use conventional data storage and processing methods, then hardware constraints are accepted, but processing speed and execution efficiency are limited
Solution Approach 1:
The patent segments the database system into multiple independent processing nodes that can operate in parallel. Each node handles specific data partitions, allowing simultaneous processing of multiple queries. This segmentation enables the system to overcome hardware constraints by distributing the processing load across multiple units, thereby improving overall processing speed without requiring a single complex high-performance device.
Solution Approach 2:
The patent introduces a new architectural dimension by implementing a multi-node distributed system rather than relying solely on vertical scaling of a single device. This dimensional shift from single-node to multi-node architecture allows the system to achieve higher processing speeds by adding nodes horizontally, effectively bypassing the hardware constraints of individual devices.
2Loss of time
If parallel processing is implemented to improve execution speed, then processing time is reduced, but synchronization and coordination overhead increases
Solution Approach 1:
The patent extracts the synchronization problem from the critical query processing path by using asynchronous communication mechanisms. Nodes can process queries independently without waiting for synchronization events, and coordination metadata is handled separately. This extraction allows parallel processing to proceed at full speed while synchronization overhead is minimized and decoupled from the main processing flow.
Solution Approach 2:
The patent introduces intermediary components such as message queues and coordination metadata structures that facilitate parallel processing without direct node-to-node synchronization. These intermediaries act as buffers that allow nodes to operate independently while still maintaining system-wide consistency, thereby reducing the complexity of direct synchronization between processing nodes.
3Productivity
If more co-processing options are added to overcome hardware limitations, then processing capability is enhanced, but system complexity and resource management difficulty increase
Solution Approach 1:
The patent implements universal processing nodes that can handle multiple types of operations and data formats through a standardized interface. Each node is designed to be multi-functional, capable of performing various co-processing tasks without requiring specialized components for each function. This universality enhances processing capability while simplifying resource management, as the system can dynamically allocate and manage identical node types rather than handling diverse specialized resources.
Data Source
AI summary
A method for execution by a virtual machine core includes retrieving a first pointer by accessing a first buffer of a plurality of buffers stored in allocated memory of a main memory based on assignment of the virtual machine core as a single consumer of the first buffer. First intermediate data in the allocated memory is accessed by utilizing the first pointer. Second intermediate data is generated by executing one of an ordered set of operations on the first intermediate data. The second intermediate data is written to the allocated memory. A second pointer is written to a second buffer of the plurality of buffers based on assignment of the virtual machine core as a single producer of the second buffer.


