PDA

View Full Version : Concurrent standalone builds?



LarryBoy
10-11-2010, 06:18 AM
Hi all,

Way back when, in the time of ISWI 2.0 and Developer 8, running more than one instance of the standalone build facility could/would cause indeterminate and generally bad behavior. Accordingly, I created a system-wide arbiter to ensure only one instance of SAB ran at a time.

Fast forward to IS 2011 (having migrated from Dev8 to IS 2011) -- can I scrap my "workaround" after more than 9 years? i.e. Is it possible now to run more than one instance of SAB at the same time? I would think this would be ever more critical now than it was back then, in these days of many-core servers...

Thanks in advance,
John

MichaelU
10-12-2010, 11:43 AM
I believe things are a lot better now, and you are less likely to hit conflicting locked files, although we still do not make any guarantees. However I disagree with the expectation that extra cores means extra builds would go faster; generally speaking an InstallShield build is limited by IO throughput instead of computation speed.

LarryBoy
10-13-2010, 06:46 AM
Well, when the server you're running on has 14 SCSI drives in a RAID 5 configuration, IO's not much of an issue either. And given today it takes as much as 15 minutes to build the installation (that's using Dev8 -- it's longer with IS 2011 I noticed, at least when using automation), being forced to serialize builds is certainly worse than allowing things to run in parallel...

Anyway, thanks for the reply -- here's hoping things work well...

GEPIII
10-21-2010, 02:46 PM
Hi LarryBoy,

Do you mind me asking what your solution was for ensuring only one standalone build ran at a time? We had a similar problem using standalone 2009. I am about to see if the problem still exists in 2010.

Thanks,
George

LarryBoy
10-21-2010, 04:37 PM
I wrote a service which created and managed a semaphore -- each build, then, would request access to the semaphore. If there wasn't anyone in line, it was assigned the semaphore and allowed to complete its task(s) -- if there was one or more build in line ahead of it, it would wait until everyone ahead of it had completed their tasks.

It's funny - that mechanism's been in place for 10 years now - I was hoping, though, after that much time IS would have the concurrent build thing down pat...

slomicka
10-22-2010, 09:27 AM
We have a beefy 2010 build server as well. I finally got IsCmdBld integrated with TFS2010's build infrastructure. I too saw problems. All of the builds run without error stand alone. When I run concurrent builds the IS portion of the builds crashes with "ISDEV : fatal error -5092: Internal build error" - regularly. I would hope that we could run more than one install creation at a time. More cores do not imply faster builds but for this of us who need to parallelize builds, and have planned for it, it’s rather disappointing to have IsCmdBld not do something as rudimentary as run concurrently.

Furthermore, you cannot load more than more IS project in VS2010 at a time ether. I created one VS2010 solution to mange 50 IS build projects. After opening up a few IS projects in the VS I noticed that various properties in the some IS projects were being interchanged with properties in other IS projects.

IsDev and IsCmdBld undoubtedly share some of the same code base. Somewhere in that code are global “resources”. That is why you can’t load two projects in VS2010 or run two builds simultaneously.

It’s really kind of ridiculous.

Steve

GEPIII
10-22-2010, 11:05 AM
Thanks Larry. I will look into doing something similar.