Imagine Distributed Work Manager (DWMgr) that can:
Call methods or $$-functions in background on any reachable IRIS server (e.g. on Asynchronous or Failover Mirror Member), so called target server,
pushing all necessary input data in local or global variables,
checking status and progress of such work items.
getting results from the work items, be it in local or global variables, in one of two different ways:
by checking execution status and getting the results explicitly,
by calling callback methods.
Manage the status of any configured target server:
get or set its status (online or offline)
evaluate its load by getting the execution queue length, etc.
Possible use cases of DWMgr can be:
Freeing resources of Primary database server by running reports and other resource consuming jobs on a target server
with full control on such a job and
getting their results into the primary database.
Querying remote servers that can respond with noticeable delays, so it's better to run such requests asynchronously.
Thank you for submitting the idea. The status has been changed to "Community Opportunity".
Stay tuned!
I disagree with a sentence that this functionality already exists because it differs from ShardWorkMgr in several ways.
ShardWorkMgr:
works upon ECP, so can't offload the main database from extra payload,
provides unidirectional way of exchange data with to functions being remotely called.
DWMgr:
works upon Mirroring, so can offload the main database,
can proceed on read only mirror members without <PROTECT> errors,
provides bidirectional way of exchange data with functions being remotely called; yes, it uses temporary globals, but this is not a problem even on read only members.
Besides, why so many people voted for the idea despite its existence?
Don't you think that changing its status to "Community opportunity" would be fair solution?
This idea is the Experts Nomination🥇 2nd place winner of the 3rd InterSystems Ideas Contest
Would sharding not address same use cases? (refer: https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GSCALE_sharding#GSCALE_sharding_oview_benefits)