...
Panel | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
|
Panel | |||||||||
---|---|---|---|---|---|---|---|---|---|
| |||||||||
|
Activity overview
Panel | ||
---|---|---|
| ||
pyFF is widely used in our community to provide Discovery and Metadata Query services. This topic is about some optimizations of pyFF for operations. The goal of this project is to optimize pyFF memory consumption and (re-)start behavior. For the memory consumption, the underlying XML processing library may be swapped, or the memory-intensive part of the processing may be done on a short-lived cheap VM and the resulting in-memory representation serialized, transferred to the production instances and de-serialized. For the in-(re)start behavior it must be established what is the right way of configuring pyFF so that it won’t take queries while its internal database is still incomplete. |
Panel | ||
---|---|---|
| ||
#Please describe the goals of Activity, including what needs to be delivered, participants, the community(ies) that require a solution. Describe when the Activity is done and how to measure the success of it, in a SMART way. - delete this line after using the template# <Enter here>The goal of the activity is to improve the performance of the existing pyFF in regard to memory consumption to enable metadata processing on machines with few resources. |
Activity Details
Panel | ||
---|---|---|
| ||
The SAML metadata appliance pyFF(https://pyff.io/) is widely used in the GÉANT community. PyFF - short for python Federation Feeder - is a simple, yet complete SAML metadata aggregator. The source code is available on GitHub: https://github.com/IdentityPython/pyFF Although the tool itself is pretty small and most task can be performed with few resources, the process of processing SAML metadata requires a lot of memory. For this reason, the behaviour of pyFF in terms of memory consumption shall be investigated. Perhaps the opportunity exists to improve the XML processing so that the consumption can be reduced. In the best case pyFF can then run on much smaller servers than before. This would, among other things, make it easier to use external servers, as this could drastically reduce costs. |
Panel | ||
---|---|---|
| ||
Grant benefits to NRENs using pyFF:
| ||
#Please describe the technical details for the Activity. - delete this line after using the template# <Enter here> | ||
Panel | ||
| ||
#What is the business case for the Activity? Who would be beneficiaries of the results of the Activity and what would potential business case look like if applicable? - delete this line after using the template# |
Panel | ||
---|---|---|
| ||
#Are there risks that influence either the implementation of the activity or its outcomes? - delete this line after using the template#
|
Panel | ||
---|---|---|
| ||
#How do
<Enter here>
|
Panel | ||
---|---|---|
| ||
#Please describe here the set of criteria that the product must meet in order to be considered finished. - delete this line after using the template# <Enter here> | ||
The activity is done once:
|
Panel | ||
---|---|---|
| ||
#How are the results of the Activity intended to be used? If this requires further engagement, can you describe how you intent to sustain it? - delete this line after using the template# <Enter here> |
Activity Results
After the end of the activity, the source code created will become part of the official repository and can then be used by every NREN interested. |
Activity Results
Panel | ||
---|---|---|
| ||
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:
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 tools. | ||
Panel | ||
| ||
#Please provide pointers to completed and intermediary results of this activity - delete this line after using the template# |
Meetings
Date | Activity | Owner | Minutes |
---|---|---|---|
June 23, 2020 | Kickoff meeting | ||
Meeting with pyFF developer |
Documents
Attachments