this post was submitted on 04 Dec 2023
622 points (95.9% liked)
Fediverse
27910 readers
1 users here now
A community to talk about the Fediverse and all it's related services using ActivityPub (Mastodon, Lemmy, KBin, etc).
If you wanted to get help with moderating your own community then head over to [email protected]!
Rules
- Posts must be on topic.
- Be respectful of others.
- Cite the sources used for graphs and other statistics.
- Follow the general Lemmy.world rules.
Learn more at these websites: Join The Fediverse Wiki, Fediverse.info, Wikipedia Page, The Federation Info (Stats), FediDB (Stats), Sub Rehab (Reddit Migration), Search Lemmy
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Why?
Why hard? Client needs to fetch all metadata needed for sorting for every post created during entire lemmy's existance on every discovered lemmy instances, which depending on algo you are using, might include comments metadata. To aid client-side sorting you would need server-side filtering, which will limit data avaliable to sorting algo. For example client-side trending algo would not show old trending post because it was filtered out.
So client-side sorting is basically running stripped version of instance without file hosting.
Why would you need all data to build the frontpage? Why not just make a sliding window with the content from the last 24/48h?
Even if that were true, how is that different, e.g, from any modern desktop email client?
Exactly what I'm saying. To not be super resource-intensive, client-side sorting needs to be incomplete. As I said, if there is hypothetical post from 49 hours ago with 10k upvotes, you will not see it, but you will see one from 48 hours ago with 1k upvotes.
Not much I guess(sounds like Thunderbird). But what about mobile?
Not necessarily true. You can build an index and keep a cache of the N posts by each sorting method. Your data store will grow linearly with the number of sorting criteria you will have, which should be small.
We are talking about an amount of data that a sqlite database process in a breeze. My K-9 email client can handle all my 20 years of gmail...