VOR keeps getting better, and we are excited to announce the latest features, enhancements, and changes

VOR Workbench 

Model Lifecycle

The Model Reservoir now allows users to organize their models using a typical model lifecycle workflow. Users can leverage the standard FRG model development flow or customize to their own organization’s lifecycleFor more information on model lifecycle development, reference the FRG website.

VOR Release Information 

With this release, it is easier to see more information about the release and patch versions the user is currently using.  The VOR About menu was enhanced with an additional option to display the release notes. 

Re-Run and Tag Waterways 

Users can now re-run a waterway directly from the Waterway screenThe new option on the waterway screen launches the study that was run with the options pre-populated from the previous run.  Users may also tag results which allow additional filtering capabilities.

VOR Stream 

Auto scaling of waterways 

The VOR processes can now automatically power on and off AWS and Azure virtual machines to handle the workload of the waterway.  This new feature allows administrators an easier method of scaling workloads across playpens. These new features allow users to optimize performance and costs during critical business intervals.

Model Performance Metrics

The Model Reservoir on the Workbench and VOR Model Monitoring has been enhanced with the capability of providing default model metrics clients can use to monitor their model performance over time.  Additional information on model monitoring can be found on our website. 

File Storage 

The VOR platform now offers the ability for users to read and write from any S3-compliant object base storage system.  Users can add this code to their VOR Stream process creation files as shown in the figures below.  This new functionality provides a less expensive option to store inputs and results.  In most cases the S3 compliant storage will provide superior performance versus traditional database technologies. 

Multiple Merge and Queues for Python and Golang computational nodes 

Python and Golang compute nodes are now able to merge multiple queues into a single queue  This new change helps users build more efficient stream jobs and helps the performance of complex operations.

Native SAS support 

The VOR platform now natively will read SAS tables in the .sas7bdat format (with/without compression).  There is no requirement to install SAS on the compute tier for this functionality to work. The engine reads SAS directly to the VOR queue 

Release Details 

 Features 

  • (models) Add Model Lifecycle Workboard  
  • Include stubs for SDK Python objects in install  
  • (engine) Performance enhancements on interaction with AWS S3  
  • (engine) Add ability to power on/off Azure virtual machines  
  • (ui) Add model performance analytics to the UI  
  • (engine) Enhancements on writing CSV files to AWS S3  
  • (patchnotes) Add button to ‘about’ menu to re-call patch notes dialog & restore ‘update playpen’ button  
  • (engine) Add automatic shutdown of running compute nodes  
  • (engine) Add ability to power on/off AWS EC2 instances  
  • (engine) Multiple input queues for Python computational nodes  
  • (engine) Merge multiple input queues for Python computational nodes  
  • (engine) Add the ability for users to write to CSV files in AWS S3  
  • (ui) Add re-run button to waterway  
  • (engine) Allow multiple queues to be read from a Golang computational node  
  • (ui) Allow user to unselect upload when running modal  
  • (engine) Support reading SAS datasets  
  • (ansible) Backup and restore custom validation file during deployment  
  • (processviewer) Add “info” icon to display node descriptions  
  • (runstudy) Add scenario filename to selected options display  
  • (ui) Add patch notes dialog upon login or refresh  
  • (django) Allow custom validation logic for upload types  
  • (engine) Allow multiple merged input queues for computational Go nodes  

