serverSelectionTimeoutMS as configurable value

Our MongoDB database is quite large, and the filesystem on which it is installed is not the most responsive, and so we are seeing problems starting up cryosparc. The startup fails with the following error:

pymongo.errors.ServerSelectionTimeoutError: localhost:39008: [Errno 111] Connection refused, Timeout: 20.0s, Topology Description: <TopologyDescription id: 6320aee36867940fe66ef455, topology_type: Single, servers: [<ServerDescription (‘localhost’, 39008) server_type: Unknown, rtt: None, error=AutoReconnect(‘localhost:39008: [Errno 111] Connection refused’)>]>

If we manually change the value of serverSelectionTimeoutMS in cryosparcm from 20000 to 200000, we can start up cryosparc, albeit slowly.

Can the value of serverSelectionTimeoutMS in cryosparcm be made configurable?

David

Thank you for sharing your experience here. How big is your database and how is its storage implemented?
Are you planning to use the serverSelectionTimeoutMS workaround on your production instance, or will you make other changes to your cryoSPARC setup?

The database is 33 GB, and it sits on a GPFS filesystem. Typically everything is ok, but on occasion the filesystem gets loaded down and sluggish. We don’t have much choice as to where the installation sits, so yes we would use the workaround for the production instance.

We are planning to make serverSelectionTimeoutMS user-configurable, but please read on.

Our team is aware of problems that may occur when the database is hosted on GPFS.

May be there is a way to host the database on different storage?
The path to the database (defined by the CRYOSPARC_DB_PATH variable inside cryosoparc_master/config.sh) can be chosen and implemented independently from the cryosparc_master and cryosparc_worker software paths.

Unfortunately, we are highly constrained as to where such installations can go. We are stuck with GPFS at the moment.