this post was submitted on 21 Jul 2023
209 points (98.2% liked)
SNOOcalypse - document, discuss, and promote the downfall of Reddit.
4672 readers
1 users here now
SNOOcalypse is closing down. If you wish to talk about Reddit, check out !reddit@lemm.ee, !reddit@lemmy.world and !RedditMigration@kbin.social.
This community welcomes anyone who wants to see Reddit gone. Nuke the Snoo!
When sharing links, please also share an archived version of the target of your link.
Rules:
- Follow lemmy.ml's global rules and code of conduct.
- Keep it on-topic.
- Don't promote illegal stuff here.
- Don't be stupid, noisy, obnoxious or obtuse (S.N.O.O.)
- Have fun, and enjoy the popcorn! ๐ฟ
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
I could see a system being both easy, and hard to implement; Without thinking about it too much, it'd require a hash table filled with every single already-used key that is always perfectly synced with every other instance regardless of each instance's chosen federated instances.
Best bet might be to just have a non-linear, randomly chosen, hash with a fixed key-length backed by a very large keyspace. This could effectively defeat the need for perfect syncing due to a greatly decreased chance of collision over short periods of time (statistically covering any minute-or-two long desyncs).
Not necessarily. A hash of the body/url+timestamp would always point to the same place, and could be calculated on the fly.
So every comment and post would have a calculation and entry into a table, and this would be done by every instance every time one instance creates a new comment or post? That sounds like a massive unnecessary overhead.
Just use the same ID across all instances. Hell, they could just do https://inst.ance/post/number@inst.ance
This is redundant but is better than the uuid thing, even though it's redundant.
I love how your use of the word redundant demonstrated redundancy.
I still think a table and extra processing is wasteful and uneccesary. Rather, instances should just do what they do with communities and users.
The host instance decides the number. Remote instances use that number followed by @instance. This already fits in with the federated model, as posts are always on the community's local instance originally, and comments are always on the user's local instance originally.
If you're on lemmy.one and reply to a post in a community in lemmy.world, that post should be lemmy.world's number @lemmy.world, then your comment should be lemmy.one's number @lemmy.one, rather than each instance picking its own sequential number for both.
This kind of thing would probably be the easiest change to implement while requiring minimal server overhead.
For a specific example, to me, this post is https://lemm.ee/post/1726780. In the original, federated instance, the post is https://lemmy.ml/post/2308622. Instead, it should appear to me as https://lemm.ee/post/2308622@lemmy.ml.
Your comment, to me, is https://lemm.ee/comment/1409174. The federated link is https://lemmy.one/comment/1393053. This is the link you see, and should continue to see, but I should see https://lemm.ee/comment/1393053@lemmy.one.
Using the instance in the numbering scheme means each federated host instance manages its own numbering while ensuring there will never be a clash between instances. https://lemm.ee/comment/1393053@lemmy.one and https://lemm.ee/comment/1393053 would refer to two completely different comments. This information is already being transmitted in the process of federation, so it's just a matter of tagging the data when it's received.