Patent ID: 9058357
Filing Date: 2015-06-16
Classification: G06F

Abstract:
1. A computer implemented method for prefetching blocks of data in a database, the method comprising: receiving, by a columnar database system, queries for processing information stored in the columnar database system, the columnar database system storing at least a first column and a second column on a persistent storage device in columnar fashion; prefetching database blocks from columns processed by queries received by the columnar database system, the prefetching comprising retrieving a database block of a column in advance of a request to read data from the database block of the column; monitoring block faults for each column for which database blocks are prefetched, wherein a block fault comprises a request to process data that has not been prefetched in a memory of the columnar database system; monitoring eviction of blocks from the memory, an eviction comprising marking a database block stored in memory for removal from memory to accommodate another database block in memory; maintaining a prefetch rate for each column based on a rate of block faults for data from the column; responsive to a modification of the prefetch rate of the first column, modifying the prefetch rate of the second column based on the modification of the prefetch rate for the first column; and responsive to an eviction of a database block before data from the database block is processed for the query, reducing the rate at which database blocks are prefetched for one or more columns.