SQLfX® Naturally Positioned for Multicore Parallel Processing
Our current SQLfX® beta product transparently supports full hierarchical processing capabilities. For our commercial version we are looking into also transparently supporting multicore parallel processing. SQLfX® is naturally positioned for this with our full and total hierarchical processing of hierarchical XML physical structures and relational hierarchical logical structures. The current unsolved problem today for multicore parallel processing is finding a model for parallel programming so that the underlying computer language can easily and correctly be instructed to perform this parallel processing. Our parallel processing solution is unique in two ways. First our inherent hierarchical processing is itself a very high level natural model for parallel processing. Hierarchical pathways are naturally independent of each other. Second, our SQLfX® product is always automatically aware of the hierarchical structure being processed to assure its correct hierarchical processing and its structured output. This will allow SQLfX® to automatically take on the task of controlling the parallel processing dynamically across the hierarchical pathways and without involving the user. This will be performed using ANSI standard SQL, with no parallel instructions or hints required by the user or coder. This will be dynamically applied optimally and accurately to each specific query.
There are three distinct levels of parallel hierarchical processing possible for hierarchical processing. The most basic is along any pathway, multiple occurring data type streams can be multithreaded. At the second level, distinct different pathways can be performed in parallel because they are independent of each other. The third level is an additional level of parallel distribution of processing when more processing power is needed. This is described below. An additional level of parallel processing that SQLfX® can inherently support if necessary is distributed processing of the SQLfX® hierarchical query. The distributed portions of the query will continue to be processed correctly hierarchically and continue to support multicore parallel processing by distributed participating SQLfX® processors. The distributed hierarchical query results will be automatically hierarchically recombined automatically into a single hierarchical structure result.
SQLfX® has an extremely powerful hierarchical optimization that is perform dynamically on each hierarchical query processed that is performed before the parallel processing is performed. This semantic optimization will recognize and remove unnecessary pathways that are not necessary to the current query. This will have a significant effect for lowering the all around processing efficiency and throughput of hierarchical parallel processing and without involving the user.
See our article on Parallel Processing of Hierarchical Queries: