Page 1 of 1

what is the meaning of allow multiple instances?

Posted: Wed Mar 07, 2007 6:26 am
by mallikharjuna
what is the meaning of allw multiple instances in server jobs?

Posted: Wed Mar 07, 2007 6:34 am
by trobinson
When this checkbox is checked and the job compiled, one can run more than one copy of the job at a time. It means exactly what is says. Multiple instances (copies) of a DataStage job can be run simultaneously. The Engine can do this by appending an invocation id to each running instance.

Posted: Wed Mar 07, 2007 6:48 am
by kumar_s
You will have single job with single executable, but you can instantiate different instance of same job using different Invocation Id passed during run time. Its basically to reuse same set of code multiple times for several input.
Pls go through the given document, or search the forum to get full details about it.

Posted: Wed Mar 07, 2007 7:49 am
by chulett
ps. The 'Help' for this concept is in the online help accessable from the Director.

Posted: Wed Mar 07, 2007 9:28 am
by DSguru2B
Its synonymous to multiple threads. Using Multiple Instance Jobs, one can incorporate massive parallism in a server job. Huge performance gains can be noticed for high volumes of data.

Posted: Wed Mar 07, 2007 10:14 am
by kcbland
Just to be clear, a thread is not the same as a job instance. Multi-threaded and multi-processing are two different things.

Multi-threaded is like juggling: there's multiple balls in the air, but one person is managing catching and throwing.

Multi-processing is liike making clones of a one-ball juggler, there's N jugglers each with one ball throwing and catching to him/herself. Partitioned parallelism is the heart of this concept.

Multi-instancing synonymous to multi-processing. You achieve even greater heights of processing throughput with multi-threaded multi-processing.

Multi-processing gives you more results sooner because it's usually more scalable. Imagine deriving a row of data, where all columns are simultaneously derived. Each column is derived in an independent thread and brought together by the thread manager. This multi-threaded handling is probably much more expensive than simply top-down deriving the set of columns. However, processing multiple rows simultaneously would yield much greater results. If you're row-order processing restricted, you would partition wisely but then use multi-processing on each partitioned set. Even with inter-processing, row buffering, or independent stages (operators) with FIFO buffering still follow multi-processing framework.

Posted: Wed Mar 07, 2007 10:25 am
by DSguru2B
I stand corrected. Your right, mult-threading is processed by a single control where as multiple instance is synonymous to making clones. Great example Ken.

Posted: Wed Mar 07, 2007 12:57 pm
by ray.wurlod
There's a lot less that can go wrong juggling one ball compared to juggling many! Robustness stems from an approach that uses multi-processing rather than multi-threading.