4store

Installation

Installed (suspiciously?) easily via homebrew

sudo -i -u hugh /opt/homebrew/bin/brew install fourstore

Storage & Configs

Data storage is in /opt/homebrew/var/fourstore

Config in /etc/4store.conf

Operation

Note that in order to use 4s-admin utility, there must be a running instance of 4s-boss daemon. If pgrep 4s-boss doesn’t return any output, run sudo /opt/homebrew/bin/4s-boss to start it.

Remember also that you can only use one of 4s-httpd and 4s-import concurrently on the same store.

It’s less than ideal, but things seem to work best if 4s-boss and 4s-httpd are run as root.

You can run 4s-admin commands as any user, as they are actioned by 4s-boss which should be running as root.

List store status

4s-admin --verbose list-stores

Creating stores

The number of segments must be a power of 2. General rule-of-thumb is 2x number of cores, so suggest on this 12-core machine use 8 or 16 segments for any new stores (copying across from bytemark will be two segment stores).

4s-admin create-store foo --segments=8

Start/Stop/Delete store(s)

You can end the following commands with multiple store names or --all

4s-admin start-stores foo
4s-admin stop-stores foo
4s-admin delete-stores foo

Start/stop httpd

Each 4s-httpd daemon is started on a specific port. See config in /etc/4store.conf

sudo 4s-httpd foo

To specify a different port, or if not in /etc/4store.conf use 4s-http -p 9876 foo

As far as I recall, there isn’t a good way to stop 4s-httpd processes… use
sudo pkill -f '4s-httpd libmus_A'