🐛 Fixes 

  • (engine) Fix process structure graph for S3 nodes  
  • (engine) Forced termination causes addition errors  
  • (engine) Race condition with Process struct when starting the process from the UI  
  • (ansible) Ensure multi-arch tomli is packaged  
  • (engine) Move final stat computation to avoid race condition on terminate  
  • (log) Allow empty log messages  
  • Skip closing nil ssh connection  
  • (engine) Slice bounds out of range panic  
  • (sql) Multiple left joins missing non-matches  
  • (engine) Close queues later in shutdown process to avoid spurious error messages in nodes  
  • (engine) Add missing quotes and spaces for vor show process <name>  
  • (ansible) Use correct Consul key and cert when configuring compute server  
  • (engine) Drop and Keep not restored correctly using vor show table –file <file>  
  • (engine) Allow for single quoted strings in a process file  
  • Remove prior nginx configurations on deployment  
  • (sas) Allow for spaces in the output directory path  
  • (engine) Vendor directory missing datareader module for SAS datasets  
  • (frameworks) Allow for the “syntax” column on the model selection modal to be sorted  
  • (engine) Produce a clear message when user passes wrong type to DynFactSet in Python  
  • (engine) Race condition when multiple nodes send errors at the same time  
  • (engine) Null queues are making the expected count estimates extreme 
  • (engine) Enable SSH Kill to stop hung processes  
  • (engine) Simplify reading multiple queues in python to avoid problems with shared memory  
  • (ui) Fix not selecting study when re-running job  
  • (engine) Remove race conditions when shutting a process down  
  • (engine) Race conditions on closing queues in parallel  
  • (engine) Remove additional race conditions when Multiple inputs are joined in a Go node  
  • (ui) Do not allow to delete archived filters  
  • (engine) Run execution errors with no matching logs can be found  
  • (ui) Make table type objects sortable by column headers  
  • (ui) Scenario info dialog: add cancel button and ensure tab selection works 
  • (docs) Update docs for clarity  
  • (engine) Race condition encountered when Golang computational node has merged inputs  
  • (sql) Prediction queues generated from SQL nodes are not populated in the UI  
  • Vor generate cannot find dictionary.csv for format definitions  
  • (rundetails) Show option label instead of key in Study Options section of Run Details  
  • (ui) Fix the styling of Scenario Frequency selection in Info dialog screen  
  • (ansible) Update Vault OIDC provider configuration to send the correct claims  
  • (patchnotes) Reverse sort on patch notes to show newest changelog first  
  • (engine) Historic Ratio Profiling for VOR Stream Processes to improve expected counts  
  • (upload) Allow users to select only some tabs on upload information modal  
  • Add support for converting array field types  
  • (django) Show explicit error messages during upload validation process  
  • (reports) Add scroll to report window for smaller resolutions  
  • (models) Allow save of models with no parameters defined  
  • (methodology) Add warning message when user tries to save with no name specified  
  • (runstudy) Format options selections correctly in selected options window  
  • (sql) Multiple SQL joins produces a compile error 
  • (sql) Missing value in group by variables causes a panic  
  • (django) Fix patch nodes model, fixtures generation script and fixtures  
  • (engine) Ensure Python nodes with errors in logs are reported as failing  
  • (engine) Null output queues on Golang nodes are failing with compile errors  
  • (ansible) Set default Go version to 1.23.0 in Ansible  
  • (ui) Add python critial/fatal logs to error filter on node log 
  • (engine) Correct PATH variable for Super to ensure correct version of GraphViz is used  
  • Add BOM handling to CSV reader  
  • (sql) Missing table in nested SQL  
  • (engine) Python expected counts using wrong area in shared memory  
  • (ansible) Ensure uWSGI is stopped before deleting its Python venv  
  • (engine) Add more try/except logic to get_service_address_with_backoff  Python function  
  • (sql) Empty left table in SQL left join causes panic  

📖 Documentation 

  • Clean up documentation for missing and inaccurate information  
  • Add documentation on playpen configuration 
  • (engine) Documentation for QueueLimit and BufferLen  
  • (install) Add openssh-server dependency to documentation and Ansible  
  • (install) Add xz dependency to documentation and Ansible  
  • Fix missing spaces and punctuation in documentation  
  • (authentication) Provide instructions for updated OIDC credentials without running a deployment 

✏️ Refactor 

  • (ansible) Only point retry_join Consul config to Consul servers  
  • (ansible) Drop RHEL 7 support; ensure OS packages are synced with doc  
  • Replace NGINX with Caddy Server  
  • Suppress excessive logging when packaging artifacts  
  • (sdk) Accept any type for numeric inputs to SDK wrapper functions  
  • Use cast package for type conversions  
  • Use cast package for type conversions

🧪 Testing 

  • (sas) Add missing files to SAS end-to-end tests  
  • Add option to store test diffs  
  • (ui) Upload screen tests  

Request a demo of the new VOR release here.