Configuration options
All the configuration options detailed below are defined in the
Changes to the config file or additions / removal from the Plugins directory will not be picked up automatically by the RavenDB service. For your changes to be recognized you will need to restart the service. You can do so calling: Raven.Server.exe /restart
.
If you are running in Embedded mode, or RavenDB is running as an IIS application, touching the web.config file will cause IIS to automatically restart RavenDB.
Sample configurations file
This is the standard app.config XML file. The appSettings
section is where the configuration options go, also for web applications which have a web.config file instead.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Raven/Port" value="*"/>
<add key="Raven/DataDir" value="~\Data"/>
<add key="Raven/AnonymousAccess" value="Get" />
</appSettings>
<runtime>
<loadFromRemoteSources enabled="true"/>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="Analyzers"/>
</assemblyBinding>
</runtime>
</configuration>
Core settings
-
Raven/BackgroundTasksPriority
What thread priority to give the various background tasks RavenDB uses (mostly for indexing)
Allowed values: Lowest, BelowNormal, Normal, AboveNormal, Highest
Default: Normal -
Raven/MaxPageSize
The maximum allowed page size for queries.
Default: 1024
Minimum: 10 -
Raven/MemoryCacheExpiration
The expiration value for documents in the internal document cache. Value is in seconds. Default: 5 minutes
Index settings
-
Raven/IndexStoragePath
The path to the indexes that are kept on disk. Putting them in a different drive than the actual data will improve performance significantly.
Default: ~/Data/Indexes -
Raven/SkipCreatingStudioIndexes
Set to true, tells RavenDB NOT to create the indexes that are used by the Management Studio to provide some Collection related features.
Allowed values: true/false
Default: false -
Raven/MaxNumberOfParallelIndexTasks
The maximum number of indexing tasks allowed to run in parallel
Default: the number of processors in the current machine -
Raven/MaxNumberOfItemsToIndexInSingleBatch
Max number of items to take for indexing in a batch
Default: 2500
Minimum: 128 -
Raven/TempIndexPromotionMinimumQueryCount
How many times a temporary, auto-generated index has to be accessed before it can be promoted to be a permanent one
Default: 100 -
Raven/TempIndexPromotionThreshold
Time (in milliseconds) the index has to be queried at least once in order for it to become permanent
Default: 60000 (once per minute) -
Raven/TempIndexCleanupPeriod
How often to run the temporary index cleanup process (in seconds)
Default: 600 (10 minutes) -
Raven/TempIndexCleanupThreshold
How much time in seconds to wait after a temporary index has been used before removing it if no further calls were made to it during that time
Default: 1200 (20 minutes) -
Raven/TempIndexInMemoryMaxMB
Temp indexes are kept in memory until they reach this integer value in MB
Default: 25 MB
Minimum: 1 MB
Data settings:
-
Raven/RunInMemory
Should RavenDB's storage be in-memory. If set to true, Munin would be used as the storage engine, regardless of what was specified for StorageTypeName
Allowed values: true/false
Default: false -
Raven/DataDir
The directory for the RavenDB database. You can use the ~\ prefix to refer to RavenDB's base directory.
Default: ~\Data -
Raven/StorageTypeName
What storage type to use (see: RavenDB Storage engines)
Allowed values: esent, munin (at this point of time only Esent is fully supported by RavenDB)
Default: esent -
Raven/TransactionMode
What sort of transaction mode to use
Allowed values: Lazy (faster, but can result in data loss in the case of server crash), Safe (slower, but will never lose data)
Default: Safe
Http settings
-
Raven/HostName
The hostname to use when creating the http listener (null to accept any hostname or address)
Default: none, binds to all host names -
Raven/Port The port to use when creating the http listener.
Default: 8080 -
Raven/VirtualDirectory
The virtual directory to use when creating the http listener.
Default: / -
Raven/HttpCompression
Whether to use http compression or not
Allowed values: true/false
Default: true -
Raven/AccessControlAllowOrigin
Determine the value of the Access-Control-Allow-Origin header sent by the server
Allowed values: null (don't send the header), *, http://example.org -
Raven/AnonymousAccess
Defines which operations are allowed for anonymous users
Allowed values: All, Get, None
Default: Get
Misc settings
-
Raven/PluginsDirectory
Where to look for plugins for RavenDB
Default: ~\Plugins -
Raven/WebDir
The directory to search for RavenDB's WebUI. This is usually only useful if you are debugging RavenDB's WebUI
Default: ~/Raven/WebUI -
Raven/Authorization/Windows/RequiredGroups
Limit the users that can authenticate to RavenDB to only users in the specified groups. Multiple groups can be specified, separated by a semi column (;).
Esent settings
-
Raven/Esent/CacheSizeMax
The maximum size of the in memory cache that is used by the storage engine. The value is in megabytes.
Default: 1024 -
Raven/Esent/MaxVerPages
The maximum size of version store (in memory modified data) available. The value is in megabytes.
Default: 128 -
Raven/Esent/DbExtensionSize
The size that the database file will be enlarged with when the file is full. The value is in megabytes. Lower values will result in smaller file size, but slower performance.
Default: 16 -
Raven/Esent/LogFileSize
The size of the database log file. The value is in megabytes.
Default: 64 -
Raven/Esent/LogBuffers
The size of the in memory buffer for transaction log.
Default: 16 -
Raven/Esent/MaxCursors
The maximum number of cursors allowed concurrently.
Default: 2048 -
Raven/Esent/LogsPath
Where to keep the Esent transaction logs. Putting the logs in a different drive than the data and indexes will improve performance significantly.
Default: ~/Data/logs -
Raven/Esent/CircularLog
Whether or not to enable circular logging with Esent.
Default: true