Sharing Remote Pipeline Servers?

LabKey Support Forum (Inactive)
Sharing Remote Pipeline Servers? Ben Bimber  2014-06-11 12:01
Status: Closed
 
Hi guys,

We currently have 1 LK application server and 2 remote pipeline servers. The pipeline servers primarily run sequence analysis jobs; however, our EHR applicaiton has a single nightly job it runs remotely. Everything is virtualized.

We are shortly going to be running 2 LK application servers. One will host our EHR, and one will be more research/data analysis oriented. The latter will run many remote pipeline jobs, and it would get the 2 existing (and maybe more) remote servers. This is great except for the EHR server's single pipeline job. It is convenient to run it remotely since it's a memory inefficient R task. It runs once per day at night for an hour or so. Dedicating a whole pipeline server for this one function seems wasteful.

Is it possible for 2 application servers to share a pipeline server, and/or a single ActiveMQ server? All remote servers could in theory mount the file roots from both app servers.

Assuming they shared a JMS queue, each app server would deposit jobs to run on the appropriate location (all remote servers would be the same location). All remote servers would get these jobs and process them normally. I think I could probably use the appropriate path mapping in my pipelineConfig.xml file to get file roots working right and sort out which server they come from. The thing I dont know is how the 2 app servers would deal with jobs once they're done. Would an app server only process jobs that were created by that server, or would our 2 app servers conflict with each other and steal the other one's jobs?

I could probably also run 2 remote pipeline processes on 1 of these remote servers, but this seems a little uglier and has some negatives. Given the whole environment is virtualized, it may also mean I could stand up a dedicated remote server for the EHR server without really incurring much practical loss (assuming the VM server distributes resources). I thought I'd investigate the sharing options first though.

Thanks in advance.
 
 
jeckels responded:  2014-06-11 13:46
Hi Ben,

I'm sorry to say that it's not possible. The reason is that all jobs and tasks get routed through the JMS queue, including those that will be performed on the web server. "webserver" is a special location name, and if pointed at the same JMS queue, the two different web servers would be stealing jobs from each other.

You'll need to either use separate servers (virtual is fine), or separate JMS queues and remote pipeline processes on the same server.

Thanks,
Josh
 
Ben Bimber responded:  2014-06-12 09:39
Too bad - thanks for the reply.