Home | Notifications | New Note | Local | Federated | Search | Logout

Note Detail


Reply to @silverpill@mitra.social
Phantasm@phnt@fluffytail.org (2026-09-02 05:12:05)
@silverpill @mischievoustomato @pwm @kirby @p @lain @meso @graf @pernia Pleroma basically took the completely opposite extreme to what Mastodon did (normalizing everything into a very specific schema). The Pleroma schema is very simple and mostly stores raw AP Activities/Objects which causes the size difference per-post/reaction. What Mitra stores in a separate table (post content, visibility,...), Pleroma stores in a single jsonb column. reaction count, repeat count, like count, tags are all stored in the same jsonb blob along the original AP Object representation. There are some advantages to that, like not needing a join across different tables. jsonb is also slightly larger because it is a pre-parsed json representation.

The split activities/objects table schema also introduced more DB size as there are more indexes needed for it to work. It's too late to deeply optimize and normalize the schema now, maybe with the eventual Pleroma 3.0 some day in the likely distant future and an hours/days long data migration.
---Reply--- Phantasm@phnt@fluffytail.org (2026-09-02 16:09:08) @silverpill @graf @kirby @lain @meso @mischievoustomato @p @pernia @pwm Also a fun sidenote. Apparently Mastodon despite it heavily normalizing AP, their databases are size comparable to Pleroma and possibly even bigger. Somewhat recently someone using Mastohost complained that after half a year of running the instance, the DB was already 40GB. So it's not just jsonb = bloat.
Reply

---Replies---
lain@lain@lain.com (2026-09-02 16:18:45)
@phnt @mischievoustomato @pwm @kirby @p @silverpill @meso @graf @pernia has anyone ever put their pleroma database on btrfs or zfs compressed volumes? should compress quite well i think.
YBG pern@pernia@cum.salon (2026-09-02 16:47:00)
@phnt @mischievoustomato @pwm @kirby @p @lain @silverpill @meso @graf @pernia

yea, the retarded indexes on the jsonb bloat are half the problem. clearly mitra was able to normalize AP activities properly, and because it doesn't need to keep heaps of jsonb around, it stays slim. mastodon might be exceptionally retarded, but pleroma didn't do any better by just doing the opposite thing.