Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
0.2-incubating
-
None
Description
The current StorageManager does not provide scan scheduling function. All scan operations run concurrently. This is the cause of random disk access and disk read performance is not good.
The proposed StorageManager is based on double buffering. Each disk has a scheduler to schedule by order of scanned adjust. Each Scanner has a InputStream and a Tuple pool. The next() operation of ScanNode is blocked until Tuple pool is filled. Assigned Scanner by the scheduler read data(xMB) and fills Tuple Pool and notifies to next() operation. After scanning Scanner re-enter DiskScanQueue.
In this way Scanner can pass column vector to Vectorized Query Engine.
See the attached file.