Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Activity Results

Panel
titleResults

The aim of this activity was to investigate whether the existing pyFF software can be optimised to reduce memory consumption and improve performance. For this purpose, intensive profiling of the software was carried out and a large number of experiments were conducted:

  • Memory profiling
    • heapy way: import and code usage of using heapy to print heap information while running python code.
    • top/htop way: following RES in top or htop for a long-running pyFF/gunicorn process, that has a 60s refresh interval
  • Process and distribute the etree.ElementTree object
  • Rewriting to SAX parsing from DOM
  • Switch from recursive processing to sequential
  • Run pyFF in a uwsgi server
  • Empty Metadata set while refreshing
  • Unpacking pyFF+ resource loading model

It has turned out that the performance of pyFF cannot be particularly improved. An essential improvement could be achieved by changing the XML processing, but this would require fundamental changes to the architecture of the software. Ultimately, a complete rewrite of pyFF would be necessary.

In order to test the current limits of the software and to assess future trends in eduGAIN, metadata mockup data was created and tested subsequently. Test data of 10000 up to 10000 entities were created and tested with the software pyFF, Shibboleth and simpleSAMLphp. While the memory consumption of all tools increases exponentially with the number of metadata, no more processing could be carried out with 100000 entities at the maximum.

All tests and results were documented in a report, which was passed on to the developer communities of the toolsThis activity is work in progress at the time of writing.

Meetings

Date

Activity

Owner

Minutes

June 23, 2020

Kickoff meeting




Meeting with pyFF developer

Documents

Attachments