diff options
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/commands/tablespace.h | 1 | ||||
| -rw-r--r-- | src/include/nodes/execnodes.h | 4 | ||||
| -rw-r--r-- | src/include/storage/bufmgr.h | 7 | ||||
| -rw-r--r-- | src/include/utils/spccache.h | 1 |
4 files changed, 12 insertions, 1 deletions
diff --git a/src/include/commands/tablespace.h b/src/include/commands/tablespace.h index 6b928a58a0..be9582a203 100644 --- a/src/include/commands/tablespace.h +++ b/src/include/commands/tablespace.h @@ -39,6 +39,7 @@ typedef struct TableSpaceOpts int32 vl_len_; /* varlena header (do not touch directly!) */ float8 random_page_cost; float8 seq_page_cost; + int effective_io_concurrency; } TableSpaceOpts; extern Oid CreateTableSpace(CreateTableSpaceStmt *stmt); diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h index 5796de861c..4ae2f3e067 100644 --- a/src/include/nodes/execnodes.h +++ b/src/include/nodes/execnodes.h @@ -1424,7 +1424,8 @@ typedef struct BitmapIndexScanState * lossy_pages total number of lossy pages retrieved * prefetch_iterator iterator for prefetching ahead of current page * prefetch_pages # pages prefetch iterator is ahead of current - * prefetch_target target prefetch distance + * prefetch_target current target prefetch distance + * prefetch_maximum maximum value for prefetch_target * ---------------- */ typedef struct BitmapHeapScanState @@ -1439,6 +1440,7 @@ typedef struct BitmapHeapScanState TBMIterator *prefetch_iterator; int prefetch_pages; int prefetch_target; + int prefetch_maximum; } BitmapHeapScanState; /* ---------------- diff --git a/src/include/storage/bufmgr.h b/src/include/storage/bufmgr.h index ec0a254566..0f59201bf5 100644 --- a/src/include/storage/bufmgr.h +++ b/src/include/storage/bufmgr.h @@ -58,11 +58,17 @@ extern int target_prefetch_pages; /* in buf_init.c */ extern PGDLLIMPORT char *BufferBlocks; +/* in guc.c */ +extern int effective_io_concurrency; + /* in localbuf.c */ extern PGDLLIMPORT int NLocBuffer; extern PGDLLIMPORT Block *LocalBufferBlockPointers; extern PGDLLIMPORT int32 *LocalRefCount; +/* upper limit for effective_io_concurrency */ +#define MAX_IO_CONCURRENCY 1000 + /* special block number for ReadBuffer() */ #define P_NEW InvalidBlockNumber /* grow the file to get a new page */ @@ -144,6 +150,7 @@ extern PGDLLIMPORT int32 *LocalRefCount; /* * prototypes for functions in bufmgr.c */ +extern bool ComputeIoConcurrency(int io_concurrency, double *target); extern void PrefetchBuffer(Relation reln, ForkNumber forkNum, BlockNumber blockNum); extern Buffer ReadBuffer(Relation reln, BlockNumber blockNum); diff --git a/src/include/utils/spccache.h b/src/include/utils/spccache.h index bdd1c0fc06..e466f36d18 100644 --- a/src/include/utils/spccache.h +++ b/src/include/utils/spccache.h @@ -15,5 +15,6 @@ void get_tablespace_page_costs(Oid spcid, float8 *spc_random_page_cost, float8 *spc_seq_page_cost); +int get_tablespace_io_concurrency(Oid spcid); #endif /* SPCCACHE_H */ |
