Clustering
Clustering an OMERO instance consists of starting multiple OMERO.blitz servers with each allocating user sessions based on some criteria. There are at least two reasons you may want to cluster the OMERO server: availability and throughput.
Availability
Having the ability to have two servers up at the same time implies that even if you have to restart one of the servers, there should be no downtime. Currently, OMERO sessions are sticky to a cluster node so it is not possible to shut down a node at any time. However, all new sessions can be redirected to the server that is to be left turned on. When all active sessions have completed, the chosen server can be shut down.
Throughput
The other main reason to have other servers running is to service more user sessions simultaneously. When dealing with memory-intensive operations like rendering, each added server can make a positive difference. This is only a part of the story, since much of the bottleneck is not the server itself but other shared resources, like the database or the filesystem. To further extend throughput you will need to parallelize these.
Installation
If you are using the default OMERO.grid application descriptor then quickly enabling clustering is as simple as executing:
omero config set omero.cluster.redirector configRedirector
omero node backup start
This starts a second node, named “backup”, which contains a second OMERO.blitz server, “Blitz-1”. By default, this newly created server will not be used until sessions are manually redirected to it.
See also
Read-Only
A read-only server disallows many operations while still permitting
users to log in and retrieve data. Prohibitions for users of read-only
servers include that they may not import data or run scripts. Two
properties control read-only configuration:
omero.cluster.read_only.db
for the database and
omero.cluster.read_only.repo
for the binary repository.
Read-only access to the database assumes that INSERT
and UPDATE
commands cannot be used over a JDBC connection. Read-only access to the
binary repository assumes that filesystem changes cannot be made within
any of the standard OMERO directories. In all cases OMERO’s
TempFileManager expects write access to the volatile
storage location that OMERO_TMPDIR
can be used to configure.
For each of these configuration properties the server assumes read-write
access by default or with a false
setting. Set a property to
true
to have the server treat the corresponding resource as being
read-only. Additionally, without a true
setting the server may log a
warning and regard a resource as being in read-only mode if it discovers
that it does not have write access. The currently effective values are
provided by the configuration service as
omero.cluster.read_only.runtime.db
and
omero.cluster.read_only.runtime.repo
.
Setting omero.pixeldata.memoizer.dir.local
to a read-write
directory allows a read-only server to create and use the Bio-Formats
memo files that cache reader state. The server still checks the default
BioFormatsCache/
directory in the read-only binary repository
for existing memo files that it can copy to this local directory.
$ omero config set omero.cluster.read_only.db true
$ omero config set omero.cluster.read_only.repo true
$ omero config set omero.pixeldata.memoizer.dir.local /tmp/BioFormatsCache
Note
If the deprecated configuration property
omero.cluster.read_only
is set to true
then the
server behaves as if all omero.cluster.read_only.*
properties
were set to true
regardless of any other value that they have.