Bruce, > I have developed the following patch to address these issues. I have > removed the lock GUC settings from postgresql.conf, as suggested. (They > aren't even enabled in the general builds.)
Great! Just to keep you from getting complacent, what follows is a proposal for re-ordering the settings in the postgresql.conf.sample file. (sorry for replying to your thread on a different list; I'm not subscribed to PATCHES). THE PROPOSAL: We should re-order the settings in postgresql.conf.sample in order to make more logical groupings per the attached outline. The online documenation should be then re-sorted to match this order. THE REASONS WHY: Our current ordering of settings in the CONF file is largely based on history (i.e. based on when settings were added rather than any more logical order). This makes understanding the CONF file baffling to newcomers, and even experienced DBAs can miss important settings because they are not grouped with their logical associates. For that matter, the current ordering can be baffling to developers. When I started this thread, Tom wasn't sure that CONF and GUC.c corresponded 100%. And no wonder! postgresql.conf.sample is in one order, the "Run-time configuration" doc page in a second order, and GUC.c in yet a third order! It took me most of an afternoon just to match up the various options. The CONF file and the docs should be in the same order, leaving us only two orderings to keep track of. THE ARGUMENT AGAINST: This would be an annoyance for anyone who "diffs" their conf files as part of upgrading. I cannot think of any other objection, except for the work involved, which I am quite willing to help with. THE OUTLINE ATTACHED: is my proposed ordering. I've put it in outline form, so that the groupings I'm using are obvious; I feel that the final postgresql.conf.sample should keep the group and subgroup headers as comments for additional clarity. I welcome improvements and suggestions -- the only thing I'm attached to is the idea of logical re-ordering, not this particular order. PLEASE NOTE THAT THIS OUTLINE IS BASED ON 7.3.2 postgresql.conf. My laptop is in the shop and I don't have a copy of 7.4 cvs on my back-up computer. If my proposal is accepted in general, I will flesh it out for 7.4 before June 15. COMMITTMENT TO FOLLOW-UP: I will also be posting an article entitled "The Annotated PostgreSQL.conf" either on Techdocs or at Elein's web site based on this ordering to help people decipher their .conf files. This will include the official docs, comments from the -PERFORMANCE mailing list, the command line options, and whether or not each variable can be SET by the user. -- Josh Berkus Aglio Database Solutions San Francisco
#CONNECTIONS AND AUTHENTICATION #Connection Settings tcpip_socket max_connections superuser_reserved_connections port unix_socket_directory unix_socket_group unix_socket_permissions #Security & Authentication ssl authentication_timeout virtual_host krb_server_keyfile db_user_namespace #MEMORY USAGE #Memory shared_buffers sort_mem vacuum_mem #Free Space Map max_fsm_relations max_fsm_pages #WAL Options fsync wal_sync_method wal_buffers checkpoint_segments checkpoint_timeout commit_delay commit_siblings wal_debug #QUERY TUNING #Join Methods enable_seqscan enable_indexscan enable_tidscan enable_sort enable_nestloop enable_mergejoin enable_hashjoin #Planner Cost Constants effective_cache_size random_page_cost cpu_tuple_cost cpu_index_tuple_cost cpu_operator_cost default_statistics_target #Genetic Estimate Query Optimizer geqo geqo_threshold geqo_selection_bias geqo_pool_size geqo_effort geqo_generations geqo_random_seed #Other explain_pretty_print max_expr_depth #CLIENT CONNECTION DEFAULTS #Statement Behaviour autocommit search_path default_transaction_isolation statement_timeout #Locale and Formatting datestyle timezone australian_timezones client_encoding lc_messages lc_monetary lc_time lc_numeric #Other Defaults dynamic_library_path password_encryption #LOGGING & DEBUGGING #Debugging/Logging Levels server_min_messages client_min_messages log_min_error_statement debug_print_parse debug_print_rewritten debug_print_plan debug_pretty_print debug_assertions silent_mode #Additional Info to Log log_connections log_pid log_statement log_duration log_timestamp hostname_lookup show_source_port #Syslog syslog syslog_facility syslog_ident #STATISTICS #Statistics monitoring show_parser_stats show_planner_stats show_executor_stats show_statement_stats #Query/Index Statistics Collector stats_start_collector stats_reset_on_server_start stats_command_string stats_row_level stats_block_level #LOCK MANAGEMENT max_files_per_process max_locks_per_transaction deadlock_timeout #VERSION COMPATIBILITY OPTIONS sql_inheritance transform_null_equals
---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])