mse4-config

Configuring MSE4

Manual section:7

Configuring MSE4

This manual page describes the configuration format and configuration options used in the MSE4 configuration files.

See mse4-config-reference for a reference cataloging all of the valid configuration keys.

Config file format

MSE4 uses a structured configuration file, where keys are associated with values. Key and value pairs are separated by either ‘:’ (colon) or ‘=’ (equal sign).

The values can be scalars (boolean, integer, float or string values). String values should use double-quotes, while boolean, integer or float values should be given without any quotes.

Values can also be lists and groups. Lists are denoted by parenthesis, and contain a number of values separated by commas. Groups are denoted by curly brackets, inside of which further key and value pairs are given.

MSE4 uses the libconfig library for parsing its configuration files. Further information about the format can be found in the library’s documentation [1].

At the top level MSE4 expects to find a single key called “env” that holds a group. All other configuration directives are given inside of this top level group. An empty configuration file looks like this:

env: {
     # All configuration directives are given inside this group
};

Environment configuration

The top most group named “env” houses the configuration settings that affect the MSE4 instance globally.

Example environment configuration:

env: {
     # Set a default subdivision of 2 for all categories
     default_subdivisions = 2;
};

Book and store configuration

To enable persisted caches, one or more books, each having one or more stores, need to be configured. Books are custom databases that contain the meta information about the objects in the cache. One book can manage the meta information for many stores. The stores are single large files that contain all of the cache payload data.

The environment key “books” takes a list of groups, where each group defines a book. Each book group contains the configuration keys that apply specifically to that book.

The book group further takes a key “stores”, which should be set to a list of groups, each group defining a store to be managed by that book.

Books and stores both takes a required key “id” which gives the book or store a symbolic ID. This ID will be used when reporting on the book or store in logs and messages. Note that this ID needs to be globally unique to the configuration, no book or store can have the same ID as any other book or store.

Example configuration using two books, the books having one store each, spread over two disks:

env: {
     books = ( {
             id = "book1";
             filename = "/var/lib/mse/disk1/book1";
             size = "2g";

             stores = ( {
                     id = "b1s1";
                     filename = "/var/lib/mse/disk1/store1";
                     size = "100g";
             } );
     }, {
             id = "book2";
             filename = "/var/lib/mse/disk2/book2";
             size = "2g";

             stores = ( {
                     id = "store2";
                     filename = "/var/lib/mse/disk2/store2";
                     size = "100g";
             } );
     } );
};

See mse4-persisted for more information and guidelines for configuring books and stores.