// Copyright (c) Umbraco. // See LICENSE for more details. using System.ComponentModel; namespace Umbraco.Cms.Core.Configuration.Models; /// /// Typed configuration options for NuCache settings. /// [UmbracoOptions(Constants.Configuration.ConfigNuCache)] public class NuCacheSettings { internal const string StaticNuCacheSerializerType = "MessagePack"; internal const int StaticSqlPageSize = 1000; internal const int StaticKitBatchSize = 1; internal const bool StaticUsePagedSqlQuery = true; /// /// Gets or sets a value defining the BTree block size. /// public int? BTreeBlockSize { get; set; } /// /// The serializer type that nucache uses to persist documents in the database. /// [DefaultValue(StaticNuCacheSerializerType)] public NuCacheSerializerType NuCacheSerializerType { get; set; } = Enum.Parse(StaticNuCacheSerializerType); /// /// The paging size to use for nucache SQL queries. /// [DefaultValue(StaticSqlPageSize)] public int SqlPageSize { get; set; } = StaticSqlPageSize; /// /// The size to use for nucache Kit batches. Higher value means more content loaded into memory at a time. /// [DefaultValue(StaticKitBatchSize)] public int KitBatchSize { get; set; } = StaticKitBatchSize; public bool UnPublishedContentCompression { get; set; } = false; [DefaultValue(StaticUsePagedSqlQuery)] public bool UsePagedSqlQuery { get; set; } = true; }