Description
This is a request for a performance review of Wikifunctions from 1-June-2021 (Tuesday) to 14-June-2021 (Monday), inclusive.
The system is composed of a JavaScript Vue client, MediaWiki PHP middleware, and backend Node.js orchestration/evaluation (n.b., user-defined functions will be supported in Node.js and Python in earlier releases of Wikifunctions).
https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/WikiLambda/+/refs/heads/master
https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/services/function-orchestrator/+/refs/heads/master
https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/services/function-evaluator/+/refs/heads/master
Preview environment
It is presently possible to run the Mediawiki extension WikiLambda in MediaWiki-Docker with minimal configuration, and wireup for more replete orchestration and evaluation is in flight.
Additionally, Lucas Werkmeister has in spare time been running an independent system (which is not the target of evaluation, to be clear) - https://notwikilambda.toolforge.org/wiki/Main_Page
Which code to review
We're interested in evaluation of performance across the tiers. It should be noted that we expect this new Wikimedia project's user base to be small at first, and therefore its computational needs comparatively modest at first.
Performance assessment
Q&A:
- What work has been done to ensure the best possible performance of the feature? So far, we haven't begun optimization for performance.
- What are likely to be the weak areas (e.g. bottlenecks) of the code in terms of performance? Snappy FTUX on the Vue client side app, or at least effective management of user expectations for FTUX on the Vue client side app, type conformance checking on the JSON UGC, and function execution bottlenecks and in-memory or on-disk pressure points.
- Are there potential optimisations that haven't been performed yet? Yes.
- Please list which performance measurements are in place for the feature and/or what you've measured ad-hoc so far. If you are unsure what to measure, ask the Performance Team for advice: performance-team@wikimedia.org. Not much. We do intend to have various profiling measures in place in the future, as it will likely play into different types of optimization (e.g., caching and parallelism bounds) and we'll need guards in place to monitor and address yet-to-be-defined SLOs; but this is MVP work.