Redis Servers

Picarus uses Redis essentially as a global cluster memory as the servers themselves do not hold any state. Each redis server comes with a script that provides admin-level control through the command line (i.e., run the script by itself, see –help on each) for common tasks that need to be done on them. In addition to these, each annotation task needs it’s own Redis server to store state in so there are actually many Redis instances for this capacity and they are registered with the Annotator’s server below (using annotators.py).

Name API Exposed Script Description
Users Partial (prefixes/projects) users.py User data including prefixes (row permissions) and projects (prefix/model groups)
Yubikey No yubikey.py Yubikey credentials (AES key, user email, etc.)
Annotators Partial (user’s tasks) annotators.py Available annotation redis pool (each task needs a Redis) and current tasks

Redis Tables

The previous section describes the literal Redis servers used by Picarus; however, not all of these are exposed to the user. This section describes what the user can access through the API.

Table Description Row
prefixes Auth’d user’s prefixes Data table (images/video)
projects Auth’d user’s projects Data table (images/video)
annotations Auth’d user’s annotation tasks Annotation Task ID
annotations-results-:task Annotation results for :task (row=annotation) Annotation ID
annotations-users-:task Annotators for :task (row=annotator) User ID