RTB selective compile (with ARAT) very slow

Posted by cverbiest on 02-Feb-2016 10:22

I'm not sure if its because of ARAT or not. I see similar numbers of db accesses with our current compile using the rtb_api but it's not that slow.

At first I though the ant/build_rtb_compile.xml job just hung, no feedback after more than an hour while the last rtb_api selective  compile only took 10 minutes.

I started adding a verbose option to automation/scm/custom/rtb/p/rtbcust_compiler.p, (currently hardcoded verbose no means of passing the parameter yet.)

This shows me that it takes ages to compiling some sources. While waiting I see millions (literally) of accesses on the rtb_pname table, .

   [PCTRun]   Processing workspace: rel16plus...
   [PCTRun]   /*****************************************/
   [PCTRun]    Setting workspace in RTB session to 'rel16plus'...
   [PCTRun]    Compile settings
   [PCTRun]    =================
   [PCTRun]    Workspace       : rel16plus
   [PCTRun]    Task number     : 000000000
   [PCTRun]    Module          : *
   [PCTRun]    Group           : *
   [PCTRun]    Object type     : *
   [PCTRun]    Object(s)       : *
   [PCTRun]    Force compile   : no
   [PCTRun]    Listings        : no
   [PCTRun]    Xref            : yes
   [PCTRun]    Ignore warnings : yes
   [PCTRun]    Stop on error   : no
   [PCTRun]    Verbose         : no
   [PCTRun]    Starting custom selective compiler:
   [PCTRun]     w:\rtb\current_win\automation\scm\custom\rtb\p\rtbcust_compiler.p
   [PCTRun]    Performing selective compile for workspace: rel16plus
   [PCTRun] 2016-02-02T16:54:28
   [PCTRun] Object: CselQuery.cls - OK
   [PCTRun]   Pmod: be.cce.erpalg.CceSelect
   [PCTRun]   Path: /cce/rel16plus/src/be/cce/erpalg/CceSelect/CselQuery.cls
   [PCTRun]
   [PCTRun] 2016-02-02T16:56:21
   [PCTRun] Object: _pwrun.p - OK
   [PCTRun]   Pmod: adecommx
   [PCTRun]   Path: /cce/rel16plus/src/adecommx/_pwrun.p
   [PCTRun]
   [PCTRun] 2016-02-02T16:56:21
   [PCTRun] Object: _pwsrch.p - OK
   [PCTRun]   Pmod: adecommx
   [PCTRun]   Path: /cce/rel16plus/src/adecommx/_pwsrch.p
   [PCTRun]
   [PCTRun] 2016-02-02T17:01:25
   [PCTRun] Object: csel-d.p - OK
   [PCTRun]   Pmod: ccealg
   [PCTRun]   Path: /cce/rel16plus/src/ccealg/csel-d.p
   [PCTRun]
   [PCTRun] 2016-02-02T17:01:25
   [PCTRun] Object: csel-w.p - OK
   [PCTRun]   Pmod: ccealg
   [PCTRun]   Path: /cce/rel16plus/src/ccealg/csel-w.p
   [PCTRun]
   [PCTRun] 2016-02-02T17:01:31
   [PCTRun] Object: cselhfd-p.p - OK
   [PCTRun]   Pmod: ccealg
   [PCTRun]   Path: /cce/rel16plus/src/ccealg/cselhfd-p.p
   [PCTRun]
   [PCTRun] 2016-02-02T17:01:31
   [PCTRun] Object: cslh-d.p - OK
   [PCTRun]   Pmod: ccealg
   [PCTRun]   Path: /cce/rel16plus/src/ccealg/cslh-d.p
   [PCTRun]
   [PCTRun] 2016-02-02T17:01:31
   [PCTRun] Object: cslh-w.p - OK
   [PCTRun]   Pmod: ccealg
   [PCTRun]   Path: /cce/rel16plus/src/ccealg/cslh-w.p
   [PCTRun]
   [PCTRun] 2016-02-02T17:06:48
   [PCTRun] Object: loktyp-p.p - OK
   [PCTRun]   Pmod: erpsto
   [PCTRun]   Path: /cce/rel16plus/src/erpsto/loktyp-p.p
   [PCTRun]

I monitored the data accesses (vst table data) starting at 17:01:31 at 17:05 I gave up waiting and collected the data

lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
xFile-Name    Connection      Read    Create    Update    Delete     Deltax
xqqqqqqqqqqq qqqqqqqqqqq qqqqqqqqq qqqqqqqqq qqqqqqqqq qqqqqqqqq qqqqqqqqqx
xrtb_pname           244 1.961.595         0         0         0 1.961.595x
xrtb_object          244     2.816         0         0         0     2.816x
xrtb_path            244       493         0         0         0       493x
xrtb_wspace          244       457         0         0         0       457x
xrtb_session         244        45         0         0         0        45x
xrtb_dbfile          244        39         0         0         0        39x
xrtb_brepo           244         0         0         0         0         0x
xrtb_commits         244         0         0         0         0         0x
xrtb_count           244         0         0         0         0         0x

Not using appserver :

I tried switching to using an rtb appserver connection but if I  blank out the rtb database connection parameters the job no longer starts.

If I don't blank it out it still makes a connection to the rtb database even though I specify to use an Appserver .

All Replies

Posted by cverbiest on 02-Feb-2016 10:38

Part of the issue solved. I had added verbose only to the successful compiles. The extreme differences between one source and another was just because there we're a lot of non compiling sources between 2 successful compiles.

I still find the number of rtb_pname access disproportionate to the number of rtb_pname  accesses. +/- 700 rtb_pname records for each object

Added assemblies option to PCTRun selective compile, missing assemblies caused a lot of the compile errors

               <PCTRun procedure="appSolutions/appSolute/RTB/Automation/adrtb_selectivecompile.p"

                       failonerror="true"

                       dlcHome="${ProgressDLC}"

                       graphicalMode="true"

                       cpinternal="${ProgressCpInternal}" cpstream="${ProgressCpStream}"

                       paramFile="${RtbCompileParamFile}"

                       iniFile="${RtbCompileIniFile}"

                       parameter="${RtbCompileProperties}"

                       assemblies="${RtbCompileAssemblies}"

                       verbose="${BuildVerbose}">

Posted by asthomas on 02-Feb-2016 14:04

Hey Carl,

The extra parameters like assemblies will probably keep coming as other come across use cases we have not been working with on ARAT.

You could probably also just add to the to the .pf file in the paramFile property ;-) That should actually handle most of these as they come up.

With regard to the compiles, I am not aware that we are actually doing any lookups in the repo for the compiles from the toolkit. Do you get the same kind of reads on the rtb_pname table if you do the compile from RTB directly ? Or are you no longer doing that ;-)

Posted by Jeff Ledbetter on 02-Feb-2016 20:30

The rtb_pname reads are during the xref processing. It has to read them. However, it is indexed and based on our profiling, it has very little affect on performance.

This thread is closed