On 03/03/2015 02:12 AM, Fujii Masao wrote:
> On Tue, Mar 3, 2015 at 8:51 AM, Josh Berkus <j...@agliodbs.com> wrote:
>> On 03/02/2015 03:43 PM, Andres Freund wrote:
>>> Hi,
>>>
>>> On 2015-03-02 15:40:27 -0800, Josh Berkus wrote:
>>>> ! #max_wal_size = 1GB                        # in logfile segments
>>>
>>> Independent of the rest of the changes, the "in logfile segments" bit
>>> should probably be changed.
>>
>> Point!  Although I think it's fair to point out that that wasn't my
>> omission, but Heikki's.
>>
>> Version C, with that correction, attached.
> 
> Minor comments:
> 
> "The default settings are 5 minutes and 128 MB, respectively." in wal.sgml
> needs to be updated.
> 
> 
>      int            max_wal_size = 8;        /* 128 MB */
> 
> It's better to update the above code in xlog.c. That's not essential, though.

Attached is version D, which incorporates the above two changes, but NOT
a general unit comment cleanup of postgresql.conf, which needs to be an
entirely different patch.

-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
new file mode 100644
index 9261e7f..26214ec
*** a/doc/src/sgml/config.sgml
--- b/doc/src/sgml/config.sgml
*************** include_dir 'conf.d'
*** 2406,2412 ****
          checkpoints. This is a soft limit; WAL size can exceed
          <varname>max_wal_size</> under special circumstances, like
          under heavy load, a failing <varname>archive_command</>, or a high
!         <varname>wal_keep_segments</> setting. The default is 128 MB.
          Increasing this parameter can increase the amount of time needed for
          crash recovery.
          This parameter can only be set in the <filename>postgresql.conf</>
--- 2406,2412 ----
          checkpoints. This is a soft limit; WAL size can exceed
          <varname>max_wal_size</> under special circumstances, like
          under heavy load, a failing <varname>archive_command</>, or a high
!         <varname>wal_keep_segments</> setting. The default is 1 GB.
          Increasing this parameter can increase the amount of time needed for
          crash recovery.
          This parameter can only be set in the <filename>postgresql.conf</>
diff --git a/doc/src/sgml/wal.sgml b/doc/src/sgml/wal.sgml
new file mode 100644
index b57749f..f4083c3
*** a/doc/src/sgml/wal.sgml
--- b/doc/src/sgml/wal.sgml
***************
*** 475,481 ****
     linkend="guc-checkpoint-timeout"> seconds, or if
     <xref linkend="guc-max-wal-size"> is about to be exceeded,
     whichever comes first.
!    The default settings are 5 minutes and 128 MB, respectively.
     If no WAL has been written since the previous checkpoint, new checkpoints
     will be skipped even if <varname>checkpoint_timeout</> has passed.
     (If WAL archiving is being used and you want to put a lower limit on how
--- 475,481 ----
     linkend="guc-checkpoint-timeout"> seconds, or if
     <xref linkend="guc-max-wal-size"> is about to be exceeded,
     whichever comes first.
!    The default settings are 5 minutes and 1 GB, respectively.
     If no WAL has been written since the previous checkpoint, new checkpoints
     will be skipped even if <varname>checkpoint_timeout</> has passed.
     (If WAL archiving is being used and you want to put a lower limit on how
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
new file mode 100644
index a28155f..c3820fa
*** a/src/backend/access/transam/xlog.c
--- b/src/backend/access/transam/xlog.c
*************** extern uint32 bootstrap_data_checksum_ve
*** 79,85 ****
  
  
  /* User-settable parameters */
! int			max_wal_size = 8;		/* 128 MB */
  int			min_wal_size = 5;		/* 80 MB */
  int			wal_keep_segments = 0;
  int			XLOGbuffers = -1;
--- 79,85 ----
  
  
  /* User-settable parameters */
! int			max_wal_size = 64;		/* 1 GB */
  int			min_wal_size = 5;		/* 80 MB */
  int			wal_keep_segments = 0;
  int			XLOGbuffers = -1;
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
new file mode 100644
index d84dba7..cc4654a
*** a/src/backend/utils/misc/guc.c
--- b/src/backend/utils/misc/guc.c
*************** static struct config_int ConfigureNamesI
*** 2171,2177 ****
  			GUC_UNIT_XSEGS
  		},
  		&max_wal_size,
! 		8, 2, INT_MAX,
  		NULL, assign_max_wal_size, NULL
  	},
  
--- 2171,2177 ----
  			GUC_UNIT_XSEGS
  		},
  		&max_wal_size,
! 		64, 2, INT_MAX,
  		NULL, assign_max_wal_size, NULL
  	},
  
diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample
new file mode 100644
index f8f9ce1..d3ef3e9
*** a/src/backend/utils/misc/postgresql.conf.sample
--- b/src/backend/utils/misc/postgresql.conf.sample
***************
*** 198,204 ****
  # - Checkpoints -
  
  #checkpoint_timeout = 5min		# range 30s-1h
! #max_wal_size = 128MB			# in logfile segments
  #min_wal_size = 80MB
  #checkpoint_completion_target = 0.5	# checkpoint target duration, 0.0 - 1.0
  #checkpoint_warning = 30s		# 0 disables
--- 198,204 ----
  # - Checkpoints -
  
  #checkpoint_timeout = 5min		# range 30s-1h
! #max_wal_size = 1GB
  #min_wal_size = 80MB
  #checkpoint_completion_target = 0.5	# checkpoint target duration, 0.0 - 1.0
  #checkpoint_warning = 30s		# 0 disables
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to