You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by zh...@apache.org on 2017/08/03 08:14:45 UTC

[bookkeeper] branch master updated: ISSUE #360: [DOCUMENTATION] configuration settings

This is an automated email from the ASF dual-hosted git repository.

zhaijia pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new 8b895d3  ISSUE #360: [DOCUMENTATION] configuration settings
8b895d3 is described below

commit 8b895d3087130107f4b5714560e7493349c10f5d
Author: zhaijack <zh...@gmail.com>
AuthorDate: Thu Aug 3 16:14:31 2017 +0800

    ISSUE #360: [DOCUMENTATION] configuration settings
    
    Descriptions of the changes in this PR:
    -  make sure bk_server.conf contains all the settings in ServerConfiguration.java
    -  update site/docs/reference/config.md (http://bookkeeper.apache.org/test/content/docs/reference/config/)
    
    ---
    Be sure to do all of the following to help us incorporate your contribution
    quickly and easily:
    
    - [X] Make sure the PR title is formatted like:
        `<Issue # or BOOKKEEPER-#>: Description of pull request`
        `e.g. Issue 123: Description ...`
        `e.g. BOOKKEEPER-1234: Description ...`
    - [ ] Make sure tests pass via `mvn clean apache-rat:check install findbugs:check`.
    - [X] Replace `<Issue # or BOOKKEEPER-#>` in the title with the actual Issue/JIRA number.
    
    ---
    
    Author: zhaijack <zh...@gmail.com>
    
    Reviewers: Luc Perkins <None>, Sijie Guo <None>
    
    This closes #368 from zhaijack/issue_360, closes #360
---
 bookkeeper-server/conf/bk_server.conf              | 595 +++++++++++++--------
 .../bookkeeper/conf/ServerConfiguration.java       |   4 +-
 site/_data/config/bk_server.yaml                   | 153 +++++-
 3 files changed, 535 insertions(+), 217 deletions(-)

diff --git a/bookkeeper-server/conf/bk_server.conf b/bookkeeper-server/conf/bk_server.conf
index 11d7244..bb27b8a 100644
--- a/bookkeeper-server/conf/bk_server.conf
+++ b/bookkeeper-server/conf/bk_server.conf
@@ -22,12 +22,39 @@
 
 ## Bookie settings
 
+#############################################################################
+## Server parameters
+#############################################################################
+
 # Port that bookie server listen on
 bookiePort=3181
 
+# Directories BookKeeper outputs its write ahead log.
+# Could define multi directories to store write head logs, separated by ','.
+# For example:
+#   journalDirectories=/tmp/bk-journal1,/tmp/bk-journal2
+# If journalDirectories is set, bookies will skip journalDirectory and use
+# this setting directory.
+# journalDirectories=/tmp/bk-journal
+
+# Directory Bookkeeper outputs its write ahead log
+# @deprecated since 4.5.0. journalDirectories is preferred over journalDirectory.
+journalDirectory=/tmp/bk-txn
+
+# Configure the bookie to allow/disallow multiple ledger/index/journal directories
+# in the same filesystem disk partition
+# allowMultipleDirsUnderSameDiskPartition=false
+
+# Directories to store index files. If not specified, will use ledgerDirectories to store.
+# indexDirectories=/tmp/bk-data
+
+# Minimum safe Usable size to be available in index directory for bookie to create
+# Index File while replaying journal at the time of bookie Start in Readonly Mode (in bytes)
+# minUsableSizeForIndexFileCreation=1073741824
+
 # Set the network interface that the bookie should listen on.
 # If not set, the bookie will listen on all interfaces.
-#listeningInterface=eth0
+# listeningInterface=eth0
 
 # Whether the bookie allowed to use a loopback interface as its primary
 # interface(i.e. the interface it uses to establish its identity)?
@@ -40,105 +67,217 @@ bookiePort=3181
 # establish their identities as 127.0.0.1:3181, and only one will be able
 # to join the cluster. For VPSs configured like this, you should explicitly
 # set the listening interface.
-#allowLoopback=false
+# allowLoopback=false
 
-# Directory Bookkeeper outputs its write ahead log
-journalDirectory=/tmp/bk-txn
+# Interval to watch whether bookie is dead or not, in milliseconds
+# bookieDeathWatchInterval=1000
 
-# Directory Bookkeeper outputs ledger snapshots
-# could define multi directories to store snapshots, separated by ','
-# For example:
-# ledgerDirectories=/tmp/bk1-data,/tmp/bk2-data
-# 
-# Ideally ledger dirs and journal dir are each in a differet device,
-# which reduce the contention between random i/o and sequential write.
-# It is possible to run with a single disk, but performance will be significantly lower.
-ledgerDirectories=/tmp/bk-data
-# Directories to store index files. If not specified, will use ledgerDirectories to store.
-# indexDirectories=/tmp/bk-data
+# How long the interval to flush ledger index pages to disk, in milliseconds
+# Flushing index files will introduce much random disk I/O.
+# If separating journal dir and ledger dirs each on different devices,
+# flushing would not affect performance. But if putting journal dir
+# and ledger dirs on same device, performance degrade significantly
+# on too frequent flushing. You can consider increment flush interval
+# to get better performance, but you need to pay more time on bookie
+# server restart after failure.
+# flushInterval=100
 
 # Allow the expansion of bookie storage capacity. Newly added ledger
 # and index dirs must be empty.
 # allowStorageExpansion=false
 
-# Ledger Manager Class
-# What kind of ledger manager is used to manage how ledgers are stored, managed
-# and garbage collected. Try to read 'BookKeeper Internals' for detail info.
-# ledgerManagerType=flat
+# Whether the bookie should use its hostname to register with the
+# co-ordination service(eg: Zookeeper service).
+# When false, bookie will use its ipaddress for the registration.
+# Defaults to false.
+# useHostNameAsBookieID=false
 
-# Root zookeeper path to store ledger metadata
-# This parameter is used by zookeeper-based ledger manager as a root znode to
-# store all ledgers.
-# zkLedgersRootPath=/ledgers
+# Interval between sending an explicit LAC in seconds
+explicitLacInterval=1
 
-# Ledger storage implementation class
-# ledgerStorageClass=org.apache.bookkeeper.bookie.SortedLedgerStorage
+# Whether the bookie is allowed to use an ephemeral port (port 0) as its
+# server port. By default, an ephemeral port is not allowed.
+# Using an ephemeral port as the service port usually indicates a configuration
+# error. However, in unit tests, using an ephemeral port will address port
+# conflict problems and allow running tests in parallel.
+# allowEphemeralPorts=false
 
-# Enable/Disable entry logger preallocation
-# entryLogFilePreallocationEnabled=true
+# Whether allow the bookie to listen for BookKeeper clients executed on the local JVM.
+# enableLocalTransport=false
 
-# Max file size of entry logger, in bytes
-# A new entry log file will be created when the old one reaches the file size limitation
-# logSizeLimit=2147483648
+# Whether allow the bookie to disable bind on network interfaces,
+# this bookie will be available only to BookKeeper clients executed on the local JVM.
+# disableServerSocketBind=false
 
-# Threshold of minor compaction
-# For those entry log files whose remaining size percentage reaches below
-# this threshold will be compacted in a minor compaction.
-# If it is set to less than zero, the minor compaction is disabled.
-# minorCompactionThreshold=0.2
+# The number of bytes we should use as chunk allocation for
+# org.apache.bookkeeper.bookie.SkipListArena
+# skipListArenaChunkSize=4194304
 
-# Interval to run minor compaction, in seconds
-# If it is set to less than zero, the minor compaction is disabled. 
-# minorCompactionInterval=3600
+# The max size we should allocate from the skiplist arena. Allocations
+# larger than this should be allocated directly by the VM to avoid fragmentation.
+# skipListArenaMaxAllocSize=131072
 
-# Interval between sending an explicit LAC in seconds
-explicitLacInterval = 1
+# The bookie authentication provider factory class name.
+# If this is null, no authentication will take place.
+# bookieAuthProviderFactoryClass=null
 
-# Threshold of major compaction
-# For those entry log files whose remaining size percentage reaches below
-# this threshold will be compacted in a major compaction.
-# Those entry log files whose remaining size percentage is still
-# higher than the threshold will never be compacted.
-# If it is set to less than zero, the minor compaction is disabled.
-# majorCompactionThreshold=0.8
 
-# Interval to run major compaction, in seconds
-# If it is set to less than zero, the major compaction is disabled. 
-# majorCompactionInterval=86400 
+#############################################################################
+## Garbage collection settings
+#############################################################################
 
-# Set the maximum number of entries which can be compacted without flushing.
-# When compacting, the entries are written to the entrylog and the new offsets
-# are cached in memory. Once the entrylog is flushed the index is updated with
-# the new offsets. This parameter controls the number of entries added to the
-# entrylog before a flush is forced. A higher value for this parameter means
-# more memory will be used for offsets. Each offset consists of 3 longs.
-# This parameter should _not_ be modified unless you know what you're doing.
-# The default is 100,000.
-#compactionMaxOutstandingRequests=100000
+# How long the interval to trigger next garbage collection, in milliseconds
+# Since garbage collection is running in background, too frequent gc
+# will heart performance. It is better to give a higher number of gc
+# interval if there is enough disk capacity.
+# gcWaitTime=1000
 
-# Set the rate at which compaction will readd entries. The unit is adds per second.
-#compactionRate=1000
+# How long the interval to trigger next garbage collection of overreplicated
+# ledgers, in milliseconds [Default: 1 day]. This should not be run very frequently
+# since we read the metadata for all the ledgers on the bookie from zk
+# gcOverreplicatedLedgerWaitTime=86400000
 
-# Throttle compaction by bytes or by entries. 
-#isThrottleByBytes=false
+# Number of threads that should handle write requests. if zero, the writes would
+# be handled by netty threads directly.
+# numAddWorkerThreads=1
 
-# Set the rate at which compaction will readd entries. The unit is adds per second.
-#compactionRateByEntries=1000
+# Number of threads that should handle read requests. if zero, the reads would
+# be handled by netty threads directly.
+# numReadWorkerThreads=1
 
-# Set the rate at which compaction will readd entries. The unit is bytes added per second.
-#compactionRateByBytes=1000000
+# Whether force compaction is allowed when the disk is full or almost full.
+# Forcing GC may get some space back, but may also fill up disk space more quickly.
+# This is because new log files are created before GC, while old garbage
+# log files are deleted after GC.
+# isForceGCAllowWhenNoSpace=false
+
+#############################################################################
+## TSL settings
+#############################################################################
+
+# TSL Provider (JDK or OpenSSL).
+# tslProvider=OpenSSL
+
+# The path to the class that provides security.
+# tslProviderFactoryClass=org.apache.bookkeeper.security.SSLContextFactory
+
+# Type of security used by server.
+# tslClientAuthentication=true
+
+# Bookie Keystore type.
+# tslKeyStoreType=JKS
+
+# Bookie Keystore location (path).
+# tslKeyStore=null
+
+# Bookie Keystore password path, if the keystore is protected by a password.
+# tslKeyStorePasswordPath=null
+
+# Bookie Truststore type.
+# tslTrustStoreType=null
+
+# Bookie Truststore location (path).
+# tslTrustStore=null
+
+# Bookie Truststore password path, if the trust store is protected by a password.
+# tslTrustStorePasswordPath=null
+
+#############################################################################
+## Long poll request parameter settings
+#############################################################################
+
+# The number of threads that should handle long poll requests.
+# numLongPollWorkerThreads=10
+
+# The tick duration in milliseconds for long poll requests.
+# requestTimerTickDurationMs=10
+
+# The number of ticks per wheel for the long poll request timer.
+# requestTimerNumTicks=1024
+
+#############################################################################
+## AutoRecovery settings
+#############################################################################
+
+# The interval between auditor bookie checks.
+# The auditor bookie check, checks ledger metadata to see which bookies should
+# contain entries for each ledger. If a bookie which should contain entries is
+# unavailable, then the ledger containing that entry is marked for recovery.
+# Setting this to 0 disabled the periodic check. Bookie checks will still
+# run when a bookie fails.
+# The interval is specified in seconds.
+# auditorPeriodicBookieCheckInterval=86400
+
+# The number of entries that a replication will rereplicate in parallel.
+# rereplicationEntryBatchSize=10
+
+# Auto-replication
+# The grace period, in seconds, that the replication worker waits before fencing and
+# replicating a ledger fragment that's still being written to upon bookie failure.
+# openLedgerRereplicationGracePeriod=30
+
+# Whether the bookie itself can start auto-recovery service also or not
+# autoRecoveryDaemonEnabled=false
+
+# How long to wait, in seconds, before starting auto recovery of a lost bookie
+# lostBookieRecoveryDelay=0
+
+#############################################################################
+## Netty server settings
+#############################################################################
+
+# This settings is used to enabled/disabled Nagle's algorithm, which is a means of
+# improving the efficiency of TCP/IP networks by reducing the number of packets
+# that need to be sent over the network.
+# If you are sending many small messages, such that more than one can fit in
+# a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm
+# can provide better performance.
+# Default value is true.
+# serverTcpNoDelay=true
+
+# This setting is used to send keep-alive messages on connection-oriented sockets.
+# serverSockKeepalive=true
+
+# The socket linger timeout on close.
+# When enabled, a close or shutdown will not return until all queued messages for
+# the socket have been successfully sent or the linger timeout has been reached.
+# Otherwise, the call returns immediately and the closing is done in the background.
+# serverTcpLinger=0
+
+# The Recv ByteBuf allocator initial buf size.
+# byteBufAllocatorSizeInitial=65536
+
+# The Recv ByteBuf allocator min buf size.
+# byteBufAllocatorSizeMin=65536
+
+# The Recv ByteBuf allocator max buf size.
+# byteBufAllocatorSizeMax=1048576
+
+#############################################################################
+## Journal settings
+#############################################################################
+
+# The journal format version to write.
+# Available formats are 1-5:
+# 1: no header
+# 2: a header section was added
+# 3: ledger key was introduced
+# 4: fencing key was introduced
+# 5: expanding header to 512 and padding writes to align sector size configured by `journalAlignmentSize`
+# By default, it is `4`. If you'd like to enable `padding-writes` feature, you can set journal version to `5`.
+# You can disable `padding-writes` by setting journal version back to `4`. This feature is available in 4.5.0
+# and onward versions.
+# journalFormatVersionToWrite=4
 
 # Max file size of journal file, in mega bytes
 # A new journal file will be created when the old one reaches the file size limitation
-#
 # journalMaxSizeMB=2048
 
 # Max number of old journal file to kept
 # Keep a number of old journal files would help data recovery in specia case
-#
 # journalMaxBackups=5
 
-# How much space should we pre-allocate at a time in the journal
+# How much space should we pre-allocate at a time in the journal.
 # journalPreAllocSizeMB=16
 
 # Size of the write buffers used for the journal
@@ -157,70 +296,53 @@ explicitLacInterval = 1
 # Maximum writes to buffer to achieve grouping
 # journalBufferedWritesThreshold=524288
 
-# If we should flush the journal when journal queue is empty
-# journalFlushWhenQueueEmpty=false
-
 # The number of threads that should handle journal callbacks
 # numJournalCallbackThreads=1
 
-# How long the interval to trigger next garbage collection, in milliseconds
-# Since garbage collection is running in background, too frequent gc
-# will heart performance. It is better to give a higher number of gc
-# interval if there is enough disk capacity.
-# gcWaitTime=1000
+# All the journal writes and commits should be aligned to given size.
+# If not, zeros will be padded to align to given size.
+# It only takes effects when journalFormatVersionToWrite is set to 5
+# journalAlignmentSize=512
 
-# How long the interval to trigger next garbage collection of overreplicated
-# ledgers, in milliseconds [Default: 1 day]. This should not be run very frequently since we read
-# the metadata for all the ledgers on the bookie from zk
-# gcOverreplicatedLedgerWaitTime=86400000
+# Maximum entries to buffer to impose on a journal write to achieve grouping.
+# journalBufferedEntriesThreshold=0
 
-# How long the interval to flush ledger index pages to disk, in milliseconds
-# Flushing index files will introduce much random disk I/O.
-# If separating journal dir and ledger dirs each on different devices,
-# flushing would not affect performance. But if putting journal dir
-# and ledger dirs on same device, performance degrade significantly
-# on too frequent flushing. You can consider increment flush interval
-# to get better performance, but you need to pay more time on bookie
-# server restart after failure.
-#
-# flushInterval=100
+# If we should flush the journal when journal queue is empty
+# journalFlushWhenQueueEmpty=false
 
-# Interval to watch whether bookie is dead or not, in milliseconds
-#
-# bookieDeathWatchInterval=1000
+#############################################################################
+## Ledger storage settings
+#############################################################################
 
-## zookeeper client settings
+# Ledger storage implementation class
+# ledgerStorageClass=org.apache.bookkeeper.bookie.SortedLedgerStorage
 
-# A list of one of more servers on which zookeeper is running.
-# The server list can be comma separated values, for example:
-# zkServers=zk1:2181,zk2:2181,zk3:2181
-zkServers=localhost:2181
-# ZooKeeper client session timeout in milliseconds
-# Bookie server will exit if it received SESSION_EXPIRED because it
-# was partitioned off from ZooKeeper for more than the session timeout
-# JVM garbage collection, disk I/O will cause SESSION_EXPIRED.
-# Increment this value could help avoiding this issue
-zkTimeout=10000
-# Set ACLs on every node written on ZooKeeper, this way only allowed users
-# will be able to read and write BookKeeper metadata stored on ZooKeeper.
-# In order to make ACLs work you need to setup ZooKeeper JAAS authentication
-# all the Bookies and Client need to share the same user, and this is usually
-# done using Kerberos authentication. See ZooKeeper documentation
-zkEnableSecurity=false
+# Directory Bookkeeper outputs ledger snapshots
+# could define multi directories to store snapshots, separated by ','
+# For example:
+# ledgerDirectories=/tmp/bk1-data,/tmp/bk2-data
+#
+# Ideally ledger dirs and journal dir are each in a differet device,
+# which reduce the contention between random i/o and sequential write.
+# It is possible to run with a single disk, but performance will be significantly lower.
+ledgerDirectories=/tmp/bk-data
 
-## NIO Server settings
+# Interval at which the auditor will do a check of all ledgers in the cluster.
+# By default this runs once a week. The interval is set in seconds.
+# To disable the periodic check completely, set this to 0.
+# Note that periodic checking will put extra load on the cluster, so it should
+# not be run more frequently than once a day.
+# auditorPeriodicCheckInterval=604800
 
-# This settings is used to enabled/disabled Nagle's algorithm, which is a means of
-# improving the efficiency of TCP/IP networks by reducing the number of packets
-# that need to be sent over the network.
-# If you are sending many small messages, such that more than one can fit in
-# a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm
-# can provide better performance.
-# Default value is true.
-#
-# serverTcpNoDelay=true
+# Whether sorted-ledger storage enabled (default true)
+# sortedLedgerStorageEnabled=ture
+
+# The skip list data size limitation (default 64MB) in EntryMemTable
+# skipListSizeLimit=67108864L
 
-## ledger cache settings
+#############################################################################
+## Ledger cache settings
+#############################################################################
 
 # Max number of ledger index files could be opened in bookie server
 # If number of ledger index files reaches this limitation, bookie
@@ -249,65 +371,37 @@ zkEnableSecurity=false
 # the limitation of number of index pages.
 # pageLimit=-1
 
-#If all ledger directories configured are full, then support only read requests for clients.
-#If "readOnlyModeEnabled=true" then on all ledger disks full, bookie will be converted
-#to read-only mode and serve only read requests. Otherwise the bookie will be shutdown.
-#By default this will be disabled.
-#readOnlyModeEnabled=false
-
-#For each ledger dir, maximum disk space which can be used.
-#Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will
-#be written to that partition. If all ledger dir partions are full, then bookie
-#will turn to readonly mode if 'readOnlyModeEnabled=true' is set, else it will
-#shutdown.
-#Valid values should be in between 0 and 1 (exclusive). 
-#diskUsageThreshold=0.95
-
-#Set the disk free space low water mark threshold. Disk is considered full when 
-#usage threshold is exceeded. Disk returns back to non-full state when usage is 
-#below low water mark threshold. This prevents it from going back and forth 
-#between these states frequently when concurrent writes and compaction are 
-#happening. This also prevent bookie from switching frequently between 
-#read-only and read-writes states in the same cases.
-#diskUsageLwmThreshold=0.90
-
-#Disk check interval in milli seconds, interval to check the ledger dirs usage.
-#Default is 10000
-#diskCheckInterval=10000
+#############################################################################
+## Ledger manager settings
+#############################################################################
 
-# Interval at which the auditor will do a check of all ledgers in the cluster.
-# By default this runs once a week. The interval is set in seconds.
-# To disable the periodic check completely, set this to 0.
-# Note that periodic checking will put extra load on the cluster, so it should
-# not be run more frequently than once a day.
-#auditorPeriodicCheckInterval=604800
+# Ledger Manager Class
+# What kind of ledger manager is used to manage how ledgers are stored, managed
+# and garbage collected. Try to read 'BookKeeper Internals' for detail info.
+# ledgerManagerType=flat
 
-# The interval between auditor bookie checks.
-# The auditor bookie check, checks ledger metadata to see which bookies should
-# contain entries for each ledger. If a bookie which should contain entries is
-# unavailable, then the ledger containing that entry is marked for recovery.
-# Setting this to 0 disabled the periodic check. Bookie checks will still
-# run when a bookie fails.
-# The interval is specified in seconds.
-#auditorPeriodicBookieCheckInterval=86400
+# Root Zookeeper path to store ledger metadata
+# This parameter is used by zookeeper-based ledger manager as a root znode to
+# store all ledgers.
+# zkLedgersRootPath=/ledgers
+
+#############################################################################
+## Entry log settings
+#############################################################################
+
+# Max file size of entry logger, in bytes
+# A new entry log file will be created when the old one reaches the file size limitation
+# logSizeLimit=2147483648
+
+# Enable/Disable entry logger preallocation
+# entryLogFilePreallocationEnabled=true
 
 # Entry log flush interval in bytes.
 # Default is 0. 0 or less disables this feature and effectively flush
 # happens on log rotation.
 # Flushing in smaller chunks but more frequently reduces spikes in disk
 # I/O. Flushing too frequently may also affect performance negatively.
-#flushEntrylogBytes=0
-
-# How long to wait, in seconds, before starting auto recovery of a lost bookie
-#lostBookieRecoveryDelay=0
-
-# number of threads that should handle write requests. if zero, the writes would
-# be handled by netty threads directly.
-# numAddWorkerThreads=1
-
-# number of threads that should handle read requests. if zero, the reads would
-# be handled by netty threads directly.
-# numReadWorkerThreads=1
+# flushEntrylogBytes=0
 
 # The number of bytes we should use as capacity for BufferedReadChannel. Default is 512 bytes.
 # readBufferSizeBytes=512
@@ -315,53 +409,134 @@ zkEnableSecurity=false
 # The number of bytes used as capacity for the write buffer. Default is 64KB.
 # writeBufferSizeBytes=65536
 
-# Whether the bookie should use its hostname to register with the
-# co-ordination service(eg: zookeeper service).
-# When false, bookie will use its ipaddress for the registration.
-# Defaults to false.
-#useHostNameAsBookieID=false
+#############################################################################
+## Entry log compaction settings
+#############################################################################
 
-# Auto-replication
-# The grace period, in seconds, that the replication worker waits before fencing and
-# replicating a ledger fragment that's still being written to upon bookie failure.
-#openLedgerRereplicationGracePeriod=30
+# Set the rate at which compaction will readd entries. The unit is adds per second.
+# compactionRate=1000
 
-# Whether statistics are enabled
-#enableStatistics=true
+# Threshold of minor compaction
+# For those entry log files whose remaining size percentage reaches below
+# this threshold will be compacted in a minor compaction.
+# If it is set to less than zero, the minor compaction is disabled.
+# minorCompactionThreshold=0.2
 
-# Stats Provider Class (if statistics are enabled)
-#statsProviderClass=org.apache.bookkeeper.stats.CodahaleMetricsProvider
+# Interval to run minor compaction, in seconds
+# If it is set to less than zero, the minor compaction is disabled.
+# minorCompactionInterval=3600
 
-# SSL Provider (JDK or OpenSSL)
-# sslProvider=OpenSSL
+# Set the maximum number of entries which can be compacted without flushing.
+# When compacting, the entries are written to the entrylog and the new offsets
+# are cached in memory. Once the entrylog is flushed the index is updated with
+# the new offsets. This parameter controls the number of entries added to the
+# entrylog before a flush is forced. A higher value for this parameter means
+# more memory will be used for offsets. Each offset consists of 3 longs.
+# This parameter should _not_ be modified unless you know what you're doing.
+# The default is 100,000.
+# compactionMaxOutstandingRequests=100000
 
-# The path to class that provides security.
-#sslProviderFactoryClass=org.apache.bookkeeper.security.SSLContextFactory
+# Threshold of major compaction
+# For those entry log files whose remaining size percentage reaches below
+# this threshold will be compacted in a major compaction.
+# Those entry log files whose remaining size percentage is still
+# higher than the threshold will never be compacted.
+# If it is set to less than zero, the minor compaction is disabled.
+# majorCompactionThreshold=0.8
 
-# Type of security used by server
-#sslClientAuthentication=true
+# Interval to run major compaction, in seconds
+# If it is set to less than zero, the major compaction is disabled.
+# majorCompactionInterval=86400
 
-# Bookie Keystore type
-#sslKeyStoreType=JKS
+# Throttle compaction by bytes or by entries.
+# isThrottleByBytes=false
 
-# Bookie Keystore location (path)
-#sslKeyStore=
+# Set the rate at which compaction will readd entries. The unit is adds per second.
+# compactionRateByEntries=1000
 
-# Bookie Keystore password path, if the keystore is protected by a password
-#sslKeyStorePasswordPath=
+# Set the rate at which compaction will readd entries. The unit is bytes added per second.
+# compactionRateByBytes=1000000
 
-# Bookie Truststore type
-#sslTrustStoreType=
+#############################################################################
+## Statistics
+#############################################################################
 
-# Bookie Truststore location (path)
-#sslTrustStore=
+# Whether statistics are enabled
+# enableStatistics=true
 
-# Bookie Truststore password path, if the truststore is protected by a password
-#sslTrustStorePasswordPath=
+# Stats Provider Class (if statistics are enabled)
+#statsProviderClass=org.apache.bookkeeper.stats.CodahaleMetricsProvider
 
-# Minimum safe Usable size to be available in index directory for Bookie to create Index File while replaying 
-# journal at the time of Bookie Start in Readonly Mode (in bytes)
-# minUsableSizeForIndexFileCreation=1073741824
+#############################################################################
+## Read-only mode support
+#############################################################################
+
+# If all ledger directories configured are full, then support only read requests for clients.
+# If "readOnlyModeEnabled=true" then on all ledger disks full, bookie will be converted
+# to read-only mode and serve only read requests. Otherwise the bookie will be shutdown.
+# By default this will be disabled.
+# readOnlyModeEnabled=false
+
+# Whether the bookie is force started in read only mode or not
+# forceReadOnlyBookie=false
+
+#############################################################################
+## Disk utilization
+#############################################################################
+
+# For each ledger dir, maximum disk space which can be used.
+# Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will
+# be written to that partition. If all ledger dir partions are full, then bookie
+# will turn to readonly mode if 'readOnlyModeEnabled=true' is set, else it will
+# shutdown.
+# Valid values should be in between 0 and 1 (exclusive).
+# diskUsageThreshold=0.95
+
+# The disk free space low water mark threshold.
+# Disk is considered full when usage threshold is exceeded.
+# Disk returns back to non-full state when usage is below low water mark threshold.
+# This prevents it from going back and forth between these states frequently
+# when concurrent writes and compaction are happening. This also prevent bookie from
+# switching frequently between read-only and read-writes states in the same cases.
+# diskUsageWarnThreshold=0.95
+
+# Set the disk free space low water mark threshold. Disk is considered full when
+# usage threshold is exceeded. Disk returns back to non-full state when usage is
+# below low water mark threshold. This prevents it from going back and forth
+# between these states frequently when concurrent writes and compaction are
+# happening. This also prevent bookie from switching frequently between
+# read-only and read-writes states in the same cases.
+# diskUsageLwmThreshold=0.90
+
+# Disk check interval in milli seconds, interval to check the ledger dirs usage.
+# Default is 10000
+# diskCheckInterval=10000
+
+#############################################################################
+## ZooKeeper parameters
+#############################################################################
+
+# A list of one of more servers on which Zookeeper is running.
+# The server list can be comma separated values, for example:
+# zkServers=zk1:2181,zk2:2181,zk3:2181
+zkServers=localhost:2181
 
-# Configure the Bookie to allow/disallow multiple ledger/index/journal directories in the same filesystem diskpartition
-# allowMultipleDirsUnderSameDiskPartition=false
+# ZooKeeper client session timeout in milliseconds
+# Bookie server will exit if it received SESSION_EXPIRED because it
+# was partitioned off from ZooKeeper for more than the session timeout
+# JVM garbage collection, disk I/O will cause SESSION_EXPIRED.
+# Increment this value could help avoiding this issue
+zkTimeout=10000
+
+# The Zookeeper client backoff retry start time in millis.
+# zkRetryBackoffStartMs=1000
+
+# The Zookeeper client backoff retry max time in millis.
+# zkRetryBackoffMaxMs=10000
+
+# Set ACLs on every node written on ZooKeeper, this way only allowed users
+# will be able to read and write BookKeeper metadata stored on ZooKeeper.
+# In order to make ACLs work you need to setup ZooKeeper JAAS authentication
+# all the bookies and Client need to share the same user, and this is usually
+# done using Kerberos authentication. See ZooKeeper documentation
+zkEnableSecurity=false
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/ServerConfiguration.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/ServerConfiguration.java
index 177c966..b2dfd52 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/ServerConfiguration.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/ServerConfiguration.java
@@ -149,7 +149,7 @@ public class ServerConfiguration extends AbstractConfiguration {
 
     // Bookie auth provider factory class name
     protected final static String BOOKIE_AUTH_PROVIDER_FACTORY_CLASS = "bookieAuthProviderFactoryClass";
-    
+
     protected final static String MIN_USABLESIZE_FOR_INDEXFILE_CREATION = "minUsableSizeForIndexFileCreation";
 
     protected final static String ALLOW_MULTIPLEDIRS_UNDER_SAME_DISKPARTITION = "allowMultipleDirsUnderSameDiskPartition";
@@ -1345,7 +1345,7 @@ public class ServerConfiguration extends AbstractConfiguration {
     }
 
     /**
-     * Set the number of bytes w used as chunk allocation for
+     * Set the number of bytes we used as chunk allocation for
      * org.apache.bookkeeper.bookie.SkipListArena
      *
      * @param size chunk size.
diff --git a/site/_data/config/bk_server.yaml b/site/_data/config/bk_server.yaml
index ae73304..6a2355d 100644
--- a/site/_data/config/bk_server.yaml
+++ b/site/_data/config/bk_server.yaml
@@ -4,12 +4,25 @@ groups:
   - param: bookiePort
     description: The port that the bookie server listens on.
     default: 3181
+  - param: journalDirectories
+    description: |
+      The directories to which Bookkeeper outputs its write-ahead log (WAL).  Could define multi directories to store write head logs, separated by ','.
+      For example:
+        journalDirectories=/tmp/bk-journal1,/tmp/bk-journal2
+      If journalDirectories is set, bookies will skip journalDirectory and use this setting directory.
+    default: /tmp/bk-journal
   - param: journalDirectory
     description: The directory to which Bookkeeper outputs its write-ahead log (WAL).
     default: /tmp/bk-txn
+  - param: allowMultipleDirsUnderSameDiskPartition
+    description: Configure the bookie to allow/disallow multiple ledger/index/journal directories in the same filesystem disk partition
+    default: false
   - param: indexDirectories
     description: The directories in which index files are stored. If not specified, the value of [`ledgerDirectories`](#ledgerDirectories) will be used.
     default: /tmp/bk-data
+  - param: minUsableSizeForIndexFileCreation
+    description: Minimum safe usable size to be available in index directory for bookie to create index file while replaying journal at the time of bookie start in readonly mode (in bytes)
+    default: 1073741824
   - param: listeningInterface
     description: The network interface that the bookie should listen on. If not set, the bookie will listen on all interfaces.
     default: eth0
@@ -35,9 +48,24 @@ groups:
   - param: explicitLacInterval
     description: Interval between sending an explicit LAC in seconds
     default: 1
-  - param: lostBookieRecoveryDelay
-    description: How long to wait, in seconds, before starting autorecovery of a lost bookie.
-    default: 0
+  - param: allowEphemeralPorts
+    description: Whether the bookie is allowed to use an ephemeral port (port 0) as its server port. By default, an ephemeral port is not allowed. Using an ephemeral port as the service port usually indicates a configuration error. However, in unit tests, using an ephemeral port will address port conflict problems and allow running tests in parallel.
+    default: 'false'
+  - param: enableLocalTransport
+    description: Whether allow the bookie to listen for BookKeeper clients executed on the local JVM.
+    default: 'false'
+  - param: disableServerSocketBind
+    description: Whether allow the bookie to disable bind on network interfaces, this bookie will be available only to BookKeeper clients executed on the local JVM.
+    default: 'false'
+  - param: skipListArenaChunkSize
+    description: The number of bytes we should use as chunk allocation for org.apache.bookkeeper.bookie.SkipListArena
+    default: 4194304
+  - param: skipListArenaMaxAllocSize
+    description: The max size we should allocate from the skiplist arena. Allocations larger than this should be allocated directly by the VM to avoid fragmentation.
+    default: 131072
+  - param: bookieAuthProviderFactoryClass
+    description: The bookie authentication provider factory class name. If this is null, no authentication will take place.
+    default: null
 
 - name: Garbage collection settings
   params:
@@ -53,6 +81,56 @@ groups:
   - param: numReadWorkerThreads
     description: The umber of threads that handle read requests. If 0, reads are handled by [Netty threads](http://netty.io/wiki/thread-model.html) directly.
     default: 1
+  - param: isForceGCAllowWhenNoSpace
+    description: Whether force compaction is allowed when the disk is full or almost full. Forcing GC may get some space back, but may also fill up disk space more quickly. This is because new log files are created before GC, while old garbage log files are deleted after GC.
+    default: 'false'
+
+- name: TSL settings
+  params:
+  - param: tslProvider
+    description: TSL Provider (JDK or OpenSSL)
+    default: OpenSSL
+  - param: tslProviderFactoryClass
+    description: The path to the class that provides security.
+    default: org.apache.bookkeeper.security.SSLContextFactory
+  - param: tslClientAuthentication
+    description: Type of security used by server.
+    default: 'true'
+  - param: tslKeyStoreType
+    description: Bookie Keystore type.
+    default: JKS
+  - param: tslKeyStore
+    description: Bookie Keystore location (path).
+    default: null
+  - param: tslKeyStore
+    description: Bookie Keystore location (path).
+    default: null
+  - param: tslKeyStorePasswordPath
+    description: Bookie Keystore password path, if the keystore is protected by a password.
+    default: null
+  - param: tslTrustStoreType
+    description: Bookie Truststore type.
+    default: null
+  - param: tslTrustStore
+    description: Bookie Truststore location (path).
+    default: null
+  - param: tslTrustStorePasswordPath
+    description: Bookie Truststore password path, if the truststore is protected by a password.
+    default: null
+
+
+- name: Long poll request parameter settings
+  params:
+  - param: numLongPollWorkerThreads
+    description: The number of threads that should handle long poll requests.
+    default: 10
+  - param: requestTimerTickDurationMs
+    description: The tick duration in milliseconds for long poll requests.
+    default: 10
+  - param: requestTimerNumTicks
+    description: The number of ticks per wheel for the long poll request timer.
+    default: 1024
+
 
 - name: AutoRecovery settings
   params:
@@ -65,6 +143,12 @@ groups:
   - param: openLedgerRereplicationGracePeriod
     description: The grace period, in seconds, that the replication worker waits before fencing and replicating a ledger fragment that's still being written to upon bookie failure.
     default: 30
+  - param: autoRecoveryDaemonEnabled
+    description: Whether the bookie itself can start auto-recovery service also or not.
+    default: false
+  - param: lostBookieRecoveryDelay
+    description: How long to wait, in seconds, before starting autorecovery of a lost bookie.
+    default: 0
 
 - name: Netty server settings
   params:
@@ -74,9 +158,37 @@ groups:
 
       If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.
     default: 'true'
+  - param: serverSockKeepalive
+    description: This setting is used to send keep-alive messages on connection-oriented sockets.
+    default: 'true'
+  - param: serverTcpLinger
+    description: The socket linger timeout on close. When enabled, a close or shutdown will not return until all queued messages for the socket have been successfully sent or the linger timeout has been reached. Otherwise, the call returns immediately and the closing is done in the background.
+    default: 0
+  - param: byteBufAllocatorSizeInitial
+    description: The Recv ByteBuf allocator initial buf size.
+    default: 65536
+  - param: byteBufAllocatorSizeMin
+    description: The Recv ByteBuf allocator min buf size.
+    default: 65536
+  - param: byteBufAllocatorSizeMax
+    description: The Recv ByteBuf allocator max buf size.
+    default: 1048576
 
 - name: Journal settings
   params:
+  - param: journalFormatVersionToWrite
+    description: |
+      The journal format version to write.
+      Available formats are 1-5:
+       1: no header
+       2: a header section was added
+       3: ledger key was introduced
+       4: fencing key was introduced
+       5: expanding header to 512 and padding writes to align sector size configured by `journalAlignmentSize`
+
+      By default, it is `4`. If you'd like to enable `padding-writes` feature, you can set journal version to `5`.
+      You can disable `padding-writes` by setting journal version back to `4`. This feature is available in 4.5.0 and onward versions.
+    default: 4
   - param: journalMaxSizeMB
     description: Max file size of journal file, in mega bytes. A new journal file will be created when the old one reaches the file size limitation.
     default: 2048
@@ -107,6 +219,15 @@ groups:
   - param: numJournalCallbackThreads
     description: The number of threads that should handle journal callbacks.
     default: 1
+  - param: journalAlignmentSize
+    description: All the journal writes and commits should be aligned to given size. If not, zeros will be padded to align to given size.
+    default: 512
+  - param: journalBufferedEntriesThreshold
+    description: Maximum entries to buffer to impose on a journal write to achieve grouping.
+    default: 0
+  - param: journalFlushWhenQueueEmpty
+    description: If we should flush the journal when journal queue is empty.
+    default: 'false'
 
 - name: Ledger storage settings
   params:
@@ -122,6 +243,12 @@ groups:
 
       Set this to 0 to disable the periodic check completely. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.
     default: 604800
+  - param: sortedLedgerStorageEnabled
+    description: Whether sorted-ledger storage enabled (default true)
+    default: 'true'
+  - param: skipListSizeLimit
+    description: The skip list data size limitation (default 64MB) in EntryMemTable
+    default: 67108864L
 
 - name: Ledger cache settings
   params:
@@ -144,7 +271,7 @@ groups:
     description: The ledger manager type, which defines how ledgers are stored, managed, and garbage collected. See the [Ledger Manager](../../getting-started/concepts#ledger-manager) guide for more details.
     default: flat
   - param: zkLedgersRootPath
-    description: Root zookeeper path to store ledger metadata. This parameter is used by zookeeper-based ledger manager as a root znode to store all ledgers.
+    description: Root Zookeeper path to store ledger metadata. This parameter is used by zookeeper-based ledger manager as a root znode to store all ledgers.
     default: /ledgers
 
 - name: Entry log settings
@@ -209,6 +336,10 @@ groups:
   - param: readOnlyModeEnabled
     description: If all ledger directories configured are full, then support only read requests for clients. If "readOnlyModeEnabled=true" then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.
     default: 'false'
+  - param: forceReadOnlyBookie
+    description: Whether the bookie is force started in read only mode or not.
+    default: 'false'
+
 
 - name: Disk utilization
   params:
@@ -220,6 +351,9 @@ groups:
     description: |
       Set the disk free space low water mark threshold. Disk is considered full when usage threshold is exceeded. Disk returns back to non-full state when usage is  below low water mark threshold. This prevents it from going back and forth between these states frequently when concurrent writes and compaction are happening. This also prevent bookie from switching frequently between read-only and read-writes states in the same cases.
     default: 0.90
+  - param: diskUsageWarnThreshold
+    description: The disk free space low water mark threshold. Disk is considered full when usage threshold is exceeded. Disk returns back to non-full state when usage is below low water mark threshold. This prevents it from going back and forth between these states frequently when concurrent writes and compaction are happening. This also prevent bookie from switching frequently between read-only and read-writes states in the same cases.
+    default: 0.95
   - param: diskCheckInterval
     description: Disk check interval in milliseconds. Interval to check the ledger dirs usage.
     default: 10000
@@ -228,8 +362,17 @@ groups:
   params:
   - param: zkServers
     description: |
-      A list of one of more servers on which zookeeper is running. The server list can be comma separated values, for example `zkServers=zk1:2181,zk2:2181,zk3:2181`.
+      A list of one of more servers on which Zookeeper is running. The server list can be comma separated values, for example `zkServers=zk1:2181,zk2:2181,zk3:2181`.
     default: "localhost:2181"
   - param: zkTimeout
     description: ZooKeeper client session timeout in milliseconds. Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout  JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue.
     default: 10
+  - param: zkRetryBackoffStartMs
+    description: The Zookeeper client backoff retry start time in millis.
+    default: 1000
+  - param: zkRetryBackoffMaxMs
+    description: The Zookeeper client backoff retry max time in millis.
+    default: 10000
+  - param: zkEnableSecurity
+    description: Set ACLs on every node written on ZooKeeper, this way only allowed users will be able to read and write BookKeeper metadata stored on ZooKeeper. In order to make ACLs work you need to setup ZooKeeper JAAS authentication all the bookies and Client need to share the same user, and this is usually done using Kerberos authentication. See ZooKeeper documentation
+    default: 'false'

-- 
To stop receiving notification emails like this one, please contact
['"commits@bookkeeper.apache.org" <co...@bookkeeper.apache.org>'].