Method Caching at Runtime

Hi All,

I am working on scaling our deployment strategy and I was wondering if anybody has found, similar to me, that methods cache at runtime when called from a remote network location?

For example: I stored my method files on a NAS on the LAN and the layout files on the local PC. I then launched and executed a multi-hour method and found that we had no problems executing methods this way. Further we even tested the robustness of this by unplugging the Ethernet cable during the middle of the run and found that the method continued to execute just fine even when I severed the connection to the remote repo of the method files.

That leads me to believe that some (or all?) of the method is cached on the local machine at runtime.

Does anybody have successful experience calling remote methods onto a local machine and were your findings the same as mine? How about unsuccessful experiences?

Can Hamilton @EricSindelar_Hamilton @NickHealy_Hamilton @BrandonBare_Hamilton @AlvaroCuevas_Hamilton comment on remote VENUS files caching on the local machine or provide insight as to how files are compiled at runtime and where they are stored?

Thanks,
Brad

That leads me to believe that some (or all?) of the method is cached on the local machine at runtime.

Run control compiles the method and any method dependencies at runtime.

  • This compilation process performs the syntax checking when a method is launched/loaded in Run Control.
  • Many HSL libraries have #ifndef / #ifdef preprocessor directives that define library include dependencies to be loaded only at runtime. The HSLSeqLibrary implements these were the interface is defined when not at runtime, and the HSLStrLib is included when runtime is detected.
#ifdef HSL_RUNTIME
<interface function definiitons>
#endif

#ifdef HSL_RUNTIME
#ifndef __HSLStrLib_hsl__
#include "HSLStrLib.hsl"
#endif
  • This compilation is also why any changes in .hsl files aren’t recognized without closing and relaunching Run Control. Run Control prevents updates to Method or Sub-Method files when Run Control is launched from the Method Editor.
  • The runtime (or not) preprocessors implemented may make it necessary to right-click the Toolbox and select Add/Remove > Library to load updates made to .hsl files.

Essentially, the method and all of its dependencies are loaded when a method is selected and passes the compilation and syntax checking functions in Run Control - at that point, it has compiled everything it needs to execute to completion, assuming it can still access any non-local locations as needed for input files referenced or output files generated during a method.

3 Likes

To see everything that is loaded / compiled for the execution of a method with Run Control

4 Likes

Thanks @WillTurman, this is really helpful info!

@Brad I’m curious, are you storing everything on your NAS or just the .med?

I dropped the ball on this.

On system PC:
Stock libraries installed with VENUS, drivers
LCs
Deck files (lay, res)
Labware

On NAS:
Method files (med, hsl, stp, sub)
All custom libraries, SMTs
Lookup tables
Databases

1 Like

Very cool, thanks!

That’s way better than every computer doing their own thing