On Wed, 20 Mar 2019 at 14:27, Rick Elrod <codeblock@xxxxxxxx> wrote: > > Hi all, > > Tahrir is slow, and the endpoint that mediawiki-FedoraBadges uses to get > its badge count and badge assertion data from takes about 35 seconds per > request. Do we have an idea what makes Tahrir so slow ? > > As a result, if a user enables both badge count and badge images on a > user page, the two requests combined take well over a minute. This > results in mediawiki often bombing the request and rendering an ugly > error in place of badges. > > We get tickets/support requests on this occasionally as well: > - https://pagure.io/fedora-infrastructure/issue/7650 > > Some quick testing shows that the queries I care about for the > mediawiki-FedoraBadges plugin take about 70ms to run (in prod). > Incurring a 35 second penalty for that seems *crazy* to me. > > As an alternative, I'd like to propose making a tahrir-readonly user, > and modifying the mediawiki-FedoraBadges plugin to query the badges > database directly. > > I played around and got it working in staging, the process was something > like: > > - Create tahrir-readonly postgres user > - Grant it readonly perms on the tahrir tables, and connect and usage perms. > - Modify the mw plugin > - Install php-pgsql on wiki01.stg so it can actually connect > > After that it seems to work fine. I triggered a cache purge of all wiki > pages on stg as well (but on prod, I'd probably just let the cache > naturally expire). Pages with badges load almost instantly now (granted > the stg data is way less than prod, but still). > > I'm looking for comments because I don't know if there's anything > security-wise I'm overlooking in doing this. At a quick glance, it seems > fine -- the new pg user is readonly and very few people have access to > LocalSettings.php where the connect info would be stored. But I might > well be missing something and want to be safe. > > Thoughts? > > Rick > _______________________________________________ > infrastructure mailing list -- infrastructure@xxxxxxxxxxxxxxxxxxxxxxx > To unsubscribe send an email to infrastructure-leave@xxxxxxxxxxxxxxxxxxxxxxx > Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html > List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines > List Archives: https://lists.fedoraproject.org/archives/list/infrastructure@xxxxxxxxxxxxxxxxxxxxxxx _______________________________________________ infrastructure mailing list -- infrastructure@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to infrastructure-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/infrastructure@xxxxxxxxxxxxxxxxxxxxxxx