akkoma/test/pleroma/web
Oneric 138b1aea2f stats: use cheaper peers query
This query is one of the top cost offenders during an instances
lifetime. For small instances it was shown to take up 30-50% percent of
the total database query time, while for bigger isntaces it still held
a spot in the top 3 — alost as or even more expensive overall than
timeline queries!

The good news is, there’s a cheaper way using the instance table:
no need to process each entry, no need to filter NULLs
and no need to dedupe. EXPLAIN estimates the cost of the
old query as 13272.39 and the cost of the new query as 395.74
for me; i.e. a 33-fold reduction.

Results can slightly differ. E.g. we might have an old user
predating the instance tables existence and no interaction with since
or no instance table entry due to failure to query nodeinfo.
Conversely, we might have an instance entry but all known users got
deleted since.
However, this seems unproblematic in practice
and well worth the perf improvment.

Given the previous query didn’t exclude unreachable instances
neither does the new query.
2025-01-07 20:27:28 +01:00
..
activity_pub Don't enqueue a plethora of unnecessary NodeInfoFetcher jobs 2025-01-07 20:27:27 +01:00
admin_api Migrate to phoenix 1.7 (#626) 2023-08-15 10:22:18 +00:00
akkoma_api Fix OpenAPI spec for preferred_frontend endpoint 2024-02-03 14:27:45 +01:00
api_spec Bump Copyright to 2021 2021-01-13 07:49:50 +01:00
auth Support elixir1.15 2023-08-03 17:44:09 +01:00
common_api Don't try to handle non-media objects as media 2024-05-22 20:30:23 +02:00
feed Migrate to phoenix 1.7 (#626) 2023-08-15 10:22:18 +00:00
mastodon_api stats: use cheaper peers query 2025-01-07 20:27:28 +01:00
media_proxy Tag Mock-tests as "mocked" and run them seperately 2023-08-04 12:50:50 +01:00
metadata check if data is visible before embedding it in OG tags 2024-04-12 05:16:47 +01:00
o_auth update tests for oauth consumer 2023-12-17 21:48:19 +00:00
o_status Support elixir1.15 2023-08-03 17:44:09 +01:00
pleroma_api Always insert Dedupe upload filter 2024-03-18 22:33:10 -01:00
plugs Fix about a million tests 2024-10-26 05:05:48 +01:00
preload/providers Remove precompiled javascript (#55) 2022-07-08 13:03:18 +00:00
push Hide logs during test unless a test fails 2024-06-27 18:29:45 +02:00
rich_media rich_media: don't reattempt parsing on rejected URLs 2025-01-07 20:27:27 +01:00
static_fe Add tests for static-fe metadata tags 2024-02-21 00:33:32 +00:00
twitter_api Merge branch 'develop' into failed-fetch-processing 2024-04-16 12:35:54 +01:00
views Support elixir1.15 2023-08-03 17:44:09 +01:00
web_finger WebFingerControllerTest: Restore host after test. 2024-05-22 19:27:51 +01:00
common_api_test.exs Purge obsolete ap_enabled indicator 2025-01-07 20:27:26 +01:00
embed_controller_test.exs Support elixir1.15 2023-08-03 17:44:09 +01:00
fallback_test.exs Support elixir1.15 2023-08-03 17:44:09 +01:00
federator_test.exs Don’t reattempt insertion of already known objects 2025-01-07 20:27:27 +01:00
gettext_test.exs Fix incorrect fallback when English is set to first language 2022-06-29 20:47:10 +01:00
manifest_controller_test.exs Support elixir1.15 2023-08-03 17:44:09 +01:00
masto_fe_controller_test.exs Support elixir1.15 2023-08-03 17:44:09 +01:00
media_proxy_test.exs Only proxy HTTP and HTTP urls via Media Proxy 2024-12-16 20:35:12 -06:00
mongoose_im_controller_test.exs Migrate to phoenix 1.7 (#626) 2023-08-15 10:22:18 +00:00
node_info_test.exs Support elixir1.15 2023-08-03 17:44:09 +01:00
rel_me_test.exs Add more information about failed verifications 2023-03-10 03:51:24 +00:00
streamer_test.exs Support elixir1.15 2023-08-03 17:44:09 +01:00
uploader_controller_test.exs Migrate to phoenix 1.7 (#626) 2023-08-15 10:22:18 +00:00
web_finger_test.exs Hide logs during test unless a test fails 2024-06-27 18:29:45 +02:00
xml_test.exs Add XML matcher 2023-08-07 11:12:14 +01:00