aboutsummaryrefslogtreecommitdiff
path: root/src/backend/storage/buffer/freelist.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2009-06-22 20:04:28 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2009-06-22 20:04:28 +0000
commit6382448cf96a9b88d418cbaf86027b63f465b5d8 (patch)
tree95445fc2553b8a5e27887ad1a0dae8855a88bd47 /src/backend/storage/buffer/freelist.c
parent3f1e529e7897a307ff3431a06b739fa7069d792b (diff)
downloadpostgresql-6382448cf96a9b88d418cbaf86027b63f465b5d8.tar.gz
postgresql-6382448cf96a9b88d418cbaf86027b63f465b5d8.zip
For bulk write operations (eg COPY IN), use a ring buffer of 16MB instead
of the 256KB limit originally enforced by a patch committed 2008-11-06. Per recent test results, the smaller size resulted in an undesirable decrease in bulk data loading speed, due to COPY processing frequently getting blocked for WAL flushing. This area might need more tweaking later, but this setting seems to be good enough for 8.4.
Diffstat (limited to 'src/backend/storage/buffer/freelist.c')
-rw-r--r--src/backend/storage/buffer/freelist.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/backend/storage/buffer/freelist.c b/src/backend/storage/buffer/freelist.c
index a42cbcf7264..e4d32d9bbe7 100644
--- a/src/backend/storage/buffer/freelist.c
+++ b/src/backend/storage/buffer/freelist.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/buffer/freelist.c,v 1.66 2009/01/01 17:23:47 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/buffer/freelist.c,v 1.67 2009/06/22 20:04:28 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -368,9 +368,7 @@ GetAccessStrategy(BufferAccessStrategyType btype)
int ring_size;
/*
- * Select ring size to use. See buffer/README for rationales. (Currently
- * all cases are the same size, but keep this code structure for
- * flexibility.)
+ * Select ring size to use. See buffer/README for rationales.
*
* Note: if you change the ring size for BAS_BULKREAD, see also
* SYNC_SCAN_REPORT_INTERVAL in access/heap/syncscan.c.
@@ -385,7 +383,7 @@ GetAccessStrategy(BufferAccessStrategyType btype)
ring_size = 256 * 1024 / BLCKSZ;
break;
case BAS_BULKWRITE:
- ring_size = 256 * 1024 / BLCKSZ;
+ ring_size = 16 * 1024 * 1024 / BLCKSZ;
break;
case BAS_VACUUM:
ring_size = 256 * 1024 / BLCKSZ;