public void Setup(int defaultMaxNumberOfItemsToIndexInSingleBatch, int defaultInitialNumberOfItemsToIndexInSingleBatch)
{
MaxPageSize =
new IntegerSettingWithMin(settings["Raven/MaxPageSize"], 1024, 10);
MemoryCacheLimitMegabytes =
new IntegerSetting(settings["Raven/MemoryCacheLimitMegabytes"], GetDefaultMemoryCacheLimitMegabytes);
MemoryCacheExpiration =
new TimeSpanSetting(settings["Raven/MemoryCacheExpiration"], TimeSpan.FromMinutes(5),
TimeSpanArgumentType.FromSeconds);
MemoryCacheLimitPercentage =
new IntegerSetting(settings["Raven/MemoryCacheLimitPercentage"], 0 /* auto size */);
MemoryCacheLimitCheckInterval =
new TimeSpanSetting(settings["Raven/MemoryCacheLimitCheckInterval"], MemoryCache.Default.PollingInterval,
TimeSpanArgumentType.FromParse);
MaxIndexingRunLatency =
new TimeSpanSetting(settings["Raven/MaxIndexingRunLatency"], TimeSpan.FromMinutes(5),
TimeSpanArgumentType.FromParse);
MaxIndexWritesBeforeRecreate =
new IntegerSetting(settings["Raven/MaxIndexWritesBeforeRecreate"], 256 * 1024);
MaxNumberOfItemsToIndexInSingleBatch =
new IntegerSettingWithMin(settings["Raven/MaxNumberOfItemsToIndexInSingleBatch"],
defaultMaxNumberOfItemsToIndexInSingleBatch, 128);
AvailableMemoryForRaisingIndexBatchSizeLimit =
new IntegerSetting(settings["Raven/AvailableMemoryForRaisingIndexBatchSizeLimit"],
Math.Min(768, MemoryStatistics.TotalPhysicalMemory/2));
MaxNumberOfItemsToReduceInSingleBatch =
new IntegerSettingWithMin(settings["Raven/MaxNumberOfItemsToReduceInSingleBatch"],
defaultMaxNumberOfItemsToIndexInSingleBatch/2, 128);
NumberOfItemsToExecuteReduceInSingleStep =
new IntegerSetting(settings["Raven/NumberOfItemsToExecuteReduceInSingleStep"], 1024);
MaxNumberOfParallelIndexTasks =
new IntegerSettingWithMin(settings["Raven/MaxNumberOfParallelIndexTasks"], Environment.ProcessorCount, 1);
NewIndexInMemoryMaxMb =
new MultipliedIntegerSetting(new IntegerSettingWithMin(settings["Raven/NewIndexInMemoryMaxMB"], 64, 1), 1024*1024);
RunInMemory =
new BooleanSetting(settings["Raven/RunInMemory"], false);
CreateAutoIndexesForAdHocQueriesIfNeeded =
new BooleanSetting(settings["Raven/CreateAutoIndexesForAdHocQueriesIfNeeded"], true);
ResetIndexOnUncleanShutdown =
new BooleanSetting(settings["Raven/ResetIndexOnUncleanShutdown"], false);
DataDir =
new StringSetting(settings["Raven/DataDir"], @"~\Data");
IndexStoragePath =
new StringSetting(settings["Raven/IndexStoragePath"], (string) null);
HostName =
new StringSetting(settings["Raven/HostName"], (string) null);
Port =
new StringSetting(settings["Raven/Port"], (string) null);
UseSsl =
new BooleanSetting(settings["Raven/UseSsl"], false);
HttpCompression =
new BooleanSetting(settings["Raven/HttpCompression"], true);
AccessControlAllowOrigin =
new StringSetting(settings["Raven/AccessControlAllowOrigin"], (string) null);
AccessControlMaxAge =
new StringSetting(settings["Raven/AccessControlMaxAge"], "1728000" /* 20 days */);
AccessControlAllowMethods =
new StringSetting(settings["Raven/AccessControlAllowMethods"], "PUT,PATCH,GET,DELETE,POST");
AccessControlRequestHeaders =
new StringSetting(settings["Raven/AccessControlRequestHeaders"], (string) null);
RedirectStudioUrl =
new StringSetting(settings["Raven/RedirectStudioUrl"], (string) null);
DisableDocumentPreFetchingForIndexing =
new BooleanSetting(settings["Raven/DisableDocumentPreFetchingForIndexing"], false);
MaxNumberOfItemsToPreFetchForIndexing =
new IntegerSettingWithMin(settings["Raven/MaxNumberOfItemsToPreFetchForIndexing"],
defaultMaxNumberOfItemsToIndexInSingleBatch, 128);
WebDir =
new StringSetting(settings["Raven/WebDir"], GetDefaultWebDir);
PluginsDirectory =
new StringSetting(settings["Raven/PluginsDirectory"], @"~\Plugins");
CompiledIndexCacheDirectory =
new StringSetting(settings["Raven/CompiledIndexCacheDirectory"], @"~\Raven\CompiledIndexCache");
TaskScheduler =
new StringSetting(settings["Raven/TaskScheduler"], (string) null);
AllowLocalAccessWithoutAuthorization =
new BooleanSetting(settings["Raven/AllowLocalAccessWithoutAuthorization"], false);
MaxIndexCommitPointStoreTimeInterval =
new TimeSpanSetting(settings["Raven/MaxIndexCommitPointStoreTimeInterval"], TimeSpan.FromMinutes(5),
TimeSpanArgumentType.FromParse);
MaxNumberOfStoredCommitPoints =
new IntegerSetting(settings["Raven/MaxNumberOfStoredCommitPoints"], 5);
MinIndexingTimeIntervalToStoreCommitPoint =
new TimeSpanSetting(settings["Raven/MinIndexingTimeIntervalToStoreCommitPoint"], TimeSpan.FromMinutes(1),
TimeSpanArgumentType.FromParse);
TimeToWaitBeforeRunningIdleIndexes = new TimeSpanSetting(settings["Raven/TimeToWaitBeforeRunningIdleIndexes"], TimeSpan.FromMinutes(10), TimeSpanArgumentType.FromParse);
TimeToWaitBeforeMarkingAutoIndexAsIdle = new TimeSpanSetting(settings["Raven/TimeToWaitBeforeMarkingAutoIndexAsIdle"], TimeSpan.FromHours(1), TimeSpanArgumentType.FromParse);
TimeToWaitBeforeMarkingIdleIndexAsAbandoned = new TimeSpanSetting(settings["Raven/TimeToWaitBeforeMarkingIdleIndexAsAbandoned"], TimeSpan.FromHours(72), TimeSpanArgumentType.FromParse);
TimeToWaitBeforeRunningAbandonedIndexes = new TimeSpanSetting(settings["Raven/TimeToWaitBeforeRunningAbandonedIndexes"], TimeSpan.FromHours(3), TimeSpanArgumentType.FromParse);
DisableClusterDiscovery = new BooleanSetting(settings["Raven/DisableClusterDiscovery"], false);
ClusterName = new StringSetting(settings["Raven/ClusterName"], (string)null);
ServerName = new StringSetting(settings["Raven/ServerName"], (string)null);
MaxStepsForScript = new IntegerSetting(settings["Raven/MaxStepsForScript"], 10*1000);
AdditionalStepsForScriptBasedOnDocumentSize = new IntegerSetting(settings["Raven/AdditionalStepsForScriptBasedOnDocumentSize"], 5);
}