Hi Ludo,

> To be clear, guix-website-test actually makes a search query on a
Data Service instance, right?
That's right. I'm currently learning how to read and understand query plans: https://www.postgresql.org/docs/10/using-explain.html#USING-EXPLAIN-ANALYZE so that the query can hopefully be optimized.

> Ideas on how to mitigate that, either in the Data Service, or
nginx at guix.gnu.org?
To be honest, I'm not that familiar with nginx, so my opinion on that wouldn't be that valuable. 

Thank you for the feedback!

Best,
Danjela

On Mon, 13 Jul 2020 at 16:00, Ludovic Courtès <ludo@gnu.org> wrote:
Heya Danjela,

Daniela Lura <danielaluraa@gmail.com> skribis:

> Taking into consideration the suggestion made in this thread:
> https://lists.gnu.org/archive/html/guix-devel/2020-05/msg00096.html, my
> mentor, Christopher Baines suggested me to write a script that serves a
> search page for packages using the search functionality within the Guix
> Data Service,
> https://data.guix.gnu.org/repository/1/branch/master/latest-processed-revision/packages?search_query=git&field=version&field=synopsis&after_name=&limit_results=100
> .
>
> The prototype page can be accessed through a test version of the Guix
> website that Chris deployed:
> http://guix-website-test.cbaines.net/packages/search

Cool!  To be clear, guix-website-test actually makes a search query on a
Data Service instance, right?  I guess that explains part of the
slowness, but maybe we could tweak nginx to keep search results in cache
for a few hours.

Florian raised an important issue regarding the possibility of denial of
service.  Ideas on how to mitigate that, either in the Data Service, or
nginx at guix.gnu.org?

> I'd like to know if you find the page useful so that I can hopefully start
> working on incorporating the search functionality into this page:
> https://guix.gnu.org/packages/.

I’d be happy to see that happen!  We would need the changes against
guix-artwork.git as well as (maybe) changes to the nginx config in
maintenance.git.  How should we proceed?

Thanks!

Ludo’.