Book a Demo

Author Topic: Which elements changed?  (Read 4521 times)

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Which elements changed?
« on: September 17, 2015, 10:16:36 am »
As some of you may know, we run an automatic diagrammer across our entire repository every night to update what are known as Neighborhood diagrams for each element in the repository.

However, even at the rate of processing thousands of diagrams per hour, with the ever increasing number of items in the repository, we aren't able to process all the elements in the repository in the required time frame (that is, before work starts again in the morning). :(  (Even with the much faster build 909 processing! - with builds after 909, forget it!)

Anyway, we need to work smarter, not harder.  We need to figure out which items changed and ONLY update their diagrams.

Since EA is deficient in footprinting (I'm not anticipating using Auditing at this stage for performance, and other reasons, reasons), I need an algorithm to determine which elements have changed to require a re-rendering of their neighborhood.

Assuming a mechanism for recording last “full repository” scan.  Time of start and completion of last scan, recoding of last Package ID, Element ID, Connector ID, Attribute ID, Operation ID (most in absence of time footprints)  At start and at end of scan.

  • List of relevant  elements whose Creation Timepoint > Start of last scan or Last Modified Timepoint > End of last scan
  • List of relevant  elements in packages created/modified since start of last scan – needs check to see of adding diagram adjusts – so maybe since end of last scan
  • List of relevant  elements in non-autoupdateable diagrams created/modified since start of last scan
  • List of relevant  elements with attributes created (ID > recorded) since start of last scan
  • List of relevant  elements with operations created (ID > recorded) since start of last scan
  • List of elements at either end of connectors created since the last scan.
A select distinct on this set should give me the lists of elements to process..

Any other tests I could/should  do?

TIA,
Paolo
« Last Edit: September 17, 2015, 10:18:01 am by PaoloFCantoni »
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Uffe

  • EA Practitioner
  • ***
  • Posts: 1859
  • Karma: +133/-14
  • Flutes: 1; Clarinets: 1; Saxes: 5 and counting
    • View Profile
Re: Which elements changed?
« Reply #1 on: September 18, 2015, 01:54:23 am »
I don't think that modifying a composite diagram causes the element's modification timestamp to change, so that might be a worthwhile check.

And just out of left field, but it should be pretty easy to write your own audit logger as an Add-In which catches EA_OnPostNew* and EA_OnNotifyContextItemModified, and logs to a custom server or to the Windows logger. I'm not sure whether you could catch all relevant model changes that way, however.

/Uffe
My theories are always correct, just apply them to the right reality.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Which elements changed?
« Reply #2 on: September 18, 2015, 09:42:53 am »
Quote
I don't think that modifying a composite diagram causes the element's modification timestamp to change, so that might be a worthwhile check.

And just out of left field, but it should be pretty easy to write your own audit logger as an Add-In which catches EA_OnPostNew* and EA_OnNotifyContextItemModified, and logs to a custom server or to the Windows logger. I'm not sure whether you could catch all relevant model changes that way, however.

/Uffe
Thanks for that Uffe.  

With regards to Audit, I'm not really interested in a transactional solution at this stage, but a more declarative one.

If EA had proper footprinting, then I wouldn't be asking the question.

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!