PDA

View Full Version : Help with parallel building


deramor
08-07-2019, 10:43 AM
Hello,

Over the years, I've attempted to build in parallel builds to my processes but ultimately it has proven difficult. I was brainstorming about it and something that I think would help is the idea of a step anchor.

Let me explain:
Currently a wait step can wait for various things but not a list of steps to complete. If each step had an anchor, the wait can be told to only continue once these steps finish or pass.

An anchor, in my view, would be a field on each step that is a unique value (maybe a guid??) that is generated when the step is added to the build process. I decided not to do this by step number because step numbers tend to change over time.

Does any of this sound like it is helpful or already built in? I've tried to manage parallel builds using PIDs but it ended up being incredibly difficult to manage.

kinook
08-08-2019, 09:00 AM
Each step does have an ID property

https://kinook.com/VisBuildPro/Manual/idproperty.htm

which can be searched on

https://kinook.com/VisBuildPro/Manual/findmethod.htm

although it is not immutable and can change if a step's position in the build changes (steps added or removed before it).

We will consider making the ID persistent and unchanging. Probably would not use a GUID because it could cause file bloat.


Have you tried chained builds?

https://www.kinook.com/VisBuildPro/Manual/index.htm?chainsample.htm

deramor
08-08-2019, 12:15 PM
Hmm that could work but I agree that the logic would be disrupted by changing the number of steps above it. It also doesn't look like there is a way to get a step index by string name. Only by a long.

I'll defer to your expertise about how to persist a unique identifier. The GUID suggestion was only a thought.

Using your suggestions, a wait step would need to be script step.

It would have to retrieve all the step IDs it cared about, then inspect those step objects for a BuildStatus of vbldStepStatSucceeded. If not all are done, do not continue. All of that would need to be in a loop.

When I wrote the initial post, I envisioned all of this happening within a wait step itself. As an input option, instead of providing a list of PIDs to not exist or files to be created, just a list of steps to have status vbldStepStatSucceeded (or any status for that matter). The wait wouldn't need to be in a loop.

My only concern is how would the wait stop waiting and ultimately end the build or fail the build if a step never returned. Perhaps being able to set a step failure status that would force the wait to stop and end the build once all other steps resolved with some kind of status...success or otherwise.

I would be happy to discuss this with you on the phone if you'd like. I believe this would be a really helpful feature. It would likely be something that I can use to justify our site license upgrade from 9.x to 10.x :)

deramor
05-18-2020, 01:05 PM
Any thoughts about this feature? Is it on the product roadmap?

kinook
05-18-2020, 02:27 PM
It is on our todo list. No ETA at this point, though (it's a large effort).

deramor
09-03-2021, 09:45 AM
Hey just checking in. It's been over a year. Any movement on this feature?
I was thinking about this as I watch a long 45 minute process run that could have been run in parallel with the rest of my build. In this case, it could cut the build time in half.

kinook
09-03-2021, 02:02 PM
Nothing to report at this time.

deramor
06-22-2022, 12:21 PM
Fingers crossed. Are there any plans to add something like this?