1CP Performance Improvements in 9.0.0.23

1CP Performance Improvements in 9.0.0.23

  

Hi all,
 
Good news! The latest Platform revision (9.0.0.23) brings performance improvements to the 1-Click Publish (1CP) process. Let take a peek at some of the magic underneath that allowed us to create 10% time savings, each time you hit Publish.
 
When you publish an app, the Platform performs several checks so you don't have to. These ensure consistency between your new version and the supporting systems. That tells us what needs to change for your application to function correctly. 
 
In this version, we focused on the performance of two of these consistency checks:
 
Web References checking
 
During the 1CP process, the Platform checks to see if all application web references remain valid by probing each one with an HTTP request. Depending on the number of web references and network conditions (e.g. latency), this process can take a significant toll on total publication time.  Our profiling metrics showed that even though this process occurs in parallel as the compilation unfolds, it could still outlast all the other publication phases for some scenarios. 
 
What changed: The Platform now triggers the web references checking as soon as the compilation phase starts, to  minimize its impact on publication times.

Before improvements:
                        

 




With improvements:

                        
 
 
Entity Model consistency checking
 
During the publishing of an application, OutSystems Platform applies the necessary changes to the database to ensure that is consistent with the entity model. This is CPU intensive and puts considerable burden on the database. 
 
Entity model changes are most frequent in the early stages of an application's development and become increasingly rare as it matures. Still, the Platform performed this check at every 1CP, as the Database’s model could have become invalid due to modifications outside the Platform.
 
What changed: When the Platform publishes an application whose entity model did not change, it performs a quick sanity check to the database (< 500ms) to determine whether a full introspection is needed or not. If it is not needed, this costly step is simply skipped. 

Best Regards,
Miguel Pires
 

Hi Miguel,
The links on the post are not correct.
On the first, text link "1-Click Publish (1CP)" is pointing to the help screen of "Consume a SOAP Web Service".
The images "Before Improvements" and "With Improvements" are directing to a document that is not public, on google drive. I can't see them.
Hi Tiago,

Thank you very much for your feedback.
The links were fixed.
This explains why what seems to be a not complex module, could actually end up taking long to publish.
From your metrcis, what is the main bottleneck of those consistency checks? Is it possible to know?