Documentation

Index

Constants

View Source
const (
	Drives        = "drives"
	Exclude       = "exclude"
	Expiry        = "expiry"
	MaxUse        = "maxuse"
	Quota         = "quota"
	After         = "after"
	WatermarkLow  = "watermark_low"
	WatermarkHigh = "watermark_high"
	Range         = "range"
	Commit        = "commit"

	EnvCacheDrives        = "MINIO_CACHE_DRIVES"
	EnvCacheExclude       = "MINIO_CACHE_EXCLUDE"
	EnvCacheExpiry        = "MINIO_CACHE_EXPIRY"
	EnvCacheMaxUse        = "MINIO_CACHE_MAXUSE"
	EnvCacheQuota         = "MINIO_CACHE_QUOTA"
	EnvCacheAfter         = "MINIO_CACHE_AFTER"
	EnvCacheWatermarkLow  = "MINIO_CACHE_WATERMARK_LOW"
	EnvCacheWatermarkHigh = "MINIO_CACHE_WATERMARK_HIGH"
	EnvCacheRange         = "MINIO_CACHE_RANGE"
	EnvCacheCommit        = "MINIO_CACHE_COMMIT"

	EnvCacheEncryptionMasterKey = "MINIO_CACHE_ENCRYPTION_MASTER_KEY"

	DefaultExpiry        = "90"
	DefaultQuota         = "80"
	DefaultAfter         = "0"
	DefaultWaterMarkLow  = "70"
	DefaultWaterMarkHigh = "80"
	DefaultCacheCommit   = "writethrough"
)

    Cache ENVs

    Variables

    View Source
    var (
    	DefaultKVS = config.KVS{
    		config.KV{
    			Key:   Drives,
    			Value: "",
    		},
    		config.KV{
    			Key:   Exclude,
    			Value: "",
    		},
    		config.KV{
    			Key:   Expiry,
    			Value: DefaultExpiry,
    		},
    		config.KV{
    			Key:   Quota,
    			Value: DefaultQuota,
    		},
    		config.KV{
    			Key:   After,
    			Value: DefaultAfter,
    		},
    		config.KV{
    			Key:   WatermarkLow,
    			Value: DefaultWaterMarkLow,
    		},
    		config.KV{
    			Key:   WatermarkHigh,
    			Value: DefaultWaterMarkHigh,
    		},
    		config.KV{
    			Key:   Range,
    			Value: config.EnableOn,
    		},
    		config.KV{
    			Key:   Commit,
    			Value: DefaultCacheCommit,
    		},
    	}
    )

      DefaultKVS - default KV settings for caching.

      View Source
      var (
      	Help = config.HelpKVS{
      		config.HelpKV{
      			Key:         Drives,
      			Description: `comma separated mountpoints e.g. "/optane1,/optane2"`,
      			Type:        "csv",
      		},
      		config.HelpKV{
      			Key:         Expiry,
      			Description: `cache expiry duration in days e.g. "90"`,
      			Optional:    true,
      			Type:        "number",
      		},
      		config.HelpKV{
      			Key:         Quota,
      			Description: `limit cache drive usage in percentage e.g. "90"`,
      			Optional:    true,
      			Type:        "number",
      		},
      		config.HelpKV{
      			Key:         Exclude,
      			Description: `comma separated wildcard exclusion patterns e.g. "bucket/*.tmp,*.exe"`,
      			Optional:    true,
      			Type:        "csv",
      		},
      		config.HelpKV{
      			Key:         config.Comment,
      			Description: config.DefaultComment,
      			Optional:    true,
      			Type:        "sentence",
      		},
      		config.HelpKV{
      			Key:         After,
      			Description: `minimum accesses before caching an object`,
      			Optional:    true,
      			Type:        "number",
      		},
      		config.HelpKV{
      			Key:         WatermarkLow,
      			Description: `% of cache use at which to stop cache eviction`,
      			Optional:    true,
      			Type:        "number",
      		},
      		config.HelpKV{
      			Key:         WatermarkHigh,
      			Description: `% of cache use at which to start cache eviction`,
      			Optional:    true,
      			Type:        "number",
      		},
      		config.HelpKV{
      			Key:         Range,
      			Description: `set to "on" or "off" caching of independent range requests per object, defaults to "on"`,
      			Optional:    true,
      			Type:        "string",
      		},
      		config.HelpKV{
      			Key:         Commit,
      			Description: `set to control cache commit behavior, defaults to "writethrough"`,
      			Optional:    true,
      			Type:        "string",
      		},
      	}
      )

        Help template for caching feature.

        Functions

        func Enabled

        func Enabled(kvs config.KVS) bool

          Enabled returns if cache is enabled.

          func SetCacheConfig

          func SetCacheConfig(s config.Config, cfg Config)

            SetCacheConfig - One time migration code needed, for migrating from older config to new for Cache.

            Types

            type Config

            type Config struct {
            	Enabled         bool     `json:"-"`
            	Drives          []string `json:"drives"`
            	Expiry          int      `json:"expiry"`
            	MaxUse          int      `json:"maxuse"`
            	Quota           int      `json:"quota"`
            	Exclude         []string `json:"exclude"`
            	After           int      `json:"after"`
            	WatermarkLow    int      `json:"watermark_low"`
            	WatermarkHigh   int      `json:"watermark_high"`
            	Range           bool     `json:"range"`
            	CommitWriteback bool     `json:"-"`
            }

              Config represents cache config settings

              func LookupConfig

              func LookupConfig(kvs config.KVS) (Config, error)

                LookupConfig - extracts cache configuration provided by environment variables and merge them with provided CacheConfiguration.

                func (*Config) UnmarshalJSON

                func (cfg *Config) UnmarshalJSON(data []byte) (err error)

                  UnmarshalJSON - implements JSON unmarshal interface for unmarshalling json entries for CacheConfig.