/// <summary> /// Initializes a new instance of the <see cref="DataStorageConfiguration"/> class. /// </summary> /// <param name="reader">The reader.</param> internal DataStorageConfiguration(IBinaryRawReader reader) { Debug.Assert(reader != null); StoragePath = reader.ReadString(); CheckpointFrequency = reader.ReadLongAsTimespan(); CheckpointThreads = reader.ReadInt(); LockWaitTime = reader.ReadLongAsTimespan(); WalHistorySize = reader.ReadInt(); WalSegments = reader.ReadInt(); WalSegmentSize = reader.ReadInt(); WalPath = reader.ReadString(); WalArchivePath = reader.ReadString(); WalMode = (WalMode)reader.ReadInt(); WalThreadLocalBufferSize = reader.ReadInt(); WalFlushFrequency = reader.ReadLongAsTimespan(); WalFsyncDelayNanos = reader.ReadLong(); WalRecordIteratorBufferSize = reader.ReadInt(); AlwaysWriteFullPages = reader.ReadBoolean(); MetricsEnabled = reader.ReadBoolean(); MetricsSubIntervalCount = reader.ReadInt(); MetricsRateTimeInterval = reader.ReadLongAsTimespan(); CheckpointWriteOrder = (CheckpointWriteOrder)reader.ReadInt(); WriteThrottlingEnabled = reader.ReadBoolean(); WalCompactionEnabled = reader.ReadBoolean(); MaxWalArchiveSize = reader.ReadLong(); #pragma warning disable 618 SystemRegionInitialSize = reader.ReadLong(); SystemRegionMaxSize = reader.ReadLong(); #pragma warning restore 618 PageSize = reader.ReadInt(); ConcurrencyLevel = reader.ReadInt(); WalAutoArchiveAfterInactivity = reader.ReadLongAsTimespan(); WalForceArchiveTimeout = reader.ReadLongAsTimespan(); CheckpointReadLockTimeout = reader.ReadTimeSpanNullable(); WalPageCompression = (DiskPageCompression)reader.ReadInt(); WalPageCompressionLevel = reader.ReadIntNullable(); var count = reader.ReadInt(); if (count > 0) { DataRegionConfigurations = Enumerable.Range(0, count) .Select(x => new DataRegionConfiguration(reader)) .ToArray(); } if (reader.ReadBoolean()) { DefaultDataRegionConfiguration = new DataRegionConfiguration(reader); } if (reader.ReadBoolean()) { SystemDataRegionConfiguration = new SystemDataRegionConfiguration(reader); } }
/// <summary> /// Initializes a new instance of the <see cref="DataStorageConfiguration"/> class. /// </summary> /// <param name="reader">The reader.</param> internal DataStorageConfiguration(IBinaryRawReader reader) { Debug.Assert(reader != null); StoragePath = reader.ReadString(); CheckpointFrequency = reader.ReadLongAsTimespan(); CheckpointPageBufferSize = reader.ReadLong(); CheckpointThreads = reader.ReadInt(); LockWaitTime = reader.ReadLongAsTimespan(); WalHistorySize = reader.ReadInt(); WalSegments = reader.ReadInt(); WalSegmentSize = reader.ReadInt(); WalPath = reader.ReadString(); WalArchivePath = reader.ReadString(); WalMode = (WalMode)reader.ReadInt(); WalThreadLocalBufferSize = reader.ReadInt(); WalFlushFrequency = reader.ReadLongAsTimespan(); WalFsyncDelayNanos = reader.ReadLong(); WalRecordIteratorBufferSize = reader.ReadInt(); AlwaysWriteFullPages = reader.ReadBoolean(); MetricsEnabled = reader.ReadBoolean(); MetricsSubIntervalCount = reader.ReadInt(); MetricsRateTimeInterval = reader.ReadLongAsTimespan(); CheckpointWriteOrder = (CheckpointWriteOrder)reader.ReadInt(); WriteThrottlingEnabled = reader.ReadBoolean(); SystemRegionInitialSize = reader.ReadLong(); SystemRegionMaxSize = reader.ReadLong(); PageSize = reader.ReadInt(); ConcurrencyLevel = reader.ReadInt(); var count = reader.ReadInt(); if (count > 0) { DataRegionConfigurations = Enumerable.Range(0, count) .Select(x => new DataRegionConfiguration(reader)) .ToArray(); } if (reader.ReadBoolean()) { DefaultDataRegionConfiguration = new DataRegionConfiguration(reader); } }